discord-jadx/app/src/main/java/androidx/core/app/NotificationCompatBuilder.java

286 lines
13 KiB
Java

package androidx.core.app;
import android.app.Notification;
import android.app.RemoteInput;
import android.content.Context;
import android.graphics.drawable.Icon;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.RemoteViews;
import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.collection.ArraySet;
import androidx.core.app.NotificationCompat;
import androidx.core.content.LocusIdCompat;
import androidx.core.graphics.drawable.IconCompat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
public class NotificationCompatBuilder implements NotificationBuilderWithBuilderAccessor {
private final List<Bundle> mActionExtrasList = new ArrayList();
private RemoteViews mBigContentView;
private final Notification.Builder mBuilder;
private final NotificationCompat.Builder mBuilderCompat;
private RemoteViews mContentView;
private final Context mContext;
private final Bundle mExtras = new Bundle();
private int mGroupAlertBehavior;
private RemoteViews mHeadsUpContentView;
public NotificationCompatBuilder(NotificationCompat.Builder builder) {
Icon icon;
this.mBuilderCompat = builder;
this.mContext = builder.mContext;
if (Build.VERSION.SDK_INT >= 26) {
this.mBuilder = new Notification.Builder(builder.mContext, builder.mChannelId);
} else {
this.mBuilder = new Notification.Builder(builder.mContext);
}
Notification notification = builder.mNotification;
this.mBuilder.setWhen(notification.when).setSmallIcon(notification.icon, notification.iconLevel).setContent(notification.contentView).setTicker(notification.tickerText, builder.mTickerView).setVibrate(notification.vibrate).setLights(notification.ledARGB, notification.ledOnMS, notification.ledOffMS).setOngoing((notification.flags & 2) != 0).setOnlyAlertOnce((notification.flags & 8) != 0).setAutoCancel((notification.flags & 16) != 0).setDefaults(notification.defaults).setContentTitle(builder.mContentTitle).setContentText(builder.mContentText).setContentInfo(builder.mContentInfo).setContentIntent(builder.mContentIntent).setDeleteIntent(notification.deleteIntent).setFullScreenIntent(builder.mFullScreenIntent, (notification.flags & 128) != 0).setLargeIcon(builder.mLargeIcon).setNumber(builder.mNumber).setProgress(builder.mProgressMax, builder.mProgress, builder.mProgressIndeterminate);
this.mBuilder.setSubText(builder.mSubText).setUsesChronometer(builder.mUseChronometer).setPriority(builder.mPriority);
Iterator<NotificationCompat.Action> it = builder.mActions.iterator();
while (it.hasNext()) {
addAction(it.next());
}
Bundle bundle = builder.mExtras;
if (bundle != null) {
this.mExtras.putAll(bundle);
}
int i = Build.VERSION.SDK_INT;
this.mContentView = builder.mContentView;
this.mBigContentView = builder.mBigContentView;
this.mBuilder.setShowWhen(builder.mShowWhen);
this.mBuilder.setLocalOnly(builder.mLocalOnly).setGroup(builder.mGroupKey).setGroupSummary(builder.mGroupSummary).setSortKey(builder.mSortKey);
this.mGroupAlertBehavior = builder.mGroupAlertBehavior;
this.mBuilder.setCategory(builder.mCategory).setColor(builder.mColor).setVisibility(builder.mVisibility).setPublicVersion(builder.mPublicVersion).setSound(notification.sound, notification.audioAttributes);
List<String> combineLists = i < 28 ? combineLists(getPeople(builder.mPersonList), builder.mPeople) : builder.mPeople;
if (combineLists != null && !combineLists.isEmpty()) {
for (String str : combineLists) {
this.mBuilder.addPerson(str);
}
}
this.mHeadsUpContentView = builder.mHeadsUpContentView;
if (builder.mInvisibleActions.size() > 0) {
Bundle bundle2 = builder.getExtras().getBundle(NotificationCompat.CarExtender.EXTRA_CAR_EXTENDER);
bundle2 = bundle2 == null ? new Bundle() : bundle2;
Bundle bundle3 = new Bundle(bundle2);
Bundle bundle4 = new Bundle();
for (int i2 = 0; i2 < builder.mInvisibleActions.size(); i2++) {
bundle4.putBundle(Integer.toString(i2), NotificationCompatJellybean.getBundleForAction(builder.mInvisibleActions.get(i2)));
}
bundle2.putBundle(NotificationCompat.CarExtender.EXTRA_INVISIBLE_ACTIONS, bundle4);
bundle3.putBundle(NotificationCompat.CarExtender.EXTRA_INVISIBLE_ACTIONS, bundle4);
builder.getExtras().putBundle(NotificationCompat.CarExtender.EXTRA_CAR_EXTENDER, bundle2);
this.mExtras.putBundle(NotificationCompat.CarExtender.EXTRA_CAR_EXTENDER, bundle3);
}
int i3 = Build.VERSION.SDK_INT;
if (i3 >= 23 && (icon = builder.mSmallIcon) != null) {
this.mBuilder.setSmallIcon(icon);
}
if (i3 >= 24) {
this.mBuilder.setExtras(builder.mExtras).setRemoteInputHistory(builder.mRemoteInputHistory);
RemoteViews remoteViews = builder.mContentView;
if (remoteViews != null) {
this.mBuilder.setCustomContentView(remoteViews);
}
RemoteViews remoteViews2 = builder.mBigContentView;
if (remoteViews2 != null) {
this.mBuilder.setCustomBigContentView(remoteViews2);
}
RemoteViews remoteViews3 = builder.mHeadsUpContentView;
if (remoteViews3 != null) {
this.mBuilder.setCustomHeadsUpContentView(remoteViews3);
}
}
if (i3 >= 26) {
this.mBuilder.setBadgeIconType(builder.mBadgeIcon).setSettingsText(builder.mSettingsText).setShortcutId(builder.mShortcutId).setTimeoutAfter(builder.mTimeout).setGroupAlertBehavior(builder.mGroupAlertBehavior);
if (builder.mColorizedSet) {
this.mBuilder.setColorized(builder.mColorized);
}
if (!TextUtils.isEmpty(builder.mChannelId)) {
this.mBuilder.setSound(null).setDefaults(0).setLights(0, 0, 0).setVibrate(null);
}
}
if (i3 >= 28) {
Iterator<Person> it2 = builder.mPersonList.iterator();
while (it2.hasNext()) {
this.mBuilder.addPerson(it2.next().toAndroidPerson());
}
}
int i4 = Build.VERSION.SDK_INT;
if (i4 >= 29) {
this.mBuilder.setAllowSystemGeneratedContextualActions(builder.mAllowSystemGeneratedContextualActions);
this.mBuilder.setBubbleMetadata(NotificationCompat.BubbleMetadata.toPlatform(builder.mBubbleMetadata));
LocusIdCompat locusIdCompat = builder.mLocusId;
if (locusIdCompat != null) {
this.mBuilder.setLocusId(locusIdCompat.toLocusId());
}
}
if (builder.mSilent) {
if (this.mBuilderCompat.mGroupSummary) {
this.mGroupAlertBehavior = 2;
} else {
this.mGroupAlertBehavior = 1;
}
this.mBuilder.setVibrate(null);
this.mBuilder.setSound(null);
int i5 = notification.defaults & -2;
notification.defaults = i5;
int i6 = i5 & -3;
notification.defaults = i6;
this.mBuilder.setDefaults(i6);
if (i4 >= 26) {
if (TextUtils.isEmpty(this.mBuilderCompat.mGroupKey)) {
this.mBuilder.setGroup(NotificationCompat.GROUP_KEY_SILENT);
}
this.mBuilder.setGroupAlertBehavior(this.mGroupAlertBehavior);
}
}
}
private void addAction(NotificationCompat.Action action) {
int i = Build.VERSION.SDK_INT;
IconCompat iconCompat = action.getIconCompat();
Notification.Action.Builder builder = i >= 23 ? new Notification.Action.Builder(iconCompat != null ? iconCompat.toIcon() : null, action.getTitle(), action.getActionIntent()) : new Notification.Action.Builder(iconCompat != null ? iconCompat.getResId() : 0, action.getTitle(), action.getActionIntent());
if (action.getRemoteInputs() != null) {
for (RemoteInput remoteInput : RemoteInput.fromCompat(action.getRemoteInputs())) {
builder.addRemoteInput(remoteInput);
}
}
Bundle bundle = action.getExtras() != null ? new Bundle(action.getExtras()) : new Bundle();
bundle.putBoolean(NotificationCompatJellybean.EXTRA_ALLOW_GENERATED_REPLIES, action.getAllowGeneratedReplies());
int i2 = Build.VERSION.SDK_INT;
if (i2 >= 24) {
builder.setAllowGeneratedReplies(action.getAllowGeneratedReplies());
}
bundle.putInt(NotificationCompat.Action.EXTRA_SEMANTIC_ACTION, action.getSemanticAction());
if (i2 >= 28) {
builder.setSemanticAction(action.getSemanticAction());
}
if (i2 >= 29) {
builder.setContextual(action.isContextual());
}
bundle.putBoolean(NotificationCompat.Action.EXTRA_SHOWS_USER_INTERFACE, action.getShowsUserInterface());
builder.addExtras(bundle);
this.mBuilder.addAction(builder.build());
}
@Nullable
private static List<String> combineLists(@Nullable List<String> list, @Nullable List<String> list2) {
if (list == null) {
return list2;
}
if (list2 == null) {
return list;
}
ArraySet arraySet = new ArraySet(list2.size() + list.size());
arraySet.addAll(list);
arraySet.addAll(list2);
return new ArrayList(arraySet);
}
@Nullable
private static List<String> getPeople(@Nullable List<Person> list) {
if (list == null) {
return null;
}
ArrayList arrayList = new ArrayList(list.size());
for (Person person : list) {
arrayList.add(person.resolveToLegacyUri());
}
return arrayList;
}
private void removeSoundAndVibration(Notification notification) {
notification.sound = null;
notification.vibrate = null;
int i = notification.defaults & -2;
notification.defaults = i;
notification.defaults = i & -3;
}
public Notification build() {
Bundle extras;
RemoteViews makeHeadsUpContentView;
RemoteViews makeBigContentView;
NotificationCompat.Style style = this.mBuilderCompat.mStyle;
if (style != null) {
style.apply(this);
}
RemoteViews makeContentView = style != null ? style.makeContentView(this) : null;
Notification buildInternal = buildInternal();
if (makeContentView != null) {
buildInternal.contentView = makeContentView;
} else {
RemoteViews remoteViews = this.mBuilderCompat.mContentView;
if (remoteViews != null) {
buildInternal.contentView = remoteViews;
}
}
if (!(style == null || (makeBigContentView = style.makeBigContentView(this)) == null)) {
buildInternal.bigContentView = makeBigContentView;
}
if (!(style == null || (makeHeadsUpContentView = this.mBuilderCompat.mStyle.makeHeadsUpContentView(this)) == null)) {
buildInternal.headsUpContentView = makeHeadsUpContentView;
}
if (!(style == null || (extras = NotificationCompat.getExtras(buildInternal)) == null)) {
style.addCompatExtras(extras);
}
return buildInternal;
}
public Notification buildInternal() {
int i = Build.VERSION.SDK_INT;
if (i >= 26) {
return this.mBuilder.build();
}
if (i >= 24) {
Notification build = this.mBuilder.build();
if (this.mGroupAlertBehavior != 0) {
if (!(build.getGroup() == null || (build.flags & 512) == 0 || this.mGroupAlertBehavior != 2)) {
removeSoundAndVibration(build);
}
if (build.getGroup() != null && (build.flags & 512) == 0 && this.mGroupAlertBehavior == 1) {
removeSoundAndVibration(build);
}
}
return build;
}
this.mBuilder.setExtras(this.mExtras);
Notification build2 = this.mBuilder.build();
RemoteViews remoteViews = this.mContentView;
if (remoteViews != null) {
build2.contentView = remoteViews;
}
RemoteViews remoteViews2 = this.mBigContentView;
if (remoteViews2 != null) {
build2.bigContentView = remoteViews2;
}
RemoteViews remoteViews3 = this.mHeadsUpContentView;
if (remoteViews3 != null) {
build2.headsUpContentView = remoteViews3;
}
if (this.mGroupAlertBehavior != 0) {
if (!(build2.getGroup() == null || (build2.flags & 512) == 0 || this.mGroupAlertBehavior != 2)) {
removeSoundAndVibration(build2);
}
if (build2.getGroup() != null && (build2.flags & 512) == 0 && this.mGroupAlertBehavior == 1) {
removeSoundAndVibration(build2);
}
}
return build2;
}
@Override // androidx.core.app.NotificationBuilderWithBuilderAccessor
public Notification.Builder getBuilder() {
return this.mBuilder;
}
public Context getContext() {
return this.mContext;
}
}