Files
rr3-apk/decompiled-community/sources/androidx/media/app/NotificationCompat.java
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
2026-02-18 15:48:36 -08:00

206 lines
9.5 KiB
Java

package androidx.media.app;
import android.app.Notification;
import android.app.PendingIntent;
import android.media.session.MediaSession;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.media.session.MediaSessionCompat;
import android.widget.RemoteViews;
import androidx.annotation.RequiresApi;
import androidx.annotation.RestrictTo;
import androidx.core.app.NotificationBuilderWithBuilderAccessor;
import androidx.core.app.NotificationCompat;
import androidx.media.R;
/* loaded from: classes.dex */
public class NotificationCompat {
private NotificationCompat() {
}
public static class MediaStyle extends NotificationCompat.Style {
private static final int MAX_MEDIA_BUTTONS = 5;
private static final int MAX_MEDIA_BUTTONS_IN_COMPACT = 3;
int[] mActionsToShowInCompact = null;
PendingIntent mCancelButtonIntent;
boolean mShowCancelButton;
MediaSessionCompat.Token mToken;
public int getBigContentViewLayoutResource(int i) {
return i <= 3 ? R.layout.notification_template_big_media_narrow : R.layout.notification_template_big_media;
}
public int getContentViewLayoutResource() {
return R.layout.notification_template_media;
}
@Override // androidx.core.app.NotificationCompat.Style
@RestrictTo({RestrictTo.Scope.LIBRARY})
public RemoteViews makeBigContentView(NotificationBuilderWithBuilderAccessor notificationBuilderWithBuilderAccessor) {
return null;
}
@Override // androidx.core.app.NotificationCompat.Style
@RestrictTo({RestrictTo.Scope.LIBRARY})
public RemoteViews makeContentView(NotificationBuilderWithBuilderAccessor notificationBuilderWithBuilderAccessor) {
return null;
}
public MediaStyle setCancelButtonIntent(PendingIntent pendingIntent) {
this.mCancelButtonIntent = pendingIntent;
return this;
}
public MediaStyle setMediaSession(MediaSessionCompat.Token token) {
this.mToken = token;
return this;
}
public MediaStyle setShowActionsInCompactView(int... iArr) {
this.mActionsToShowInCompact = iArr;
return this;
}
public MediaStyle setShowCancelButton(boolean z) {
return this;
}
public static MediaSessionCompat.Token getMediaSession(Notification notification) {
Parcelable parcelable;
Bundle extras = androidx.core.app.NotificationCompat.getExtras(notification);
if (extras == null || (parcelable = extras.getParcelable(androidx.core.app.NotificationCompat.EXTRA_MEDIA_SESSION)) == null) {
return null;
}
return MediaSessionCompat.Token.fromToken(parcelable);
}
public MediaStyle() {
}
public MediaStyle(NotificationCompat.Builder builder) {
setBuilder(builder);
}
@Override // androidx.core.app.NotificationCompat.Style
@RestrictTo({RestrictTo.Scope.LIBRARY})
public void apply(NotificationBuilderWithBuilderAccessor notificationBuilderWithBuilderAccessor) {
notificationBuilderWithBuilderAccessor.getBuilder().setStyle(fillInMediaStyle(new Notification.MediaStyle()));
}
@RequiresApi(21)
public Notification.MediaStyle fillInMediaStyle(Notification.MediaStyle mediaStyle) {
int[] iArr = this.mActionsToShowInCompact;
if (iArr != null) {
mediaStyle.setShowActionsInCompactView(iArr);
}
MediaSessionCompat.Token token = this.mToken;
if (token != null) {
mediaStyle.setMediaSession((MediaSession.Token) token.getToken());
}
return mediaStyle;
}
public RemoteViews generateContentView() {
RemoteViews applyStandardTemplate = applyStandardTemplate(false, getContentViewLayoutResource(), true);
int size = this.mBuilder.mActions.size();
int[] iArr = this.mActionsToShowInCompact;
int min = iArr == null ? 0 : Math.min(iArr.length, 3);
applyStandardTemplate.removeAllViews(R.id.media_actions);
if (min > 0) {
for (int i = 0; i < min; i++) {
if (i >= size) {
throw new IllegalArgumentException(String.format("setShowActionsInCompactView: action %d out of bounds (max %d)", Integer.valueOf(i), Integer.valueOf(size - 1)));
}
applyStandardTemplate.addView(R.id.media_actions, generateMediaActionButton(this.mBuilder.mActions.get(this.mActionsToShowInCompact[i])));
}
}
if (this.mShowCancelButton) {
applyStandardTemplate.setViewVisibility(R.id.end_padder, 8);
applyStandardTemplate.setViewVisibility(R.id.cancel_action, 0);
applyStandardTemplate.setOnClickPendingIntent(R.id.cancel_action, this.mCancelButtonIntent);
applyStandardTemplate.setInt(R.id.cancel_action, "setAlpha", this.mBuilder.mContext.getResources().getInteger(R.integer.cancel_button_image_alpha));
} else {
applyStandardTemplate.setViewVisibility(R.id.end_padder, 0);
applyStandardTemplate.setViewVisibility(R.id.cancel_action, 8);
}
return applyStandardTemplate;
}
private RemoteViews generateMediaActionButton(NotificationCompat.Action action) {
boolean z = action.getActionIntent() == null;
RemoteViews remoteViews = new RemoteViews(this.mBuilder.mContext.getPackageName(), R.layout.notification_media_action);
remoteViews.setImageViewResource(R.id.action0, action.getIcon());
if (!z) {
remoteViews.setOnClickPendingIntent(R.id.action0, action.getActionIntent());
}
remoteViews.setContentDescription(R.id.action0, action.getTitle());
return remoteViews;
}
public RemoteViews generateBigContentView() {
int min = Math.min(this.mBuilder.mActions.size(), 5);
RemoteViews applyStandardTemplate = applyStandardTemplate(false, getBigContentViewLayoutResource(min), false);
applyStandardTemplate.removeAllViews(R.id.media_actions);
if (min > 0) {
for (int i = 0; i < min; i++) {
applyStandardTemplate.addView(R.id.media_actions, generateMediaActionButton(this.mBuilder.mActions.get(i)));
}
}
if (this.mShowCancelButton) {
applyStandardTemplate.setViewVisibility(R.id.cancel_action, 0);
applyStandardTemplate.setInt(R.id.cancel_action, "setAlpha", this.mBuilder.mContext.getResources().getInteger(R.integer.cancel_button_image_alpha));
applyStandardTemplate.setOnClickPendingIntent(R.id.cancel_action, this.mCancelButtonIntent);
} else {
applyStandardTemplate.setViewVisibility(R.id.cancel_action, 8);
}
return applyStandardTemplate;
}
}
public static class DecoratedMediaCustomViewStyle extends MediaStyle {
@Override // androidx.media.app.NotificationCompat.MediaStyle
public int getBigContentViewLayoutResource(int i) {
return i <= 3 ? R.layout.notification_template_big_media_narrow_custom : R.layout.notification_template_big_media_custom;
}
@Override // androidx.media.app.NotificationCompat.MediaStyle, androidx.core.app.NotificationCompat.Style
@RestrictTo({RestrictTo.Scope.LIBRARY})
public RemoteViews makeBigContentView(NotificationBuilderWithBuilderAccessor notificationBuilderWithBuilderAccessor) {
return null;
}
@Override // androidx.media.app.NotificationCompat.MediaStyle, androidx.core.app.NotificationCompat.Style
@RestrictTo({RestrictTo.Scope.LIBRARY})
public RemoteViews makeContentView(NotificationBuilderWithBuilderAccessor notificationBuilderWithBuilderAccessor) {
return null;
}
@Override // androidx.core.app.NotificationCompat.Style
@RestrictTo({RestrictTo.Scope.LIBRARY})
public RemoteViews makeHeadsUpContentView(NotificationBuilderWithBuilderAccessor notificationBuilderWithBuilderAccessor) {
return null;
}
@Override // androidx.media.app.NotificationCompat.MediaStyle, androidx.core.app.NotificationCompat.Style
@RestrictTo({RestrictTo.Scope.LIBRARY})
public void apply(NotificationBuilderWithBuilderAccessor notificationBuilderWithBuilderAccessor) {
notificationBuilderWithBuilderAccessor.getBuilder().setStyle(fillInMediaStyle(new Notification.DecoratedMediaCustomViewStyle()));
}
@Override // androidx.media.app.NotificationCompat.MediaStyle
public int getContentViewLayoutResource() {
return this.mBuilder.getContentView() != null ? R.layout.notification_template_media_custom : super.getContentViewLayoutResource();
}
private void setBackgroundColor(RemoteViews remoteViews) {
int color;
if (this.mBuilder.getColor() != 0) {
color = this.mBuilder.getColor();
} else {
color = this.mBuilder.mContext.getResources().getColor(R.color.notification_material_background_media_default_color);
}
remoteViews.setInt(R.id.status_bar_latest_event_content, "setBackgroundColor", color);
}
}
}