diff --git a/app/build.gradle b/app/build.gradle index af99fbc..8cf8b5e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 26 + compileSdkVersion 27 defaultConfig { applicationId "space.neothefox.laytray" minSdkVersion 23 @@ -21,10 +21,10 @@ android { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'com.android.support:appcompat-v7:26.1.0' + implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.2' - implementation 'com.android.support:support-v4:26.1.0' + implementation 'com.android.support:support-v4:27.1.1' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' - implementation 'com.android.support:design:26.1.0' + implementation 'com.android.support:design:27.1.1' } diff --git a/app/src/main/java/space/neothefox/laytray/IconService.java b/app/src/main/java/space/neothefox/laytray/IconService.java index 0411d43..3cd6f25 100644 --- a/app/src/main/java/space/neothefox/laytray/IconService.java +++ b/app/src/main/java/space/neothefox/laytray/IconService.java @@ -13,7 +13,6 @@ import android.graphics.Color; import android.graphics.Paint; import android.graphics.PorterDuff; import android.graphics.PorterDuffXfermode; -import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.Icon; import android.os.Build; @@ -27,7 +26,8 @@ import static android.graphics.Paint.ANTI_ALIAS_FLAG; public class IconService extends AccessibilityService implements SharedPreferences.OnSharedPreferenceChangeListener{ - public String TAG = "layicon"; + public static String TAG = "layicon"; + public static String channelId = "space.neothefox.laytray.IC"; private final AccessibilityServiceInfo serviceInfo = new AccessibilityServiceInfo(); SharedPreferences layouts; @@ -53,12 +53,16 @@ implements SharedPreferences.OnSharedPreferenceChangeListener{ iconManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + iconChannel = new NotificationChannel( - "laytray", - "LayTray", - Integer.parseInt(options.getString("notificationImportance", "0"))); + channelId, + "LayTray IconChannel", + NotificationManager.IMPORTANCE_DEFAULT); iconChannel.setShowBadge(false); + iconChannel.enableLights(false); + iconChannel.enableVibration(false); iconChannel.setLockscreenVisibility(Notification.VISIBILITY_SECRET); + iconManager.createNotificationChannel(iconChannel); } } @@ -81,12 +85,11 @@ implements SharedPreferences.OnSharedPreferenceChangeListener{ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - iconChannel.setImportance( - Integer.parseInt(options.getString("notificationImportance", "0"))); - indicator = new Notification.Builder(this, "laytray") + indicator = new Notification.Builder(this, channelId) .setSmallIcon(smallIcon) .setContentTitle(toast) .setOngoing(true) + .setVisibility(Notification.VISIBILITY_SECRET) .build(); } else { diff --git a/app/src/main/java/space/neothefox/laytray/MainActivity.java b/app/src/main/java/space/neothefox/laytray/MainActivity.java index 69ab4c2..02424a5 100644 --- a/app/src/main/java/space/neothefox/laytray/MainActivity.java +++ b/app/src/main/java/space/neothefox/laytray/MainActivity.java @@ -8,11 +8,12 @@ import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.graphics.Color; import android.os.Build; +import android.os.Bundle; import android.provider.Settings; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; import android.text.TextUtils; +import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -21,7 +22,6 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; -import android.util.Log; import android.widget.Space; import android.widget.TextView; import android.widget.Toast; @@ -47,7 +47,13 @@ implements View.OnClickListener, DialogInterface.OnClickListener, SharedPreferen addButton.setOnClickListener(this); layouts.registerOnSharedPreferenceChangeListener(this); - if(!isPackageInstalled("com.blackberry.keyboard", getApplicationContext().getPackageManager())) + if (!isAccessibilitySettingsOn(getApplicationContext())) { + Toast.makeText(this, R.string.toast_enableme, + Toast.LENGTH_LONG).show(); + startActivity(new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)); + } + + if(!isPackageInstalled("com.blackberry.keyboard", getApplicationContext().getPackageManager()) && !BuildConfig.DEBUG) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.unsupported_device) @@ -55,13 +61,6 @@ implements View.OnClickListener, DialogInterface.OnClickListener, SharedPreferen .setNeutralButton(R.string.close, this) .show(); } - - if (!isAccessibilitySettingsOn(getApplicationContext())) { - Toast.makeText(this, R.string.toast_enableme, - Toast.LENGTH_LONG).show(); - startActivity(new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)); - } - } protected void updateLayouts() diff --git a/app/src/main/java/space/neothefox/laytray/SettingsActivity.java b/app/src/main/java/space/neothefox/laytray/SettingsActivity.java index 1285f5b..026e64a 100644 --- a/app/src/main/java/space/neothefox/laytray/SettingsActivity.java +++ b/app/src/main/java/space/neothefox/laytray/SettingsActivity.java @@ -6,23 +6,20 @@ import android.app.FragmentManager; import android.content.Context; import android.content.Intent; import android.content.res.Configuration; -import android.media.Ringtone; -import android.media.RingtoneManager; -import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceActivity; -import android.support.annotation.Nullable; -import android.support.v7.app.ActionBar; import android.preference.PreferenceFragment; +import android.preference.PreferenceGroup; import android.preference.PreferenceManager; -import android.preference.RingtonePreference; -import android.text.TextUtils; +import android.provider.Settings; +import android.support.annotation.Nullable; +import android.support.v4.app.NavUtils; +import android.support.v7.app.ActionBar; import android.view.LayoutInflater; import android.view.MenuItem; -import android.support.v4.app.NavUtils; import android.view.View; import android.view.ViewGroup; import android.widget.Button; @@ -205,7 +202,29 @@ public class SettingsActivity extends AppCompatPreferenceActivity { // to their values. When their values change, their summaries are // updated to reflect the new value, per the Android Design // guidelines. - bindPreferenceSummaryToValue(findPreference("notificationImportance")); + + //With Oreo this setting should be set by the system dialog + 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() { + @Override + 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); + startActivity(intent); + return true; + } + }); + parent.addPreference(notificationImportanceOreo); + } + else + bindPreferenceSummaryToValue(findPreference("notificationImportance")); + bindPreferenceSummaryToValue(findPreference("textMode")); bindPreferenceSummaryToValue(findPreference("textSize")); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 299e792..ecd4936 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -6,7 +6,7 @@ Settings You have to enable the service! Unsupported phone - This phone is missing the BlackBerry Keyboard. LayTray will not work without it. + This phone is missing the BlackBerry Keyboard. LayTray will not work without it. Close