diff --git a/library/src/main/java/com/github/javiersantos/appupdater/UtilsDisplay.java b/library/src/main/java/com/github/javiersantos/appupdater/UtilsDisplay.java index f61e8869..b2da8417 100644 --- a/library/src/main/java/com/github/javiersantos/appupdater/UtilsDisplay.java +++ b/library/src/main/java/com/github/javiersantos/appupdater/UtilsDisplay.java @@ -1,6 +1,7 @@ package com.github.javiersantos.appupdater; import android.app.Activity; +import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; @@ -72,28 +73,32 @@ static Snackbar showUpdateNotAvailableSnackbar(final Context context, String con } static void showUpdateAvailableNotification(Context context, String title, String content, UpdateFrom updateFrom, URL apk, int smallIconResourceId) { + NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + initNotificationChannel(context, notificationManager); + PendingIntent contentIntent = PendingIntent.getActivity(context, 0, context.getPackageManager().getLaunchIntentForPackage(UtilsLibrary.getAppPackageName(context)), PendingIntent.FLAG_CANCEL_CURRENT); PendingIntent pendingIntentUpdate = PendingIntent.getActivity(context, 0, UtilsLibrary.intentToUpdate(context, updateFrom, apk), PendingIntent.FLAG_CANCEL_CURRENT); - NotificationCompat.Builder builder = new NotificationCompat.Builder(context) - .setContentIntent(contentIntent) - .setContentTitle(title) - .setContentText(content) - .setStyle(new NotificationCompat.BigTextStyle().bigText(content)) - .setSmallIcon(smallIconResourceId) - .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)) - .setOnlyAlertOnce(true) - .setAutoCancel(true) + NotificationCompat.Builder builder = getBaseNotification(context, contentIntent, title, content, smallIconResourceId) .addAction(R.drawable.ic_system_update_white_24dp, context.getResources().getString(R.string.appupdater_btn_update), pendingIntentUpdate); - NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(0, builder.build()); } static void showUpdateNotAvailableNotification(Context context, String title, String content, int smallIconResourceId) { + NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + initNotificationChannel(context, notificationManager); + PendingIntent contentIntent = PendingIntent.getActivity(context, 0, context.getPackageManager().getLaunchIntentForPackage(UtilsLibrary.getAppPackageName(context)), PendingIntent.FLAG_CANCEL_CURRENT); - NotificationCompat.Builder builder = new NotificationCompat.Builder(context) + NotificationCompat.Builder builder = getBaseNotification(context, contentIntent, title, content, smallIconResourceId) + .setAutoCancel(true); + + notificationManager.notify(0, builder.build()); + } + + private static NotificationCompat.Builder getBaseNotification(Context context, PendingIntent contentIntent, String title, String content, int smallIconResourceId) { + return new NotificationCompat.Builder(context, context.getString(R.string.appupdater_channel)) .setContentIntent(contentIntent) .setContentTitle(title) .setContentText(content) @@ -103,8 +108,16 @@ static void showUpdateNotAvailableNotification(Context context, String title, St .setOnlyAlertOnce(true) .setAutoCancel(true); - NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); - notificationManager.notify(0, builder.build()); + } + + private static void initNotificationChannel(Context context, NotificationManager notificationManager) { + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { + NotificationChannel mChannel = new NotificationChannel( + context.getString(R.string.appupdater_channel), + context.getString(R.string.appupdater_channel_name), + NotificationManager.IMPORTANCE_HIGH); + notificationManager.createNotificationChannel(mChannel); + } } } diff --git a/library/src/main/res/values-es/strings.xml b/library/src/main/res/values-es/strings.xml index 3629f814..5ba58fe1 100644 --- a/library/src/main/res/values-es/strings.xml +++ b/library/src/main/res/values-es/strings.xml @@ -10,4 +10,5 @@ Actualizar No mostrar de nuevo Ocultar + Notificaciones de actualizaciĆ³n \ No newline at end of file diff --git a/library/src/main/res/values/strings.xml b/library/src/main/res/values/strings.xml index 885bbd95..7bf55c93 100644 --- a/library/src/main/res/values/strings.xml +++ b/library/src/main/res/values/strings.xml @@ -9,4 +9,7 @@ Update Don\'t show again Dismiss + Update notifications + + appupdater_channel_01