From: Nathaniel Wesley Filardo Date: Sat, 27 Oct 2018 03:55:31 +0000 (+0100) Subject: Add support for notification channels X-Git-Tag: release-1.2~19 X-Git-Url: https://hydra-www.ietfng.org/gitweb/?a=commitdiff_plain;h=1974c9f039cf0c1ff81f62afe5fa4e5271c3ea3c;p=acmetensortoys-ctfws-android Add support for notification channels --- diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainServiceNotification.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainServiceNotification.java index 83903b0..9054e5c 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainServiceNotification.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainServiceNotification.java @@ -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) { }