diff options
author | Bilal Alsharifi <599206+bilal-alsharifi@users.noreply.github.com> | 2020-02-24 10:55:57 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-24 10:55:57 -0500 |
commit | 6c24b9efbb2f4d93187c2b711d30f72983a640c5 (patch) | |
tree | c4eeb900af7313935abaf590c692636761854626 | |
parent | 4ccf293b03d96eb0f85caba3d100b4d49e11f49e (diff) | |
parent | 024cebb2bd45ebcb5cf818e3c2ac5fa77c7b5a7f (diff) | |
download | sdl_android-6c24b9efbb2f4d93187c2b711d30f72983a640c5.tar.gz |
Merge pull request #1271 from smartdevicelink/bugfix/notification_removal_delay
Delete notification channel when possible
-rw-r--r-- | android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java | 27 | ||||
-rw-r--r-- | android/sdl_android/src/main/res/values/sdl.xml | 2 |
2 files changed, 26 insertions, 3 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java index 3abd61094..bd86f86c2 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java @@ -69,6 +69,7 @@ import android.os.Parcel; import android.os.ParcelFileDescriptor; import android.os.Parcelable; import android.os.RemoteException; +import android.service.notification.StatusBarNotification; import android.support.annotation.NonNull; import android.support.v4.app.NotificationCompat; import android.util.Log; @@ -138,7 +139,7 @@ public class SdlRouterService extends Service{ /** * <b> NOTE: DO NOT MODIFY THIS UNLESS YOU KNOW WHAT YOU'RE DOING.</b> */ - protected static final int ROUTER_SERVICE_VERSION_NUMBER = 10; + protected static final int ROUTER_SERVICE_VERSION_NUMBER = 11; private static final String ROUTER_SERVICE_PROCESS = "com.smartdevicelink.router"; @@ -1443,8 +1444,9 @@ public class SdlRouterService extends Service{ PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0); builder.setContentIntent(pendingIntent); - if(chronometerLength > 0 && android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + if(chronometerLength > (FOREGROUND_TIMEOUT/1000) && android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { //The countdown method is only available in SDKs >= 24 + // Only add countdown if it is over the min timeout builder.setWhen(chronometerLength + System.currentTimeMillis()); builder.setUsesChronometer(true); builder.setChronometerCountDown(true); @@ -1516,6 +1518,27 @@ public class SdlRouterService extends Service{ synchronized (NOTIFICATION_LOCK) { if (isForeground && !isPrimaryTransportConnected()) { //Ensure that the service is in the foreground and no longer connected to a transport this.stopForeground(true); + NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); + if (notificationManager!= null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + try { + boolean notificationHasDisplayed = false; + StatusBarNotification[] notifications = notificationManager.getActiveNotifications(); + for (StatusBarNotification notification : notifications) { + if(notification != null && FOREGROUND_SERVICE_ID == notification.getId()){ + DebugTool.logInfo("Service notification is being displayed"); + notificationHasDisplayed = true; + break; + } + } + if (notificationHasDisplayed) { + notificationManager.deleteNotificationChannel(SDL_NOTIFICATION_CHANNEL_ID); + } + //else leave the notification channel alone to avoid deleting it before the + //foreground service notification has a chance to be displayed. + } catch (Exception e){ + DebugTool.logError("Issue when deleting notification channel", e); + } + } isForeground = false; } } diff --git a/android/sdl_android/src/main/res/values/sdl.xml b/android/sdl_android/src/main/res/values/sdl.xml index 2b3a85a05..16553ad29 100644 --- a/android/sdl_android/src/main/res/values/sdl.xml +++ b/android/sdl_android/src/main/res/values/sdl.xml @@ -2,7 +2,7 @@ <resources> <string name="sdl_router_service_version_name" translatable="false">sdl_router_version</string> - <integer name="sdl_router_service_version_value">10</integer> + <integer name="sdl_router_service_version_value">11</integer> <string name="sdl_router_service_is_custom_name" translatable="false">sdl_custom_router</string> </resources> |