diff --git a/app/src/main/java/space/neothefox/laytray/IconBuilderPreview.java b/app/src/main/java/space/neothefox/laytray/IconBuilderPreview.java index 6a9fd63..8f7e7e0 100644 --- a/app/src/main/java/space/neothefox/laytray/IconBuilderPreview.java +++ b/app/src/main/java/space/neothefox/laytray/IconBuilderPreview.java @@ -18,10 +18,10 @@ import static android.graphics.Paint.ANTI_ALIAS_FLAG; public class IconBuilderPreview extends View { - int mode; - int textSize; - boolean fakeBold; - int textColor; + private int mode; + private int textSize; + private boolean fakeBold; + private int textColor; public IconBuilderPreview(Context context) { @@ -47,11 +47,10 @@ public class IconBuilderPreview extends View initValues(); } - public void initValues() + private void initValues() { textSize = 48 * 10; fakeBold = true; - } @Override diff --git a/app/src/main/java/space/neothefox/laytray/IconService.java b/app/src/main/java/space/neothefox/laytray/IconService.java index 86c2feb..95b0d76 100644 --- a/app/src/main/java/space/neothefox/laytray/IconService.java +++ b/app/src/main/java/space/neothefox/laytray/IconService.java @@ -23,20 +23,21 @@ import android.view.accessibility.AccessibilityEvent; import static android.graphics.Paint.ANTI_ALIAS_FLAG; +@SuppressWarnings("SuspiciousNameCombination") public class IconService extends AccessibilityService implements SharedPreferences.OnSharedPreferenceChangeListener { - public static String TAG = "layicon"; - public static String channelId = "space.neothefox.laytray.IC"; + public static final String TAG = "layicon"; + public static final String channelId = "space.neothefox.laytray.IC"; private final AccessibilityServiceInfo serviceInfo = new AccessibilityServiceInfo(); - SharedPreferences layouts; - SharedPreferences options; - String lastToast; + private SharedPreferences layouts; + private SharedPreferences options; + private String lastToast; - NotificationManager iconManager; - NotificationChannel iconChannel; + private NotificationManager iconManager; + private NotificationChannel iconChannel; @Override protected void onServiceConnected() @@ -56,8 +57,14 @@ implements SharedPreferences.OnSharedPreferenceChangeListener iconManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - - iconChannel = iconManager.getNotificationChannel(channelId); + try + { + iconChannel = iconManager.getNotificationChannel(channelId); + } + catch (NullPointerException e) + { + Log.d(TAG, "No NotificationChannel found"); + } if(iconChannel == null) { iconChannel = new NotificationChannel( channelId, @@ -72,15 +79,15 @@ implements SharedPreferences.OnSharedPreferenceChangeListener } } - protected void updateNotification(String toast) + private void updateNotification(String toast) { Notification indicator; String textIcon = layouts.getString(toast,"EMPT"); - if(textIcon == "EMPT") + if(textIcon.equals("EMPT")) { SharedPreferences.Editor layoutsEditor = layouts.edit(); layoutsEditor.putString(toast, "??"); - layoutsEditor.commit(); + layoutsEditor.apply(); textIcon = "??"; } Icon smallIcon = Icon.createWithBitmap(textAsBitmap(textIcon, diff --git a/app/src/main/java/space/neothefox/laytray/MainActivity.java b/app/src/main/java/space/neothefox/laytray/MainActivity.java index 7c6598f..ff8dab5 100644 --- a/app/src/main/java/space/neothefox/laytray/MainActivity.java +++ b/app/src/main/java/space/neothefox/laytray/MainActivity.java @@ -31,9 +31,10 @@ import java.util.Map; public class MainActivity extends AppCompatActivity implements View.OnClickListener, DialogInterface.OnClickListener, SharedPreferences.OnSharedPreferenceChangeListener { - LinearLayout layoutLister; - SharedPreferences layouts; - public String TAG = "layiconActivity"; + public final String TAG = "layiconActivity"; + + private LinearLayout layoutLister; + private SharedPreferences layouts; @Override protected void onCreate(Bundle savedInstanceState) @@ -65,7 +66,7 @@ implements View.OnClickListener, DialogInterface.OnClickListener, SharedPreferen } } - protected void updateLayouts() + private void updateLayouts() { layoutLister.removeAllViewsInLayout(); @@ -81,7 +82,7 @@ implements View.OnClickListener, DialogInterface.OnClickListener, SharedPreferen entry.getValue().toString()); i++; - if(entry.getKey() != "EMPT") + if(!entry.getKey().equals("EMPT")) addLine(layoutLister, entry.getKey(), entry.getValue().toString()); } if(i == 0) @@ -92,7 +93,7 @@ implements View.OnClickListener, DialogInterface.OnClickListener, SharedPreferen } - protected void populateLayouts() + private void populateLayouts() { Log.d("map values", "Shared Prefs are empty"); SharedPreferences.Editor layoutsEditor = layouts.edit(); @@ -100,10 +101,10 @@ implements View.OnClickListener, DialogInterface.OnClickListener, SharedPreferen layoutsEditor.putString("Русский", "RU"); layoutsEditor.putString("Буквы (АБВ)", "EN"); layoutsEditor.putString("EMPT", "??"); - layoutsEditor.commit(); + layoutsEditor.apply(); } - protected void addLine(LinearLayout parent, String name, String icon) + private void addLine(LinearLayout parent, String name, String icon) { final LinearLayout layoutLine = new LinearLayout(getApplicationContext()); layoutLine.setOrientation(LinearLayout.HORIZONTAL); @@ -147,7 +148,7 @@ implements View.OnClickListener, DialogInterface.OnClickListener, SharedPreferen parent.addView(layoutLine); } - protected void saveLayouts(LinearLayout parent) + private void saveLayouts(LinearLayout parent) { int count = parent.getChildCount(); Log.d(TAG, String.format("%d layouts to save", count)); @@ -162,15 +163,15 @@ implements View.OnClickListener, DialogInterface.OnClickListener, SharedPreferen EditText layoutIcon = (EditText)layoutLine.getChildAt(1); String layoutNameValue = layoutName.getText().toString(); String layoutIconValue = layoutIcon.getText().toString(); - if(layoutNameValue != "") + if(!layoutNameValue.equals("")) { - if(layoutIconValue != "") + if(!layoutIconValue.equals("")) layoutsEditor.putString(layoutNameValue, layoutIconValue); else layoutsEditor.putString(layoutNameValue, "??"); } } - layoutsEditor.commit(); + layoutsEditor.apply(); } } diff --git a/app/src/main/java/space/neothefox/laytray/SettingsActivity.java b/app/src/main/java/space/neothefox/laytray/SettingsActivity.java index 026e64a..370e52f 100644 --- a/app/src/main/java/space/neothefox/laytray/SettingsActivity.java +++ b/app/src/main/java/space/neothefox/laytray/SettingsActivity.java @@ -38,7 +38,8 @@ import java.util.List; * href="http://developer.android.com/guide/topics/ui/settings.html">Settings * API Guide for more information on developing a Settings UI. */ -public class SettingsActivity extends AppCompatPreferenceActivity { +public class SettingsActivity extends AppCompatPreferenceActivity +{ /** * A preference value change listener that updates the preference's summary @@ -46,10 +47,12 @@ public class SettingsActivity extends AppCompatPreferenceActivity { */ private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() { @Override - public boolean onPreferenceChange(Preference preference, Object value) { + public boolean onPreferenceChange(Preference preference, Object value) + { String stringValue = value.toString(); - if (preference instanceof ListPreference) { + if (preference instanceof ListPreference) + { // For list preferences, look up the correct display value in // the preference's 'entries' list. ListPreference listPreference = (ListPreference) preference; @@ -61,7 +64,9 @@ public class SettingsActivity extends AppCompatPreferenceActivity { ? listPreference.getEntries()[index] : null); - } else { + } + else + { // For all other preferences, set the summary to the value's // simple string representation. preference.setSummary(stringValue); @@ -74,7 +79,8 @@ public class SettingsActivity extends AppCompatPreferenceActivity { * Helper method to determine if the device has an extra-large screen. For * example, 10" tablets are extra-large. */ - private static boolean isXLargeTablet(Context context) { + private static boolean isXLargeTablet(Context context) + { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE; } @@ -88,7 +94,8 @@ public class SettingsActivity extends AppCompatPreferenceActivity { * * @see #sBindPreferenceSummaryToValueListener */ - private static void bindPreferenceSummaryToValue(Preference preference) { + private static void bindPreferenceSummaryToValue(Preference preference) + { // Set the listener to watch for value changes. preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener); @@ -101,7 +108,8 @@ public class SettingsActivity extends AppCompatPreferenceActivity { } @Override - protected void onCreate(Bundle savedInstanceState) { + protected void onCreate(Bundle savedInstanceState) + { super.onCreate(savedInstanceState); setupActionBar(); } @@ -109,19 +117,24 @@ public class SettingsActivity extends AppCompatPreferenceActivity { /** * Set up the {@link android.app.ActionBar}, if the API is available. */ - private void setupActionBar() { + private void setupActionBar() + { ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { + if (actionBar != null) + { // Show the Up button in the action bar. actionBar.setDisplayHomeAsUpEnabled(true); } } @Override - public boolean onMenuItemSelected(int featureId, MenuItem item) { + public boolean onMenuItemSelected(int featureId, MenuItem item) + { int id = item.getItemId(); - if (id == android.R.id.home) { - if (!super.onMenuItemSelected(featureId, item)) { + if (id == android.R.id.home) + { + if (!super.onMenuItemSelected(featureId, item)) + { NavUtils.navigateUpFromSameTask(this); } return true; @@ -133,7 +146,8 @@ public class SettingsActivity extends AppCompatPreferenceActivity { * {@inheritDoc} */ @Override - public boolean onIsMultiPane() { + public boolean onIsMultiPane() + { return isXLargeTablet(this); } @@ -142,7 +156,8 @@ public class SettingsActivity extends AppCompatPreferenceActivity { */ @Override @TargetApi(Build.VERSION_CODES.HONEYCOMB) - public void onBuildHeaders(List
target) { + public void onBuildHeaders(List
target) + { loadHeadersFromResource(R.xml.pref_headers, target); } @@ -150,7 +165,8 @@ public class SettingsActivity extends AppCompatPreferenceActivity { * This method stops fragment injection in malicious applications. * Make sure to deny any unknown fragments here. */ - protected boolean isValidFragment(String fragmentName) { + protected boolean isValidFragment(String fragmentName) + { return PreferenceFragment.class.getName().equals(fragmentName) || GeneralPreferenceFragment.class.getName().equals(fragmentName) || NotificationPreferenceFragment.class.getName().equals(fragmentName); @@ -161,9 +177,11 @@ public class SettingsActivity extends AppCompatPreferenceActivity { * activity is showing a two-pane settings UI. */ @TargetApi(Build.VERSION_CODES.HONEYCOMB) - public static class GeneralPreferenceFragment extends PreferenceFragment { + public static class GeneralPreferenceFragment extends PreferenceFragment + { @Override - public void onCreate(Bundle savedInstanceState) { + public void onCreate(Bundle savedInstanceState) + { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref_general); setHasOptionsMenu(true); @@ -176,9 +194,11 @@ public class SettingsActivity extends AppCompatPreferenceActivity { } @Override - public boolean onOptionsItemSelected(MenuItem item) { + public boolean onOptionsItemSelected(MenuItem item) + { int id = item.getItemId(); - if (id == android.R.id.home) { + if (id == android.R.id.home) + { startActivity(new Intent(getActivity(), SettingsActivity.class)); return true; } @@ -191,9 +211,11 @@ public class SettingsActivity extends AppCompatPreferenceActivity { * activity is showing a two-pane settings UI. */ @TargetApi(Build.VERSION_CODES.HONEYCOMB) - public static class NotificationPreferenceFragment extends PreferenceFragment { + public static class NotificationPreferenceFragment extends PreferenceFragment + { @Override - public void onCreate(Bundle savedInstanceState) { + public void onCreate(Bundle savedInstanceState) + { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref_notification); setHasOptionsMenu(true); @@ -204,15 +226,18 @@ public class SettingsActivity extends AppCompatPreferenceActivity { // guidelines. //With Oreo this setting should be set by the system dialog - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) + { Preference notificationImportance = getPreferenceScreen().findPreference("notificationImportance"); PreferenceGroup parent = notificationImportance.getParent(); parent.removePreference(notificationImportance); Preference notificationImportanceOreo = new Preference(parent.getContext()); notificationImportanceOreo.setTitle(R.string.pref_title_notification_importance); - notificationImportanceOreo.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + notificationImportanceOreo.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() + { @Override - public boolean onPreferenceClick(Preference preference) { + public boolean onPreferenceClick(Preference preference) + { Intent intent = new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS); intent.putExtra(Settings.EXTRA_APP_PACKAGE, "space.neothefox.laytray"); intent.putExtra(Settings.EXTRA_CHANNEL_ID, IconService.channelId); @@ -242,7 +267,8 @@ public class SettingsActivity extends AppCompatPreferenceActivity { } @TargetApi(Build.VERSION_CODES.HONEYCOMB) - public static class IconBuilderPreferenceFragment extends DialogFragment implements View.OnClickListener { + public static class IconBuilderPreferenceFragment extends DialogFragment implements View.OnClickListener + { SeekBar xBar; VerticalSeekBar yBar; @@ -254,18 +280,18 @@ public class SettingsActivity extends AppCompatPreferenceActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - } @Nullable @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_icon_builder, container); - return view; + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) + { + return inflater.inflate(R.layout.fragment_icon_builder, container); } @Override - public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) + { super.onViewCreated(view, savedInstanceState); xBar = getView().findViewById(R.id.horSeekBar); @@ -282,8 +308,10 @@ public class SettingsActivity extends AppCompatPreferenceActivity { } @Override - public void onClick(View v) { - switch (v.getId()) { + public void onClick(View v) + { + switch (v.getId()) + { case R.id.saveButton: return; case R.id.closeButton: @@ -294,9 +322,11 @@ public class SettingsActivity extends AppCompatPreferenceActivity { } @Override - public boolean onOptionsItemSelected(MenuItem item) { + public boolean onOptionsItemSelected(MenuItem item) + { int id = item.getItemId(); - if (id == android.R.id.home) { + if (id == android.R.id.home) + { startActivity(new Intent(getActivity(), SettingsActivity.class)); return true; } diff --git a/app/src/main/java/space/neothefox/laytray/VerticalSeekBar.java b/app/src/main/java/space/neothefox/laytray/VerticalSeekBar.java index 5a1ea6f..e8c0556 100644 --- a/app/src/main/java/space/neothefox/laytray/VerticalSeekBar.java +++ b/app/src/main/java/space/neothefox/laytray/VerticalSeekBar.java @@ -9,29 +9,35 @@ import android.view.MotionEvent; public class VerticalSeekBar extends AppCompatSeekBar { - public VerticalSeekBar(Context context) { + public VerticalSeekBar(Context context) + { super(context); } - public VerticalSeekBar(Context context, AttributeSet attrs, int defStyle) { + public VerticalSeekBar(Context context, AttributeSet attrs, int defStyle) + { super(context, attrs, defStyle); } - public VerticalSeekBar(Context context, AttributeSet attrs) { + public VerticalSeekBar(Context context, AttributeSet attrs) + { super(context, attrs); } - protected void onSizeChanged(int w, int h, int oldw, int oldh) { + protected void onSizeChanged(int w, int h, int oldw, int oldh) + { super.onSizeChanged(h, w, oldh, oldw); } @Override - protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) + { super.onMeasure(heightMeasureSpec, widthMeasureSpec); setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth()); } - protected void onDraw(Canvas c) { + protected void onDraw(Canvas c) + { c.rotate(-90); c.translate(-getHeight(), 0); @@ -39,12 +45,13 @@ public class VerticalSeekBar extends AppCompatSeekBar } @Override - public boolean onTouchEvent(MotionEvent event) { - if (!isEnabled()) { + public boolean onTouchEvent(MotionEvent event) + { + if (!isEnabled()) return false; - } - switch (event.getAction()) { + switch (event.getAction()) + { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_MOVE: case MotionEvent.ACTION_UP: diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 55a028b..3b130db 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -43,19 +43,10 @@ android:layout_marginBottom="24dp" android:layout_marginEnd="24dp" android:clickable="true" + android:focusable="true" app:backgroundTint="?attr/colorPrimary" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:srcCompat="@android:drawable/ic_menu_save" /> - - \ No newline at end of file