From 0d63615d0da5c8208f7d4fa5ba5a2e264d1c13eb Mon Sep 17 00:00:00 2001 From: NeoTheFox Date: Thu, 12 Jul 2018 10:17:54 +0300 Subject: [PATCH] Notification Channel support for Oreo (KEY2) Added Icon builder foundation --- .../space/neothefox/laytray/IconService.java | 35 ++++++++++-- .../main/res/layout/fragment_icon_builder.xml | 57 +++++++++++++++++++ app/src/main/res/values/strings.xml | 4 +- app/src/main/res/xml/pref_notification.xml | 4 ++ 4 files changed, 93 insertions(+), 7 deletions(-) create mode 100644 app/src/main/res/layout/fragment_icon_builder.xml diff --git a/app/src/main/java/space/neothefox/laytray/IconService.java b/app/src/main/java/space/neothefox/laytray/IconService.java index c9ad14b..ae6b8c9 100644 --- a/app/src/main/java/space/neothefox/laytray/IconService.java +++ b/app/src/main/java/space/neothefox/laytray/IconService.java @@ -3,6 +3,7 @@ package space.neothefox.laytray; import android.accessibilityservice.AccessibilityService; import android.accessibilityservice.AccessibilityServiceInfo; import android.app.Notification; +import android.app.NotificationChannel; import android.app.NotificationManager; import android.content.Context; import android.content.SharedPreferences; @@ -14,6 +15,7 @@ import android.graphics.PorterDuff; import android.graphics.PorterDuffXfermode; import android.graphics.RectF; import android.graphics.drawable.Icon; +import android.os.Build; import android.preference.PreferenceManager; import android.util.Log; import android.view.accessibility.AccessibilityEvent; @@ -32,6 +34,7 @@ implements SharedPreferences.OnSharedPreferenceChangeListener{ String lastToast; NotificationManager iconManager; + NotificationChannel iconChannel; @Override protected void onServiceConnected() { @@ -48,6 +51,14 @@ implements SharedPreferences.OnSharedPreferenceChangeListener{ //options.registerOnSharedPreferenceChangeListener(this); 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"))); + iconChannel.setShowBadge(false); + iconChannel.setLockscreenVisibility(Notification.VISIBILITY_SECRET); + } } protected void updateNotification(String toast) @@ -67,12 +78,24 @@ implements SharedPreferences.OnSharedPreferenceChangeListener{ Integer.parseInt(options.getString("textMode", "0")), Color.WHITE)); - indicator = new Notification.Builder(this) - .setSmallIcon(smallIcon) - .setContentTitle(toast) - .setOngoing(true) - .setPriority(Integer.parseInt(options.getString("notificationImportance", "0"))) - .build(); + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) + { + iconChannel.setImportance( + Integer.parseInt(options.getString("notificationImportance", "0"))); + indicator = new Notification.Builder(this, "laytray") + .setSmallIcon(smallIcon) + .setContentTitle(toast) + .setOngoing(true) + .build(); + } + else { + indicator = new Notification.Builder(this) + .setSmallIcon(smallIcon) + .setContentTitle(toast) + .setOngoing(true) + .setPriority(Integer.parseInt(options.getString("notificationImportance", "0"))) + .build(); + } iconManager.notify(0, indicator); return; } diff --git a/app/src/main/res/layout/fragment_icon_builder.xml b/app/src/main/res/layout/fragment_icon_builder.xml new file mode 100644 index 0000000..f90543f --- /dev/null +++ b/app/src/main/res/layout/fragment_icon_builder.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + +