Use NotificationChannelCompat.

This commit is contained in:
Isira Seneviratne 2021-07-10 14:47:41 +05:30
parent 896aec5295
commit d32450255c
1 changed files with 24 additions and 32 deletions

View File

@ -1,14 +1,13 @@
package org.schabi.newpipe; package org.schabi.newpipe;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Build;
import android.util.Log; import android.util.Log;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.app.NotificationChannelCompat;
import androidx.core.app.NotificationManagerCompat;
import androidx.multidex.MultiDexApplication; import androidx.multidex.MultiDexApplication;
import androidx.preference.PreferenceManager; import androidx.preference.PreferenceManager;
@ -233,38 +232,31 @@ public class App extends MultiDexApplication {
} }
private void initNotificationChannels() { private void initNotificationChannels() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { // Keep the importance below DEFAULT to avoid making noise on every notification update for
return; // the main and update channels
} final NotificationChannelCompat mainChannel = new NotificationChannelCompat
.Builder(getString(R.string.notification_channel_id),
NotificationManagerCompat.IMPORTANCE_LOW)
.setName(getString(R.string.notification_channel_name))
.setDescription(getString(R.string.notification_channel_description))
.build();
String id = getString(R.string.notification_channel_id); final NotificationChannelCompat appUpdateChannel = new NotificationChannelCompat
String name = getString(R.string.notification_channel_name); .Builder(getString(R.string.app_update_notification_channel_id),
String description = getString(R.string.notification_channel_description); NotificationManagerCompat.IMPORTANCE_LOW)
.setName(getString(R.string.app_update_notification_channel_name))
.setDescription(getString(R.string.app_update_notification_channel_description))
.build();
// Keep this below DEFAULT to avoid making noise on every notification update for the main final NotificationChannelCompat hashChannel = new NotificationChannelCompat
// and update channels .Builder(getString(R.string.hash_channel_id),
int importance = NotificationManager.IMPORTANCE_LOW; NotificationManagerCompat.IMPORTANCE_HIGH)
.setName(getString(R.string.hash_channel_name))
.setDescription(getString(R.string.hash_channel_description))
.build();
final NotificationChannel mainChannel = new NotificationChannel(id, name, importance); final NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
mainChannel.setDescription(description); notificationManager.createNotificationChannelsCompat(Arrays.asList(mainChannel,
id = getString(R.string.app_update_notification_channel_id);
name = getString(R.string.app_update_notification_channel_name);
description = getString(R.string.app_update_notification_channel_description);
final NotificationChannel appUpdateChannel = new NotificationChannel(id, name, importance);
appUpdateChannel.setDescription(description);
id = getString(R.string.hash_channel_id);
name = getString(R.string.hash_channel_name);
description = getString(R.string.hash_channel_description);
importance = NotificationManager.IMPORTANCE_HIGH;
final NotificationChannel hashChannel = new NotificationChannel(id, name, importance);
hashChannel.setDescription(description);
final NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannels(Arrays.asList(mainChannel,
appUpdateChannel, hashChannel)); appUpdateChannel, hashChannel));
} }