Suppress lint warning about missing POST_NOTIFICATIONS permission
For media session related notifications, permission is not required. https://developer.android.com/develop/ui/views/notifications/notification-permission#exemptions-media-sessions #minor-release PiperOrigin-RevId: 600819251
This commit is contained in:
parent
4c1581a175
commit
b98e5ac0d4
@ -203,6 +203,9 @@ import java.util.concurrent.TimeoutException;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// POST_NOTIFICATIONS permission is not required for media session related notifications.
|
||||||
|
// https://developer.android.com/develop/ui/views/notifications/notification-permission#exemptions-media-sessions
|
||||||
|
@SuppressLint("MissingPermission")
|
||||||
private void updateNotificationInternal(
|
private void updateNotificationInternal(
|
||||||
MediaSession session,
|
MediaSession session,
|
||||||
MediaNotification mediaNotification,
|
MediaNotification mediaNotification,
|
||||||
|
@ -36,6 +36,7 @@ import static androidx.media3.common.util.Assertions.checkArgument;
|
|||||||
import static androidx.media3.common.util.Assertions.checkState;
|
import static androidx.media3.common.util.Assertions.checkState;
|
||||||
import static java.lang.annotation.ElementType.TYPE_USE;
|
import static java.lang.annotation.ElementType.TYPE_USE;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
import android.app.NotificationChannel;
|
import android.app.NotificationChannel;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
@ -165,12 +166,16 @@ import java.util.Map;
|
|||||||
* <li><b>{@code exo_notification_stop}</b> - The stop icon.
|
* <li><b>{@code exo_notification_stop}</b> - The stop icon.
|
||||||
* </ul>
|
* </ul>
|
||||||
*
|
*
|
||||||
* <p>Alternatively, the action icons can be set programatically by using the {@link Builder}.
|
* <p>Alternatively, the action icons can be set programmatically by using the {@link Builder}.
|
||||||
*
|
*
|
||||||
* <p>Unlike the drawables above, the large icon (i.e. the icon passed to {@link
|
* <p>Unlike the drawables above, the large icon (i.e. the icon passed to {@link
|
||||||
* NotificationCompat.Builder#setLargeIcon(Bitmap)} cannot be overridden in this way. Instead, the
|
* NotificationCompat.Builder#setLargeIcon(Bitmap)} cannot be overridden in this way. Instead, the
|
||||||
* large icon is obtained from the {@link MediaDescriptionAdapter} passed to {@link
|
* large icon is obtained from the {@link MediaDescriptionAdapter} passed to {@link
|
||||||
* Builder#Builder(Context, int, String, MediaDescriptionAdapter)}.
|
* Builder#Builder(Context, int, String, MediaDescriptionAdapter)}.
|
||||||
|
*
|
||||||
|
* <p>Note: This class would require {@link android.Manifest.permission#POST_NOTIFICATIONS}
|
||||||
|
* permission if used without a {@linkplain #setMediaSessionToken(MediaSessionCompat.Token) media
|
||||||
|
* session}.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
@UnstableApi
|
||||||
public class PlayerNotificationManager {
|
public class PlayerNotificationManager {
|
||||||
@ -1184,6 +1189,10 @@ public class PlayerNotificationManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This class is generally used with a media session which does not require notification
|
||||||
|
// permission.
|
||||||
|
// https://developer.android.com/develop/ui/views/notifications/notification-permission#exemptions-media-sessions
|
||||||
|
@SuppressLint("MissingPermission")
|
||||||
private void startOrUpdateNotification(Player player, @Nullable Bitmap bitmap) {
|
private void startOrUpdateNotification(Player player, @Nullable Bitmap bitmap) {
|
||||||
boolean ongoing = getOngoing(player);
|
boolean ongoing = getOngoing(player);
|
||||||
builder = createNotification(player, builder, ongoing, bitmap);
|
builder = createNotification(player, builder, ongoing, bitmap);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user