Notification: implement channels

wire-gradle
Georg Lukas 2019-12-28 14:55:08 +01:00
rodzic 0d1f94e296
commit afc8684364
2 zmienionych plików z 15 dodań i 3 usunięć

Wyświetl plik

@ -17,6 +17,8 @@ class APRSdroid extends Activity {
super.onCreate(savedInstanceState)
val prefs = PreferenceManager.getDefaultSharedPreferences(this)
ServiceNotifier.instance.setupChannels(this)
// if this is a USB device, auto-launch the service
if (UsbTnc.checkDeviceHandle(prefs, getIntent.getParcelableExtra("device")) && prefs.getBoolean("service_running", false))
startService(AprsService.intent(this, AprsService.SERVICE))

Wyświetl plik

@ -1,6 +1,6 @@
package org.aprsdroid.app
import _root_.android.app.{Notification, NotificationManager, PendingIntent, Service}
import _root_.android.app.{Notification, NotificationChannel, NotificationManager, PendingIntent, Service}
import _root_.android.content.{Context, Intent}
import _root_.android.net.Uri
import _root_.android.os.Build
@ -17,11 +17,21 @@ abstract class ServiceNotifier {
var CALL_NOTIFICATION = SERVICE_NOTIFICATION + 1
val callIdMap = new scala.collection.mutable.HashMap[String, Int]()
def setupChannels(ctx : Context) {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {
val nm = ctx.getSystemService(classOf[NotificationManager]).asInstanceOf[NotificationManager]
nm.createNotificationChannel(new NotificationChannel("status",
ctx.getString(R.string.aprsservice), NotificationManager.IMPORTANCE_LOW))
nm.createNotificationChannel(new NotificationChannel("msg",
ctx.getString(R.string.p_msg), NotificationManager.IMPORTANCE_DEFAULT))
}
}
def newNotification(ctx : Service, status : String) : Notification = {
val i = new Intent(ctx, classOf[APRSdroid])
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
val appname = ctx.getResources().getString(R.string.app_name)
new Notification.Builder(ctx)
new Notification.Builder(ctx, "status")
.setContentTitle(appname)
.setContentText(status)
.setContentIntent(PendingIntent.getActivity(ctx, 0, i, 0))
@ -46,7 +56,7 @@ abstract class ServiceNotifier {
val i = new Intent(ctx, classOf[MessageActivity])
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
i.setData(Uri.parse(call))
new Notification.Builder(ctx)
new Notification.Builder(ctx, "msg")
.setContentTitle(call)
.setContentText(message)
.setContentIntent(PendingIntent.getActivity(ctx, 0, i, PendingIntent.FLAG_UPDATE_CURRENT))