mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2024-12-26 17:12:31 -06:00
886 lines
37 KiB
Java
886 lines
37 KiB
Java
package androidx.appcompat.app;
|
|
|
|
import android.content.Context;
|
|
import android.content.DialogInterface;
|
|
import android.content.res.TypedArray;
|
|
import android.database.Cursor;
|
|
import android.graphics.drawable.Drawable;
|
|
import android.os.Handler;
|
|
import android.os.Message;
|
|
import android.text.TextUtils;
|
|
import android.util.AttributeSet;
|
|
import android.util.TypedValue;
|
|
import android.view.KeyEvent;
|
|
import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.view.ViewParent;
|
|
import android.view.ViewStub;
|
|
import android.view.Window;
|
|
import android.widget.AbsListView;
|
|
import android.widget.AdapterView;
|
|
import android.widget.ArrayAdapter;
|
|
import android.widget.Button;
|
|
import android.widget.CheckedTextView;
|
|
import android.widget.CursorAdapter;
|
|
import android.widget.FrameLayout;
|
|
import android.widget.ImageView;
|
|
import android.widget.LinearLayout;
|
|
import android.widget.ListAdapter;
|
|
import android.widget.ListView;
|
|
import android.widget.SimpleCursorAdapter;
|
|
import android.widget.TextView;
|
|
import androidx.appcompat.R;
|
|
import androidx.appcompat.widget.LinearLayoutCompat;
|
|
import androidx.core.view.ViewCompat;
|
|
import androidx.core.widget.NestedScrollView;
|
|
import java.lang.ref.WeakReference;
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
/* loaded from: classes.dex */
|
|
public class AlertController {
|
|
ListAdapter mAdapter;
|
|
private int mAlertDialogLayout;
|
|
private final int mButtonIconDimen;
|
|
Button mButtonNegative;
|
|
private Drawable mButtonNegativeIcon;
|
|
Message mButtonNegativeMessage;
|
|
private CharSequence mButtonNegativeText;
|
|
Button mButtonNeutral;
|
|
private Drawable mButtonNeutralIcon;
|
|
Message mButtonNeutralMessage;
|
|
private CharSequence mButtonNeutralText;
|
|
private int mButtonPanelSideLayout;
|
|
Button mButtonPositive;
|
|
private Drawable mButtonPositiveIcon;
|
|
Message mButtonPositiveMessage;
|
|
private CharSequence mButtonPositiveText;
|
|
private final Context mContext;
|
|
private View mCustomTitleView;
|
|
final AppCompatDialog mDialog;
|
|
Handler mHandler;
|
|
private Drawable mIcon;
|
|
private ImageView mIconView;
|
|
int mListItemLayout;
|
|
int mListLayout;
|
|
ListView mListView;
|
|
private CharSequence mMessage;
|
|
private TextView mMessageView;
|
|
int mMultiChoiceItemLayout;
|
|
NestedScrollView mScrollView;
|
|
private boolean mShowTitle;
|
|
int mSingleChoiceItemLayout;
|
|
private CharSequence mTitle;
|
|
private TextView mTitleView;
|
|
private View mView;
|
|
private int mViewLayoutResId;
|
|
private int mViewSpacingBottom;
|
|
private int mViewSpacingLeft;
|
|
private int mViewSpacingRight;
|
|
private int mViewSpacingTop;
|
|
private final Window mWindow;
|
|
private boolean mViewSpacingSpecified = false;
|
|
private int mIconId = 0;
|
|
int mCheckedItem = -1;
|
|
private int mButtonPanelLayoutHint = 0;
|
|
private final View.OnClickListener mButtonHandler = new View.OnClickListener() { // from class: androidx.appcompat.app.AlertController.1
|
|
@Override // android.view.View.OnClickListener
|
|
public void onClick(View view) {
|
|
Message obtain;
|
|
if (view == AlertController.this.mButtonPositive && AlertController.this.mButtonPositiveMessage != null) {
|
|
obtain = Message.obtain(AlertController.this.mButtonPositiveMessage);
|
|
} else if (view == AlertController.this.mButtonNegative && AlertController.this.mButtonNegativeMessage != null) {
|
|
obtain = Message.obtain(AlertController.this.mButtonNegativeMessage);
|
|
} else {
|
|
obtain = (view != AlertController.this.mButtonNeutral || AlertController.this.mButtonNeutralMessage == null) ? null : Message.obtain(AlertController.this.mButtonNeutralMessage);
|
|
}
|
|
if (obtain != null) {
|
|
obtain.sendToTarget();
|
|
}
|
|
AlertController.this.mHandler.obtainMessage(1, AlertController.this.mDialog).sendToTarget();
|
|
}
|
|
};
|
|
|
|
private int selectContentView() {
|
|
int i = this.mButtonPanelSideLayout;
|
|
return (i != 0 && this.mButtonPanelLayoutHint == 1) ? i : this.mAlertDialogLayout;
|
|
}
|
|
|
|
public Button getButton(int i) {
|
|
if (i == -3) {
|
|
return this.mButtonNeutral;
|
|
}
|
|
if (i == -2) {
|
|
return this.mButtonNegative;
|
|
}
|
|
if (i != -1) {
|
|
return null;
|
|
}
|
|
return this.mButtonPositive;
|
|
}
|
|
|
|
public ListView getListView() {
|
|
return this.mListView;
|
|
}
|
|
|
|
public void setButtonPanelLayoutHint(int i) {
|
|
this.mButtonPanelLayoutHint = i;
|
|
}
|
|
|
|
public void setCustomTitle(View view) {
|
|
this.mCustomTitleView = view;
|
|
}
|
|
|
|
public void setView(int i) {
|
|
this.mView = null;
|
|
this.mViewLayoutResId = i;
|
|
this.mViewSpacingSpecified = false;
|
|
}
|
|
|
|
public void setView(View view) {
|
|
this.mView = view;
|
|
this.mViewLayoutResId = 0;
|
|
this.mViewSpacingSpecified = false;
|
|
}
|
|
|
|
public void setView(View view, int i, int i2, int i3, int i4) {
|
|
this.mView = view;
|
|
this.mViewLayoutResId = 0;
|
|
this.mViewSpacingSpecified = true;
|
|
this.mViewSpacingLeft = i;
|
|
this.mViewSpacingTop = i2;
|
|
this.mViewSpacingRight = i3;
|
|
this.mViewSpacingBottom = i4;
|
|
}
|
|
|
|
/* loaded from: classes.dex */
|
|
private static final class ButtonHandler extends Handler {
|
|
private static final int MSG_DISMISS_DIALOG = 1;
|
|
private WeakReference<DialogInterface> mDialog;
|
|
|
|
public ButtonHandler(DialogInterface dialogInterface) {
|
|
this.mDialog = new WeakReference<>(dialogInterface);
|
|
}
|
|
|
|
@Override // android.os.Handler
|
|
public void handleMessage(Message message) {
|
|
int i = message.what;
|
|
if (i == -3 || i == -2 || i == -1) {
|
|
((DialogInterface.OnClickListener) message.obj).onClick(this.mDialog.get(), message.what);
|
|
} else {
|
|
if (i != 1) {
|
|
return;
|
|
}
|
|
((DialogInterface) message.obj).dismiss();
|
|
}
|
|
}
|
|
}
|
|
|
|
private static boolean shouldCenterSingleButton(Context context) {
|
|
TypedValue typedValue = new TypedValue();
|
|
context.getTheme().resolveAttribute(R.attr.alertDialogCenterButtons, typedValue, true);
|
|
return typedValue.data != 0;
|
|
}
|
|
|
|
public AlertController(Context context, AppCompatDialog appCompatDialog, Window window) {
|
|
this.mContext = context;
|
|
this.mDialog = appCompatDialog;
|
|
this.mWindow = window;
|
|
this.mHandler = new ButtonHandler(appCompatDialog);
|
|
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(null, R.styleable.AlertDialog, R.attr.alertDialogStyle, 0);
|
|
this.mAlertDialogLayout = obtainStyledAttributes.getResourceId(R.styleable.AlertDialog_android_layout, 0);
|
|
this.mButtonPanelSideLayout = obtainStyledAttributes.getResourceId(R.styleable.AlertDialog_buttonPanelSideLayout, 0);
|
|
this.mListLayout = obtainStyledAttributes.getResourceId(R.styleable.AlertDialog_listLayout, 0);
|
|
this.mMultiChoiceItemLayout = obtainStyledAttributes.getResourceId(R.styleable.AlertDialog_multiChoiceItemLayout, 0);
|
|
this.mSingleChoiceItemLayout = obtainStyledAttributes.getResourceId(R.styleable.AlertDialog_singleChoiceItemLayout, 0);
|
|
this.mListItemLayout = obtainStyledAttributes.getResourceId(R.styleable.AlertDialog_listItemLayout, 0);
|
|
this.mShowTitle = obtainStyledAttributes.getBoolean(R.styleable.AlertDialog_showTitle, true);
|
|
this.mButtonIconDimen = obtainStyledAttributes.getDimensionPixelSize(R.styleable.AlertDialog_buttonIconDimen, 0);
|
|
obtainStyledAttributes.recycle();
|
|
appCompatDialog.supportRequestWindowFeature(1);
|
|
}
|
|
|
|
static boolean canTextInput(View view) {
|
|
if (view.onCheckIsTextEditor()) {
|
|
return true;
|
|
}
|
|
if (!(view instanceof ViewGroup)) {
|
|
return false;
|
|
}
|
|
ViewGroup viewGroup = (ViewGroup) view;
|
|
int childCount = viewGroup.getChildCount();
|
|
while (childCount > 0) {
|
|
childCount--;
|
|
if (canTextInput(viewGroup.getChildAt(childCount))) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public void installContent() {
|
|
this.mDialog.setContentView(selectContentView());
|
|
setupView();
|
|
}
|
|
|
|
public void setTitle(CharSequence charSequence) {
|
|
this.mTitle = charSequence;
|
|
TextView textView = this.mTitleView;
|
|
if (textView != null) {
|
|
textView.setText(charSequence);
|
|
}
|
|
}
|
|
|
|
public void setMessage(CharSequence charSequence) {
|
|
this.mMessage = charSequence;
|
|
TextView textView = this.mMessageView;
|
|
if (textView != null) {
|
|
textView.setText(charSequence);
|
|
}
|
|
}
|
|
|
|
public void setButton(int i, CharSequence charSequence, DialogInterface.OnClickListener onClickListener, Message message, Drawable drawable) {
|
|
if (message == null && onClickListener != null) {
|
|
message = this.mHandler.obtainMessage(i, onClickListener);
|
|
}
|
|
if (i == -3) {
|
|
this.mButtonNeutralText = charSequence;
|
|
this.mButtonNeutralMessage = message;
|
|
this.mButtonNeutralIcon = drawable;
|
|
} else if (i == -2) {
|
|
this.mButtonNegativeText = charSequence;
|
|
this.mButtonNegativeMessage = message;
|
|
this.mButtonNegativeIcon = drawable;
|
|
} else {
|
|
if (i != -1) {
|
|
throw new IllegalArgumentException("Button does not exist");
|
|
}
|
|
this.mButtonPositiveText = charSequence;
|
|
this.mButtonPositiveMessage = message;
|
|
this.mButtonPositiveIcon = drawable;
|
|
}
|
|
}
|
|
|
|
public void setIcon(int i) {
|
|
this.mIcon = null;
|
|
this.mIconId = i;
|
|
ImageView imageView = this.mIconView;
|
|
if (imageView != null) {
|
|
if (i != 0) {
|
|
imageView.setVisibility(0);
|
|
this.mIconView.setImageResource(this.mIconId);
|
|
} else {
|
|
imageView.setVisibility(8);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void setIcon(Drawable drawable) {
|
|
this.mIcon = drawable;
|
|
this.mIconId = 0;
|
|
ImageView imageView = this.mIconView;
|
|
if (imageView != null) {
|
|
if (drawable != null) {
|
|
imageView.setVisibility(0);
|
|
this.mIconView.setImageDrawable(drawable);
|
|
} else {
|
|
imageView.setVisibility(8);
|
|
}
|
|
}
|
|
}
|
|
|
|
public int getIconAttributeResId(int i) {
|
|
TypedValue typedValue = new TypedValue();
|
|
this.mContext.getTheme().resolveAttribute(i, typedValue, true);
|
|
return typedValue.resourceId;
|
|
}
|
|
|
|
public boolean onKeyDown(int i, KeyEvent keyEvent) {
|
|
NestedScrollView nestedScrollView = this.mScrollView;
|
|
return nestedScrollView != null && nestedScrollView.executeKeyEvent(keyEvent);
|
|
}
|
|
|
|
public boolean onKeyUp(int i, KeyEvent keyEvent) {
|
|
NestedScrollView nestedScrollView = this.mScrollView;
|
|
return nestedScrollView != null && nestedScrollView.executeKeyEvent(keyEvent);
|
|
}
|
|
|
|
private ViewGroup resolvePanel(View view, View view2) {
|
|
if (view == null) {
|
|
if (view2 instanceof ViewStub) {
|
|
view2 = ((ViewStub) view2).inflate();
|
|
}
|
|
return (ViewGroup) view2;
|
|
}
|
|
if (view2 != null) {
|
|
ViewParent parent = view2.getParent();
|
|
if (parent instanceof ViewGroup) {
|
|
((ViewGroup) parent).removeView(view2);
|
|
}
|
|
}
|
|
if (view instanceof ViewStub) {
|
|
view = ((ViewStub) view).inflate();
|
|
}
|
|
return (ViewGroup) view;
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
private void setupView() {
|
|
View findViewById;
|
|
ListAdapter listAdapter;
|
|
View findViewById2;
|
|
View findViewById3 = this.mWindow.findViewById(R.id.parentPanel);
|
|
View findViewById4 = findViewById3.findViewById(R.id.topPanel);
|
|
View findViewById5 = findViewById3.findViewById(R.id.contentPanel);
|
|
View findViewById6 = findViewById3.findViewById(R.id.buttonPanel);
|
|
ViewGroup viewGroup = (ViewGroup) findViewById3.findViewById(R.id.customPanel);
|
|
setupCustomContent(viewGroup);
|
|
View findViewById7 = viewGroup.findViewById(R.id.topPanel);
|
|
View findViewById8 = viewGroup.findViewById(R.id.contentPanel);
|
|
View findViewById9 = viewGroup.findViewById(R.id.buttonPanel);
|
|
ViewGroup resolvePanel = resolvePanel(findViewById7, findViewById4);
|
|
ViewGroup resolvePanel2 = resolvePanel(findViewById8, findViewById5);
|
|
ViewGroup resolvePanel3 = resolvePanel(findViewById9, findViewById6);
|
|
setupContent(resolvePanel2);
|
|
setupButtons(resolvePanel3);
|
|
setupTitle(resolvePanel);
|
|
boolean z = (viewGroup == null || viewGroup.getVisibility() == 8) ? false : true;
|
|
boolean z2 = (resolvePanel == null || resolvePanel.getVisibility() == 8) ? 0 : 1;
|
|
boolean z3 = (resolvePanel3 == null || resolvePanel3.getVisibility() == 8) ? false : true;
|
|
if (!z3 && resolvePanel2 != null && (findViewById2 = resolvePanel2.findViewById(R.id.textSpacerNoButtons)) != null) {
|
|
findViewById2.setVisibility(0);
|
|
}
|
|
if (z2 != 0) {
|
|
NestedScrollView nestedScrollView = this.mScrollView;
|
|
if (nestedScrollView != null) {
|
|
nestedScrollView.setClipToPadding(true);
|
|
}
|
|
View findViewById10 = (this.mMessage == null && this.mListView == null) ? null : resolvePanel.findViewById(R.id.titleDividerNoCustom);
|
|
if (findViewById10 != null) {
|
|
findViewById10.setVisibility(0);
|
|
}
|
|
} else if (resolvePanel2 != null && (findViewById = resolvePanel2.findViewById(R.id.textSpacerNoTitle)) != null) {
|
|
findViewById.setVisibility(0);
|
|
}
|
|
ListView listView = this.mListView;
|
|
if (listView instanceof RecycleListView) {
|
|
((RecycleListView) listView).setHasDecor(z2, z3);
|
|
}
|
|
if (!z) {
|
|
View view = this.mListView;
|
|
if (view == null) {
|
|
view = this.mScrollView;
|
|
}
|
|
if (view != null) {
|
|
setScrollIndicators(resolvePanel2, view, z2 | (z3 ? 2 : 0), 3);
|
|
}
|
|
}
|
|
ListView listView2 = this.mListView;
|
|
if (listView2 == null || (listAdapter = this.mAdapter) == null) {
|
|
return;
|
|
}
|
|
listView2.setAdapter(listAdapter);
|
|
int i = this.mCheckedItem;
|
|
if (i > -1) {
|
|
listView2.setItemChecked(i, true);
|
|
listView2.setSelection(i);
|
|
}
|
|
}
|
|
|
|
private void setScrollIndicators(ViewGroup viewGroup, View view, int i, int i2) {
|
|
View findViewById = this.mWindow.findViewById(R.id.scrollIndicatorUp);
|
|
View findViewById2 = this.mWindow.findViewById(R.id.scrollIndicatorDown);
|
|
ViewCompat.setScrollIndicators(view, i, i2);
|
|
if (findViewById != null) {
|
|
viewGroup.removeView(findViewById);
|
|
}
|
|
if (findViewById2 != null) {
|
|
viewGroup.removeView(findViewById2);
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.app.AlertController$2, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
class AnonymousClass2 implements NestedScrollView.OnScrollChangeListener {
|
|
final /* synthetic */ View val$bottom;
|
|
final /* synthetic */ View val$top;
|
|
|
|
AnonymousClass2(View view, View view2) {
|
|
this.val$top = view;
|
|
this.val$bottom = view2;
|
|
}
|
|
|
|
@Override // androidx.core.widget.NestedScrollView.OnScrollChangeListener
|
|
public void onScrollChange(NestedScrollView nestedScrollView, int i, int i2, int i3, int i4) {
|
|
AlertController.manageScrollIndicators(nestedScrollView, this.val$top, this.val$bottom);
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.app.AlertController$3, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
class AnonymousClass3 implements Runnable {
|
|
final /* synthetic */ View val$bottom;
|
|
final /* synthetic */ View val$top;
|
|
|
|
AnonymousClass3(View view, View view2) {
|
|
this.val$top = view;
|
|
this.val$bottom = view2;
|
|
}
|
|
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
AlertController.manageScrollIndicators(AlertController.this.mScrollView, this.val$top, this.val$bottom);
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.app.AlertController$4, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
class AnonymousClass4 implements AbsListView.OnScrollListener {
|
|
final /* synthetic */ View val$bottom;
|
|
final /* synthetic */ View val$top;
|
|
|
|
@Override // android.widget.AbsListView.OnScrollListener
|
|
public void onScrollStateChanged(AbsListView absListView, int i) {
|
|
}
|
|
|
|
AnonymousClass4(View view, View view2) {
|
|
this.val$top = view;
|
|
this.val$bottom = view2;
|
|
}
|
|
|
|
@Override // android.widget.AbsListView.OnScrollListener
|
|
public void onScroll(AbsListView absListView, int i, int i2, int i3) {
|
|
AlertController.manageScrollIndicators(absListView, this.val$top, this.val$bottom);
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.app.AlertController$5, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
class AnonymousClass5 implements Runnable {
|
|
final /* synthetic */ View val$bottom;
|
|
final /* synthetic */ View val$top;
|
|
|
|
AnonymousClass5(View view, View view2) {
|
|
this.val$top = view;
|
|
this.val$bottom = view2;
|
|
}
|
|
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
AlertController.manageScrollIndicators(AlertController.this.mListView, this.val$top, this.val$bottom);
|
|
}
|
|
}
|
|
|
|
private void setupCustomContent(ViewGroup viewGroup) {
|
|
View view = this.mView;
|
|
if (view == null) {
|
|
view = this.mViewLayoutResId != 0 ? LayoutInflater.from(this.mContext).inflate(this.mViewLayoutResId, viewGroup, false) : null;
|
|
}
|
|
boolean z = view != null;
|
|
if (!z || !canTextInput(view)) {
|
|
this.mWindow.setFlags(131072, 131072);
|
|
}
|
|
if (z) {
|
|
FrameLayout frameLayout = (FrameLayout) this.mWindow.findViewById(R.id.custom);
|
|
frameLayout.addView(view, new ViewGroup.LayoutParams(-1, -1));
|
|
if (this.mViewSpacingSpecified) {
|
|
frameLayout.setPadding(this.mViewSpacingLeft, this.mViewSpacingTop, this.mViewSpacingRight, this.mViewSpacingBottom);
|
|
}
|
|
if (this.mListView != null) {
|
|
((LinearLayoutCompat.LayoutParams) viewGroup.getLayoutParams()).weight = 0.0f;
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
viewGroup.setVisibility(8);
|
|
}
|
|
|
|
private void setupTitle(ViewGroup viewGroup) {
|
|
if (this.mCustomTitleView != null) {
|
|
viewGroup.addView(this.mCustomTitleView, 0, new ViewGroup.LayoutParams(-1, -2));
|
|
this.mWindow.findViewById(R.id.title_template).setVisibility(8);
|
|
return;
|
|
}
|
|
this.mIconView = (ImageView) this.mWindow.findViewById(android.R.id.icon);
|
|
if ((!TextUtils.isEmpty(this.mTitle)) && this.mShowTitle) {
|
|
TextView textView = (TextView) this.mWindow.findViewById(R.id.alertTitle);
|
|
this.mTitleView = textView;
|
|
textView.setText(this.mTitle);
|
|
int i = this.mIconId;
|
|
if (i != 0) {
|
|
this.mIconView.setImageResource(i);
|
|
return;
|
|
}
|
|
Drawable drawable = this.mIcon;
|
|
if (drawable != null) {
|
|
this.mIconView.setImageDrawable(drawable);
|
|
return;
|
|
} else {
|
|
this.mTitleView.setPadding(this.mIconView.getPaddingLeft(), this.mIconView.getPaddingTop(), this.mIconView.getPaddingRight(), this.mIconView.getPaddingBottom());
|
|
this.mIconView.setVisibility(8);
|
|
return;
|
|
}
|
|
}
|
|
this.mWindow.findViewById(R.id.title_template).setVisibility(8);
|
|
this.mIconView.setVisibility(8);
|
|
viewGroup.setVisibility(8);
|
|
}
|
|
|
|
private void setupContent(ViewGroup viewGroup) {
|
|
NestedScrollView nestedScrollView = (NestedScrollView) this.mWindow.findViewById(R.id.scrollView);
|
|
this.mScrollView = nestedScrollView;
|
|
nestedScrollView.setFocusable(false);
|
|
this.mScrollView.setNestedScrollingEnabled(false);
|
|
TextView textView = (TextView) viewGroup.findViewById(android.R.id.message);
|
|
this.mMessageView = textView;
|
|
if (textView == null) {
|
|
return;
|
|
}
|
|
CharSequence charSequence = this.mMessage;
|
|
if (charSequence != null) {
|
|
textView.setText(charSequence);
|
|
return;
|
|
}
|
|
textView.setVisibility(8);
|
|
this.mScrollView.removeView(this.mMessageView);
|
|
if (this.mListView != null) {
|
|
ViewGroup viewGroup2 = (ViewGroup) this.mScrollView.getParent();
|
|
int indexOfChild = viewGroup2.indexOfChild(this.mScrollView);
|
|
viewGroup2.removeViewAt(indexOfChild);
|
|
viewGroup2.addView(this.mListView, indexOfChild, new ViewGroup.LayoutParams(-1, -1));
|
|
return;
|
|
}
|
|
viewGroup.setVisibility(8);
|
|
}
|
|
|
|
static void manageScrollIndicators(View view, View view2, View view3) {
|
|
if (view2 != null) {
|
|
view2.setVisibility(view.canScrollVertically(-1) ? 0 : 4);
|
|
}
|
|
if (view3 != null) {
|
|
view3.setVisibility(view.canScrollVertically(1) ? 0 : 4);
|
|
}
|
|
}
|
|
|
|
private void setupButtons(ViewGroup viewGroup) {
|
|
int i;
|
|
Button button = (Button) viewGroup.findViewById(android.R.id.button1);
|
|
this.mButtonPositive = button;
|
|
button.setOnClickListener(this.mButtonHandler);
|
|
if (TextUtils.isEmpty(this.mButtonPositiveText) && this.mButtonPositiveIcon == null) {
|
|
this.mButtonPositive.setVisibility(8);
|
|
i = 0;
|
|
} else {
|
|
this.mButtonPositive.setText(this.mButtonPositiveText);
|
|
Drawable drawable = this.mButtonPositiveIcon;
|
|
if (drawable != null) {
|
|
int i2 = this.mButtonIconDimen;
|
|
drawable.setBounds(0, 0, i2, i2);
|
|
this.mButtonPositive.setCompoundDrawables(this.mButtonPositiveIcon, null, null, null);
|
|
}
|
|
this.mButtonPositive.setVisibility(0);
|
|
i = 1;
|
|
}
|
|
Button button2 = (Button) viewGroup.findViewById(android.R.id.button2);
|
|
this.mButtonNegative = button2;
|
|
button2.setOnClickListener(this.mButtonHandler);
|
|
if (TextUtils.isEmpty(this.mButtonNegativeText) && this.mButtonNegativeIcon == null) {
|
|
this.mButtonNegative.setVisibility(8);
|
|
} else {
|
|
this.mButtonNegative.setText(this.mButtonNegativeText);
|
|
Drawable drawable2 = this.mButtonNegativeIcon;
|
|
if (drawable2 != null) {
|
|
int i3 = this.mButtonIconDimen;
|
|
drawable2.setBounds(0, 0, i3, i3);
|
|
this.mButtonNegative.setCompoundDrawables(this.mButtonNegativeIcon, null, null, null);
|
|
}
|
|
this.mButtonNegative.setVisibility(0);
|
|
i |= 2;
|
|
}
|
|
Button button3 = (Button) viewGroup.findViewById(android.R.id.button3);
|
|
this.mButtonNeutral = button3;
|
|
button3.setOnClickListener(this.mButtonHandler);
|
|
if (TextUtils.isEmpty(this.mButtonNeutralText) && this.mButtonNeutralIcon == null) {
|
|
this.mButtonNeutral.setVisibility(8);
|
|
} else {
|
|
this.mButtonNeutral.setText(this.mButtonNeutralText);
|
|
Drawable drawable3 = this.mButtonNeutralIcon;
|
|
if (drawable3 != null) {
|
|
int i4 = this.mButtonIconDimen;
|
|
drawable3.setBounds(0, 0, i4, i4);
|
|
this.mButtonNeutral.setCompoundDrawables(this.mButtonNeutralIcon, null, null, null);
|
|
}
|
|
this.mButtonNeutral.setVisibility(0);
|
|
i |= 4;
|
|
}
|
|
if (shouldCenterSingleButton(this.mContext)) {
|
|
if (i == 1) {
|
|
centerButton(this.mButtonPositive);
|
|
} else if (i == 2) {
|
|
centerButton(this.mButtonNegative);
|
|
} else if (i == 4) {
|
|
centerButton(this.mButtonNeutral);
|
|
}
|
|
}
|
|
if (i != 0) {
|
|
return;
|
|
}
|
|
viewGroup.setVisibility(8);
|
|
}
|
|
|
|
private void centerButton(Button button) {
|
|
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) button.getLayoutParams();
|
|
layoutParams.gravity = 1;
|
|
layoutParams.weight = 0.5f;
|
|
button.setLayoutParams(layoutParams);
|
|
}
|
|
|
|
/* loaded from: classes.dex */
|
|
public static class RecycleListView extends ListView {
|
|
private final int mPaddingBottomNoButtons;
|
|
private final int mPaddingTopNoTitle;
|
|
|
|
public RecycleListView(Context context) {
|
|
this(context, null);
|
|
}
|
|
|
|
public RecycleListView(Context context, AttributeSet attributeSet) {
|
|
super(context, attributeSet);
|
|
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.RecycleListView);
|
|
this.mPaddingBottomNoButtons = obtainStyledAttributes.getDimensionPixelOffset(R.styleable.RecycleListView_paddingBottomNoButtons, -1);
|
|
this.mPaddingTopNoTitle = obtainStyledAttributes.getDimensionPixelOffset(R.styleable.RecycleListView_paddingTopNoTitle, -1);
|
|
}
|
|
|
|
public void setHasDecor(boolean z, boolean z2) {
|
|
if (z2 && z) {
|
|
return;
|
|
}
|
|
setPadding(getPaddingLeft(), z ? getPaddingTop() : this.mPaddingTopNoTitle, getPaddingRight(), z2 ? getPaddingBottom() : this.mPaddingBottomNoButtons);
|
|
}
|
|
}
|
|
|
|
/* loaded from: classes.dex */
|
|
public static class AlertParams {
|
|
public ListAdapter mAdapter;
|
|
public boolean[] mCheckedItems;
|
|
public final Context mContext;
|
|
public Cursor mCursor;
|
|
public View mCustomTitleView;
|
|
public boolean mForceInverseBackground;
|
|
public Drawable mIcon;
|
|
public final LayoutInflater mInflater;
|
|
public String mIsCheckedColumn;
|
|
public boolean mIsMultiChoice;
|
|
public boolean mIsSingleChoice;
|
|
public CharSequence[] mItems;
|
|
public String mLabelColumn;
|
|
public CharSequence mMessage;
|
|
public Drawable mNegativeButtonIcon;
|
|
public DialogInterface.OnClickListener mNegativeButtonListener;
|
|
public CharSequence mNegativeButtonText;
|
|
public Drawable mNeutralButtonIcon;
|
|
public DialogInterface.OnClickListener mNeutralButtonListener;
|
|
public CharSequence mNeutralButtonText;
|
|
public DialogInterface.OnCancelListener mOnCancelListener;
|
|
public DialogInterface.OnMultiChoiceClickListener mOnCheckboxClickListener;
|
|
public DialogInterface.OnClickListener mOnClickListener;
|
|
public DialogInterface.OnDismissListener mOnDismissListener;
|
|
public AdapterView.OnItemSelectedListener mOnItemSelectedListener;
|
|
public DialogInterface.OnKeyListener mOnKeyListener;
|
|
public OnPrepareListViewListener mOnPrepareListViewListener;
|
|
public Drawable mPositiveButtonIcon;
|
|
public DialogInterface.OnClickListener mPositiveButtonListener;
|
|
public CharSequence mPositiveButtonText;
|
|
public CharSequence mTitle;
|
|
public View mView;
|
|
public int mViewLayoutResId;
|
|
public int mViewSpacingBottom;
|
|
public int mViewSpacingLeft;
|
|
public int mViewSpacingRight;
|
|
public int mViewSpacingTop;
|
|
public int mIconId = 0;
|
|
public int mIconAttrId = 0;
|
|
public boolean mViewSpacingSpecified = false;
|
|
public int mCheckedItem = -1;
|
|
public boolean mRecycleOnMeasure = true;
|
|
public boolean mCancelable = true;
|
|
|
|
/* loaded from: classes.dex */
|
|
public interface OnPrepareListViewListener {
|
|
void onPrepareListView(ListView listView);
|
|
}
|
|
|
|
public AlertParams(Context context) {
|
|
this.mContext = context;
|
|
this.mInflater = (LayoutInflater) context.getSystemService("layout_inflater");
|
|
}
|
|
|
|
public void apply(AlertController alertController) {
|
|
View view = this.mCustomTitleView;
|
|
if (view != null) {
|
|
alertController.setCustomTitle(view);
|
|
} else {
|
|
CharSequence charSequence = this.mTitle;
|
|
if (charSequence != null) {
|
|
alertController.setTitle(charSequence);
|
|
}
|
|
Drawable drawable = this.mIcon;
|
|
if (drawable != null) {
|
|
alertController.setIcon(drawable);
|
|
}
|
|
int i = this.mIconId;
|
|
if (i != 0) {
|
|
alertController.setIcon(i);
|
|
}
|
|
int i2 = this.mIconAttrId;
|
|
if (i2 != 0) {
|
|
alertController.setIcon(alertController.getIconAttributeResId(i2));
|
|
}
|
|
}
|
|
CharSequence charSequence2 = this.mMessage;
|
|
if (charSequence2 != null) {
|
|
alertController.setMessage(charSequence2);
|
|
}
|
|
CharSequence charSequence3 = this.mPositiveButtonText;
|
|
if (charSequence3 != null || this.mPositiveButtonIcon != null) {
|
|
alertController.setButton(-1, charSequence3, this.mPositiveButtonListener, null, this.mPositiveButtonIcon);
|
|
}
|
|
CharSequence charSequence4 = this.mNegativeButtonText;
|
|
if (charSequence4 != null || this.mNegativeButtonIcon != null) {
|
|
alertController.setButton(-2, charSequence4, this.mNegativeButtonListener, null, this.mNegativeButtonIcon);
|
|
}
|
|
CharSequence charSequence5 = this.mNeutralButtonText;
|
|
if (charSequence5 != null || this.mNeutralButtonIcon != null) {
|
|
alertController.setButton(-3, charSequence5, this.mNeutralButtonListener, null, this.mNeutralButtonIcon);
|
|
}
|
|
if (this.mItems != null || this.mCursor != null || this.mAdapter != null) {
|
|
createListView(alertController);
|
|
}
|
|
View view2 = this.mView;
|
|
if (view2 != null) {
|
|
if (this.mViewSpacingSpecified) {
|
|
alertController.setView(view2, this.mViewSpacingLeft, this.mViewSpacingTop, this.mViewSpacingRight, this.mViewSpacingBottom);
|
|
return;
|
|
} else {
|
|
alertController.setView(view2);
|
|
return;
|
|
}
|
|
}
|
|
int i3 = this.mViewLayoutResId;
|
|
if (i3 != 0) {
|
|
alertController.setView(i3);
|
|
}
|
|
}
|
|
|
|
private void createListView(final AlertController alertController) {
|
|
int i;
|
|
ListAdapter listAdapter;
|
|
final RecycleListView recycleListView = (RecycleListView) this.mInflater.inflate(alertController.mListLayout, (ViewGroup) null);
|
|
if (!this.mIsMultiChoice) {
|
|
if (this.mIsSingleChoice) {
|
|
i = alertController.mSingleChoiceItemLayout;
|
|
} else {
|
|
i = alertController.mListItemLayout;
|
|
}
|
|
int i2 = i;
|
|
if (this.mCursor != null) {
|
|
listAdapter = new SimpleCursorAdapter(this.mContext, i2, this.mCursor, new String[]{this.mLabelColumn}, new int[]{android.R.id.text1});
|
|
} else {
|
|
listAdapter = this.mAdapter;
|
|
if (listAdapter == null) {
|
|
listAdapter = new CheckedItemAdapter(this.mContext, i2, android.R.id.text1, this.mItems);
|
|
}
|
|
}
|
|
} else if (this.mCursor == null) {
|
|
listAdapter = new ArrayAdapter<CharSequence>(this.mContext, alertController.mMultiChoiceItemLayout, android.R.id.text1, this.mItems) { // from class: androidx.appcompat.app.AlertController.AlertParams.1
|
|
@Override // android.widget.ArrayAdapter, android.widget.Adapter
|
|
public View getView(int i3, View view, ViewGroup viewGroup) {
|
|
View view2 = super.getView(i3, view, viewGroup);
|
|
if (AlertParams.this.mCheckedItems != null && AlertParams.this.mCheckedItems[i3]) {
|
|
recycleListView.setItemChecked(i3, true);
|
|
}
|
|
return view2;
|
|
}
|
|
};
|
|
} else {
|
|
listAdapter = new CursorAdapter(this.mContext, this.mCursor, false) { // from class: androidx.appcompat.app.AlertController.AlertParams.2
|
|
private final int mIsCheckedIndex;
|
|
private final int mLabelIndex;
|
|
|
|
{
|
|
Cursor cursor = getCursor();
|
|
this.mLabelIndex = cursor.getColumnIndexOrThrow(AlertParams.this.mLabelColumn);
|
|
this.mIsCheckedIndex = cursor.getColumnIndexOrThrow(AlertParams.this.mIsCheckedColumn);
|
|
}
|
|
|
|
@Override // android.widget.CursorAdapter
|
|
public void bindView(View view, Context context, Cursor cursor) {
|
|
((CheckedTextView) view.findViewById(android.R.id.text1)).setText(cursor.getString(this.mLabelIndex));
|
|
recycleListView.setItemChecked(cursor.getPosition(), cursor.getInt(this.mIsCheckedIndex) == 1);
|
|
}
|
|
|
|
@Override // android.widget.CursorAdapter
|
|
public View newView(Context context, Cursor cursor, ViewGroup viewGroup) {
|
|
return AlertParams.this.mInflater.inflate(alertController.mMultiChoiceItemLayout, viewGroup, false);
|
|
}
|
|
};
|
|
}
|
|
OnPrepareListViewListener onPrepareListViewListener = this.mOnPrepareListViewListener;
|
|
if (onPrepareListViewListener != null) {
|
|
onPrepareListViewListener.onPrepareListView(recycleListView);
|
|
}
|
|
alertController.mAdapter = listAdapter;
|
|
alertController.mCheckedItem = this.mCheckedItem;
|
|
if (this.mOnClickListener != null) {
|
|
recycleListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { // from class: androidx.appcompat.app.AlertController.AlertParams.3
|
|
@Override // android.widget.AdapterView.OnItemClickListener
|
|
public void onItemClick(AdapterView<?> adapterView, View view, int i3, long j) {
|
|
AlertParams.this.mOnClickListener.onClick(alertController.mDialog, i3);
|
|
if (AlertParams.this.mIsSingleChoice) {
|
|
return;
|
|
}
|
|
alertController.mDialog.dismiss();
|
|
}
|
|
});
|
|
} else if (this.mOnCheckboxClickListener != null) {
|
|
recycleListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { // from class: androidx.appcompat.app.AlertController.AlertParams.4
|
|
@Override // android.widget.AdapterView.OnItemClickListener
|
|
public void onItemClick(AdapterView<?> adapterView, View view, int i3, long j) {
|
|
if (AlertParams.this.mCheckedItems != null) {
|
|
AlertParams.this.mCheckedItems[i3] = recycleListView.isItemChecked(i3);
|
|
}
|
|
AlertParams.this.mOnCheckboxClickListener.onClick(alertController.mDialog, i3, recycleListView.isItemChecked(i3));
|
|
}
|
|
});
|
|
}
|
|
AdapterView.OnItemSelectedListener onItemSelectedListener = this.mOnItemSelectedListener;
|
|
if (onItemSelectedListener != null) {
|
|
recycleListView.setOnItemSelectedListener(onItemSelectedListener);
|
|
}
|
|
if (this.mIsSingleChoice) {
|
|
recycleListView.setChoiceMode(1);
|
|
} else if (this.mIsMultiChoice) {
|
|
recycleListView.setChoiceMode(2);
|
|
}
|
|
alertController.mListView = recycleListView;
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
/* loaded from: classes.dex */
|
|
public static class CheckedItemAdapter extends ArrayAdapter<CharSequence> {
|
|
@Override // android.widget.ArrayAdapter, android.widget.Adapter
|
|
public long getItemId(int i) {
|
|
return i;
|
|
}
|
|
|
|
@Override // android.widget.BaseAdapter, android.widget.Adapter
|
|
public boolean hasStableIds() {
|
|
return true;
|
|
}
|
|
|
|
public CheckedItemAdapter(Context context, int i, int i2, CharSequence[] charSequenceArr) {
|
|
super(context, i, i2, charSequenceArr);
|
|
}
|
|
}
|
|
}
|