mirror of
https://github.com/androidx/media.git
synced 2025-05-09 16:40:55 +08:00
Create NotificationChannel in DefaultMediaNotificationProvider.Api26
The inner class avoids a verification failure, which can lead to slower execution at runtime. PiperOrigin-RevId: 483639417
This commit is contained in:
parent
c9a0aa9db0
commit
026aea7d3d
@ -35,8 +35,10 @@ import android.graphics.Bitmap;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
|
import androidx.annotation.DoNotInline;
|
||||||
import androidx.annotation.DrawableRes;
|
import androidx.annotation.DrawableRes;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.RequiresApi;
|
||||||
import androidx.annotation.StringRes;
|
import androidx.annotation.StringRes;
|
||||||
import androidx.core.app.NotificationCompat;
|
import androidx.core.app.NotificationCompat;
|
||||||
import androidx.core.graphics.drawable.IconCompat;
|
import androidx.core.graphics.drawable.IconCompat;
|
||||||
@ -572,18 +574,8 @@ public class DefaultMediaNotificationProvider implements MediaNotification.Provi
|
|||||||
if (Util.SDK_INT < 26 || notificationManager.getNotificationChannel(channelId) != null) {
|
if (Util.SDK_INT < 26 || notificationManager.getNotificationChannel(channelId) != null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
NotificationChannel channel =
|
Api26.createNotificationChannel(
|
||||||
new NotificationChannel(
|
notificationManager, channelId, context.getString(channelNameResourceId));
|
||||||
channelId,
|
|
||||||
context.getString(channelNameResourceId),
|
|
||||||
NotificationManager.IMPORTANCE_LOW);
|
|
||||||
if (Util.SDK_INT <= 27) {
|
|
||||||
// API 28+ will automatically hide the app icon 'badge' for notifications using
|
|
||||||
// Notification.MediaStyle, but we have to manually hide it for APIs 26 (when badges were
|
|
||||||
// added) and 27.
|
|
||||||
channel.setShowBadge(false);
|
|
||||||
}
|
|
||||||
notificationManager.createNotificationChannel(channel);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -652,4 +644,21 @@ public class DefaultMediaNotificationProvider implements MediaNotification.Provi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequiresApi(26)
|
||||||
|
private static class Api26 {
|
||||||
|
@DoNotInline
|
||||||
|
public static void createNotificationChannel(
|
||||||
|
NotificationManager notificationManager, String channelId, String channelName) {
|
||||||
|
NotificationChannel channel =
|
||||||
|
new NotificationChannel(channelId, channelName, NotificationManager.IMPORTANCE_LOW);
|
||||||
|
if (Util.SDK_INT <= 27) {
|
||||||
|
// API 28+ will automatically hide the app icon 'badge' for notifications using
|
||||||
|
// Notification.MediaStyle, but we have to manually hide it for APIs 26 (when badges were
|
||||||
|
// added) and 27.
|
||||||
|
channel.setShowBadge(false);
|
||||||
|
}
|
||||||
|
notificationManager.createNotificationChannel(channel);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user