ADD week 5

This commit is contained in:
2025-03-31 16:33:42 +02:00
parent 86f265f22d
commit bf645048e6
4927 changed files with 544053 additions and 0 deletions

View File

@ -0,0 +1,46 @@
package com.google.android.material.dialog;
import android.R;
import android.app.Dialog;
import android.graphics.Rect;
import android.graphics.RectF;
import android.os.Build;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewConfiguration;
/* loaded from: classes.dex */
public class InsetDialogOnTouchListener implements View.OnTouchListener {
private final Dialog dialog;
private final int leftInset;
private final int prePieSlop;
private final int topInset;
public InsetDialogOnTouchListener(Dialog dialog, Rect rect) {
this.dialog = dialog;
this.leftInset = rect.left;
this.topInset = rect.top;
this.prePieSlop = ViewConfiguration.get(dialog.getContext()).getScaledWindowTouchSlop();
}
@Override // android.view.View.OnTouchListener
public boolean onTouch(View view, MotionEvent motionEvent) {
View findViewById = view.findViewById(R.id.content);
int left = this.leftInset + findViewById.getLeft();
int width = findViewById.getWidth() + left;
if (new RectF(left, this.topInset + findViewById.getTop(), width, findViewById.getHeight() + r3).contains(motionEvent.getX(), motionEvent.getY())) {
return false;
}
MotionEvent obtain = MotionEvent.obtain(motionEvent);
if (motionEvent.getAction() == 1) {
obtain.setAction(4);
}
if (Build.VERSION.SDK_INT < 28) {
obtain.setAction(0);
int i = this.prePieSlop;
obtain.setLocation((-i) - 1, (-i) - 1);
}
view.performClick();
return this.dialog.onTouchEvent(obtain);
}
}

View File

@ -0,0 +1,306 @@
package com.google.android.material.dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.database.Cursor;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.util.TypedValue;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.view.ContextThemeWrapper;
import androidx.core.view.ViewCompat;
import com.google.android.material.R;
import com.google.android.material.color.MaterialColors;
import com.google.android.material.resources.MaterialAttributes;
import com.google.android.material.shape.MaterialShapeDrawable;
import com.google.android.material.theme.overlay.MaterialThemeOverlay;
/* loaded from: classes.dex */
public class MaterialAlertDialogBuilder extends AlertDialog.Builder {
private static final int DEF_STYLE_ATTR = R.attr.alertDialogStyle;
private static final int DEF_STYLE_RES = R.style.MaterialAlertDialog_MaterialComponents;
private static final int MATERIAL_ALERT_DIALOG_THEME_OVERLAY = R.attr.materialAlertDialogTheme;
private Drawable background;
private final Rect backgroundInsets;
public Drawable getBackground() {
return this.background;
}
public MaterialAlertDialogBuilder setBackground(Drawable drawable) {
this.background = drawable;
return this;
}
private static int getMaterialAlertDialogThemeOverlay(Context context) {
TypedValue resolve = MaterialAttributes.resolve(context, MATERIAL_ALERT_DIALOG_THEME_OVERLAY);
if (resolve == null) {
return 0;
}
return resolve.data;
}
private static Context createMaterialAlertDialogThemedContext(Context context) {
int materialAlertDialogThemeOverlay = getMaterialAlertDialogThemeOverlay(context);
Context wrap = MaterialThemeOverlay.wrap(context, null, DEF_STYLE_ATTR, DEF_STYLE_RES);
return materialAlertDialogThemeOverlay == 0 ? wrap : new ContextThemeWrapper(wrap, materialAlertDialogThemeOverlay);
}
private static int getOverridingThemeResId(Context context, int i) {
return i == 0 ? getMaterialAlertDialogThemeOverlay(context) : i;
}
public MaterialAlertDialogBuilder(Context context) {
this(context, 0);
}
public MaterialAlertDialogBuilder(Context context, int i) {
super(createMaterialAlertDialogThemedContext(context), getOverridingThemeResId(context, i));
Context context2 = getContext();
Resources.Theme theme = context2.getTheme();
int i2 = DEF_STYLE_ATTR;
int i3 = DEF_STYLE_RES;
this.backgroundInsets = MaterialDialogs.getDialogBackgroundInsets(context2, i2, i3);
int color = MaterialColors.getColor(context2, R.attr.colorSurface, getClass().getCanonicalName());
TypedArray obtainStyledAttributes = context2.obtainStyledAttributes(null, R.styleable.MaterialAlertDialog, i2, i3);
int color2 = obtainStyledAttributes.getColor(R.styleable.MaterialAlertDialog_backgroundTint, color);
obtainStyledAttributes.recycle();
MaterialShapeDrawable materialShapeDrawable = new MaterialShapeDrawable(context2, null, i2, i3);
materialShapeDrawable.initializeElevationOverlay(context2);
materialShapeDrawable.setFillColor(ColorStateList.valueOf(color2));
if (Build.VERSION.SDK_INT >= 28) {
TypedValue typedValue = new TypedValue();
theme.resolveAttribute(android.R.attr.dialogCornerRadius, typedValue, true);
float dimension = typedValue.getDimension(getContext().getResources().getDisplayMetrics());
if (typedValue.type == 5 && dimension >= 0.0f) {
materialShapeDrawable.setCornerSize(dimension);
}
}
this.background = materialShapeDrawable;
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public AlertDialog create() {
AlertDialog create = super.create();
Window window = create.getWindow();
View decorView = window.getDecorView();
Drawable drawable = this.background;
if (drawable instanceof MaterialShapeDrawable) {
((MaterialShapeDrawable) drawable).setElevation(ViewCompat.getElevation(decorView));
}
window.setBackgroundDrawable(MaterialDialogs.insetDrawable(this.background, this.backgroundInsets));
decorView.setOnTouchListener(new InsetDialogOnTouchListener(create, this.backgroundInsets));
return create;
}
public MaterialAlertDialogBuilder setBackgroundInsetStart(int i) {
if (getContext().getResources().getConfiguration().getLayoutDirection() == 1) {
this.backgroundInsets.right = i;
} else {
this.backgroundInsets.left = i;
}
return this;
}
public MaterialAlertDialogBuilder setBackgroundInsetTop(int i) {
this.backgroundInsets.top = i;
return this;
}
public MaterialAlertDialogBuilder setBackgroundInsetEnd(int i) {
if (getContext().getResources().getConfiguration().getLayoutDirection() == 1) {
this.backgroundInsets.left = i;
} else {
this.backgroundInsets.right = i;
}
return this;
}
public MaterialAlertDialogBuilder setBackgroundInsetBottom(int i) {
this.backgroundInsets.bottom = i;
return this;
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setTitle(int i) {
return (MaterialAlertDialogBuilder) super.setTitle(i);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setTitle(CharSequence charSequence) {
return (MaterialAlertDialogBuilder) super.setTitle(charSequence);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setCustomTitle(View view) {
return (MaterialAlertDialogBuilder) super.setCustomTitle(view);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setMessage(int i) {
return (MaterialAlertDialogBuilder) super.setMessage(i);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setMessage(CharSequence charSequence) {
return (MaterialAlertDialogBuilder) super.setMessage(charSequence);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setIcon(int i) {
return (MaterialAlertDialogBuilder) super.setIcon(i);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setIcon(Drawable drawable) {
return (MaterialAlertDialogBuilder) super.setIcon(drawable);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setIconAttribute(int i) {
return (MaterialAlertDialogBuilder) super.setIconAttribute(i);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setPositiveButton(int i, DialogInterface.OnClickListener onClickListener) {
return (MaterialAlertDialogBuilder) super.setPositiveButton(i, onClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setPositiveButton(CharSequence charSequence, DialogInterface.OnClickListener onClickListener) {
return (MaterialAlertDialogBuilder) super.setPositiveButton(charSequence, onClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setPositiveButtonIcon(Drawable drawable) {
return (MaterialAlertDialogBuilder) super.setPositiveButtonIcon(drawable);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setNegativeButton(int i, DialogInterface.OnClickListener onClickListener) {
return (MaterialAlertDialogBuilder) super.setNegativeButton(i, onClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setNegativeButton(CharSequence charSequence, DialogInterface.OnClickListener onClickListener) {
return (MaterialAlertDialogBuilder) super.setNegativeButton(charSequence, onClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setNegativeButtonIcon(Drawable drawable) {
return (MaterialAlertDialogBuilder) super.setNegativeButtonIcon(drawable);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setNeutralButton(int i, DialogInterface.OnClickListener onClickListener) {
return (MaterialAlertDialogBuilder) super.setNeutralButton(i, onClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setNeutralButton(CharSequence charSequence, DialogInterface.OnClickListener onClickListener) {
return (MaterialAlertDialogBuilder) super.setNeutralButton(charSequence, onClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setNeutralButtonIcon(Drawable drawable) {
return (MaterialAlertDialogBuilder) super.setNeutralButtonIcon(drawable);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setCancelable(boolean z) {
return (MaterialAlertDialogBuilder) super.setCancelable(z);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setOnCancelListener(DialogInterface.OnCancelListener onCancelListener) {
return (MaterialAlertDialogBuilder) super.setOnCancelListener(onCancelListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) {
return (MaterialAlertDialogBuilder) super.setOnDismissListener(onDismissListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setOnKeyListener(DialogInterface.OnKeyListener onKeyListener) {
return (MaterialAlertDialogBuilder) super.setOnKeyListener(onKeyListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setItems(int i, DialogInterface.OnClickListener onClickListener) {
return (MaterialAlertDialogBuilder) super.setItems(i, onClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setItems(CharSequence[] charSequenceArr, DialogInterface.OnClickListener onClickListener) {
return (MaterialAlertDialogBuilder) super.setItems(charSequenceArr, onClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setAdapter(ListAdapter listAdapter, DialogInterface.OnClickListener onClickListener) {
return (MaterialAlertDialogBuilder) super.setAdapter(listAdapter, onClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setCursor(Cursor cursor, DialogInterface.OnClickListener onClickListener, String str) {
return (MaterialAlertDialogBuilder) super.setCursor(cursor, onClickListener, str);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setMultiChoiceItems(int i, boolean[] zArr, DialogInterface.OnMultiChoiceClickListener onMultiChoiceClickListener) {
return (MaterialAlertDialogBuilder) super.setMultiChoiceItems(i, zArr, onMultiChoiceClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setMultiChoiceItems(CharSequence[] charSequenceArr, boolean[] zArr, DialogInterface.OnMultiChoiceClickListener onMultiChoiceClickListener) {
return (MaterialAlertDialogBuilder) super.setMultiChoiceItems(charSequenceArr, zArr, onMultiChoiceClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setMultiChoiceItems(Cursor cursor, String str, String str2, DialogInterface.OnMultiChoiceClickListener onMultiChoiceClickListener) {
return (MaterialAlertDialogBuilder) super.setMultiChoiceItems(cursor, str, str2, onMultiChoiceClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setSingleChoiceItems(int i, int i2, DialogInterface.OnClickListener onClickListener) {
return (MaterialAlertDialogBuilder) super.setSingleChoiceItems(i, i2, onClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setSingleChoiceItems(Cursor cursor, int i, String str, DialogInterface.OnClickListener onClickListener) {
return (MaterialAlertDialogBuilder) super.setSingleChoiceItems(cursor, i, str, onClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setSingleChoiceItems(CharSequence[] charSequenceArr, int i, DialogInterface.OnClickListener onClickListener) {
return (MaterialAlertDialogBuilder) super.setSingleChoiceItems(charSequenceArr, i, onClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setSingleChoiceItems(ListAdapter listAdapter, int i, DialogInterface.OnClickListener onClickListener) {
return (MaterialAlertDialogBuilder) super.setSingleChoiceItems(listAdapter, i, onClickListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setOnItemSelectedListener(AdapterView.OnItemSelectedListener onItemSelectedListener) {
return (MaterialAlertDialogBuilder) super.setOnItemSelectedListener(onItemSelectedListener);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setView(int i) {
return (MaterialAlertDialogBuilder) super.setView(i);
}
@Override // androidx.appcompat.app.AlertDialog.Builder
public MaterialAlertDialogBuilder setView(View view) {
return (MaterialAlertDialogBuilder) super.setView(view);
}
}

View File

@ -0,0 +1,33 @@
package com.google.android.material.dialog;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.InsetDrawable;
import com.google.android.material.R;
import com.google.android.material.internal.ThemeEnforcement;
/* loaded from: classes.dex */
public class MaterialDialogs {
private MaterialDialogs() {
}
public static InsetDrawable insetDrawable(Drawable drawable, Rect rect) {
return new InsetDrawable(drawable, rect.left, rect.top, rect.right, rect.bottom);
}
public static Rect getDialogBackgroundInsets(Context context, int i, int i2) {
TypedArray obtainStyledAttributes = ThemeEnforcement.obtainStyledAttributes(context, null, R.styleable.MaterialAlertDialog, i, i2, new int[0]);
int dimensionPixelSize = obtainStyledAttributes.getDimensionPixelSize(R.styleable.MaterialAlertDialog_backgroundInsetStart, context.getResources().getDimensionPixelSize(R.dimen.mtrl_alert_dialog_background_inset_start));
int dimensionPixelSize2 = obtainStyledAttributes.getDimensionPixelSize(R.styleable.MaterialAlertDialog_backgroundInsetTop, context.getResources().getDimensionPixelSize(R.dimen.mtrl_alert_dialog_background_inset_top));
int dimensionPixelSize3 = obtainStyledAttributes.getDimensionPixelSize(R.styleable.MaterialAlertDialog_backgroundInsetEnd, context.getResources().getDimensionPixelSize(R.dimen.mtrl_alert_dialog_background_inset_end));
int dimensionPixelSize4 = obtainStyledAttributes.getDimensionPixelSize(R.styleable.MaterialAlertDialog_backgroundInsetBottom, context.getResources().getDimensionPixelSize(R.dimen.mtrl_alert_dialog_background_inset_bottom));
obtainStyledAttributes.recycle();
if (context.getResources().getConfiguration().getLayoutDirection() == 1) {
dimensionPixelSize3 = dimensionPixelSize;
dimensionPixelSize = dimensionPixelSize3;
}
return new Rect(dimensionPixelSize, dimensionPixelSize2, dimensionPixelSize3, dimensionPixelSize4);
}
}