]> hydra-www.ietfng.org Git - acmetensortoys-ctfws-android/commitdiff
Add support for notification channels
authorNathaniel Wesley Filardo <nwfilardo@gmail.com>
Sat, 27 Oct 2018 03:55:31 +0000 (04:55 +0100)
committerNathaniel Wesley Filardo <nwfilardo@gmail.com>
Sat, 27 Oct 2018 14:11:49 +0000 (15:11 +0100)
mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainServiceNotification.java

index 83903b0d40ceafaf32bedf519e36eb6dadcb34dd..9054e5cf3d75eb0b214fea466e927373d3dbc511 100644 (file)
@@ -1,5 +1,8 @@
 package com.acmetensortoys.ctfwstimer;
 
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.content.ComponentName;
 import android.content.Context;
@@ -18,6 +21,8 @@ import com.acmetensortoys.ctfwstimer.lib.CtFwSGameStateManager;
 import java.util.List;
 
 class MainServiceNotification {
+    final public String CTFWS_GAME_CHANNEL_ID = "GAME";
+
     final private MainService mService;
     private final NotificationCompat.Builder userNoteBuilder;
 
@@ -35,11 +40,24 @@ class MainServiceNotification {
         ni.addCategory(Intent.CATEGORY_LAUNCHER);
         ni.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 
-        userNoteBuilder = new NotificationCompat.Builder(ms)
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+            NotificationChannel nc = new NotificationChannel(
+                    CTFWS_GAME_CHANNEL_ID,
+                    "Game Notifications",
+                    NotificationManager.IMPORTANCE_DEFAULT);
+            nc.enableVibration(true);
+            nc.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
+        }
+
+        userNoteBuilder = new NotificationCompat.Builder(ms, CTFWS_GAME_CHANNEL_ID)
                 .setOnlyAlertOnce(false)
                 .setSmallIcon(R.drawable.shield1)
                 .setContentIntent(PendingIntent.getActivity(ms, 0, ni, 0));
 
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+            userNoteBuilder.setVisibility(Notification.VISIBILITY_PUBLIC);
+        }
+
         game.registerObserver(new CtFwSGameStateManager.Observer() {
             @Override
             public void onCtFwSConfigure(CtFwSGameStateManager game) { }