ADD week 5
This commit is contained in:
		| @@ -0,0 +1,205 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.os.Bundle; | ||||
| import android.text.style.ClickableSpan; | ||||
| import android.util.SparseArray; | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
| import android.view.accessibility.AccessibilityEvent; | ||||
| import android.view.accessibility.AccessibilityNodeInfo; | ||||
| import android.view.accessibility.AccessibilityNodeProvider; | ||||
| import androidx.core.R; | ||||
| import androidx.core.view.accessibility.AccessibilityClickableSpanCompat; | ||||
| import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; | ||||
| import androidx.core.view.accessibility.AccessibilityNodeProviderCompat; | ||||
| import java.lang.ref.WeakReference; | ||||
| import java.util.Collections; | ||||
| import java.util.List; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class AccessibilityDelegateCompat { | ||||
|     private static final View.AccessibilityDelegate DEFAULT_DELEGATE = new View.AccessibilityDelegate(); | ||||
|     private final View.AccessibilityDelegate mBridge; | ||||
|     private final View.AccessibilityDelegate mOriginalDelegate; | ||||
|  | ||||
|     View.AccessibilityDelegate getBridge() { | ||||
|         return this.mBridge; | ||||
|     } | ||||
|  | ||||
|     static final class AccessibilityDelegateAdapter extends View.AccessibilityDelegate { | ||||
|         final AccessibilityDelegateCompat mCompat; | ||||
|  | ||||
|         AccessibilityDelegateAdapter(AccessibilityDelegateCompat accessibilityDelegateCompat) { | ||||
|             this.mCompat = accessibilityDelegateCompat; | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.View.AccessibilityDelegate | ||||
|         public boolean dispatchPopulateAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) { | ||||
|             return this.mCompat.dispatchPopulateAccessibilityEvent(view, accessibilityEvent); | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.View.AccessibilityDelegate | ||||
|         public void onInitializeAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) { | ||||
|             this.mCompat.onInitializeAccessibilityEvent(view, accessibilityEvent); | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.View.AccessibilityDelegate | ||||
|         public void onInitializeAccessibilityNodeInfo(View view, AccessibilityNodeInfo accessibilityNodeInfo) { | ||||
|             AccessibilityNodeInfoCompat wrap = AccessibilityNodeInfoCompat.wrap(accessibilityNodeInfo); | ||||
|             wrap.setScreenReaderFocusable(ViewCompat.isScreenReaderFocusable(view)); | ||||
|             wrap.setHeading(ViewCompat.isAccessibilityHeading(view)); | ||||
|             wrap.setPaneTitle(ViewCompat.getAccessibilityPaneTitle(view)); | ||||
|             wrap.setStateDescription(ViewCompat.getStateDescription(view)); | ||||
|             this.mCompat.onInitializeAccessibilityNodeInfo(view, wrap); | ||||
|             wrap.addSpansToExtras(accessibilityNodeInfo.getText(), view); | ||||
|             List<AccessibilityNodeInfoCompat.AccessibilityActionCompat> actionList = AccessibilityDelegateCompat.getActionList(view); | ||||
|             for (int i = 0; i < actionList.size(); i++) { | ||||
|                 wrap.addAction(actionList.get(i)); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.View.AccessibilityDelegate | ||||
|         public void onPopulateAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) { | ||||
|             this.mCompat.onPopulateAccessibilityEvent(view, accessibilityEvent); | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.View.AccessibilityDelegate | ||||
|         public boolean onRequestSendAccessibilityEvent(ViewGroup viewGroup, View view, AccessibilityEvent accessibilityEvent) { | ||||
|             return this.mCompat.onRequestSendAccessibilityEvent(viewGroup, view, accessibilityEvent); | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.View.AccessibilityDelegate | ||||
|         public void sendAccessibilityEvent(View view, int i) { | ||||
|             this.mCompat.sendAccessibilityEvent(view, i); | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.View.AccessibilityDelegate | ||||
|         public void sendAccessibilityEventUnchecked(View view, AccessibilityEvent accessibilityEvent) { | ||||
|             this.mCompat.sendAccessibilityEventUnchecked(view, accessibilityEvent); | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.View.AccessibilityDelegate | ||||
|         public AccessibilityNodeProvider getAccessibilityNodeProvider(View view) { | ||||
|             AccessibilityNodeProviderCompat accessibilityNodeProvider = this.mCompat.getAccessibilityNodeProvider(view); | ||||
|             if (accessibilityNodeProvider != null) { | ||||
|                 return (AccessibilityNodeProvider) accessibilityNodeProvider.getProvider(); | ||||
|             } | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.View.AccessibilityDelegate | ||||
|         public boolean performAccessibilityAction(View view, int i, Bundle bundle) { | ||||
|             return this.mCompat.performAccessibilityAction(view, i, bundle); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public AccessibilityDelegateCompat() { | ||||
|         this(DEFAULT_DELEGATE); | ||||
|     } | ||||
|  | ||||
|     public AccessibilityDelegateCompat(View.AccessibilityDelegate accessibilityDelegate) { | ||||
|         this.mOriginalDelegate = accessibilityDelegate; | ||||
|         this.mBridge = new AccessibilityDelegateAdapter(this); | ||||
|     } | ||||
|  | ||||
|     public void sendAccessibilityEvent(View view, int i) { | ||||
|         this.mOriginalDelegate.sendAccessibilityEvent(view, i); | ||||
|     } | ||||
|  | ||||
|     public void sendAccessibilityEventUnchecked(View view, AccessibilityEvent accessibilityEvent) { | ||||
|         this.mOriginalDelegate.sendAccessibilityEventUnchecked(view, accessibilityEvent); | ||||
|     } | ||||
|  | ||||
|     public boolean dispatchPopulateAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) { | ||||
|         return this.mOriginalDelegate.dispatchPopulateAccessibilityEvent(view, accessibilityEvent); | ||||
|     } | ||||
|  | ||||
|     public void onPopulateAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) { | ||||
|         this.mOriginalDelegate.onPopulateAccessibilityEvent(view, accessibilityEvent); | ||||
|     } | ||||
|  | ||||
|     public void onInitializeAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) { | ||||
|         this.mOriginalDelegate.onInitializeAccessibilityEvent(view, accessibilityEvent); | ||||
|     } | ||||
|  | ||||
|     public void onInitializeAccessibilityNodeInfo(View view, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) { | ||||
|         this.mOriginalDelegate.onInitializeAccessibilityNodeInfo(view, accessibilityNodeInfoCompat.unwrap()); | ||||
|     } | ||||
|  | ||||
|     public boolean onRequestSendAccessibilityEvent(ViewGroup viewGroup, View view, AccessibilityEvent accessibilityEvent) { | ||||
|         return this.mOriginalDelegate.onRequestSendAccessibilityEvent(viewGroup, view, accessibilityEvent); | ||||
|     } | ||||
|  | ||||
|     public AccessibilityNodeProviderCompat getAccessibilityNodeProvider(View view) { | ||||
|         AccessibilityNodeProvider accessibilityNodeProvider = Api16Impl.getAccessibilityNodeProvider(this.mOriginalDelegate, view); | ||||
|         if (accessibilityNodeProvider != null) { | ||||
|             return new AccessibilityNodeProviderCompat(accessibilityNodeProvider); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public boolean performAccessibilityAction(View view, int i, Bundle bundle) { | ||||
|         List<AccessibilityNodeInfoCompat.AccessibilityActionCompat> actionList = getActionList(view); | ||||
|         boolean z = false; | ||||
|         int i2 = 0; | ||||
|         while (true) { | ||||
|             if (i2 >= actionList.size()) { | ||||
|                 break; | ||||
|             } | ||||
|             AccessibilityNodeInfoCompat.AccessibilityActionCompat accessibilityActionCompat = actionList.get(i2); | ||||
|             if (accessibilityActionCompat.getId() == i) { | ||||
|                 z = accessibilityActionCompat.perform(view, bundle); | ||||
|                 break; | ||||
|             } | ||||
|             i2++; | ||||
|         } | ||||
|         if (!z) { | ||||
|             z = Api16Impl.performAccessibilityAction(this.mOriginalDelegate, view, i, bundle); | ||||
|         } | ||||
|         return (z || i != R.id.accessibility_action_clickable_span || bundle == null) ? z : performClickableSpanAction(bundle.getInt(AccessibilityClickableSpanCompat.SPAN_ID, -1), view); | ||||
|     } | ||||
|  | ||||
|     private boolean performClickableSpanAction(int i, View view) { | ||||
|         WeakReference weakReference; | ||||
|         SparseArray sparseArray = (SparseArray) view.getTag(R.id.tag_accessibility_clickable_spans); | ||||
|         if (sparseArray == null || (weakReference = (WeakReference) sparseArray.get(i)) == null) { | ||||
|             return false; | ||||
|         } | ||||
|         ClickableSpan clickableSpan = (ClickableSpan) weakReference.get(); | ||||
|         if (!isSpanStillValid(clickableSpan, view)) { | ||||
|             return false; | ||||
|         } | ||||
|         clickableSpan.onClick(view); | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     private boolean isSpanStillValid(ClickableSpan clickableSpan, View view) { | ||||
|         if (clickableSpan != null) { | ||||
|             ClickableSpan[] clickableSpans = AccessibilityNodeInfoCompat.getClickableSpans(view.createAccessibilityNodeInfo().getText()); | ||||
|             for (int i = 0; clickableSpans != null && i < clickableSpans.length; i++) { | ||||
|                 if (clickableSpan.equals(clickableSpans[i])) { | ||||
|                     return true; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     static List<AccessibilityNodeInfoCompat.AccessibilityActionCompat> getActionList(View view) { | ||||
|         List<AccessibilityNodeInfoCompat.AccessibilityActionCompat> list = (List) view.getTag(R.id.tag_accessibility_actions); | ||||
|         return list == null ? Collections.emptyList() : list; | ||||
|     } | ||||
|  | ||||
|     static class Api16Impl { | ||||
|         private Api16Impl() { | ||||
|         } | ||||
|  | ||||
|         static AccessibilityNodeProvider getAccessibilityNodeProvider(View.AccessibilityDelegate accessibilityDelegate, View view) { | ||||
|             return accessibilityDelegate.getAccessibilityNodeProvider(view); | ||||
|         } | ||||
|  | ||||
|         static boolean performAccessibilityAction(View.AccessibilityDelegate accessibilityDelegate, View view, int i, Bundle bundle) { | ||||
|             return accessibilityDelegate.performAccessibilityAction(view, i, bundle); | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										86
									
								
								02-Easy5/E5/sources/androidx/core/view/ActionProvider.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								02-Easy5/E5/sources/androidx/core/view/ActionProvider.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,86 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.util.Log; | ||||
| import android.view.MenuItem; | ||||
| import android.view.SubMenu; | ||||
| import android.view.View; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public abstract class ActionProvider { | ||||
|     private static final String TAG = "ActionProvider(support)"; | ||||
|     private final Context mContext; | ||||
|     private SubUiVisibilityListener mSubUiVisibilityListener; | ||||
|     private VisibilityListener mVisibilityListener; | ||||
|  | ||||
|     public interface SubUiVisibilityListener { | ||||
|         void onSubUiVisibilityChanged(boolean z); | ||||
|     } | ||||
|  | ||||
|     public interface VisibilityListener { | ||||
|         void onActionProviderVisibilityChanged(boolean z); | ||||
|     } | ||||
|  | ||||
|     public Context getContext() { | ||||
|         return this.mContext; | ||||
|     } | ||||
|  | ||||
|     public boolean hasSubMenu() { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public boolean isVisible() { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     public abstract View onCreateActionView(); | ||||
|  | ||||
|     public boolean onPerformDefaultAction() { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public void onPrepareSubMenu(SubMenu subMenu) { | ||||
|     } | ||||
|  | ||||
|     public boolean overridesItemVisibility() { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public void reset() { | ||||
|         this.mVisibilityListener = null; | ||||
|         this.mSubUiVisibilityListener = null; | ||||
|     } | ||||
|  | ||||
|     public void setSubUiVisibilityListener(SubUiVisibilityListener subUiVisibilityListener) { | ||||
|         this.mSubUiVisibilityListener = subUiVisibilityListener; | ||||
|     } | ||||
|  | ||||
|     public ActionProvider(Context context) { | ||||
|         this.mContext = context; | ||||
|     } | ||||
|  | ||||
|     public View onCreateActionView(MenuItem menuItem) { | ||||
|         return onCreateActionView(); | ||||
|     } | ||||
|  | ||||
|     public void refreshVisibility() { | ||||
|         if (this.mVisibilityListener == null || !overridesItemVisibility()) { | ||||
|             return; | ||||
|         } | ||||
|         this.mVisibilityListener.onActionProviderVisibilityChanged(isVisible()); | ||||
|     } | ||||
|  | ||||
|     public void subUiVisibilityChanged(boolean z) { | ||||
|         SubUiVisibilityListener subUiVisibilityListener = this.mSubUiVisibilityListener; | ||||
|         if (subUiVisibilityListener != null) { | ||||
|             subUiVisibilityListener.onSubUiVisibilityChanged(z); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void setVisibilityListener(VisibilityListener visibilityListener) { | ||||
|         if (this.mVisibilityListener != null && visibilityListener != null) { | ||||
|             Log.w(TAG, "setVisibilityListener: Setting a new ActionProvider.VisibilityListener when one is already set. Are you reusing this " + getClass().getSimpleName() + " instance while it is still in use somewhere else?"); | ||||
|         } | ||||
|         this.mVisibilityListener = visibilityListener; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										23
									
								
								02-Easy5/E5/sources/androidx/core/view/Api16Impl.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								02-Easy5/E5/sources/androidx/core/view/Api16Impl.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
| import kotlin.Metadata; | ||||
| import kotlin.jvm.JvmStatic; | ||||
| import kotlin.jvm.internal.Intrinsics; | ||||
|  | ||||
| /* compiled from: View.kt */ | ||||
| @Metadata(d1 = {"\u0000$\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\t\n\u0000\bÃ\u0002\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J \u0010\u0003\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0007\u001a\u00020\b2\u0006\u0010\t\u001a\u00020\nH\u0007¨\u0006\u000b"}, d2 = {"Landroidx/core/view/Api16Impl;", "", "()V", "postOnAnimationDelayed", "", "view", "Landroid/view/View;", "action", "Ljava/lang/Runnable;", "delayInMillis", "", "core-ktx_release"}, k = 1, mv = {1, 7, 1}, xi = 48) | ||||
| /* loaded from: classes.dex */ | ||||
| final class Api16Impl { | ||||
|     public static final Api16Impl INSTANCE = new Api16Impl(); | ||||
|  | ||||
|     private Api16Impl() { | ||||
|     } | ||||
|  | ||||
|     @JvmStatic | ||||
|     public static final void postOnAnimationDelayed(View view, Runnable action, long delayInMillis) { | ||||
|         Intrinsics.checkNotNullParameter(view, "view"); | ||||
|         Intrinsics.checkNotNullParameter(action, "action"); | ||||
|         view.postOnAnimationDelayed(action, delayInMillis); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										471
									
								
								02-Easy5/E5/sources/androidx/core/view/ContentInfoCompat.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										471
									
								
								02-Easy5/E5/sources/androidx/core/view/ContentInfoCompat.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,471 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.content.ClipData; | ||||
| import android.content.ClipDescription; | ||||
| import android.net.Uri; | ||||
| import android.os.Build; | ||||
| import android.os.Bundle; | ||||
| import android.util.Pair; | ||||
| import android.view.ContentInfo; | ||||
| import androidx.core.util.HalfKt$$ExternalSyntheticApiModelOutline0; | ||||
| import androidx.core.util.Preconditions; | ||||
| import androidx.core.util.Predicate; | ||||
| import java.lang.annotation.Retention; | ||||
| import java.lang.annotation.RetentionPolicy; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import java.util.Objects; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class ContentInfoCompat { | ||||
|     public static final int FLAG_CONVERT_TO_PLAIN_TEXT = 1; | ||||
|     public static final int SOURCE_APP = 0; | ||||
|     public static final int SOURCE_AUTOFILL = 4; | ||||
|     public static final int SOURCE_CLIPBOARD = 1; | ||||
|     public static final int SOURCE_DRAG_AND_DROP = 3; | ||||
|     public static final int SOURCE_INPUT_METHOD = 2; | ||||
|     public static final int SOURCE_PROCESS_TEXT = 5; | ||||
|     private final Compat mCompat; | ||||
|  | ||||
|     private interface BuilderCompat { | ||||
|         ContentInfoCompat build(); | ||||
|  | ||||
|         void setClip(ClipData clipData); | ||||
|  | ||||
|         void setExtras(Bundle bundle); | ||||
|  | ||||
|         void setFlags(int i); | ||||
|  | ||||
|         void setLinkUri(Uri uri); | ||||
|  | ||||
|         void setSource(int i); | ||||
|     } | ||||
|  | ||||
|     private interface Compat { | ||||
|         ClipData getClip(); | ||||
|  | ||||
|         Bundle getExtras(); | ||||
|  | ||||
|         int getFlags(); | ||||
|  | ||||
|         Uri getLinkUri(); | ||||
|  | ||||
|         int getSource(); | ||||
|  | ||||
|         ContentInfo getWrapped(); | ||||
|     } | ||||
|  | ||||
|     @Retention(RetentionPolicy.SOURCE) | ||||
|     public @interface Flags { | ||||
|     } | ||||
|  | ||||
|     @Retention(RetentionPolicy.SOURCE) | ||||
|     public @interface Source { | ||||
|     } | ||||
|  | ||||
|     static String sourceToString(int i) { | ||||
|         return i != 0 ? i != 1 ? i != 2 ? i != 3 ? i != 4 ? i != 5 ? String.valueOf(i) : "SOURCE_PROCESS_TEXT" : "SOURCE_AUTOFILL" : "SOURCE_DRAG_AND_DROP" : "SOURCE_INPUT_METHOD" : "SOURCE_CLIPBOARD" : "SOURCE_APP"; | ||||
|     } | ||||
|  | ||||
|     static String flagsToString(int i) { | ||||
|         return (i & 1) != 0 ? "FLAG_CONVERT_TO_PLAIN_TEXT" : String.valueOf(i); | ||||
|     } | ||||
|  | ||||
|     ContentInfoCompat(Compat compat) { | ||||
|         this.mCompat = compat; | ||||
|     } | ||||
|  | ||||
|     public static ContentInfoCompat toContentInfoCompat(ContentInfo contentInfo) { | ||||
|         return new ContentInfoCompat(new Compat31Impl(contentInfo)); | ||||
|     } | ||||
|  | ||||
|     public ContentInfo toContentInfo() { | ||||
|         return HalfKt$$ExternalSyntheticApiModelOutline0.m(Objects.requireNonNull(this.mCompat.getWrapped())); | ||||
|     } | ||||
|  | ||||
|     public String toString() { | ||||
|         return this.mCompat.toString(); | ||||
|     } | ||||
|  | ||||
|     public ClipData getClip() { | ||||
|         return this.mCompat.getClip(); | ||||
|     } | ||||
|  | ||||
|     public int getSource() { | ||||
|         return this.mCompat.getSource(); | ||||
|     } | ||||
|  | ||||
|     public int getFlags() { | ||||
|         return this.mCompat.getFlags(); | ||||
|     } | ||||
|  | ||||
|     public Uri getLinkUri() { | ||||
|         return this.mCompat.getLinkUri(); | ||||
|     } | ||||
|  | ||||
|     public Bundle getExtras() { | ||||
|         return this.mCompat.getExtras(); | ||||
|     } | ||||
|  | ||||
|     public Pair<ContentInfoCompat, ContentInfoCompat> partition(Predicate<ClipData.Item> predicate) { | ||||
|         ClipData clip = this.mCompat.getClip(); | ||||
|         if (clip.getItemCount() == 1) { | ||||
|             boolean test = predicate.test(clip.getItemAt(0)); | ||||
|             return Pair.create(test ? this : null, test ? null : this); | ||||
|         } | ||||
|         Pair<ClipData, ClipData> partition = partition(clip, predicate); | ||||
|         if (partition.first == null) { | ||||
|             return Pair.create(null, this); | ||||
|         } | ||||
|         if (partition.second == null) { | ||||
|             return Pair.create(this, null); | ||||
|         } | ||||
|         return Pair.create(new Builder(this).setClip((ClipData) partition.first).build(), new Builder(this).setClip((ClipData) partition.second).build()); | ||||
|     } | ||||
|  | ||||
|     static Pair<ClipData, ClipData> partition(ClipData clipData, Predicate<ClipData.Item> predicate) { | ||||
|         ArrayList arrayList = null; | ||||
|         ArrayList arrayList2 = null; | ||||
|         for (int i = 0; i < clipData.getItemCount(); i++) { | ||||
|             ClipData.Item itemAt = clipData.getItemAt(i); | ||||
|             if (predicate.test(itemAt)) { | ||||
|                 if (arrayList == null) { | ||||
|                     arrayList = new ArrayList(); | ||||
|                 } | ||||
|                 arrayList.add(itemAt); | ||||
|             } else { | ||||
|                 if (arrayList2 == null) { | ||||
|                     arrayList2 = new ArrayList(); | ||||
|                 } | ||||
|                 arrayList2.add(itemAt); | ||||
|             } | ||||
|         } | ||||
|         if (arrayList == null) { | ||||
|             return Pair.create(null, clipData); | ||||
|         } | ||||
|         if (arrayList2 == null) { | ||||
|             return Pair.create(clipData, null); | ||||
|         } | ||||
|         return Pair.create(buildClipData(clipData.getDescription(), arrayList), buildClipData(clipData.getDescription(), arrayList2)); | ||||
|     } | ||||
|  | ||||
|     static ClipData buildClipData(ClipDescription clipDescription, List<ClipData.Item> list) { | ||||
|         ClipData clipData = new ClipData(new ClipDescription(clipDescription), list.get(0)); | ||||
|         for (int i = 1; i < list.size(); i++) { | ||||
|             clipData.addItem(list.get(i)); | ||||
|         } | ||||
|         return clipData; | ||||
|     } | ||||
|  | ||||
|     public static Pair<ContentInfo, ContentInfo> partition(ContentInfo contentInfo, java.util.function.Predicate<ClipData.Item> predicate) { | ||||
|         return Api31Impl.partition(contentInfo, predicate); | ||||
|     } | ||||
|  | ||||
|     private static final class Api31Impl { | ||||
|         private Api31Impl() { | ||||
|         } | ||||
|  | ||||
|         public static Pair<ContentInfo, ContentInfo> partition(ContentInfo contentInfo, final java.util.function.Predicate<ClipData.Item> predicate) { | ||||
|             ClipData clip = contentInfo.getClip(); | ||||
|             if (clip.getItemCount() == 1) { | ||||
|                 boolean test = predicate.test(clip.getItemAt(0)); | ||||
|                 ContentInfo contentInfo2 = test ? contentInfo : null; | ||||
|                 if (test) { | ||||
|                     contentInfo = null; | ||||
|                 } | ||||
|                 return Pair.create(contentInfo2, contentInfo); | ||||
|             } | ||||
|             Objects.requireNonNull(predicate); | ||||
|             Pair<ClipData, ClipData> partition = ContentInfoCompat.partition(clip, (Predicate<ClipData.Item>) new Predicate() { // from class: androidx.core.view.ContentInfoCompat$Api31Impl$$ExternalSyntheticLambda0 | ||||
|                 @Override // androidx.core.util.Predicate | ||||
|                 public /* synthetic */ Predicate and(Predicate predicate2) { | ||||
|                     return Predicate.CC.$default$and(this, predicate2); | ||||
|                 } | ||||
|  | ||||
|                 @Override // androidx.core.util.Predicate | ||||
|                 public /* synthetic */ Predicate negate() { | ||||
|                     return Predicate.CC.$default$negate(this); | ||||
|                 } | ||||
|  | ||||
|                 @Override // androidx.core.util.Predicate | ||||
|                 public /* synthetic */ Predicate or(Predicate predicate2) { | ||||
|                     return Predicate.CC.$default$or(this, predicate2); | ||||
|                 } | ||||
|  | ||||
|                 @Override // androidx.core.util.Predicate | ||||
|                 public final boolean test(Object obj) { | ||||
|                     return predicate.test((ClipData.Item) obj); | ||||
|                 } | ||||
|             }); | ||||
|             if (partition.first == null) { | ||||
|                 return Pair.create(null, contentInfo); | ||||
|             } | ||||
|             if (partition.second == null) { | ||||
|                 return Pair.create(contentInfo, null); | ||||
|             } | ||||
|             return Pair.create(new ContentInfo.Builder(contentInfo).setClip((ClipData) partition.first).build(), new ContentInfo.Builder(contentInfo).setClip((ClipData) partition.second).build()); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static final class CompatImpl implements Compat { | ||||
|         private final ClipData mClip; | ||||
|         private final Bundle mExtras; | ||||
|         private final int mFlags; | ||||
|         private final Uri mLinkUri; | ||||
|         private final int mSource; | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.Compat | ||||
|         public ClipData getClip() { | ||||
|             return this.mClip; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.Compat | ||||
|         public Bundle getExtras() { | ||||
|             return this.mExtras; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.Compat | ||||
|         public int getFlags() { | ||||
|             return this.mFlags; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.Compat | ||||
|         public Uri getLinkUri() { | ||||
|             return this.mLinkUri; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.Compat | ||||
|         public int getSource() { | ||||
|             return this.mSource; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.Compat | ||||
|         public ContentInfo getWrapped() { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         CompatImpl(BuilderCompatImpl builderCompatImpl) { | ||||
|             this.mClip = (ClipData) Preconditions.checkNotNull(builderCompatImpl.mClip); | ||||
|             this.mSource = Preconditions.checkArgumentInRange(builderCompatImpl.mSource, 0, 5, "source"); | ||||
|             this.mFlags = Preconditions.checkFlagsArgument(builderCompatImpl.mFlags, 1); | ||||
|             this.mLinkUri = builderCompatImpl.mLinkUri; | ||||
|             this.mExtras = builderCompatImpl.mExtras; | ||||
|         } | ||||
|  | ||||
|         public String toString() { | ||||
|             String str; | ||||
|             StringBuilder sb = new StringBuilder("ContentInfoCompat{clip="); | ||||
|             sb.append(this.mClip.getDescription()); | ||||
|             sb.append(", source="); | ||||
|             sb.append(ContentInfoCompat.sourceToString(this.mSource)); | ||||
|             sb.append(", flags="); | ||||
|             sb.append(ContentInfoCompat.flagsToString(this.mFlags)); | ||||
|             if (this.mLinkUri == null) { | ||||
|                 str = ""; | ||||
|             } else { | ||||
|                 str = ", hasLinkUri(" + this.mLinkUri.toString().length() + ")"; | ||||
|             } | ||||
|             sb.append(str); | ||||
|             sb.append(this.mExtras != null ? ", hasExtras" : ""); | ||||
|             sb.append("}"); | ||||
|             return sb.toString(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static final class Compat31Impl implements Compat { | ||||
|         private final ContentInfo mWrapped; | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.Compat | ||||
|         public ContentInfo getWrapped() { | ||||
|             return this.mWrapped; | ||||
|         } | ||||
|  | ||||
|         Compat31Impl(ContentInfo contentInfo) { | ||||
|             this.mWrapped = HalfKt$$ExternalSyntheticApiModelOutline0.m(Preconditions.checkNotNull(contentInfo)); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.Compat | ||||
|         public ClipData getClip() { | ||||
|             ClipData clip; | ||||
|             clip = this.mWrapped.getClip(); | ||||
|             return clip; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.Compat | ||||
|         public int getSource() { | ||||
|             int source; | ||||
|             source = this.mWrapped.getSource(); | ||||
|             return source; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.Compat | ||||
|         public int getFlags() { | ||||
|             int flags; | ||||
|             flags = this.mWrapped.getFlags(); | ||||
|             return flags; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.Compat | ||||
|         public Uri getLinkUri() { | ||||
|             Uri linkUri; | ||||
|             linkUri = this.mWrapped.getLinkUri(); | ||||
|             return linkUri; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.Compat | ||||
|         public Bundle getExtras() { | ||||
|             Bundle extras; | ||||
|             extras = this.mWrapped.getExtras(); | ||||
|             return extras; | ||||
|         } | ||||
|  | ||||
|         public String toString() { | ||||
|             return "ContentInfoCompat{" + this.mWrapped + "}"; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class Builder { | ||||
|         private final BuilderCompat mBuilderCompat; | ||||
|  | ||||
|         public Builder(ContentInfoCompat contentInfoCompat) { | ||||
|             if (Build.VERSION.SDK_INT >= 31) { | ||||
|                 this.mBuilderCompat = new BuilderCompat31Impl(contentInfoCompat); | ||||
|             } else { | ||||
|                 this.mBuilderCompat = new BuilderCompatImpl(contentInfoCompat); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public Builder(ClipData clipData, int i) { | ||||
|             if (Build.VERSION.SDK_INT >= 31) { | ||||
|                 this.mBuilderCompat = new BuilderCompat31Impl(clipData, i); | ||||
|             } else { | ||||
|                 this.mBuilderCompat = new BuilderCompatImpl(clipData, i); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public Builder setClip(ClipData clipData) { | ||||
|             this.mBuilderCompat.setClip(clipData); | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public Builder setSource(int i) { | ||||
|             this.mBuilderCompat.setSource(i); | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public Builder setFlags(int i) { | ||||
|             this.mBuilderCompat.setFlags(i); | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public Builder setLinkUri(Uri uri) { | ||||
|             this.mBuilderCompat.setLinkUri(uri); | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public Builder setExtras(Bundle bundle) { | ||||
|             this.mBuilderCompat.setExtras(bundle); | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public ContentInfoCompat build() { | ||||
|             return this.mBuilderCompat.build(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static final class BuilderCompatImpl implements BuilderCompat { | ||||
|         ClipData mClip; | ||||
|         Bundle mExtras; | ||||
|         int mFlags; | ||||
|         Uri mLinkUri; | ||||
|         int mSource; | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.BuilderCompat | ||||
|         public void setClip(ClipData clipData) { | ||||
|             this.mClip = clipData; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.BuilderCompat | ||||
|         public void setExtras(Bundle bundle) { | ||||
|             this.mExtras = bundle; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.BuilderCompat | ||||
|         public void setFlags(int i) { | ||||
|             this.mFlags = i; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.BuilderCompat | ||||
|         public void setLinkUri(Uri uri) { | ||||
|             this.mLinkUri = uri; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.BuilderCompat | ||||
|         public void setSource(int i) { | ||||
|             this.mSource = i; | ||||
|         } | ||||
|  | ||||
|         BuilderCompatImpl(ClipData clipData, int i) { | ||||
|             this.mClip = clipData; | ||||
|             this.mSource = i; | ||||
|         } | ||||
|  | ||||
|         BuilderCompatImpl(ContentInfoCompat contentInfoCompat) { | ||||
|             this.mClip = contentInfoCompat.getClip(); | ||||
|             this.mSource = contentInfoCompat.getSource(); | ||||
|             this.mFlags = contentInfoCompat.getFlags(); | ||||
|             this.mLinkUri = contentInfoCompat.getLinkUri(); | ||||
|             this.mExtras = contentInfoCompat.getExtras(); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.BuilderCompat | ||||
|         public ContentInfoCompat build() { | ||||
|             return new ContentInfoCompat(new CompatImpl(this)); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static final class BuilderCompat31Impl implements BuilderCompat { | ||||
|         private final ContentInfo.Builder mPlatformBuilder; | ||||
|  | ||||
|         BuilderCompat31Impl(ClipData clipData, int i) { | ||||
|             this.mPlatformBuilder = HalfKt$$ExternalSyntheticApiModelOutline0.m(clipData, i); | ||||
|         } | ||||
|  | ||||
|         BuilderCompat31Impl(ContentInfoCompat contentInfoCompat) { | ||||
|             HalfKt$$ExternalSyntheticApiModelOutline0.m151m(); | ||||
|             this.mPlatformBuilder = HalfKt$$ExternalSyntheticApiModelOutline0.m140m(contentInfoCompat.toContentInfo()); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.BuilderCompat | ||||
|         public void setClip(ClipData clipData) { | ||||
|             this.mPlatformBuilder.setClip(clipData); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.BuilderCompat | ||||
|         public void setSource(int i) { | ||||
|             this.mPlatformBuilder.setSource(i); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.BuilderCompat | ||||
|         public void setFlags(int i) { | ||||
|             this.mPlatformBuilder.setFlags(i); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.BuilderCompat | ||||
|         public void setLinkUri(Uri uri) { | ||||
|             this.mPlatformBuilder.setLinkUri(uri); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.BuilderCompat | ||||
|         public void setExtras(Bundle bundle) { | ||||
|             this.mPlatformBuilder.setExtras(bundle); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ContentInfoCompat.BuilderCompat | ||||
|         public ContentInfoCompat build() { | ||||
|             ContentInfo build; | ||||
|             build = this.mPlatformBuilder.build(); | ||||
|             return new ContentInfoCompat(new Compat31Impl(build)); | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										228
									
								
								02-Easy5/E5/sources/androidx/core/view/DisplayCompat.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										228
									
								
								02-Easy5/E5/sources/androidx/core/view/DisplayCompat.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,228 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.app.UiModeManager; | ||||
| import android.content.Context; | ||||
| import android.graphics.Point; | ||||
| import android.os.Build; | ||||
| import android.text.TextUtils; | ||||
| import android.view.Display; | ||||
| import androidx.core.util.Preconditions; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class DisplayCompat { | ||||
|     private static final int DISPLAY_SIZE_4K_HEIGHT = 2160; | ||||
|     private static final int DISPLAY_SIZE_4K_WIDTH = 3840; | ||||
|  | ||||
|     private DisplayCompat() { | ||||
|     } | ||||
|  | ||||
|     public static ModeCompat getMode(Context context, Display display) { | ||||
|         if (Build.VERSION.SDK_INT >= 23) { | ||||
|             return Api23Impl.getMode(context, display); | ||||
|         } | ||||
|         return new ModeCompat(getDisplaySize(context, display)); | ||||
|     } | ||||
|  | ||||
|     private static Point getDisplaySize(Context context, Display display) { | ||||
|         Point currentDisplaySizeFromWorkarounds = getCurrentDisplaySizeFromWorkarounds(context, display); | ||||
|         if (currentDisplaySizeFromWorkarounds != null) { | ||||
|             return currentDisplaySizeFromWorkarounds; | ||||
|         } | ||||
|         Point point = new Point(); | ||||
|         Api17Impl.getRealSize(display, point); | ||||
|         return point; | ||||
|     } | ||||
|  | ||||
|     public static ModeCompat[] getSupportedModes(Context context, Display display) { | ||||
|         return Build.VERSION.SDK_INT >= 23 ? Api23Impl.getSupportedModes(context, display) : new ModeCompat[]{getMode(context, display)}; | ||||
|     } | ||||
|  | ||||
|     private static Point parseDisplaySize(String str) throws NumberFormatException { | ||||
|         String[] split = str.trim().split("x", -1); | ||||
|         if (split.length == 2) { | ||||
|             int parseInt = Integer.parseInt(split[0]); | ||||
|             int parseInt2 = Integer.parseInt(split[1]); | ||||
|             if (parseInt > 0 && parseInt2 > 0) { | ||||
|                 return new Point(parseInt, parseInt2); | ||||
|             } | ||||
|         } | ||||
|         throw new NumberFormatException(); | ||||
|     } | ||||
|  | ||||
|     private static String getSystemProperty(String str) { | ||||
|         try { | ||||
|             Class<?> cls = Class.forName("android.os.SystemProperties"); | ||||
|             return (String) cls.getMethod("get", String.class).invoke(cls, str); | ||||
|         } catch (Exception unused) { | ||||
|             return null; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static boolean isTv(Context context) { | ||||
|         UiModeManager uiModeManager = (UiModeManager) context.getSystemService("uimode"); | ||||
|         return uiModeManager != null && uiModeManager.getCurrentModeType() == 4; | ||||
|     } | ||||
|  | ||||
|     private static Point parsePhysicalDisplaySizeFromSystemProperties(String str, Display display) { | ||||
|         if (display.getDisplayId() != 0) { | ||||
|             return null; | ||||
|         } | ||||
|         String systemProperty = getSystemProperty(str); | ||||
|         if (!TextUtils.isEmpty(systemProperty) && systemProperty != null) { | ||||
|             try { | ||||
|                 return parseDisplaySize(systemProperty); | ||||
|             } catch (NumberFormatException unused) { | ||||
|             } | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     static Point getCurrentDisplaySizeFromWorkarounds(Context context, Display display) { | ||||
|         Point parsePhysicalDisplaySizeFromSystemProperties; | ||||
|         if (Build.VERSION.SDK_INT < 28) { | ||||
|             parsePhysicalDisplaySizeFromSystemProperties = parsePhysicalDisplaySizeFromSystemProperties("sys.display-size", display); | ||||
|         } else { | ||||
|             parsePhysicalDisplaySizeFromSystemProperties = parsePhysicalDisplaySizeFromSystemProperties("vendor.display-size", display); | ||||
|         } | ||||
|         if (parsePhysicalDisplaySizeFromSystemProperties != null) { | ||||
|             return parsePhysicalDisplaySizeFromSystemProperties; | ||||
|         } | ||||
|         if (isSonyBravia4kTv(context) && isCurrentModeTheLargestMode(display)) { | ||||
|             return new Point(DISPLAY_SIZE_4K_WIDTH, DISPLAY_SIZE_4K_HEIGHT); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     private static boolean isSonyBravia4kTv(Context context) { | ||||
|         return isTv(context) && "Sony".equals(Build.MANUFACTURER) && Build.MODEL.startsWith("BRAVIA") && context.getPackageManager().hasSystemFeature("com.sony.dtv.hardware.panel.qfhd"); | ||||
|     } | ||||
|  | ||||
|     static boolean isCurrentModeTheLargestMode(Display display) { | ||||
|         if (Build.VERSION.SDK_INT >= 23) { | ||||
|             return Api23Impl.isCurrentModeTheLargestMode(display); | ||||
|         } | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     static class Api23Impl { | ||||
|         private Api23Impl() { | ||||
|         } | ||||
|  | ||||
|         static ModeCompat getMode(Context context, Display display) { | ||||
|             Display.Mode mode = display.getMode(); | ||||
|             Point currentDisplaySizeFromWorkarounds = DisplayCompat.getCurrentDisplaySizeFromWorkarounds(context, display); | ||||
|             if (currentDisplaySizeFromWorkarounds == null || physicalSizeEquals(mode, currentDisplaySizeFromWorkarounds)) { | ||||
|                 return new ModeCompat(mode, true); | ||||
|             } | ||||
|             return new ModeCompat(mode, currentDisplaySizeFromWorkarounds); | ||||
|         } | ||||
|  | ||||
|         public static ModeCompat[] getSupportedModes(Context context, Display display) { | ||||
|             ModeCompat modeCompat; | ||||
|             Display.Mode[] supportedModes = display.getSupportedModes(); | ||||
|             ModeCompat[] modeCompatArr = new ModeCompat[supportedModes.length]; | ||||
|             Display.Mode mode = display.getMode(); | ||||
|             Point currentDisplaySizeFromWorkarounds = DisplayCompat.getCurrentDisplaySizeFromWorkarounds(context, display); | ||||
|             if (currentDisplaySizeFromWorkarounds == null || physicalSizeEquals(mode, currentDisplaySizeFromWorkarounds)) { | ||||
|                 for (int i = 0; i < supportedModes.length; i++) { | ||||
|                     modeCompatArr[i] = new ModeCompat(supportedModes[i], physicalSizeEquals(supportedModes[i], mode)); | ||||
|                 } | ||||
|             } else { | ||||
|                 for (int i2 = 0; i2 < supportedModes.length; i2++) { | ||||
|                     if (physicalSizeEquals(supportedModes[i2], mode)) { | ||||
|                         modeCompat = new ModeCompat(supportedModes[i2], currentDisplaySizeFromWorkarounds); | ||||
|                     } else { | ||||
|                         modeCompat = new ModeCompat(supportedModes[i2], false); | ||||
|                     } | ||||
|                     modeCompatArr[i2] = modeCompat; | ||||
|                 } | ||||
|             } | ||||
|             return modeCompatArr; | ||||
|         } | ||||
|  | ||||
|         static boolean isCurrentModeTheLargestMode(Display display) { | ||||
|             Display.Mode mode = display.getMode(); | ||||
|             for (Display.Mode mode2 : display.getSupportedModes()) { | ||||
|                 if (mode.getPhysicalHeight() < mode2.getPhysicalHeight() || mode.getPhysicalWidth() < mode2.getPhysicalWidth()) { | ||||
|                     return false; | ||||
|                 } | ||||
|             } | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         static boolean physicalSizeEquals(Display.Mode mode, Point point) { | ||||
|             return (mode.getPhysicalWidth() == point.x && mode.getPhysicalHeight() == point.y) || (mode.getPhysicalWidth() == point.y && mode.getPhysicalHeight() == point.x); | ||||
|         } | ||||
|  | ||||
|         static boolean physicalSizeEquals(Display.Mode mode, Display.Mode mode2) { | ||||
|             return mode.getPhysicalWidth() == mode2.getPhysicalWidth() && mode.getPhysicalHeight() == mode2.getPhysicalHeight(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api17Impl { | ||||
|         private Api17Impl() { | ||||
|         } | ||||
|  | ||||
|         static void getRealSize(Display display, Point point) { | ||||
|             display.getRealSize(point); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class ModeCompat { | ||||
|         private final boolean mIsNative; | ||||
|         private final Display.Mode mMode; | ||||
|         private final Point mPhysicalSize; | ||||
|  | ||||
|         @Deprecated | ||||
|         public boolean isNative() { | ||||
|             return this.mIsNative; | ||||
|         } | ||||
|  | ||||
|         public Display.Mode toMode() { | ||||
|             return this.mMode; | ||||
|         } | ||||
|  | ||||
|         ModeCompat(Point point) { | ||||
|             Preconditions.checkNotNull(point, "physicalSize == null"); | ||||
|             this.mPhysicalSize = point; | ||||
|             this.mMode = null; | ||||
|             this.mIsNative = true; | ||||
|         } | ||||
|  | ||||
|         ModeCompat(Display.Mode mode, boolean z) { | ||||
|             Preconditions.checkNotNull(mode, "mode == null, can't wrap a null reference"); | ||||
|             this.mPhysicalSize = new Point(Api23Impl.getPhysicalWidth(mode), Api23Impl.getPhysicalHeight(mode)); | ||||
|             this.mMode = mode; | ||||
|             this.mIsNative = z; | ||||
|         } | ||||
|  | ||||
|         ModeCompat(Display.Mode mode, Point point) { | ||||
|             Preconditions.checkNotNull(mode, "mode == null, can't wrap a null reference"); | ||||
|             Preconditions.checkNotNull(point, "physicalSize == null"); | ||||
|             this.mPhysicalSize = point; | ||||
|             this.mMode = mode; | ||||
|             this.mIsNative = true; | ||||
|         } | ||||
|  | ||||
|         public int getPhysicalWidth() { | ||||
|             return this.mPhysicalSize.x; | ||||
|         } | ||||
|  | ||||
|         public int getPhysicalHeight() { | ||||
|             return this.mPhysicalSize.y; | ||||
|         } | ||||
|  | ||||
|         static class Api23Impl { | ||||
|             private Api23Impl() { | ||||
|             } | ||||
|  | ||||
|             static int getPhysicalWidth(Display.Mode mode) { | ||||
|                 return mode.getPhysicalWidth(); | ||||
|             } | ||||
|  | ||||
|             static int getPhysicalHeight(Display.Mode mode) { | ||||
|                 return mode.getPhysicalHeight(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										182
									
								
								02-Easy5/E5/sources/androidx/core/view/DisplayCutoutCompat.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								02-Easy5/E5/sources/androidx/core/view/DisplayCutoutCompat.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,182 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.graphics.Rect; | ||||
| import android.os.Build; | ||||
| import android.view.DisplayCutout; | ||||
| import androidx.core.graphics.Insets; | ||||
| import androidx.core.util.ObjectsCompat; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Collections; | ||||
| import java.util.List; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class DisplayCutoutCompat { | ||||
|     private final DisplayCutout mDisplayCutout; | ||||
|  | ||||
|     DisplayCutout unwrap() { | ||||
|         return this.mDisplayCutout; | ||||
|     } | ||||
|  | ||||
|     public DisplayCutoutCompat(Rect rect, List<Rect> list) { | ||||
|         this(Build.VERSION.SDK_INT >= 28 ? Api28Impl.createDisplayCutout(rect, list) : null); | ||||
|     } | ||||
|  | ||||
|     public DisplayCutoutCompat(Insets insets, Rect rect, Rect rect2, Rect rect3, Rect rect4, Insets insets2) { | ||||
|         this(constructDisplayCutout(insets, rect, rect2, rect3, rect4, insets2)); | ||||
|     } | ||||
|  | ||||
|     private static DisplayCutout constructDisplayCutout(Insets insets, Rect rect, Rect rect2, Rect rect3, Rect rect4, Insets insets2) { | ||||
|         if (Build.VERSION.SDK_INT >= 30) { | ||||
|             return Api30Impl.createDisplayCutout(insets.toPlatformInsets(), rect, rect2, rect3, rect4, insets2.toPlatformInsets()); | ||||
|         } | ||||
|         if (Build.VERSION.SDK_INT >= 29) { | ||||
|             return Api29Impl.createDisplayCutout(insets.toPlatformInsets(), rect, rect2, rect3, rect4); | ||||
|         } | ||||
|         if (Build.VERSION.SDK_INT < 28) { | ||||
|             return null; | ||||
|         } | ||||
|         Rect rect5 = new Rect(insets.left, insets.top, insets.right, insets.bottom); | ||||
|         ArrayList arrayList = new ArrayList(); | ||||
|         if (rect != null) { | ||||
|             arrayList.add(rect); | ||||
|         } | ||||
|         if (rect2 != null) { | ||||
|             arrayList.add(rect2); | ||||
|         } | ||||
|         if (rect3 != null) { | ||||
|             arrayList.add(rect3); | ||||
|         } | ||||
|         if (rect4 != null) { | ||||
|             arrayList.add(rect4); | ||||
|         } | ||||
|         return Api28Impl.createDisplayCutout(rect5, arrayList); | ||||
|     } | ||||
|  | ||||
|     private DisplayCutoutCompat(DisplayCutout displayCutout) { | ||||
|         this.mDisplayCutout = displayCutout; | ||||
|     } | ||||
|  | ||||
|     public int getSafeInsetTop() { | ||||
|         if (Build.VERSION.SDK_INT >= 28) { | ||||
|             return Api28Impl.getSafeInsetTop(this.mDisplayCutout); | ||||
|         } | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     public int getSafeInsetBottom() { | ||||
|         if (Build.VERSION.SDK_INT >= 28) { | ||||
|             return Api28Impl.getSafeInsetBottom(this.mDisplayCutout); | ||||
|         } | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     public int getSafeInsetLeft() { | ||||
|         if (Build.VERSION.SDK_INT >= 28) { | ||||
|             return Api28Impl.getSafeInsetLeft(this.mDisplayCutout); | ||||
|         } | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     public int getSafeInsetRight() { | ||||
|         if (Build.VERSION.SDK_INT >= 28) { | ||||
|             return Api28Impl.getSafeInsetRight(this.mDisplayCutout); | ||||
|         } | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     public List<Rect> getBoundingRects() { | ||||
|         if (Build.VERSION.SDK_INT >= 28) { | ||||
|             return Api28Impl.getBoundingRects(this.mDisplayCutout); | ||||
|         } | ||||
|         return Collections.emptyList(); | ||||
|     } | ||||
|  | ||||
|     public Insets getWaterfallInsets() { | ||||
|         if (Build.VERSION.SDK_INT >= 30) { | ||||
|             return Insets.toCompatInsets(Api30Impl.getWaterfallInsets(this.mDisplayCutout)); | ||||
|         } | ||||
|         return Insets.NONE; | ||||
|     } | ||||
|  | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) { | ||||
|             return true; | ||||
|         } | ||||
|         if (obj == null || getClass() != obj.getClass()) { | ||||
|             return false; | ||||
|         } | ||||
|         return ObjectsCompat.equals(this.mDisplayCutout, ((DisplayCutoutCompat) obj).mDisplayCutout); | ||||
|     } | ||||
|  | ||||
|     public int hashCode() { | ||||
|         int hashCode; | ||||
|         DisplayCutout displayCutout = this.mDisplayCutout; | ||||
|         if (displayCutout == null) { | ||||
|             return 0; | ||||
|         } | ||||
|         hashCode = displayCutout.hashCode(); | ||||
|         return hashCode; | ||||
|     } | ||||
|  | ||||
|     public String toString() { | ||||
|         return "DisplayCutoutCompat{" + this.mDisplayCutout + "}"; | ||||
|     } | ||||
|  | ||||
|     static DisplayCutoutCompat wrap(DisplayCutout displayCutout) { | ||||
|         if (displayCutout == null) { | ||||
|             return null; | ||||
|         } | ||||
|         return new DisplayCutoutCompat(displayCutout); | ||||
|     } | ||||
|  | ||||
|     static class Api28Impl { | ||||
|         private Api28Impl() { | ||||
|         } | ||||
|  | ||||
|         static DisplayCutout createDisplayCutout(Rect rect, List<Rect> list) { | ||||
|             return new DisplayCutout(rect, list); | ||||
|         } | ||||
|  | ||||
|         static int getSafeInsetTop(DisplayCutout displayCutout) { | ||||
|             return displayCutout.getSafeInsetTop(); | ||||
|         } | ||||
|  | ||||
|         static int getSafeInsetBottom(DisplayCutout displayCutout) { | ||||
|             return displayCutout.getSafeInsetBottom(); | ||||
|         } | ||||
|  | ||||
|         static int getSafeInsetLeft(DisplayCutout displayCutout) { | ||||
|             return displayCutout.getSafeInsetLeft(); | ||||
|         } | ||||
|  | ||||
|         static int getSafeInsetRight(DisplayCutout displayCutout) { | ||||
|             return displayCutout.getSafeInsetRight(); | ||||
|         } | ||||
|  | ||||
|         static List<Rect> getBoundingRects(DisplayCutout displayCutout) { | ||||
|             return displayCutout.getBoundingRects(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api30Impl { | ||||
|         private Api30Impl() { | ||||
|         } | ||||
|  | ||||
|         static DisplayCutout createDisplayCutout(android.graphics.Insets insets, Rect rect, Rect rect2, Rect rect3, Rect rect4, android.graphics.Insets insets2) { | ||||
|             return new DisplayCutout(insets, rect, rect2, rect3, rect4, insets2); | ||||
|         } | ||||
|  | ||||
|         static android.graphics.Insets getWaterfallInsets(DisplayCutout displayCutout) { | ||||
|             return displayCutout.getWaterfallInsets(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api29Impl { | ||||
|         private Api29Impl() { | ||||
|         } | ||||
|  | ||||
|         static DisplayCutout createDisplayCutout(android.graphics.Insets insets, Rect rect, Rect rect2, Rect rect3, Rect rect4) { | ||||
|             return new DisplayCutout(insets, rect, rect2, rect3, rect4); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,42 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.app.Activity; | ||||
| import android.os.Build; | ||||
| import android.view.DragAndDropPermissions; | ||||
| import android.view.DragEvent; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class DragAndDropPermissionsCompat { | ||||
|     private final DragAndDropPermissions mDragAndDropPermissions; | ||||
|  | ||||
|     private DragAndDropPermissionsCompat(DragAndDropPermissions dragAndDropPermissions) { | ||||
|         this.mDragAndDropPermissions = dragAndDropPermissions; | ||||
|     } | ||||
|  | ||||
|     public static DragAndDropPermissionsCompat request(Activity activity, DragEvent dragEvent) { | ||||
|         DragAndDropPermissions requestDragAndDropPermissions; | ||||
|         if (Build.VERSION.SDK_INT < 24 || (requestDragAndDropPermissions = Api24Impl.requestDragAndDropPermissions(activity, dragEvent)) == null) { | ||||
|             return null; | ||||
|         } | ||||
|         return new DragAndDropPermissionsCompat(requestDragAndDropPermissions); | ||||
|     } | ||||
|  | ||||
|     public void release() { | ||||
|         if (Build.VERSION.SDK_INT >= 24) { | ||||
|             Api24Impl.release(this.mDragAndDropPermissions); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api24Impl { | ||||
|         private Api24Impl() { | ||||
|         } | ||||
|  | ||||
|         static DragAndDropPermissions requestDragAndDropPermissions(Activity activity, DragEvent dragEvent) { | ||||
|             return activity.requestDragAndDropPermissions(dragEvent); | ||||
|         } | ||||
|  | ||||
|         static void release(DragAndDropPermissions dragAndDropPermissions) { | ||||
|             dragAndDropPermissions.release(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										115
									
								
								02-Easy5/E5/sources/androidx/core/view/DragStartHelper.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								02-Easy5/E5/sources/androidx/core/view/DragStartHelper.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,115 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.graphics.Point; | ||||
| import android.view.MotionEvent; | ||||
| import android.view.View; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class DragStartHelper { | ||||
|     private boolean mDragging; | ||||
|     private int mLastTouchX; | ||||
|     private int mLastTouchY; | ||||
|     private final OnDragStartListener mListener; | ||||
|     private final View.OnLongClickListener mLongClickListener = new View.OnLongClickListener() { // from class: androidx.core.view.DragStartHelper$$ExternalSyntheticLambda0 | ||||
|         @Override // android.view.View.OnLongClickListener | ||||
|         public final boolean onLongClick(View view) { | ||||
|             return DragStartHelper.this.onLongClick(view); | ||||
|         } | ||||
|     }; | ||||
|     private final View.OnTouchListener mTouchListener = new View.OnTouchListener() { // from class: androidx.core.view.DragStartHelper$$ExternalSyntheticLambda1 | ||||
|         @Override // android.view.View.OnTouchListener | ||||
|         public final boolean onTouch(View view, MotionEvent motionEvent) { | ||||
|             return DragStartHelper.this.onTouch(view, motionEvent); | ||||
|         } | ||||
|     }; | ||||
|     private final View mView; | ||||
|  | ||||
|     public interface OnDragStartListener { | ||||
|         boolean onDragStart(View view, DragStartHelper dragStartHelper); | ||||
|     } | ||||
|  | ||||
|     public DragStartHelper(View view, OnDragStartListener onDragStartListener) { | ||||
|         this.mView = view; | ||||
|         this.mListener = onDragStartListener; | ||||
|     } | ||||
|  | ||||
|     public void attach() { | ||||
|         this.mView.setOnLongClickListener(this.mLongClickListener); | ||||
|         this.mView.setOnTouchListener(this.mTouchListener); | ||||
|     } | ||||
|  | ||||
|     public void detach() { | ||||
|         this.mView.setOnLongClickListener(null); | ||||
|         this.mView.setOnTouchListener(null); | ||||
|     } | ||||
|  | ||||
|     /* JADX WARN: Code restructure failed: missing block: B:8:0x0018, code lost: | ||||
|      | ||||
|         if (r2 != 3) goto L28; | ||||
|      */ | ||||
|     /* | ||||
|         Code decompiled incorrectly, please refer to instructions dump. | ||||
|         To view partially-correct add '--show-bad-code' argument | ||||
|     */ | ||||
|     public boolean onTouch(android.view.View r7, android.view.MotionEvent r8) { | ||||
|         /* | ||||
|             r6 = this; | ||||
|             float r0 = r8.getX() | ||||
|             int r0 = (int) r0 | ||||
|             float r1 = r8.getY() | ||||
|             int r1 = (int) r1 | ||||
|             int r2 = r8.getAction() | ||||
|             r3 = 0 | ||||
|             if (r2 == 0) goto L49 | ||||
|             r4 = 1 | ||||
|             if (r2 == r4) goto L46 | ||||
|             r5 = 2 | ||||
|             if (r2 == r5) goto L1b | ||||
|             r7 = 3 | ||||
|             if (r2 == r7) goto L46 | ||||
|             goto L4d | ||||
|         L1b: | ||||
|             r2 = 8194(0x2002, float:1.1482E-41) | ||||
|             boolean r2 = androidx.core.view.MotionEventCompat.isFromSource(r8, r2) | ||||
|             if (r2 == 0) goto L4d | ||||
|             int r8 = r8.getButtonState() | ||||
|             r8 = r8 & r4 | ||||
|             if (r8 != 0) goto L2b | ||||
|             goto L4d | ||||
|         L2b: | ||||
|             boolean r8 = r6.mDragging | ||||
|             if (r8 == 0) goto L30 | ||||
|             goto L4d | ||||
|         L30: | ||||
|             int r8 = r6.mLastTouchX | ||||
|             if (r8 != r0) goto L39 | ||||
|             int r8 = r6.mLastTouchY | ||||
|             if (r8 != r1) goto L39 | ||||
|             goto L4d | ||||
|         L39: | ||||
|             r6.mLastTouchX = r0 | ||||
|             r6.mLastTouchY = r1 | ||||
|             androidx.core.view.DragStartHelper$OnDragStartListener r8 = r6.mListener | ||||
|             boolean r7 = r8.onDragStart(r7, r6) | ||||
|             r6.mDragging = r7 | ||||
|             return r7 | ||||
|         L46: | ||||
|             r6.mDragging = r3 | ||||
|             goto L4d | ||||
|         L49: | ||||
|             r6.mLastTouchX = r0 | ||||
|             r6.mLastTouchY = r1 | ||||
|         L4d: | ||||
|             return r3 | ||||
|         */ | ||||
|         throw new UnsupportedOperationException("Method not decompiled: androidx.core.view.DragStartHelper.onTouch(android.view.View, android.view.MotionEvent):boolean"); | ||||
|     } | ||||
|  | ||||
|     public boolean onLongClick(View view) { | ||||
|         return this.mListener.onDragStart(view, this); | ||||
|     } | ||||
|  | ||||
|     public void getTouchPosition(Point point) { | ||||
|         point.set(this.mLastTouchX, this.mLastTouchY); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,245 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.os.Handler; | ||||
| import android.os.Message; | ||||
| import android.view.GestureDetector; | ||||
| import android.view.MotionEvent; | ||||
| import android.view.VelocityTracker; | ||||
| import android.view.ViewConfiguration; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class GestureDetectorCompat { | ||||
|     private final GestureDetectorCompatImpl mImpl; | ||||
|  | ||||
|     interface GestureDetectorCompatImpl { | ||||
|         boolean isLongpressEnabled(); | ||||
|  | ||||
|         boolean onTouchEvent(MotionEvent motionEvent); | ||||
|  | ||||
|         void setIsLongpressEnabled(boolean z); | ||||
|  | ||||
|         void setOnDoubleTapListener(GestureDetector.OnDoubleTapListener onDoubleTapListener); | ||||
|     } | ||||
|  | ||||
|     static class GestureDetectorCompatImplBase implements GestureDetectorCompatImpl { | ||||
|         private static final int LONG_PRESS = 2; | ||||
|         private static final int SHOW_PRESS = 1; | ||||
|         private static final int TAP = 3; | ||||
|         private boolean mAlwaysInBiggerTapRegion; | ||||
|         private boolean mAlwaysInTapRegion; | ||||
|         MotionEvent mCurrentDownEvent; | ||||
|         boolean mDeferConfirmSingleTap; | ||||
|         GestureDetector.OnDoubleTapListener mDoubleTapListener; | ||||
|         private int mDoubleTapSlopSquare; | ||||
|         private float mDownFocusX; | ||||
|         private float mDownFocusY; | ||||
|         private final Handler mHandler; | ||||
|         private boolean mInLongPress; | ||||
|         private boolean mIsDoubleTapping; | ||||
|         private boolean mIsLongpressEnabled; | ||||
|         private float mLastFocusX; | ||||
|         private float mLastFocusY; | ||||
|         final GestureDetector.OnGestureListener mListener; | ||||
|         private int mMaximumFlingVelocity; | ||||
|         private int mMinimumFlingVelocity; | ||||
|         private MotionEvent mPreviousUpEvent; | ||||
|         boolean mStillDown; | ||||
|         private int mTouchSlopSquare; | ||||
|         private VelocityTracker mVelocityTracker; | ||||
|         private static final int TAP_TIMEOUT = ViewConfiguration.getTapTimeout(); | ||||
|         private static final int DOUBLE_TAP_TIMEOUT = ViewConfiguration.getDoubleTapTimeout(); | ||||
|  | ||||
|         @Override // androidx.core.view.GestureDetectorCompat.GestureDetectorCompatImpl | ||||
|         public boolean isLongpressEnabled() { | ||||
|             return this.mIsLongpressEnabled; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.GestureDetectorCompat.GestureDetectorCompatImpl | ||||
|         public void setIsLongpressEnabled(boolean z) { | ||||
|             this.mIsLongpressEnabled = z; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.GestureDetectorCompat.GestureDetectorCompatImpl | ||||
|         public void setOnDoubleTapListener(GestureDetector.OnDoubleTapListener onDoubleTapListener) { | ||||
|             this.mDoubleTapListener = onDoubleTapListener; | ||||
|         } | ||||
|  | ||||
|         private class GestureHandler extends Handler { | ||||
|             GestureHandler() { | ||||
|             } | ||||
|  | ||||
|             GestureHandler(Handler handler) { | ||||
|                 super(handler.getLooper()); | ||||
|             } | ||||
|  | ||||
|             @Override // android.os.Handler | ||||
|             public void handleMessage(Message message) { | ||||
|                 int i = message.what; | ||||
|                 if (i == 1) { | ||||
|                     GestureDetectorCompatImplBase.this.mListener.onShowPress(GestureDetectorCompatImplBase.this.mCurrentDownEvent); | ||||
|                     return; | ||||
|                 } | ||||
|                 if (i == 2) { | ||||
|                     GestureDetectorCompatImplBase.this.dispatchLongPress(); | ||||
|                     return; | ||||
|                 } | ||||
|                 if (i == 3) { | ||||
|                     if (GestureDetectorCompatImplBase.this.mDoubleTapListener != null) { | ||||
|                         if (!GestureDetectorCompatImplBase.this.mStillDown) { | ||||
|                             GestureDetectorCompatImplBase.this.mDoubleTapListener.onSingleTapConfirmed(GestureDetectorCompatImplBase.this.mCurrentDownEvent); | ||||
|                             return; | ||||
|                         } else { | ||||
|                             GestureDetectorCompatImplBase.this.mDeferConfirmSingleTap = true; | ||||
|                             return; | ||||
|                         } | ||||
|                     } | ||||
|                     return; | ||||
|                 } | ||||
|                 throw new RuntimeException("Unknown message " + message); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         GestureDetectorCompatImplBase(Context context, GestureDetector.OnGestureListener onGestureListener, Handler handler) { | ||||
|             if (handler != null) { | ||||
|                 this.mHandler = new GestureHandler(handler); | ||||
|             } else { | ||||
|                 this.mHandler = new GestureHandler(); | ||||
|             } | ||||
|             this.mListener = onGestureListener; | ||||
|             if (onGestureListener instanceof GestureDetector.OnDoubleTapListener) { | ||||
|                 setOnDoubleTapListener((GestureDetector.OnDoubleTapListener) onGestureListener); | ||||
|             } | ||||
|             init(context); | ||||
|         } | ||||
|  | ||||
|         private void init(Context context) { | ||||
|             if (context == null) { | ||||
|                 throw new IllegalArgumentException("Context must not be null"); | ||||
|             } | ||||
|             if (this.mListener == null) { | ||||
|                 throw new IllegalArgumentException("OnGestureListener must not be null"); | ||||
|             } | ||||
|             this.mIsLongpressEnabled = true; | ||||
|             ViewConfiguration viewConfiguration = ViewConfiguration.get(context); | ||||
|             int scaledTouchSlop = viewConfiguration.getScaledTouchSlop(); | ||||
|             int scaledDoubleTapSlop = viewConfiguration.getScaledDoubleTapSlop(); | ||||
|             this.mMinimumFlingVelocity = viewConfiguration.getScaledMinimumFlingVelocity(); | ||||
|             this.mMaximumFlingVelocity = viewConfiguration.getScaledMaximumFlingVelocity(); | ||||
|             this.mTouchSlopSquare = scaledTouchSlop * scaledTouchSlop; | ||||
|             this.mDoubleTapSlopSquare = scaledDoubleTapSlop * scaledDoubleTapSlop; | ||||
|         } | ||||
|  | ||||
|         /* JADX WARN: Removed duplicated region for block: B:114:0x0205  */ | ||||
|         /* JADX WARN: Removed duplicated region for block: B:117:0x021c  */ | ||||
|         @Override // androidx.core.view.GestureDetectorCompat.GestureDetectorCompatImpl | ||||
|         /* | ||||
|             Code decompiled incorrectly, please refer to instructions dump. | ||||
|             To view partially-correct add '--show-bad-code' argument | ||||
|         */ | ||||
|         public boolean onTouchEvent(android.view.MotionEvent r13) { | ||||
|             /* | ||||
|                 Method dump skipped, instructions count: 590 | ||||
|                 To view this dump add '--comments-level debug' option | ||||
|             */ | ||||
|             throw new UnsupportedOperationException("Method not decompiled: androidx.core.view.GestureDetectorCompat.GestureDetectorCompatImplBase.onTouchEvent(android.view.MotionEvent):boolean"); | ||||
|         } | ||||
|  | ||||
|         private void cancel() { | ||||
|             this.mHandler.removeMessages(1); | ||||
|             this.mHandler.removeMessages(2); | ||||
|             this.mHandler.removeMessages(3); | ||||
|             this.mVelocityTracker.recycle(); | ||||
|             this.mVelocityTracker = null; | ||||
|             this.mIsDoubleTapping = false; | ||||
|             this.mStillDown = false; | ||||
|             this.mAlwaysInTapRegion = false; | ||||
|             this.mAlwaysInBiggerTapRegion = false; | ||||
|             this.mDeferConfirmSingleTap = false; | ||||
|             if (this.mInLongPress) { | ||||
|                 this.mInLongPress = false; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         private void cancelTaps() { | ||||
|             this.mHandler.removeMessages(1); | ||||
|             this.mHandler.removeMessages(2); | ||||
|             this.mHandler.removeMessages(3); | ||||
|             this.mIsDoubleTapping = false; | ||||
|             this.mAlwaysInTapRegion = false; | ||||
|             this.mAlwaysInBiggerTapRegion = false; | ||||
|             this.mDeferConfirmSingleTap = false; | ||||
|             if (this.mInLongPress) { | ||||
|                 this.mInLongPress = false; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         private boolean isConsideredDoubleTap(MotionEvent motionEvent, MotionEvent motionEvent2, MotionEvent motionEvent3) { | ||||
|             if (!this.mAlwaysInBiggerTapRegion || motionEvent3.getEventTime() - motionEvent2.getEventTime() > DOUBLE_TAP_TIMEOUT) { | ||||
|                 return false; | ||||
|             } | ||||
|             int x = ((int) motionEvent.getX()) - ((int) motionEvent3.getX()); | ||||
|             int y = ((int) motionEvent.getY()) - ((int) motionEvent3.getY()); | ||||
|             return (x * x) + (y * y) < this.mDoubleTapSlopSquare; | ||||
|         } | ||||
|  | ||||
|         void dispatchLongPress() { | ||||
|             this.mHandler.removeMessages(3); | ||||
|             this.mDeferConfirmSingleTap = false; | ||||
|             this.mInLongPress = true; | ||||
|             this.mListener.onLongPress(this.mCurrentDownEvent); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class GestureDetectorCompatImplJellybeanMr2 implements GestureDetectorCompatImpl { | ||||
|         private final GestureDetector mDetector; | ||||
|  | ||||
|         GestureDetectorCompatImplJellybeanMr2(Context context, GestureDetector.OnGestureListener onGestureListener, Handler handler) { | ||||
|             this.mDetector = new GestureDetector(context, onGestureListener, handler); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.GestureDetectorCompat.GestureDetectorCompatImpl | ||||
|         public boolean isLongpressEnabled() { | ||||
|             return this.mDetector.isLongpressEnabled(); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.GestureDetectorCompat.GestureDetectorCompatImpl | ||||
|         public boolean onTouchEvent(MotionEvent motionEvent) { | ||||
|             return this.mDetector.onTouchEvent(motionEvent); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.GestureDetectorCompat.GestureDetectorCompatImpl | ||||
|         public void setIsLongpressEnabled(boolean z) { | ||||
|             this.mDetector.setIsLongpressEnabled(z); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.GestureDetectorCompat.GestureDetectorCompatImpl | ||||
|         public void setOnDoubleTapListener(GestureDetector.OnDoubleTapListener onDoubleTapListener) { | ||||
|             this.mDetector.setOnDoubleTapListener(onDoubleTapListener); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public GestureDetectorCompat(Context context, GestureDetector.OnGestureListener onGestureListener) { | ||||
|         this(context, onGestureListener, null); | ||||
|     } | ||||
|  | ||||
|     public GestureDetectorCompat(Context context, GestureDetector.OnGestureListener onGestureListener, Handler handler) { | ||||
|         this.mImpl = new GestureDetectorCompatImplJellybeanMr2(context, onGestureListener, handler); | ||||
|     } | ||||
|  | ||||
|     public boolean isLongpressEnabled() { | ||||
|         return this.mImpl.isLongpressEnabled(); | ||||
|     } | ||||
|  | ||||
|     public boolean onTouchEvent(MotionEvent motionEvent) { | ||||
|         return this.mImpl.onTouchEvent(motionEvent); | ||||
|     } | ||||
|  | ||||
|     public void setIsLongpressEnabled(boolean z) { | ||||
|         this.mImpl.setIsLongpressEnabled(z); | ||||
|     } | ||||
|  | ||||
|     public void setOnDoubleTapListener(GestureDetector.OnDoubleTapListener onDoubleTapListener) { | ||||
|         this.mImpl.setOnDoubleTapListener(onDoubleTapListener); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										48
									
								
								02-Easy5/E5/sources/androidx/core/view/GravityCompat.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								02-Easy5/E5/sources/androidx/core/view/GravityCompat.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.graphics.Rect; | ||||
| import android.view.Gravity; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class GravityCompat { | ||||
|     public static final int END = 8388613; | ||||
|     public static final int RELATIVE_HORIZONTAL_GRAVITY_MASK = 8388615; | ||||
|     public static final int RELATIVE_LAYOUT_DIRECTION = 8388608; | ||||
|     public static final int START = 8388611; | ||||
|  | ||||
|     public static void apply(int i, int i2, int i3, Rect rect, Rect rect2, int i4) { | ||||
|         Api17Impl.apply(i, i2, i3, rect, rect2, i4); | ||||
|     } | ||||
|  | ||||
|     public static void apply(int i, int i2, int i3, Rect rect, int i4, int i5, Rect rect2, int i6) { | ||||
|         Api17Impl.apply(i, i2, i3, rect, i4, i5, rect2, i6); | ||||
|     } | ||||
|  | ||||
|     public static void applyDisplay(int i, Rect rect, Rect rect2, int i2) { | ||||
|         Api17Impl.applyDisplay(i, rect, rect2, i2); | ||||
|     } | ||||
|  | ||||
|     public static int getAbsoluteGravity(int i, int i2) { | ||||
|         return Gravity.getAbsoluteGravity(i, i2); | ||||
|     } | ||||
|  | ||||
|     private GravityCompat() { | ||||
|     } | ||||
|  | ||||
|     static class Api17Impl { | ||||
|         private Api17Impl() { | ||||
|         } | ||||
|  | ||||
|         static void apply(int i, int i2, int i3, Rect rect, Rect rect2, int i4) { | ||||
|             Gravity.apply(i, i2, i3, rect, rect2, i4); | ||||
|         } | ||||
|  | ||||
|         static void apply(int i, int i2, int i3, Rect rect, int i4, int i5, Rect rect2, int i6) { | ||||
|             Gravity.apply(i, i2, i3, rect, i4, i5, rect2, i6); | ||||
|         } | ||||
|  | ||||
|         static void applyDisplay(int i, Rect rect, Rect rect2, int i2) { | ||||
|             Gravity.applyDisplay(i, rect, rect2, i2); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,29 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class InputDeviceCompat { | ||||
|     public static final int SOURCE_ANY = -256; | ||||
|     public static final int SOURCE_CLASS_BUTTON = 1; | ||||
|     public static final int SOURCE_CLASS_JOYSTICK = 16; | ||||
|     public static final int SOURCE_CLASS_MASK = 255; | ||||
|     public static final int SOURCE_CLASS_NONE = 0; | ||||
|     public static final int SOURCE_CLASS_POINTER = 2; | ||||
|     public static final int SOURCE_CLASS_POSITION = 8; | ||||
|     public static final int SOURCE_CLASS_TRACKBALL = 4; | ||||
|     public static final int SOURCE_DPAD = 513; | ||||
|     public static final int SOURCE_GAMEPAD = 1025; | ||||
|     public static final int SOURCE_HDMI = 33554433; | ||||
|     public static final int SOURCE_JOYSTICK = 16777232; | ||||
|     public static final int SOURCE_KEYBOARD = 257; | ||||
|     public static final int SOURCE_MOUSE = 8194; | ||||
|     public static final int SOURCE_ROTARY_ENCODER = 4194304; | ||||
|     public static final int SOURCE_STYLUS = 16386; | ||||
|     public static final int SOURCE_TOUCHPAD = 1048584; | ||||
|     public static final int SOURCE_TOUCHSCREEN = 4098; | ||||
|     public static final int SOURCE_TOUCH_NAVIGATION = 2097152; | ||||
|     public static final int SOURCE_TRACKBALL = 65540; | ||||
|     public static final int SOURCE_UNKNOWN = 0; | ||||
|  | ||||
|     private InputDeviceCompat() { | ||||
|     } | ||||
| } | ||||
							
								
								
									
										126
									
								
								02-Easy5/E5/sources/androidx/core/view/KeyEventDispatcher.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								02-Easy5/E5/sources/androidx/core/view/KeyEventDispatcher.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,126 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.app.ActionBar; | ||||
| import android.app.Activity; | ||||
| import android.app.Dialog; | ||||
| import android.content.DialogInterface; | ||||
| import android.os.Build; | ||||
| import android.view.KeyEvent; | ||||
| import android.view.View; | ||||
| import android.view.Window; | ||||
| import java.lang.reflect.Field; | ||||
| import java.lang.reflect.InvocationTargetException; | ||||
| import java.lang.reflect.Method; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class KeyEventDispatcher { | ||||
|     private static boolean sActionBarFieldsFetched = false; | ||||
|     private static Method sActionBarOnMenuKeyMethod = null; | ||||
|     private static boolean sDialogFieldsFetched = false; | ||||
|     private static Field sDialogKeyListenerField; | ||||
|  | ||||
|     public interface Component { | ||||
|         boolean superDispatchKeyEvent(KeyEvent keyEvent); | ||||
|     } | ||||
|  | ||||
|     private KeyEventDispatcher() { | ||||
|     } | ||||
|  | ||||
|     public static boolean dispatchBeforeHierarchy(View view, KeyEvent keyEvent) { | ||||
|         return ViewCompat.dispatchUnhandledKeyEventBeforeHierarchy(view, keyEvent); | ||||
|     } | ||||
|  | ||||
|     public static boolean dispatchKeyEvent(Component component, View view, Window.Callback callback, KeyEvent keyEvent) { | ||||
|         if (component == null) { | ||||
|             return false; | ||||
|         } | ||||
|         if (Build.VERSION.SDK_INT >= 28) { | ||||
|             return component.superDispatchKeyEvent(keyEvent); | ||||
|         } | ||||
|         if (callback instanceof Activity) { | ||||
|             return activitySuperDispatchKeyEventPre28((Activity) callback, keyEvent); | ||||
|         } | ||||
|         if (callback instanceof Dialog) { | ||||
|             return dialogSuperDispatchKeyEventPre28((Dialog) callback, keyEvent); | ||||
|         } | ||||
|         return (view != null && ViewCompat.dispatchUnhandledKeyEventBeforeCallback(view, keyEvent)) || component.superDispatchKeyEvent(keyEvent); | ||||
|     } | ||||
|  | ||||
|     private static boolean actionBarOnMenuKeyEventPre28(ActionBar actionBar, KeyEvent keyEvent) { | ||||
|         if (!sActionBarFieldsFetched) { | ||||
|             try { | ||||
|                 sActionBarOnMenuKeyMethod = actionBar.getClass().getMethod("onMenuKeyEvent", KeyEvent.class); | ||||
|             } catch (NoSuchMethodException unused) { | ||||
|             } | ||||
|             sActionBarFieldsFetched = true; | ||||
|         } | ||||
|         Method method = sActionBarOnMenuKeyMethod; | ||||
|         if (method != null) { | ||||
|             try { | ||||
|                 Object invoke = method.invoke(actionBar, keyEvent); | ||||
|                 if (invoke == null) { | ||||
|                     return false; | ||||
|                 } | ||||
|                 return ((Boolean) invoke).booleanValue(); | ||||
|             } catch (IllegalAccessException | InvocationTargetException unused2) { | ||||
|             } | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     private static boolean activitySuperDispatchKeyEventPre28(Activity activity, KeyEvent keyEvent) { | ||||
|         activity.onUserInteraction(); | ||||
|         Window window = activity.getWindow(); | ||||
|         if (window.hasFeature(8)) { | ||||
|             ActionBar actionBar = activity.getActionBar(); | ||||
|             if (keyEvent.getKeyCode() == 82 && actionBar != null && actionBarOnMenuKeyEventPre28(actionBar, keyEvent)) { | ||||
|                 return true; | ||||
|             } | ||||
|         } | ||||
|         if (window.superDispatchKeyEvent(keyEvent)) { | ||||
|             return true; | ||||
|         } | ||||
|         View decorView = window.getDecorView(); | ||||
|         if (ViewCompat.dispatchUnhandledKeyEventBeforeCallback(decorView, keyEvent)) { | ||||
|             return true; | ||||
|         } | ||||
|         return keyEvent.dispatch(activity, decorView != null ? decorView.getKeyDispatcherState() : null, activity); | ||||
|     } | ||||
|  | ||||
|     private static DialogInterface.OnKeyListener getDialogKeyListenerPre28(Dialog dialog) { | ||||
|         if (!sDialogFieldsFetched) { | ||||
|             try { | ||||
|                 Field declaredField = Dialog.class.getDeclaredField("mOnKeyListener"); | ||||
|                 sDialogKeyListenerField = declaredField; | ||||
|                 declaredField.setAccessible(true); | ||||
|             } catch (NoSuchFieldException unused) { | ||||
|             } | ||||
|             sDialogFieldsFetched = true; | ||||
|         } | ||||
|         Field field = sDialogKeyListenerField; | ||||
|         if (field == null) { | ||||
|             return null; | ||||
|         } | ||||
|         try { | ||||
|             return (DialogInterface.OnKeyListener) field.get(dialog); | ||||
|         } catch (IllegalAccessException unused2) { | ||||
|             return null; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static boolean dialogSuperDispatchKeyEventPre28(Dialog dialog, KeyEvent keyEvent) { | ||||
|         DialogInterface.OnKeyListener dialogKeyListenerPre28 = getDialogKeyListenerPre28(dialog); | ||||
|         if (dialogKeyListenerPre28 != null && dialogKeyListenerPre28.onKey(dialog, keyEvent.getKeyCode(), keyEvent)) { | ||||
|             return true; | ||||
|         } | ||||
|         Window window = dialog.getWindow(); | ||||
|         if (window.superDispatchKeyEvent(keyEvent)) { | ||||
|             return true; | ||||
|         } | ||||
|         View decorView = window.getDecorView(); | ||||
|         if (ViewCompat.dispatchUnhandledKeyEventBeforeCallback(decorView, keyEvent)) { | ||||
|             return true; | ||||
|         } | ||||
|         return keyEvent.dispatch(dialog, decorView != null ? decorView.getKeyDispatcherState() : null, dialog); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,79 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.util.AttributeSet; | ||||
| import android.util.Log; | ||||
| import android.view.LayoutInflater; | ||||
| import android.view.View; | ||||
| import java.lang.reflect.Field; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class LayoutInflaterCompat { | ||||
|     private static final String TAG = "LayoutInflaterCompatHC"; | ||||
|     private static boolean sCheckedField; | ||||
|     private static Field sLayoutInflaterFactory2Field; | ||||
|  | ||||
|     static class Factory2Wrapper implements LayoutInflater.Factory2 { | ||||
|         final LayoutInflaterFactory mDelegateFactory; | ||||
|  | ||||
|         Factory2Wrapper(LayoutInflaterFactory layoutInflaterFactory) { | ||||
|             this.mDelegateFactory = layoutInflaterFactory; | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.LayoutInflater.Factory | ||||
|         public View onCreateView(String str, Context context, AttributeSet attributeSet) { | ||||
|             return this.mDelegateFactory.onCreateView(null, str, context, attributeSet); | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.LayoutInflater.Factory2 | ||||
|         public View onCreateView(View view, String str, Context context, AttributeSet attributeSet) { | ||||
|             return this.mDelegateFactory.onCreateView(view, str, context, attributeSet); | ||||
|         } | ||||
|  | ||||
|         public String toString() { | ||||
|             return getClass().getName() + "{" + this.mDelegateFactory + "}"; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static void forceSetFactory2(LayoutInflater layoutInflater, LayoutInflater.Factory2 factory2) { | ||||
|         if (!sCheckedField) { | ||||
|             try { | ||||
|                 Field declaredField = LayoutInflater.class.getDeclaredField("mFactory2"); | ||||
|                 sLayoutInflaterFactory2Field = declaredField; | ||||
|                 declaredField.setAccessible(true); | ||||
|             } catch (NoSuchFieldException e) { | ||||
|                 Log.e(TAG, "forceSetFactory2 Could not find field 'mFactory2' on class " + LayoutInflater.class.getName() + "; inflation may have unexpected results.", e); | ||||
|             } | ||||
|             sCheckedField = true; | ||||
|         } | ||||
|         Field field = sLayoutInflaterFactory2Field; | ||||
|         if (field != null) { | ||||
|             try { | ||||
|                 field.set(layoutInflater, factory2); | ||||
|             } catch (IllegalAccessException e2) { | ||||
|                 Log.e(TAG, "forceSetFactory2 could not set the Factory2 on LayoutInflater " + layoutInflater + "; inflation may have unexpected results.", e2); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private LayoutInflaterCompat() { | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static void setFactory(LayoutInflater layoutInflater, LayoutInflaterFactory layoutInflaterFactory) { | ||||
|         layoutInflater.setFactory2(new Factory2Wrapper(layoutInflaterFactory)); | ||||
|     } | ||||
|  | ||||
|     public static void setFactory2(LayoutInflater layoutInflater, LayoutInflater.Factory2 factory2) { | ||||
|         layoutInflater.setFactory2(factory2); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static LayoutInflaterFactory getFactory(LayoutInflater layoutInflater) { | ||||
|         LayoutInflater.Factory factory = layoutInflater.getFactory(); | ||||
|         if (factory instanceof Factory2Wrapper) { | ||||
|             return ((Factory2Wrapper) factory).mDelegateFactory; | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,11 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.util.AttributeSet; | ||||
| import android.view.View; | ||||
|  | ||||
| @Deprecated | ||||
| /* loaded from: classes.dex */ | ||||
| public interface LayoutInflaterFactory { | ||||
|     View onCreateView(View view, String str, Context context, AttributeSet attributeSet); | ||||
| } | ||||
| @@ -0,0 +1,82 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.ViewGroup; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class MarginLayoutParamsCompat { | ||||
|     public static int getMarginStart(ViewGroup.MarginLayoutParams marginLayoutParams) { | ||||
|         return Api17Impl.getMarginStart(marginLayoutParams); | ||||
|     } | ||||
|  | ||||
|     public static int getMarginEnd(ViewGroup.MarginLayoutParams marginLayoutParams) { | ||||
|         return Api17Impl.getMarginEnd(marginLayoutParams); | ||||
|     } | ||||
|  | ||||
|     public static void setMarginStart(ViewGroup.MarginLayoutParams marginLayoutParams, int i) { | ||||
|         Api17Impl.setMarginStart(marginLayoutParams, i); | ||||
|     } | ||||
|  | ||||
|     public static void setMarginEnd(ViewGroup.MarginLayoutParams marginLayoutParams, int i) { | ||||
|         Api17Impl.setMarginEnd(marginLayoutParams, i); | ||||
|     } | ||||
|  | ||||
|     public static boolean isMarginRelative(ViewGroup.MarginLayoutParams marginLayoutParams) { | ||||
|         return Api17Impl.isMarginRelative(marginLayoutParams); | ||||
|     } | ||||
|  | ||||
|     public static int getLayoutDirection(ViewGroup.MarginLayoutParams marginLayoutParams) { | ||||
|         int layoutDirection = Api17Impl.getLayoutDirection(marginLayoutParams); | ||||
|         if (layoutDirection == 0 || layoutDirection == 1) { | ||||
|             return layoutDirection; | ||||
|         } | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     public static void setLayoutDirection(ViewGroup.MarginLayoutParams marginLayoutParams, int i) { | ||||
|         Api17Impl.setLayoutDirection(marginLayoutParams, i); | ||||
|     } | ||||
|  | ||||
|     public static void resolveLayoutDirection(ViewGroup.MarginLayoutParams marginLayoutParams, int i) { | ||||
|         Api17Impl.resolveLayoutDirection(marginLayoutParams, i); | ||||
|     } | ||||
|  | ||||
|     private MarginLayoutParamsCompat() { | ||||
|     } | ||||
|  | ||||
|     static class Api17Impl { | ||||
|         private Api17Impl() { | ||||
|         } | ||||
|  | ||||
|         static int getMarginStart(ViewGroup.MarginLayoutParams marginLayoutParams) { | ||||
|             return marginLayoutParams.getMarginStart(); | ||||
|         } | ||||
|  | ||||
|         static int getMarginEnd(ViewGroup.MarginLayoutParams marginLayoutParams) { | ||||
|             return marginLayoutParams.getMarginEnd(); | ||||
|         } | ||||
|  | ||||
|         static void setMarginStart(ViewGroup.MarginLayoutParams marginLayoutParams, int i) { | ||||
|             marginLayoutParams.setMarginStart(i); | ||||
|         } | ||||
|  | ||||
|         static void setMarginEnd(ViewGroup.MarginLayoutParams marginLayoutParams, int i) { | ||||
|             marginLayoutParams.setMarginEnd(i); | ||||
|         } | ||||
|  | ||||
|         static boolean isMarginRelative(ViewGroup.MarginLayoutParams marginLayoutParams) { | ||||
|             return marginLayoutParams.isMarginRelative(); | ||||
|         } | ||||
|  | ||||
|         static int getLayoutDirection(ViewGroup.MarginLayoutParams marginLayoutParams) { | ||||
|             return marginLayoutParams.getLayoutDirection(); | ||||
|         } | ||||
|  | ||||
|         static void setLayoutDirection(ViewGroup.MarginLayoutParams marginLayoutParams, int i) { | ||||
|             marginLayoutParams.setLayoutDirection(i); | ||||
|         } | ||||
|  | ||||
|         static void resolveLayoutDirection(ViewGroup.MarginLayoutParams marginLayoutParams, int i) { | ||||
|             marginLayoutParams.resolveLayoutDirection(i); | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										34
									
								
								02-Easy5/E5/sources/androidx/core/view/MenuCompat.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								02-Easy5/E5/sources/androidx/core/view/MenuCompat.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.os.Build; | ||||
| import android.view.Menu; | ||||
| import android.view.MenuItem; | ||||
| import androidx.core.internal.view.SupportMenu; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class MenuCompat { | ||||
|     @Deprecated | ||||
|     public static void setShowAsAction(MenuItem menuItem, int i) { | ||||
|         menuItem.setShowAsAction(i); | ||||
|     } | ||||
|  | ||||
|     public static void setGroupDividerEnabled(Menu menu, boolean z) { | ||||
|         if (menu instanceof SupportMenu) { | ||||
|             ((SupportMenu) menu).setGroupDividerEnabled(z); | ||||
|         } else if (Build.VERSION.SDK_INT >= 28) { | ||||
|             Api28Impl.setGroupDividerEnabled(menu, z); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private MenuCompat() { | ||||
|     } | ||||
|  | ||||
|     static class Api28Impl { | ||||
|         private Api28Impl() { | ||||
|         } | ||||
|  | ||||
|         static void setGroupDividerEnabled(Menu menu, boolean z) { | ||||
|             menu.setGroupDividerEnabled(z); | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										17
									
								
								02-Easy5/E5/sources/androidx/core/view/MenuHost.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								02-Easy5/E5/sources/androidx/core/view/MenuHost.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import androidx.lifecycle.Lifecycle; | ||||
| import androidx.lifecycle.LifecycleOwner; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface MenuHost { | ||||
|     void addMenuProvider(MenuProvider menuProvider); | ||||
|  | ||||
|     void addMenuProvider(MenuProvider menuProvider, LifecycleOwner lifecycleOwner); | ||||
|  | ||||
|     void addMenuProvider(MenuProvider menuProvider, LifecycleOwner lifecycleOwner, Lifecycle.State state); | ||||
|  | ||||
|     void invalidateMenu(); | ||||
|  | ||||
|     void removeMenuProvider(MenuProvider menuProvider); | ||||
| } | ||||
							
								
								
									
										134
									
								
								02-Easy5/E5/sources/androidx/core/view/MenuHostHelper.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										134
									
								
								02-Easy5/E5/sources/androidx/core/view/MenuHostHelper.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,134 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.Menu; | ||||
| import android.view.MenuInflater; | ||||
| import android.view.MenuItem; | ||||
| import androidx.lifecycle.Lifecycle; | ||||
| import androidx.lifecycle.LifecycleEventObserver; | ||||
| import androidx.lifecycle.LifecycleOwner; | ||||
| import java.util.HashMap; | ||||
| import java.util.Iterator; | ||||
| import java.util.Map; | ||||
| import java.util.concurrent.CopyOnWriteArrayList; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class MenuHostHelper { | ||||
|     private final Runnable mOnInvalidateMenuCallback; | ||||
|     private final CopyOnWriteArrayList<MenuProvider> mMenuProviders = new CopyOnWriteArrayList<>(); | ||||
|     private final Map<MenuProvider, LifecycleContainer> mProviderToLifecycleContainers = new HashMap(); | ||||
|  | ||||
|     public MenuHostHelper(Runnable runnable) { | ||||
|         this.mOnInvalidateMenuCallback = runnable; | ||||
|     } | ||||
|  | ||||
|     public void onPrepareMenu(Menu menu) { | ||||
|         Iterator<MenuProvider> it = this.mMenuProviders.iterator(); | ||||
|         while (it.hasNext()) { | ||||
|             it.next().onPrepareMenu(menu); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void onCreateMenu(Menu menu, MenuInflater menuInflater) { | ||||
|         Iterator<MenuProvider> it = this.mMenuProviders.iterator(); | ||||
|         while (it.hasNext()) { | ||||
|             it.next().onCreateMenu(menu, menuInflater); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public boolean onMenuItemSelected(MenuItem menuItem) { | ||||
|         Iterator<MenuProvider> it = this.mMenuProviders.iterator(); | ||||
|         while (it.hasNext()) { | ||||
|             if (it.next().onMenuItemSelected(menuItem)) { | ||||
|                 return true; | ||||
|             } | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public void onMenuClosed(Menu menu) { | ||||
|         Iterator<MenuProvider> it = this.mMenuProviders.iterator(); | ||||
|         while (it.hasNext()) { | ||||
|             it.next().onMenuClosed(menu); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void addMenuProvider(MenuProvider menuProvider) { | ||||
|         this.mMenuProviders.add(menuProvider); | ||||
|         this.mOnInvalidateMenuCallback.run(); | ||||
|     } | ||||
|  | ||||
|     public void addMenuProvider(final MenuProvider menuProvider, LifecycleOwner lifecycleOwner) { | ||||
|         addMenuProvider(menuProvider); | ||||
|         Lifecycle lifecycle = lifecycleOwner.getLifecycle(); | ||||
|         LifecycleContainer remove = this.mProviderToLifecycleContainers.remove(menuProvider); | ||||
|         if (remove != null) { | ||||
|             remove.clearObservers(); | ||||
|         } | ||||
|         this.mProviderToLifecycleContainers.put(menuProvider, new LifecycleContainer(lifecycle, new LifecycleEventObserver() { // from class: androidx.core.view.MenuHostHelper$$ExternalSyntheticLambda0 | ||||
|             @Override // androidx.lifecycle.LifecycleEventObserver | ||||
|             public final void onStateChanged(LifecycleOwner lifecycleOwner2, Lifecycle.Event event) { | ||||
|                 MenuHostHelper.this.m159lambda$addMenuProvider$0$androidxcoreviewMenuHostHelper(menuProvider, lifecycleOwner2, event); | ||||
|             } | ||||
|         })); | ||||
|     } | ||||
|  | ||||
|     /* renamed from: lambda$addMenuProvider$0$androidx-core-view-MenuHostHelper, reason: not valid java name */ | ||||
|     /* synthetic */ void m159lambda$addMenuProvider$0$androidxcoreviewMenuHostHelper(MenuProvider menuProvider, LifecycleOwner lifecycleOwner, Lifecycle.Event event) { | ||||
|         if (event == Lifecycle.Event.ON_DESTROY) { | ||||
|             removeMenuProvider(menuProvider); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void addMenuProvider(final MenuProvider menuProvider, LifecycleOwner lifecycleOwner, final Lifecycle.State state) { | ||||
|         Lifecycle lifecycle = lifecycleOwner.getLifecycle(); | ||||
|         LifecycleContainer remove = this.mProviderToLifecycleContainers.remove(menuProvider); | ||||
|         if (remove != null) { | ||||
|             remove.clearObservers(); | ||||
|         } | ||||
|         this.mProviderToLifecycleContainers.put(menuProvider, new LifecycleContainer(lifecycle, new LifecycleEventObserver() { // from class: androidx.core.view.MenuHostHelper$$ExternalSyntheticLambda1 | ||||
|             @Override // androidx.lifecycle.LifecycleEventObserver | ||||
|             public final void onStateChanged(LifecycleOwner lifecycleOwner2, Lifecycle.Event event) { | ||||
|                 MenuHostHelper.this.m160lambda$addMenuProvider$1$androidxcoreviewMenuHostHelper(state, menuProvider, lifecycleOwner2, event); | ||||
|             } | ||||
|         })); | ||||
|     } | ||||
|  | ||||
|     /* renamed from: lambda$addMenuProvider$1$androidx-core-view-MenuHostHelper, reason: not valid java name */ | ||||
|     /* synthetic */ void m160lambda$addMenuProvider$1$androidxcoreviewMenuHostHelper(Lifecycle.State state, MenuProvider menuProvider, LifecycleOwner lifecycleOwner, Lifecycle.Event event) { | ||||
|         if (event == Lifecycle.Event.upTo(state)) { | ||||
|             addMenuProvider(menuProvider); | ||||
|             return; | ||||
|         } | ||||
|         if (event == Lifecycle.Event.ON_DESTROY) { | ||||
|             removeMenuProvider(menuProvider); | ||||
|         } else if (event == Lifecycle.Event.downFrom(state)) { | ||||
|             this.mMenuProviders.remove(menuProvider); | ||||
|             this.mOnInvalidateMenuCallback.run(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void removeMenuProvider(MenuProvider menuProvider) { | ||||
|         this.mMenuProviders.remove(menuProvider); | ||||
|         LifecycleContainer remove = this.mProviderToLifecycleContainers.remove(menuProvider); | ||||
|         if (remove != null) { | ||||
|             remove.clearObservers(); | ||||
|         } | ||||
|         this.mOnInvalidateMenuCallback.run(); | ||||
|     } | ||||
|  | ||||
|     private static class LifecycleContainer { | ||||
|         final Lifecycle mLifecycle; | ||||
|         private LifecycleEventObserver mObserver; | ||||
|  | ||||
|         LifecycleContainer(Lifecycle lifecycle, LifecycleEventObserver lifecycleEventObserver) { | ||||
|             this.mLifecycle = lifecycle; | ||||
|             this.mObserver = lifecycleEventObserver; | ||||
|             lifecycle.addObserver(lifecycleEventObserver); | ||||
|         } | ||||
|  | ||||
|         void clearObservers() { | ||||
|             this.mLifecycle.removeObserver(this.mObserver); | ||||
|             this.mObserver = null; | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										278
									
								
								02-Easy5/E5/sources/androidx/core/view/MenuItemCompat.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										278
									
								
								02-Easy5/E5/sources/androidx/core/view/MenuItemCompat.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,278 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.content.res.ColorStateList; | ||||
| import android.graphics.PorterDuff; | ||||
| import android.os.Build; | ||||
| import android.util.Log; | ||||
| import android.view.MenuItem; | ||||
| import android.view.View; | ||||
| import androidx.core.internal.view.SupportMenuItem; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class MenuItemCompat { | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int SHOW_AS_ACTION_ALWAYS = 2; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int SHOW_AS_ACTION_IF_ROOM = 1; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int SHOW_AS_ACTION_NEVER = 0; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int SHOW_AS_ACTION_WITH_TEXT = 4; | ||||
|     private static final String TAG = "MenuItemCompat"; | ||||
|  | ||||
|     @Deprecated | ||||
|     public interface OnActionExpandListener { | ||||
|         boolean onMenuItemActionCollapse(MenuItem menuItem); | ||||
|  | ||||
|         boolean onMenuItemActionExpand(MenuItem menuItem); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static void setShowAsAction(MenuItem menuItem, int i) { | ||||
|         menuItem.setShowAsAction(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static MenuItem setActionView(MenuItem menuItem, View view) { | ||||
|         return menuItem.setActionView(view); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static MenuItem setActionView(MenuItem menuItem, int i) { | ||||
|         return menuItem.setActionView(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static View getActionView(MenuItem menuItem) { | ||||
|         return menuItem.getActionView(); | ||||
|     } | ||||
|  | ||||
|     public static MenuItem setActionProvider(MenuItem menuItem, ActionProvider actionProvider) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             return ((SupportMenuItem) menuItem).setSupportActionProvider(actionProvider); | ||||
|         } | ||||
|         Log.w(TAG, "setActionProvider: item does not implement SupportMenuItem; ignoring"); | ||||
|         return menuItem; | ||||
|     } | ||||
|  | ||||
|     public static ActionProvider getActionProvider(MenuItem menuItem) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             return ((SupportMenuItem) menuItem).getSupportActionProvider(); | ||||
|         } | ||||
|         Log.w(TAG, "getActionProvider: item does not implement SupportMenuItem; returning null"); | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static boolean expandActionView(MenuItem menuItem) { | ||||
|         return menuItem.expandActionView(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static boolean collapseActionView(MenuItem menuItem) { | ||||
|         return menuItem.collapseActionView(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static boolean isActionViewExpanded(MenuItem menuItem) { | ||||
|         return menuItem.isActionViewExpanded(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static MenuItem setOnActionExpandListener(MenuItem menuItem, final OnActionExpandListener onActionExpandListener) { | ||||
|         return menuItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() { // from class: androidx.core.view.MenuItemCompat.1 | ||||
|             @Override // android.view.MenuItem.OnActionExpandListener | ||||
|             public boolean onMenuItemActionExpand(MenuItem menuItem2) { | ||||
|                 return OnActionExpandListener.this.onMenuItemActionExpand(menuItem2); | ||||
|             } | ||||
|  | ||||
|             @Override // android.view.MenuItem.OnActionExpandListener | ||||
|             public boolean onMenuItemActionCollapse(MenuItem menuItem2) { | ||||
|                 return OnActionExpandListener.this.onMenuItemActionCollapse(menuItem2); | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     public static void setContentDescription(MenuItem menuItem, CharSequence charSequence) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             ((SupportMenuItem) menuItem).setContentDescription(charSequence); | ||||
|         } else if (Build.VERSION.SDK_INT >= 26) { | ||||
|             Api26Impl.setContentDescription(menuItem, charSequence); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static CharSequence getContentDescription(MenuItem menuItem) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             return ((SupportMenuItem) menuItem).getContentDescription(); | ||||
|         } | ||||
|         if (Build.VERSION.SDK_INT >= 26) { | ||||
|             return Api26Impl.getContentDescription(menuItem); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public static void setTooltipText(MenuItem menuItem, CharSequence charSequence) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             ((SupportMenuItem) menuItem).setTooltipText(charSequence); | ||||
|         } else if (Build.VERSION.SDK_INT >= 26) { | ||||
|             Api26Impl.setTooltipText(menuItem, charSequence); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static CharSequence getTooltipText(MenuItem menuItem) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             return ((SupportMenuItem) menuItem).getTooltipText(); | ||||
|         } | ||||
|         if (Build.VERSION.SDK_INT >= 26) { | ||||
|             return Api26Impl.getTooltipText(menuItem); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public static void setShortcut(MenuItem menuItem, char c, char c2, int i, int i2) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             ((SupportMenuItem) menuItem).setShortcut(c, c2, i, i2); | ||||
|         } else if (Build.VERSION.SDK_INT >= 26) { | ||||
|             Api26Impl.setShortcut(menuItem, c, c2, i, i2); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static void setNumericShortcut(MenuItem menuItem, char c, int i) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             ((SupportMenuItem) menuItem).setNumericShortcut(c, i); | ||||
|         } else if (Build.VERSION.SDK_INT >= 26) { | ||||
|             Api26Impl.setNumericShortcut(menuItem, c, i); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static int getNumericModifiers(MenuItem menuItem) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             return ((SupportMenuItem) menuItem).getNumericModifiers(); | ||||
|         } | ||||
|         if (Build.VERSION.SDK_INT >= 26) { | ||||
|             return Api26Impl.getNumericModifiers(menuItem); | ||||
|         } | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     public static void setAlphabeticShortcut(MenuItem menuItem, char c, int i) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             ((SupportMenuItem) menuItem).setAlphabeticShortcut(c, i); | ||||
|         } else if (Build.VERSION.SDK_INT >= 26) { | ||||
|             Api26Impl.setAlphabeticShortcut(menuItem, c, i); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static int getAlphabeticModifiers(MenuItem menuItem) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             return ((SupportMenuItem) menuItem).getAlphabeticModifiers(); | ||||
|         } | ||||
|         if (Build.VERSION.SDK_INT >= 26) { | ||||
|             return Api26Impl.getAlphabeticModifiers(menuItem); | ||||
|         } | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     public static void setIconTintList(MenuItem menuItem, ColorStateList colorStateList) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             ((SupportMenuItem) menuItem).setIconTintList(colorStateList); | ||||
|         } else if (Build.VERSION.SDK_INT >= 26) { | ||||
|             Api26Impl.setIconTintList(menuItem, colorStateList); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static ColorStateList getIconTintList(MenuItem menuItem) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             return ((SupportMenuItem) menuItem).getIconTintList(); | ||||
|         } | ||||
|         if (Build.VERSION.SDK_INT >= 26) { | ||||
|             return Api26Impl.getIconTintList(menuItem); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public static void setIconTintMode(MenuItem menuItem, PorterDuff.Mode mode) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             ((SupportMenuItem) menuItem).setIconTintMode(mode); | ||||
|         } else if (Build.VERSION.SDK_INT >= 26) { | ||||
|             Api26Impl.setIconTintMode(menuItem, mode); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static PorterDuff.Mode getIconTintMode(MenuItem menuItem) { | ||||
|         if (menuItem instanceof SupportMenuItem) { | ||||
|             return ((SupportMenuItem) menuItem).getIconTintMode(); | ||||
|         } | ||||
|         if (Build.VERSION.SDK_INT >= 26) { | ||||
|             return Api26Impl.getIconTintMode(menuItem); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     private MenuItemCompat() { | ||||
|     } | ||||
|  | ||||
|     static class Api26Impl { | ||||
|         private Api26Impl() { | ||||
|         } | ||||
|  | ||||
|         static MenuItem setContentDescription(MenuItem menuItem, CharSequence charSequence) { | ||||
|             return menuItem.setContentDescription(charSequence); | ||||
|         } | ||||
|  | ||||
|         static CharSequence getContentDescription(MenuItem menuItem) { | ||||
|             return menuItem.getContentDescription(); | ||||
|         } | ||||
|  | ||||
|         static MenuItem setTooltipText(MenuItem menuItem, CharSequence charSequence) { | ||||
|             return menuItem.setTooltipText(charSequence); | ||||
|         } | ||||
|  | ||||
|         static CharSequence getTooltipText(MenuItem menuItem) { | ||||
|             return menuItem.getTooltipText(); | ||||
|         } | ||||
|  | ||||
|         static MenuItem setShortcut(MenuItem menuItem, char c, char c2, int i, int i2) { | ||||
|             return menuItem.setShortcut(c, c2, i, i2); | ||||
|         } | ||||
|  | ||||
|         static MenuItem setNumericShortcut(MenuItem menuItem, char c, int i) { | ||||
|             return menuItem.setNumericShortcut(c, i); | ||||
|         } | ||||
|  | ||||
|         static int getNumericModifiers(MenuItem menuItem) { | ||||
|             return menuItem.getNumericModifiers(); | ||||
|         } | ||||
|  | ||||
|         static MenuItem setAlphabeticShortcut(MenuItem menuItem, char c, int i) { | ||||
|             return menuItem.setAlphabeticShortcut(c, i); | ||||
|         } | ||||
|  | ||||
|         static int getAlphabeticModifiers(MenuItem menuItem) { | ||||
|             return menuItem.getAlphabeticModifiers(); | ||||
|         } | ||||
|  | ||||
|         static MenuItem setIconTintList(MenuItem menuItem, ColorStateList colorStateList) { | ||||
|             return menuItem.setIconTintList(colorStateList); | ||||
|         } | ||||
|  | ||||
|         static ColorStateList getIconTintList(MenuItem menuItem) { | ||||
|             return menuItem.getIconTintList(); | ||||
|         } | ||||
|  | ||||
|         static MenuItem setIconTintMode(MenuItem menuItem, PorterDuff.Mode mode) { | ||||
|             return menuItem.setIconTintMode(mode); | ||||
|         } | ||||
|  | ||||
|         static PorterDuff.Mode getIconTintMode(MenuItem menuItem) { | ||||
|             return menuItem.getIconTintMode(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,58 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.Menu; | ||||
| import android.view.MenuItem; | ||||
| import java.util.Iterator; | ||||
| import kotlin.Metadata; | ||||
| import kotlin.Unit; | ||||
| import kotlin.jvm.internal.Intrinsics; | ||||
| import kotlin.jvm.internal.markers.KMutableIterator; | ||||
|  | ||||
| /* compiled from: Menu.kt */ | ||||
| @Metadata(d1 = {"\u0000#\n\u0000\n\u0002\u0010)\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000*\u0001\u0000\b\n\u0018\u00002\b\u0012\u0004\u0012\u00020\u00020\u0001J\t\u0010\u0005\u001a\u00020\u0006H\u0096\u0002J\t\u0010\u0007\u001a\u00020\u0002H\u0096\u0002J\b\u0010\b\u001a\u00020\tH\u0016R\u000e\u0010\u0003\u001a\u00020\u0004X\u0082\u000e¢\u0006\u0002\n\u0000¨\u0006\n"}, d2 = {"androidx/core/view/MenuKt$iterator$1", "", "Landroid/view/MenuItem;", "index", "", "hasNext", "", "next", "remove", "", "core-ktx_release"}, k = 1, mv = {1, 7, 1}, xi = 48) | ||||
| /* loaded from: classes.dex */ | ||||
| public final class MenuKt$iterator$1 implements Iterator<MenuItem>, KMutableIterator { | ||||
|     final /* synthetic */ Menu $this_iterator; | ||||
|     private int index; | ||||
|  | ||||
|     MenuKt$iterator$1(Menu menu) { | ||||
|         this.$this_iterator = menu; | ||||
|     } | ||||
|  | ||||
|     @Override // java.util.Iterator | ||||
|     public boolean hasNext() { | ||||
|         return this.index < this.$this_iterator.size(); | ||||
|     } | ||||
|  | ||||
|     /* JADX WARN: Can't rename method to resolve collision */ | ||||
|     @Override // java.util.Iterator | ||||
|     public MenuItem next() { | ||||
|         Menu menu = this.$this_iterator; | ||||
|         int i = this.index; | ||||
|         this.index = i + 1; | ||||
|         MenuItem item = menu.getItem(i); | ||||
|         if (item != null) { | ||||
|             return item; | ||||
|         } | ||||
|         throw new IndexOutOfBoundsException(); | ||||
|     } | ||||
|  | ||||
|     @Override // java.util.Iterator | ||||
|     public void remove() { | ||||
|         Unit unit; | ||||
|         Menu menu = this.$this_iterator; | ||||
|         int i = this.index - 1; | ||||
|         this.index = i; | ||||
|         MenuItem item = menu.getItem(i); | ||||
|         if (item != null) { | ||||
|             Intrinsics.checkNotNullExpressionValue(item, "getItem(index)"); | ||||
|             menu.removeItem(item.getItemId()); | ||||
|             unit = Unit.INSTANCE; | ||||
|         } else { | ||||
|             unit = null; | ||||
|         } | ||||
|         if (unit == null) { | ||||
|             throw new IndexOutOfBoundsException(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										109
									
								
								02-Easy5/E5/sources/androidx/core/view/MenuKt.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								02-Easy5/E5/sources/androidx/core/view/MenuKt.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,109 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.Menu; | ||||
| import android.view.MenuItem; | ||||
| import java.util.Iterator; | ||||
| import kotlin.Metadata; | ||||
| import kotlin.Unit; | ||||
| import kotlin.jvm.functions.Function1; | ||||
| import kotlin.jvm.functions.Function2; | ||||
| import kotlin.jvm.internal.Intrinsics; | ||||
| import kotlin.sequences.Sequence; | ||||
|  | ||||
| /* compiled from: Menu.kt */ | ||||
| @Metadata(d1 = {"\u0000D\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\b\n\u0002\b\u0003\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0010)\n\u0002\b\u0003\u001a\u0015\u0010\n\u001a\u00020\u000b*\u00020\u00032\u0006\u0010\f\u001a\u00020\u0002H\u0086\u0002\u001a3\u0010\r\u001a\u00020\u000e*\u00020\u00032!\u0010\u000f\u001a\u001d\u0012\u0013\u0012\u00110\u0002¢\u0006\f\b\u0011\u0012\b\b\u0012\u0012\u0004\b\b(\f\u0012\u0004\u0012\u00020\u000e0\u0010H\u0086\bø\u0001\u0000\u001aH\u0010\u0013\u001a\u00020\u000e*\u00020\u000326\u0010\u000f\u001a2\u0012\u0013\u0012\u00110\u0007¢\u0006\f\b\u0011\u0012\b\b\u0012\u0012\u0004\b\b(\u0015\u0012\u0013\u0012\u00110\u0002¢\u0006\f\b\u0011\u0012\b\b\u0012\u0012\u0004\b\b(\f\u0012\u0004\u0012\u00020\u000e0\u0014H\u0086\bø\u0001\u0000\u001a\u0015\u0010\u0016\u001a\u00020\u0002*\u00020\u00032\u0006\u0010\u0015\u001a\u00020\u0007H\u0086\n\u001a\r\u0010\u0017\u001a\u00020\u000b*\u00020\u0003H\u0086\b\u001a\r\u0010\u0018\u001a\u00020\u000b*\u00020\u0003H\u0086\b\u001a\u0013\u0010\u0019\u001a\b\u0012\u0004\u0012\u00020\u00020\u001a*\u00020\u0003H\u0086\u0002\u001a\u0015\u0010\u001b\u001a\u00020\u000e*\u00020\u00032\u0006\u0010\f\u001a\u00020\u0002H\u0086\n\u001a\u0015\u0010\u001c\u001a\u00020\u000e*\u00020\u00032\u0006\u0010\u0015\u001a\u00020\u0007H\u0086\b\"\u001b\u0010\u0000\u001a\b\u0012\u0004\u0012\u00020\u00020\u0001*\u00020\u00038F¢\u0006\u0006\u001a\u0004\b\u0004\u0010\u0005\"\u0016\u0010\u0006\u001a\u00020\u0007*\u00020\u00038Æ\u0002¢\u0006\u0006\u001a\u0004\b\b\u0010\t\u0082\u0002\u0007\n\u0005\b\u009920\u0001¨\u0006\u001d"}, d2 = {"children", "Lkotlin/sequences/Sequence;", "Landroid/view/MenuItem;", "Landroid/view/Menu;", "getChildren", "(Landroid/view/Menu;)Lkotlin/sequences/Sequence;", "size", "", "getSize", "(Landroid/view/Menu;)I", "contains", "", "item", "forEach", "", "action", "Lkotlin/Function1;", "Lkotlin/ParameterName;", "name", "forEachIndexed", "Lkotlin/Function2;", "index", "get", "isEmpty", "isNotEmpty", "iterator", "", "minusAssign", "removeItemAt", "core-ktx_release"}, k = 2, mv = {1, 7, 1}, xi = 48) | ||||
| /* loaded from: classes.dex */ | ||||
| public final class MenuKt { | ||||
|     public static final MenuItem get(Menu menu, int i) { | ||||
|         Intrinsics.checkNotNullParameter(menu, "<this>"); | ||||
|         MenuItem item = menu.getItem(i); | ||||
|         Intrinsics.checkNotNullExpressionValue(item, "getItem(index)"); | ||||
|         return item; | ||||
|     } | ||||
|  | ||||
|     public static final boolean contains(Menu menu, MenuItem item) { | ||||
|         Intrinsics.checkNotNullParameter(menu, "<this>"); | ||||
|         Intrinsics.checkNotNullParameter(item, "item"); | ||||
|         int size = menu.size(); | ||||
|         for (int i = 0; i < size; i++) { | ||||
|             if (Intrinsics.areEqual(menu.getItem(i), item)) { | ||||
|                 return true; | ||||
|             } | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public static final void minusAssign(Menu menu, MenuItem item) { | ||||
|         Intrinsics.checkNotNullParameter(menu, "<this>"); | ||||
|         Intrinsics.checkNotNullParameter(item, "item"); | ||||
|         menu.removeItem(item.getItemId()); | ||||
|     } | ||||
|  | ||||
|     public static final int getSize(Menu menu) { | ||||
|         Intrinsics.checkNotNullParameter(menu, "<this>"); | ||||
|         return menu.size(); | ||||
|     } | ||||
|  | ||||
|     public static final boolean isEmpty(Menu menu) { | ||||
|         Intrinsics.checkNotNullParameter(menu, "<this>"); | ||||
|         return menu.size() == 0; | ||||
|     } | ||||
|  | ||||
|     public static final boolean isNotEmpty(Menu menu) { | ||||
|         Intrinsics.checkNotNullParameter(menu, "<this>"); | ||||
|         return menu.size() != 0; | ||||
|     } | ||||
|  | ||||
|     public static final void forEach(Menu menu, Function1<? super MenuItem, Unit> action) { | ||||
|         Intrinsics.checkNotNullParameter(menu, "<this>"); | ||||
|         Intrinsics.checkNotNullParameter(action, "action"); | ||||
|         int size = menu.size(); | ||||
|         for (int i = 0; i < size; i++) { | ||||
|             MenuItem item = menu.getItem(i); | ||||
|             Intrinsics.checkNotNullExpressionValue(item, "getItem(index)"); | ||||
|             action.invoke(item); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final void forEachIndexed(Menu menu, Function2<? super Integer, ? super MenuItem, Unit> action) { | ||||
|         Intrinsics.checkNotNullParameter(menu, "<this>"); | ||||
|         Intrinsics.checkNotNullParameter(action, "action"); | ||||
|         int size = menu.size(); | ||||
|         for (int i = 0; i < size; i++) { | ||||
|             Integer valueOf = Integer.valueOf(i); | ||||
|             MenuItem item = menu.getItem(i); | ||||
|             Intrinsics.checkNotNullExpressionValue(item, "getItem(index)"); | ||||
|             action.invoke(valueOf, item); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final Iterator<MenuItem> iterator(Menu menu) { | ||||
|         Intrinsics.checkNotNullParameter(menu, "<this>"); | ||||
|         return new MenuKt$iterator$1(menu); | ||||
|     } | ||||
|  | ||||
|     public static final void removeItemAt(Menu menu, int i) { | ||||
|         Unit unit; | ||||
|         Intrinsics.checkNotNullParameter(menu, "<this>"); | ||||
|         MenuItem item = menu.getItem(i); | ||||
|         if (item != null) { | ||||
|             menu.removeItem(item.getItemId()); | ||||
|             unit = Unit.INSTANCE; | ||||
|         } else { | ||||
|             unit = null; | ||||
|         } | ||||
|         if (unit == null) { | ||||
|             throw new IndexOutOfBoundsException(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final Sequence<MenuItem> getChildren(final Menu menu) { | ||||
|         Intrinsics.checkNotNullParameter(menu, "<this>"); | ||||
|         return new Sequence<MenuItem>() { // from class: androidx.core.view.MenuKt$children$1 | ||||
|             @Override // kotlin.sequences.Sequence | ||||
|             public Iterator<MenuItem> iterator() { | ||||
|                 return MenuKt.iterator(menu); | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										26
									
								
								02-Easy5/E5/sources/androidx/core/view/MenuProvider.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								02-Easy5/E5/sources/androidx/core/view/MenuProvider.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.Menu; | ||||
| import android.view.MenuInflater; | ||||
| import android.view.MenuItem; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface MenuProvider { | ||||
|  | ||||
|     /* renamed from: androidx.core.view.MenuProvider$-CC, reason: invalid class name */ | ||||
|     public final /* synthetic */ class CC { | ||||
|         public static void $default$onMenuClosed(MenuProvider _this, Menu menu) { | ||||
|         } | ||||
|  | ||||
|         public static void $default$onPrepareMenu(MenuProvider _this, Menu menu) { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void onCreateMenu(Menu menu, MenuInflater menuInflater); | ||||
|  | ||||
|     void onMenuClosed(Menu menu); | ||||
|  | ||||
|     boolean onMenuItemSelected(MenuItem menuItem); | ||||
|  | ||||
|     void onPrepareMenu(Menu menu); | ||||
| } | ||||
							
								
								
									
										228
									
								
								02-Easy5/E5/sources/androidx/core/view/MotionEventCompat.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										228
									
								
								02-Easy5/E5/sources/androidx/core/view/MotionEventCompat.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,228 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.MotionEvent; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class MotionEventCompat { | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int ACTION_HOVER_ENTER = 9; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int ACTION_HOVER_EXIT = 10; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int ACTION_HOVER_MOVE = 7; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int ACTION_MASK = 255; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int ACTION_POINTER_DOWN = 5; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int ACTION_POINTER_INDEX_MASK = 65280; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int ACTION_POINTER_INDEX_SHIFT = 8; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int ACTION_POINTER_UP = 6; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int ACTION_SCROLL = 8; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_BRAKE = 23; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_DISTANCE = 24; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GAS = 22; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_1 = 32; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_10 = 41; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_11 = 42; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_12 = 43; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_13 = 44; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_14 = 45; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_15 = 46; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_16 = 47; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_2 = 33; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_3 = 34; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_4 = 35; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_5 = 36; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_6 = 37; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_7 = 38; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_8 = 39; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_GENERIC_9 = 40; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_HAT_X = 15; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_HAT_Y = 16; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_HSCROLL = 10; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_LTRIGGER = 17; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_ORIENTATION = 8; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_PRESSURE = 2; | ||||
|     public static final int AXIS_RELATIVE_X = 27; | ||||
|     public static final int AXIS_RELATIVE_Y = 28; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_RTRIGGER = 18; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_RUDDER = 20; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_RX = 12; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_RY = 13; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_RZ = 14; | ||||
|     public static final int AXIS_SCROLL = 26; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_SIZE = 3; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_THROTTLE = 19; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_TILT = 25; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_TOOL_MAJOR = 6; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_TOOL_MINOR = 7; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_TOUCH_MAJOR = 4; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_TOUCH_MINOR = 5; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_VSCROLL = 9; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_WHEEL = 21; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_X = 0; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_Y = 1; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int AXIS_Z = 11; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int BUTTON_PRIMARY = 1; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static int getActionMasked(MotionEvent motionEvent) { | ||||
|         return motionEvent.getActionMasked(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static int getActionIndex(MotionEvent motionEvent) { | ||||
|         return motionEvent.getActionIndex(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static int findPointerIndex(MotionEvent motionEvent, int i) { | ||||
|         return motionEvent.findPointerIndex(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static int getPointerId(MotionEvent motionEvent, int i) { | ||||
|         return motionEvent.getPointerId(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static float getX(MotionEvent motionEvent, int i) { | ||||
|         return motionEvent.getX(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static float getY(MotionEvent motionEvent, int i) { | ||||
|         return motionEvent.getY(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static int getPointerCount(MotionEvent motionEvent) { | ||||
|         return motionEvent.getPointerCount(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static int getSource(MotionEvent motionEvent) { | ||||
|         return motionEvent.getSource(); | ||||
|     } | ||||
|  | ||||
|     public static boolean isFromSource(MotionEvent motionEvent, int i) { | ||||
|         return (motionEvent.getSource() & i) == i; | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static float getAxisValue(MotionEvent motionEvent, int i) { | ||||
|         return motionEvent.getAxisValue(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static float getAxisValue(MotionEvent motionEvent, int i, int i2) { | ||||
|         return motionEvent.getAxisValue(i, i2); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static int getButtonState(MotionEvent motionEvent) { | ||||
|         return motionEvent.getButtonState(); | ||||
|     } | ||||
|  | ||||
|     private MotionEventCompat() { | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,22 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface NestedScrollingChild { | ||||
|     boolean dispatchNestedFling(float f, float f2, boolean z); | ||||
|  | ||||
|     boolean dispatchNestedPreFling(float f, float f2); | ||||
|  | ||||
|     boolean dispatchNestedPreScroll(int i, int i2, int[] iArr, int[] iArr2); | ||||
|  | ||||
|     boolean dispatchNestedScroll(int i, int i2, int i3, int i4, int[] iArr); | ||||
|  | ||||
|     boolean hasNestedScrollingParent(); | ||||
|  | ||||
|     boolean isNestedScrollingEnabled(); | ||||
|  | ||||
|     void setNestedScrollingEnabled(boolean z); | ||||
|  | ||||
|     boolean startNestedScroll(int i); | ||||
|  | ||||
|     void stopNestedScroll(); | ||||
| } | ||||
| @@ -0,0 +1,14 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface NestedScrollingChild2 extends NestedScrollingChild { | ||||
|     boolean dispatchNestedPreScroll(int i, int i2, int[] iArr, int[] iArr2, int i3); | ||||
|  | ||||
|     boolean dispatchNestedScroll(int i, int i2, int i3, int i4, int[] iArr, int i5); | ||||
|  | ||||
|     boolean hasNestedScrollingParent(int i); | ||||
|  | ||||
|     boolean startNestedScroll(int i, int i2); | ||||
|  | ||||
|     void stopNestedScroll(int i); | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface NestedScrollingChild3 extends NestedScrollingChild2 { | ||||
|     void dispatchNestedScroll(int i, int i2, int i3, int i4, int[] iArr, int i5, int[] iArr2); | ||||
| } | ||||
| @@ -0,0 +1,218 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
| import android.view.ViewParent; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class NestedScrollingChildHelper { | ||||
|     private boolean mIsNestedScrollingEnabled; | ||||
|     private ViewParent mNestedScrollingParentNonTouch; | ||||
|     private ViewParent mNestedScrollingParentTouch; | ||||
|     private int[] mTempNestedScrollConsumed; | ||||
|     private final View mView; | ||||
|  | ||||
|     private ViewParent getNestedScrollingParentForType(int i) { | ||||
|         if (i == 0) { | ||||
|             return this.mNestedScrollingParentTouch; | ||||
|         } | ||||
|         if (i != 1) { | ||||
|             return null; | ||||
|         } | ||||
|         return this.mNestedScrollingParentNonTouch; | ||||
|     } | ||||
|  | ||||
|     private int[] getTempNestedScrollConsumed() { | ||||
|         if (this.mTempNestedScrollConsumed == null) { | ||||
|             this.mTempNestedScrollConsumed = new int[2]; | ||||
|         } | ||||
|         return this.mTempNestedScrollConsumed; | ||||
|     } | ||||
|  | ||||
|     private void setNestedScrollingParentForType(int i, ViewParent viewParent) { | ||||
|         if (i == 0) { | ||||
|             this.mNestedScrollingParentTouch = viewParent; | ||||
|         } else { | ||||
|             if (i != 1) { | ||||
|                 return; | ||||
|             } | ||||
|             this.mNestedScrollingParentNonTouch = viewParent; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public boolean isNestedScrollingEnabled() { | ||||
|         return this.mIsNestedScrollingEnabled; | ||||
|     } | ||||
|  | ||||
|     public NestedScrollingChildHelper(View view) { | ||||
|         this.mView = view; | ||||
|     } | ||||
|  | ||||
|     public void setNestedScrollingEnabled(boolean z) { | ||||
|         if (this.mIsNestedScrollingEnabled) { | ||||
|             ViewCompat.stopNestedScroll(this.mView); | ||||
|         } | ||||
|         this.mIsNestedScrollingEnabled = z; | ||||
|     } | ||||
|  | ||||
|     public boolean hasNestedScrollingParent() { | ||||
|         return hasNestedScrollingParent(0); | ||||
|     } | ||||
|  | ||||
|     public boolean hasNestedScrollingParent(int i) { | ||||
|         return getNestedScrollingParentForType(i) != null; | ||||
|     } | ||||
|  | ||||
|     public boolean startNestedScroll(int i) { | ||||
|         return startNestedScroll(i, 0); | ||||
|     } | ||||
|  | ||||
|     public boolean startNestedScroll(int i, int i2) { | ||||
|         if (hasNestedScrollingParent(i2)) { | ||||
|             return true; | ||||
|         } | ||||
|         if (!isNestedScrollingEnabled()) { | ||||
|             return false; | ||||
|         } | ||||
|         View view = this.mView; | ||||
|         for (ViewParent parent = this.mView.getParent(); parent != null; parent = parent.getParent()) { | ||||
|             if (ViewParentCompat.onStartNestedScroll(parent, view, this.mView, i, i2)) { | ||||
|                 setNestedScrollingParentForType(i2, parent); | ||||
|                 ViewParentCompat.onNestedScrollAccepted(parent, view, this.mView, i, i2); | ||||
|                 return true; | ||||
|             } | ||||
|             if (parent instanceof View) { | ||||
|                 view = (View) parent; | ||||
|             } | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public void stopNestedScroll() { | ||||
|         stopNestedScroll(0); | ||||
|     } | ||||
|  | ||||
|     public void stopNestedScroll(int i) { | ||||
|         ViewParent nestedScrollingParentForType = getNestedScrollingParentForType(i); | ||||
|         if (nestedScrollingParentForType != null) { | ||||
|             ViewParentCompat.onStopNestedScroll(nestedScrollingParentForType, this.mView, i); | ||||
|             setNestedScrollingParentForType(i, null); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public boolean dispatchNestedScroll(int i, int i2, int i3, int i4, int[] iArr) { | ||||
|         return dispatchNestedScrollInternal(i, i2, i3, i4, iArr, 0, null); | ||||
|     } | ||||
|  | ||||
|     public boolean dispatchNestedScroll(int i, int i2, int i3, int i4, int[] iArr, int i5) { | ||||
|         return dispatchNestedScrollInternal(i, i2, i3, i4, iArr, i5, null); | ||||
|     } | ||||
|  | ||||
|     public void dispatchNestedScroll(int i, int i2, int i3, int i4, int[] iArr, int i5, int[] iArr2) { | ||||
|         dispatchNestedScrollInternal(i, i2, i3, i4, iArr, i5, iArr2); | ||||
|     } | ||||
|  | ||||
|     private boolean dispatchNestedScrollInternal(int i, int i2, int i3, int i4, int[] iArr, int i5, int[] iArr2) { | ||||
|         ViewParent nestedScrollingParentForType; | ||||
|         int i6; | ||||
|         int i7; | ||||
|         int[] iArr3; | ||||
|         if (!isNestedScrollingEnabled() || (nestedScrollingParentForType = getNestedScrollingParentForType(i5)) == null) { | ||||
|             return false; | ||||
|         } | ||||
|         if (i == 0 && i2 == 0 && i3 == 0 && i4 == 0) { | ||||
|             if (iArr != null) { | ||||
|                 iArr[0] = 0; | ||||
|                 iArr[1] = 0; | ||||
|             } | ||||
|             return false; | ||||
|         } | ||||
|         if (iArr != null) { | ||||
|             this.mView.getLocationInWindow(iArr); | ||||
|             i6 = iArr[0]; | ||||
|             i7 = iArr[1]; | ||||
|         } else { | ||||
|             i6 = 0; | ||||
|             i7 = 0; | ||||
|         } | ||||
|         if (iArr2 == null) { | ||||
|             int[] tempNestedScrollConsumed = getTempNestedScrollConsumed(); | ||||
|             tempNestedScrollConsumed[0] = 0; | ||||
|             tempNestedScrollConsumed[1] = 0; | ||||
|             iArr3 = tempNestedScrollConsumed; | ||||
|         } else { | ||||
|             iArr3 = iArr2; | ||||
|         } | ||||
|         ViewParentCompat.onNestedScroll(nestedScrollingParentForType, this.mView, i, i2, i3, i4, i5, iArr3); | ||||
|         if (iArr != null) { | ||||
|             this.mView.getLocationInWindow(iArr); | ||||
|             iArr[0] = iArr[0] - i6; | ||||
|             iArr[1] = iArr[1] - i7; | ||||
|         } | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     public boolean dispatchNestedPreScroll(int i, int i2, int[] iArr, int[] iArr2) { | ||||
|         return dispatchNestedPreScroll(i, i2, iArr, iArr2, 0); | ||||
|     } | ||||
|  | ||||
|     public boolean dispatchNestedPreScroll(int i, int i2, int[] iArr, int[] iArr2, int i3) { | ||||
|         ViewParent nestedScrollingParentForType; | ||||
|         int i4; | ||||
|         int i5; | ||||
|         if (!isNestedScrollingEnabled() || (nestedScrollingParentForType = getNestedScrollingParentForType(i3)) == null) { | ||||
|             return false; | ||||
|         } | ||||
|         if (i == 0 && i2 == 0) { | ||||
|             if (iArr2 == null) { | ||||
|                 return false; | ||||
|             } | ||||
|             iArr2[0] = 0; | ||||
|             iArr2[1] = 0; | ||||
|             return false; | ||||
|         } | ||||
|         if (iArr2 != null) { | ||||
|             this.mView.getLocationInWindow(iArr2); | ||||
|             i4 = iArr2[0]; | ||||
|             i5 = iArr2[1]; | ||||
|         } else { | ||||
|             i4 = 0; | ||||
|             i5 = 0; | ||||
|         } | ||||
|         if (iArr == null) { | ||||
|             iArr = getTempNestedScrollConsumed(); | ||||
|         } | ||||
|         iArr[0] = 0; | ||||
|         iArr[1] = 0; | ||||
|         ViewParentCompat.onNestedPreScroll(nestedScrollingParentForType, this.mView, i, i2, iArr, i3); | ||||
|         if (iArr2 != null) { | ||||
|             this.mView.getLocationInWindow(iArr2); | ||||
|             iArr2[0] = iArr2[0] - i4; | ||||
|             iArr2[1] = iArr2[1] - i5; | ||||
|         } | ||||
|         return (iArr[0] == 0 && iArr[1] == 0) ? false : true; | ||||
|     } | ||||
|  | ||||
|     public boolean dispatchNestedFling(float f, float f2, boolean z) { | ||||
|         ViewParent nestedScrollingParentForType; | ||||
|         if (!isNestedScrollingEnabled() || (nestedScrollingParentForType = getNestedScrollingParentForType(0)) == null) { | ||||
|             return false; | ||||
|         } | ||||
|         return ViewParentCompat.onNestedFling(nestedScrollingParentForType, this.mView, f, f2, z); | ||||
|     } | ||||
|  | ||||
|     public boolean dispatchNestedPreFling(float f, float f2) { | ||||
|         ViewParent nestedScrollingParentForType; | ||||
|         if (!isNestedScrollingEnabled() || (nestedScrollingParentForType = getNestedScrollingParentForType(0)) == null) { | ||||
|             return false; | ||||
|         } | ||||
|         return ViewParentCompat.onNestedPreFling(nestedScrollingParentForType, this.mView, f, f2); | ||||
|     } | ||||
|  | ||||
|     public void onDetachedFromWindow() { | ||||
|         ViewCompat.stopNestedScroll(this.mView); | ||||
|     } | ||||
|  | ||||
|     public void onStopNestedScroll(View view) { | ||||
|         ViewCompat.stopNestedScroll(this.mView); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,22 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface NestedScrollingParent { | ||||
|     int getNestedScrollAxes(); | ||||
|  | ||||
|     boolean onNestedFling(View view, float f, float f2, boolean z); | ||||
|  | ||||
|     boolean onNestedPreFling(View view, float f, float f2); | ||||
|  | ||||
|     void onNestedPreScroll(View view, int i, int i2, int[] iArr); | ||||
|  | ||||
|     void onNestedScroll(View view, int i, int i2, int i3, int i4); | ||||
|  | ||||
|     void onNestedScrollAccepted(View view, View view2, int i); | ||||
|  | ||||
|     boolean onStartNestedScroll(View view, View view2, int i); | ||||
|  | ||||
|     void onStopNestedScroll(View view); | ||||
| } | ||||
| @@ -0,0 +1,16 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface NestedScrollingParent2 extends NestedScrollingParent { | ||||
|     void onNestedPreScroll(View view, int i, int i2, int[] iArr, int i3); | ||||
|  | ||||
|     void onNestedScroll(View view, int i, int i2, int i3, int i4, int i5); | ||||
|  | ||||
|     void onNestedScrollAccepted(View view, View view2, int i, int i2); | ||||
|  | ||||
|     boolean onStartNestedScroll(View view, View view2, int i, int i2); | ||||
|  | ||||
|     void onStopNestedScroll(View view, int i); | ||||
| } | ||||
| @@ -0,0 +1,8 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface NestedScrollingParent3 extends NestedScrollingParent2 { | ||||
|     void onNestedScroll(View view, int i, int i2, int i3, int i4, int i5, int[] iArr); | ||||
| } | ||||
| @@ -0,0 +1,41 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class NestedScrollingParentHelper { | ||||
|     private int mNestedScrollAxesNonTouch; | ||||
|     private int mNestedScrollAxesTouch; | ||||
|  | ||||
|     public int getNestedScrollAxes() { | ||||
|         return this.mNestedScrollAxesTouch | this.mNestedScrollAxesNonTouch; | ||||
|     } | ||||
|  | ||||
|     public void onNestedScrollAccepted(View view, View view2, int i, int i2) { | ||||
|         if (i2 == 1) { | ||||
|             this.mNestedScrollAxesNonTouch = i; | ||||
|         } else { | ||||
|             this.mNestedScrollAxesTouch = i; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void onStopNestedScroll(View view, int i) { | ||||
|         if (i == 1) { | ||||
|             this.mNestedScrollAxesNonTouch = 0; | ||||
|         } else { | ||||
|             this.mNestedScrollAxesTouch = 0; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public NestedScrollingParentHelper(ViewGroup viewGroup) { | ||||
|     } | ||||
|  | ||||
|     public void onNestedScrollAccepted(View view, View view2, int i) { | ||||
|         onNestedScrollAccepted(view, view2, i, 0); | ||||
|     } | ||||
|  | ||||
|     public void onStopNestedScroll(View view) { | ||||
|         onStopNestedScroll(view, 0); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,8 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface OnApplyWindowInsetsListener { | ||||
|     WindowInsetsCompat onApplyWindowInsets(View view, WindowInsetsCompat windowInsetsCompat); | ||||
| } | ||||
| @@ -0,0 +1,8 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface OnReceiveContentListener { | ||||
|     ContentInfoCompat onReceiveContent(View view, ContentInfoCompat contentInfoCompat); | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface OnReceiveContentViewBehavior { | ||||
|     ContentInfoCompat onReceiveContent(ContentInfoCompat contentInfoCompat); | ||||
| } | ||||
| @@ -0,0 +1,56 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
| import android.view.ViewTreeObserver; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class OneShotPreDrawListener implements ViewTreeObserver.OnPreDrawListener, View.OnAttachStateChangeListener { | ||||
|     private final Runnable mRunnable; | ||||
|     private final View mView; | ||||
|     private ViewTreeObserver mViewTreeObserver; | ||||
|  | ||||
|     private OneShotPreDrawListener(View view, Runnable runnable) { | ||||
|         this.mView = view; | ||||
|         this.mViewTreeObserver = view.getViewTreeObserver(); | ||||
|         this.mRunnable = runnable; | ||||
|     } | ||||
|  | ||||
|     public static OneShotPreDrawListener add(View view, Runnable runnable) { | ||||
|         if (view == null) { | ||||
|             throw new NullPointerException("view == null"); | ||||
|         } | ||||
|         if (runnable == null) { | ||||
|             throw new NullPointerException("runnable == null"); | ||||
|         } | ||||
|         OneShotPreDrawListener oneShotPreDrawListener = new OneShotPreDrawListener(view, runnable); | ||||
|         view.getViewTreeObserver().addOnPreDrawListener(oneShotPreDrawListener); | ||||
|         view.addOnAttachStateChangeListener(oneShotPreDrawListener); | ||||
|         return oneShotPreDrawListener; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.ViewTreeObserver.OnPreDrawListener | ||||
|     public boolean onPreDraw() { | ||||
|         removeListener(); | ||||
|         this.mRunnable.run(); | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     public void removeListener() { | ||||
|         if (this.mViewTreeObserver.isAlive()) { | ||||
|             this.mViewTreeObserver.removeOnPreDrawListener(this); | ||||
|         } else { | ||||
|             this.mView.getViewTreeObserver().removeOnPreDrawListener(this); | ||||
|         } | ||||
|         this.mView.removeOnAttachStateChangeListener(this); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View.OnAttachStateChangeListener | ||||
|     public void onViewAttachedToWindow(View view) { | ||||
|         this.mViewTreeObserver = view.getViewTreeObserver(); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View.OnAttachStateChangeListener | ||||
|     public void onViewDetachedFromWindow(View view) { | ||||
|         removeListener(); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,81 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.content.res.Resources; | ||||
| import android.graphics.Bitmap; | ||||
| import android.os.Build; | ||||
| import android.view.PointerIcon; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class PointerIconCompat { | ||||
|     public static final int TYPE_ALIAS = 1010; | ||||
|     public static final int TYPE_ALL_SCROLL = 1013; | ||||
|     public static final int TYPE_ARROW = 1000; | ||||
|     public static final int TYPE_CELL = 1006; | ||||
|     public static final int TYPE_CONTEXT_MENU = 1001; | ||||
|     public static final int TYPE_COPY = 1011; | ||||
|     public static final int TYPE_CROSSHAIR = 1007; | ||||
|     public static final int TYPE_DEFAULT = 1000; | ||||
|     public static final int TYPE_GRAB = 1020; | ||||
|     public static final int TYPE_GRABBING = 1021; | ||||
|     public static final int TYPE_HAND = 1002; | ||||
|     public static final int TYPE_HELP = 1003; | ||||
|     public static final int TYPE_HORIZONTAL_DOUBLE_ARROW = 1014; | ||||
|     public static final int TYPE_NO_DROP = 1012; | ||||
|     public static final int TYPE_NULL = 0; | ||||
|     public static final int TYPE_TEXT = 1008; | ||||
|     public static final int TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW = 1017; | ||||
|     public static final int TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW = 1016; | ||||
|     public static final int TYPE_VERTICAL_DOUBLE_ARROW = 1015; | ||||
|     public static final int TYPE_VERTICAL_TEXT = 1009; | ||||
|     public static final int TYPE_WAIT = 1004; | ||||
|     public static final int TYPE_ZOOM_IN = 1018; | ||||
|     public static final int TYPE_ZOOM_OUT = 1019; | ||||
|     private final PointerIcon mPointerIcon; | ||||
|  | ||||
|     public Object getPointerIcon() { | ||||
|         return this.mPointerIcon; | ||||
|     } | ||||
|  | ||||
|     private PointerIconCompat(PointerIcon pointerIcon) { | ||||
|         this.mPointerIcon = pointerIcon; | ||||
|     } | ||||
|  | ||||
|     public static PointerIconCompat getSystemIcon(Context context, int i) { | ||||
|         if (Build.VERSION.SDK_INT >= 24) { | ||||
|             return new PointerIconCompat(Api24Impl.getSystemIcon(context, i)); | ||||
|         } | ||||
|         return new PointerIconCompat(null); | ||||
|     } | ||||
|  | ||||
|     public static PointerIconCompat create(Bitmap bitmap, float f, float f2) { | ||||
|         if (Build.VERSION.SDK_INT >= 24) { | ||||
|             return new PointerIconCompat(Api24Impl.create(bitmap, f, f2)); | ||||
|         } | ||||
|         return new PointerIconCompat(null); | ||||
|     } | ||||
|  | ||||
|     public static PointerIconCompat load(Resources resources, int i) { | ||||
|         if (Build.VERSION.SDK_INT >= 24) { | ||||
|             return new PointerIconCompat(Api24Impl.load(resources, i)); | ||||
|         } | ||||
|         return new PointerIconCompat(null); | ||||
|     } | ||||
|  | ||||
|     static class Api24Impl { | ||||
|         private Api24Impl() { | ||||
|         } | ||||
|  | ||||
|         static PointerIcon getSystemIcon(Context context, int i) { | ||||
|             return PointerIcon.getSystemIcon(context, i); | ||||
|         } | ||||
|  | ||||
|         static PointerIcon create(Bitmap bitmap, float f, float f2) { | ||||
|             return PointerIcon.create(bitmap, f, f2); | ||||
|         } | ||||
|  | ||||
|         static PointerIcon load(Resources resources, int i) { | ||||
|             return PointerIcon.load(resources, i); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,40 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.ScaleGestureDetector; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class ScaleGestureDetectorCompat { | ||||
|     private ScaleGestureDetectorCompat() { | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static void setQuickScaleEnabled(Object obj, boolean z) { | ||||
|         setQuickScaleEnabled((ScaleGestureDetector) obj, z); | ||||
|     } | ||||
|  | ||||
|     public static void setQuickScaleEnabled(ScaleGestureDetector scaleGestureDetector, boolean z) { | ||||
|         Api19Impl.setQuickScaleEnabled(scaleGestureDetector, z); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static boolean isQuickScaleEnabled(Object obj) { | ||||
|         return isQuickScaleEnabled((ScaleGestureDetector) obj); | ||||
|     } | ||||
|  | ||||
|     public static boolean isQuickScaleEnabled(ScaleGestureDetector scaleGestureDetector) { | ||||
|         return Api19Impl.isQuickScaleEnabled(scaleGestureDetector); | ||||
|     } | ||||
|  | ||||
|     static class Api19Impl { | ||||
|         private Api19Impl() { | ||||
|         } | ||||
|  | ||||
|         static void setQuickScaleEnabled(ScaleGestureDetector scaleGestureDetector, boolean z) { | ||||
|             scaleGestureDetector.setQuickScaleEnabled(z); | ||||
|         } | ||||
|  | ||||
|         static boolean isQuickScaleEnabled(ScaleGestureDetector scaleGestureDetector) { | ||||
|             return scaleGestureDetector.isQuickScaleEnabled(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										16
									
								
								02-Easy5/E5/sources/androidx/core/view/ScrollingView.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								02-Easy5/E5/sources/androidx/core/view/ScrollingView.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface ScrollingView { | ||||
|     int computeHorizontalScrollExtent(); | ||||
|  | ||||
|     int computeHorizontalScrollOffset(); | ||||
|  | ||||
|     int computeHorizontalScrollRange(); | ||||
|  | ||||
|     int computeVerticalScrollExtent(); | ||||
|  | ||||
|     int computeVerticalScrollOffset(); | ||||
|  | ||||
|     int computeVerticalScrollRange(); | ||||
| } | ||||
| @@ -0,0 +1,15 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.content.res.ColorStateList; | ||||
| import android.graphics.PorterDuff; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface TintableBackgroundView { | ||||
|     ColorStateList getSupportBackgroundTintList(); | ||||
|  | ||||
|     PorterDuff.Mode getSupportBackgroundTintMode(); | ||||
|  | ||||
|     void setSupportBackgroundTintList(ColorStateList colorStateList); | ||||
|  | ||||
|     void setSupportBackgroundTintMode(PorterDuff.Mode mode); | ||||
| } | ||||
| @@ -0,0 +1,20 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.VelocityTracker; | ||||
|  | ||||
| @Deprecated | ||||
| /* loaded from: classes.dex */ | ||||
| public final class VelocityTrackerCompat { | ||||
|     @Deprecated | ||||
|     public static float getXVelocity(VelocityTracker velocityTracker, int i) { | ||||
|         return velocityTracker.getXVelocity(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static float getYVelocity(VelocityTracker velocityTracker, int i) { | ||||
|         return velocityTracker.getYVelocity(i); | ||||
|     } | ||||
|  | ||||
|     private VelocityTrackerCompat() { | ||||
|     } | ||||
| } | ||||
							
								
								
									
										2442
									
								
								02-Easy5/E5/sources/androidx/core/view/ViewCompat.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2442
									
								
								02-Easy5/E5/sources/androidx/core/view/ViewCompat.java
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -0,0 +1,111 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.R; | ||||
| import android.content.Context; | ||||
| import android.content.res.Resources; | ||||
| import android.os.Build; | ||||
| import android.util.Log; | ||||
| import android.util.TypedValue; | ||||
| import android.view.ViewConfiguration; | ||||
| import java.lang.reflect.Method; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class ViewConfigurationCompat { | ||||
|     private static final String TAG = "ViewConfigCompat"; | ||||
|     private static Method sGetScaledScrollFactorMethod; | ||||
|  | ||||
|     static { | ||||
|         if (Build.VERSION.SDK_INT == 25) { | ||||
|             try { | ||||
|                 sGetScaledScrollFactorMethod = ViewConfiguration.class.getDeclaredMethod("getScaledScrollFactor", new Class[0]); | ||||
|             } catch (Exception unused) { | ||||
|                 Log.i(TAG, "Could not find method getScaledScrollFactor() on ViewConfiguration"); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static int getScaledPagingTouchSlop(ViewConfiguration viewConfiguration) { | ||||
|         return viewConfiguration.getScaledPagingTouchSlop(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static boolean hasPermanentMenuKey(ViewConfiguration viewConfiguration) { | ||||
|         return viewConfiguration.hasPermanentMenuKey(); | ||||
|     } | ||||
|  | ||||
|     public static float getScaledHorizontalScrollFactor(ViewConfiguration viewConfiguration, Context context) { | ||||
|         if (Build.VERSION.SDK_INT >= 26) { | ||||
|             return Api26Impl.getScaledHorizontalScrollFactor(viewConfiguration); | ||||
|         } | ||||
|         return getLegacyScrollFactor(viewConfiguration, context); | ||||
|     } | ||||
|  | ||||
|     public static float getScaledVerticalScrollFactor(ViewConfiguration viewConfiguration, Context context) { | ||||
|         if (Build.VERSION.SDK_INT >= 26) { | ||||
|             return Api26Impl.getScaledVerticalScrollFactor(viewConfiguration); | ||||
|         } | ||||
|         return getLegacyScrollFactor(viewConfiguration, context); | ||||
|     } | ||||
|  | ||||
|     private static float getLegacyScrollFactor(ViewConfiguration viewConfiguration, Context context) { | ||||
|         Method method; | ||||
|         if (Build.VERSION.SDK_INT >= 25 && (method = sGetScaledScrollFactorMethod) != null) { | ||||
|             try { | ||||
|                 return ((Integer) method.invoke(viewConfiguration, new Object[0])).intValue(); | ||||
|             } catch (Exception unused) { | ||||
|                 Log.i(TAG, "Could not find method getScaledScrollFactor() on ViewConfiguration"); | ||||
|             } | ||||
|         } | ||||
|         TypedValue typedValue = new TypedValue(); | ||||
|         if (context.getTheme().resolveAttribute(R.attr.listPreferredItemHeight, typedValue, true)) { | ||||
|             return typedValue.getDimension(context.getResources().getDisplayMetrics()); | ||||
|         } | ||||
|         return 0.0f; | ||||
|     } | ||||
|  | ||||
|     public static int getScaledHoverSlop(ViewConfiguration viewConfiguration) { | ||||
|         if (Build.VERSION.SDK_INT >= 28) { | ||||
|             return Api28Impl.getScaledHoverSlop(viewConfiguration); | ||||
|         } | ||||
|         return viewConfiguration.getScaledTouchSlop() / 2; | ||||
|     } | ||||
|  | ||||
|     public static boolean shouldShowMenuShortcutsWhenKeyboardPresent(ViewConfiguration viewConfiguration, Context context) { | ||||
|         if (Build.VERSION.SDK_INT >= 28) { | ||||
|             return Api28Impl.shouldShowMenuShortcutsWhenKeyboardPresent(viewConfiguration); | ||||
|         } | ||||
|         Resources resources = context.getResources(); | ||||
|         int identifier = resources.getIdentifier("config_showMenuShortcutsWhenKeyboardPresent", "bool", "android"); | ||||
|         return identifier != 0 && resources.getBoolean(identifier); | ||||
|     } | ||||
|  | ||||
|     private ViewConfigurationCompat() { | ||||
|     } | ||||
|  | ||||
|     static class Api26Impl { | ||||
|         private Api26Impl() { | ||||
|         } | ||||
|  | ||||
|         static float getScaledHorizontalScrollFactor(ViewConfiguration viewConfiguration) { | ||||
|             return viewConfiguration.getScaledHorizontalScrollFactor(); | ||||
|         } | ||||
|  | ||||
|         static float getScaledVerticalScrollFactor(ViewConfiguration viewConfiguration) { | ||||
|             return viewConfiguration.getScaledVerticalScrollFactor(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api28Impl { | ||||
|         private Api28Impl() { | ||||
|         } | ||||
|  | ||||
|         static int getScaledHoverSlop(ViewConfiguration viewConfiguration) { | ||||
|             return viewConfiguration.getScaledHoverSlop(); | ||||
|         } | ||||
|  | ||||
|         static boolean shouldShowMenuShortcutsWhenKeyboardPresent(ViewConfiguration viewConfiguration) { | ||||
|             return viewConfiguration.shouldShowMenuShortcutsWhenKeyboardPresent(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										74
									
								
								02-Easy5/E5/sources/androidx/core/view/ViewGroupCompat.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								02-Easy5/E5/sources/androidx/core/view/ViewGroupCompat.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
| import android.view.accessibility.AccessibilityEvent; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class ViewGroupCompat { | ||||
|     public static final int LAYOUT_MODE_CLIP_BOUNDS = 0; | ||||
|     public static final int LAYOUT_MODE_OPTICAL_BOUNDS = 1; | ||||
|  | ||||
|     private ViewGroupCompat() { | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static boolean onRequestSendAccessibilityEvent(ViewGroup viewGroup, View view, AccessibilityEvent accessibilityEvent) { | ||||
|         return viewGroup.onRequestSendAccessibilityEvent(view, accessibilityEvent); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static void setMotionEventSplittingEnabled(ViewGroup viewGroup, boolean z) { | ||||
|         viewGroup.setMotionEventSplittingEnabled(z); | ||||
|     } | ||||
|  | ||||
|     public static int getLayoutMode(ViewGroup viewGroup) { | ||||
|         return Api18Impl.getLayoutMode(viewGroup); | ||||
|     } | ||||
|  | ||||
|     public static void setLayoutMode(ViewGroup viewGroup, int i) { | ||||
|         Api18Impl.setLayoutMode(viewGroup, i); | ||||
|     } | ||||
|  | ||||
|     public static void setTransitionGroup(ViewGroup viewGroup, boolean z) { | ||||
|         Api21Impl.setTransitionGroup(viewGroup, z); | ||||
|     } | ||||
|  | ||||
|     public static boolean isTransitionGroup(ViewGroup viewGroup) { | ||||
|         return Api21Impl.isTransitionGroup(viewGroup); | ||||
|     } | ||||
|  | ||||
|     public static int getNestedScrollAxes(ViewGroup viewGroup) { | ||||
|         return Api21Impl.getNestedScrollAxes(viewGroup); | ||||
|     } | ||||
|  | ||||
|     static class Api18Impl { | ||||
|         private Api18Impl() { | ||||
|         } | ||||
|  | ||||
|         static int getLayoutMode(ViewGroup viewGroup) { | ||||
|             return viewGroup.getLayoutMode(); | ||||
|         } | ||||
|  | ||||
|         static void setLayoutMode(ViewGroup viewGroup, int i) { | ||||
|             viewGroup.setLayoutMode(i); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api21Impl { | ||||
|         private Api21Impl() { | ||||
|         } | ||||
|  | ||||
|         static void setTransitionGroup(ViewGroup viewGroup, boolean z) { | ||||
|             viewGroup.setTransitionGroup(z); | ||||
|         } | ||||
|  | ||||
|         static boolean isTransitionGroup(ViewGroup viewGroup) { | ||||
|             return viewGroup.isTransitionGroup(); | ||||
|         } | ||||
|  | ||||
|         static int getNestedScrollAxes(ViewGroup viewGroup) { | ||||
|             return viewGroup.getNestedScrollAxes(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,164 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
| import kotlin.Metadata; | ||||
| import kotlin.Unit; | ||||
| import kotlin.coroutines.Continuation; | ||||
| import kotlin.coroutines.jvm.internal.DebugMetadata; | ||||
| import kotlin.coroutines.jvm.internal.RestrictedSuspendLambda; | ||||
| import kotlin.jvm.functions.Function2; | ||||
| import kotlin.sequences.SequenceScope; | ||||
|  | ||||
| /* compiled from: ViewGroup.kt */ | ||||
| @Metadata(d1 = {"\u0000\u000e\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0010\u0002\n\u0000\u0010\u0003\u001a\u00020\u0002*\b\u0012\u0004\u0012\u00020\u00010\u0000H\u008a@"}, d2 = {"Lkotlin/sequences/SequenceScope;", "Landroid/view/View;", "", "<anonymous>"}, k = 3, mv = {1, 7, 1}) | ||||
| @DebugMetadata(c = "androidx.core.view.ViewGroupKt$descendants$1", f = "ViewGroup.kt", i = {0, 0, 0, 0, 1, 1, 1}, l = {119, 121}, m = "invokeSuspend", n = {"$this$sequence", "$this$forEach$iv", "child", "index$iv", "$this$sequence", "$this$forEach$iv", "index$iv"}, s = {"L$0", "L$1", "L$2", "I$0", "L$0", "L$1", "I$0"}) | ||||
| /* loaded from: classes.dex */ | ||||
| final class ViewGroupKt$descendants$1 extends RestrictedSuspendLambda implements Function2<SequenceScope<? super View>, Continuation<? super Unit>, Object> { | ||||
|     final /* synthetic */ ViewGroup $this_descendants; | ||||
|     int I$0; | ||||
|     int I$1; | ||||
|     private /* synthetic */ Object L$0; | ||||
|     Object L$1; | ||||
|     Object L$2; | ||||
|     int label; | ||||
|  | ||||
|     /* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */ | ||||
|     ViewGroupKt$descendants$1(ViewGroup viewGroup, Continuation<? super ViewGroupKt$descendants$1> continuation) { | ||||
|         super(2, continuation); | ||||
|         this.$this_descendants = viewGroup; | ||||
|     } | ||||
|  | ||||
|     @Override // kotlin.coroutines.jvm.internal.BaseContinuationImpl | ||||
|     public final Continuation<Unit> create(Object obj, Continuation<?> continuation) { | ||||
|         ViewGroupKt$descendants$1 viewGroupKt$descendants$1 = new ViewGroupKt$descendants$1(this.$this_descendants, continuation); | ||||
|         viewGroupKt$descendants$1.L$0 = obj; | ||||
|         return viewGroupKt$descendants$1; | ||||
|     } | ||||
|  | ||||
|     @Override // kotlin.jvm.functions.Function2 | ||||
|     public final Object invoke(SequenceScope<? super View> sequenceScope, Continuation<? super Unit> continuation) { | ||||
|         return ((ViewGroupKt$descendants$1) create(sequenceScope, continuation)).invokeSuspend(Unit.INSTANCE); | ||||
|     } | ||||
|  | ||||
|     /* JADX WARN: Removed duplicated region for block: B:16:0x0075  */ | ||||
|     /* JADX WARN: Removed duplicated region for block: B:20:0x0098  */ | ||||
|     /* JADX WARN: Removed duplicated region for block: B:21:0x00a1  */ | ||||
|     /* JADX WARN: Removed duplicated region for block: B:9:0x004e  */ | ||||
|     /* JADX WARN: Unsupported multi-entry loop pattern (BACK_EDGE: B:19:0x008f -> B:6:0x0091). Please report as a decompilation issue!!! */ | ||||
|     /* JADX WARN: Unsupported multi-entry loop pattern (BACK_EDGE: B:20:0x0098 -> B:7:0x009c). Please report as a decompilation issue!!! */ | ||||
|     @Override // kotlin.coroutines.jvm.internal.BaseContinuationImpl | ||||
|     /* | ||||
|         Code decompiled incorrectly, please refer to instructions dump. | ||||
|         To view partially-correct add '--show-bad-code' argument | ||||
|     */ | ||||
|     public final java.lang.Object invokeSuspend(java.lang.Object r12) { | ||||
|         /* | ||||
|             r11 = this; | ||||
|             java.lang.Object r0 = kotlin.coroutines.intrinsics.IntrinsicsKt.getCOROUTINE_SUSPENDED() | ||||
|             int r1 = r11.label | ||||
|             r2 = 2 | ||||
|             r3 = 1 | ||||
|             if (r1 == 0) goto L3d | ||||
|             if (r1 == r3) goto L28 | ||||
|             if (r1 != r2) goto L20 | ||||
|             int r1 = r11.I$1 | ||||
|             int r4 = r11.I$0 | ||||
|             java.lang.Object r5 = r11.L$1 | ||||
|             android.view.ViewGroup r5 = (android.view.ViewGroup) r5 | ||||
|             java.lang.Object r6 = r11.L$0 | ||||
|             kotlin.sequences.SequenceScope r6 = (kotlin.sequences.SequenceScope) r6 | ||||
|             kotlin.ResultKt.throwOnFailure(r12) | ||||
|             r12 = r11 | ||||
|             goto L91 | ||||
|         L20: | ||||
|             java.lang.IllegalStateException r12 = new java.lang.IllegalStateException | ||||
|             java.lang.String r0 = "call to 'resume' before 'invoke' with coroutine" | ||||
|             r12.<init>(r0) | ||||
|             throw r12 | ||||
|         L28: | ||||
|             int r1 = r11.I$1 | ||||
|             int r4 = r11.I$0 | ||||
|             java.lang.Object r5 = r11.L$2 | ||||
|             android.view.View r5 = (android.view.View) r5 | ||||
|             java.lang.Object r6 = r11.L$1 | ||||
|             android.view.ViewGroup r6 = (android.view.ViewGroup) r6 | ||||
|             java.lang.Object r7 = r11.L$0 | ||||
|             kotlin.sequences.SequenceScope r7 = (kotlin.sequences.SequenceScope) r7 | ||||
|             kotlin.ResultKt.throwOnFailure(r12) | ||||
|             r12 = r11 | ||||
|             goto L71 | ||||
|         L3d: | ||||
|             kotlin.ResultKt.throwOnFailure(r12) | ||||
|             java.lang.Object r12 = r11.L$0 | ||||
|             kotlin.sequences.SequenceScope r12 = (kotlin.sequences.SequenceScope) r12 | ||||
|             android.view.ViewGroup r1 = r11.$this_descendants | ||||
|             int r4 = r1.getChildCount() | ||||
|             r5 = 0 | ||||
|             r6 = r11 | ||||
|         L4c: | ||||
|             if (r5 >= r4) goto La1 | ||||
|             android.view.View r7 = r1.getChildAt(r5) | ||||
|             java.lang.String r8 = "getChildAt(index)" | ||||
|             kotlin.jvm.internal.Intrinsics.checkNotNullExpressionValue(r7, r8) | ||||
|             r6.L$0 = r12 | ||||
|             r6.L$1 = r1 | ||||
|             r6.L$2 = r7 | ||||
|             r6.I$0 = r5 | ||||
|             r6.I$1 = r4 | ||||
|             r6.label = r3 | ||||
|             java.lang.Object r8 = r12.yield(r7, r6) | ||||
|             if (r8 != r0) goto L6a | ||||
|             return r0 | ||||
|         L6a: | ||||
|             r9 = r7 | ||||
|             r7 = r12 | ||||
|             r12 = r6 | ||||
|             r6 = r1 | ||||
|             r1 = r4 | ||||
|             r4 = r5 | ||||
|             r5 = r9 | ||||
|         L71: | ||||
|             boolean r8 = r5 instanceof android.view.ViewGroup | ||||
|             if (r8 == 0) goto L98 | ||||
|             android.view.ViewGroup r5 = (android.view.ViewGroup) r5 | ||||
|             kotlin.sequences.Sequence r5 = androidx.core.view.ViewGroupKt.getDescendants(r5) | ||||
|             r12.L$0 = r7 | ||||
|             r12.L$1 = r6 | ||||
|             r8 = 0 | ||||
|             r12.L$2 = r8 | ||||
|             r12.I$0 = r4 | ||||
|             r12.I$1 = r1 | ||||
|             r12.label = r2 | ||||
|             java.lang.Object r5 = r7.yieldAll(r5, r12) | ||||
|             if (r5 != r0) goto L8f | ||||
|             return r0 | ||||
|         L8f: | ||||
|             r5 = r6 | ||||
|             r6 = r7 | ||||
|         L91: | ||||
|             r9 = r6 | ||||
|             r6 = r12 | ||||
|             r12 = r9 | ||||
|             r10 = r5 | ||||
|             r5 = r1 | ||||
|             r1 = r10 | ||||
|             goto L9c | ||||
|         L98: | ||||
|             r5 = r1 | ||||
|             r1 = r6 | ||||
|             r6 = r12 | ||||
|             r12 = r7 | ||||
|         L9c: | ||||
|             int r4 = r4 + r3 | ||||
|             r9 = r5 | ||||
|             r5 = r4 | ||||
|             r4 = r9 | ||||
|             goto L4c | ||||
|         La1: | ||||
|             kotlin.Unit r12 = kotlin.Unit.INSTANCE | ||||
|             return r12 | ||||
|         */ | ||||
|         throw new UnsupportedOperationException("Method not decompiled: androidx.core.view.ViewGroupKt$descendants$1.invokeSuspend(java.lang.Object):java.lang.Object"); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,45 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
| import java.util.Iterator; | ||||
| import kotlin.Metadata; | ||||
| import kotlin.jvm.internal.markers.KMutableIterator; | ||||
|  | ||||
| /* compiled from: ViewGroup.kt */ | ||||
| @Metadata(d1 = {"\u0000#\n\u0000\n\u0002\u0010)\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000*\u0001\u0000\b\n\u0018\u00002\b\u0012\u0004\u0012\u00020\u00020\u0001J\t\u0010\u0005\u001a\u00020\u0006H\u0096\u0002J\t\u0010\u0007\u001a\u00020\u0002H\u0096\u0002J\b\u0010\b\u001a\u00020\tH\u0016R\u000e\u0010\u0003\u001a\u00020\u0004X\u0082\u000e¢\u0006\u0002\n\u0000¨\u0006\n"}, d2 = {"androidx/core/view/ViewGroupKt$iterator$1", "", "Landroid/view/View;", "index", "", "hasNext", "", "next", "remove", "", "core-ktx_release"}, k = 1, mv = {1, 7, 1}, xi = 48) | ||||
| /* loaded from: classes.dex */ | ||||
| public final class ViewGroupKt$iterator$1 implements Iterator<View>, KMutableIterator { | ||||
|     final /* synthetic */ ViewGroup $this_iterator; | ||||
|     private int index; | ||||
|  | ||||
|     ViewGroupKt$iterator$1(ViewGroup viewGroup) { | ||||
|         this.$this_iterator = viewGroup; | ||||
|     } | ||||
|  | ||||
|     @Override // java.util.Iterator | ||||
|     public boolean hasNext() { | ||||
|         return this.index < this.$this_iterator.getChildCount(); | ||||
|     } | ||||
|  | ||||
|     /* JADX WARN: Can't rename method to resolve collision */ | ||||
|     @Override // java.util.Iterator | ||||
|     public View next() { | ||||
|         ViewGroup viewGroup = this.$this_iterator; | ||||
|         int i = this.index; | ||||
|         this.index = i + 1; | ||||
|         View childAt = viewGroup.getChildAt(i); | ||||
|         if (childAt != null) { | ||||
|             return childAt; | ||||
|         } | ||||
|         throw new IndexOutOfBoundsException(); | ||||
|     } | ||||
|  | ||||
|     @Override // java.util.Iterator | ||||
|     public void remove() { | ||||
|         ViewGroup viewGroup = this.$this_iterator; | ||||
|         int i = this.index - 1; | ||||
|         this.index = i; | ||||
|         viewGroup.removeViewAt(i); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										164
									
								
								02-Easy5/E5/sources/androidx/core/view/ViewGroupKt.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								02-Easy5/E5/sources/androidx/core/view/ViewGroupKt.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,164 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
| import java.util.Iterator; | ||||
| import kotlin.Metadata; | ||||
| import kotlin.Unit; | ||||
| import kotlin.jvm.functions.Function1; | ||||
| import kotlin.jvm.functions.Function2; | ||||
| import kotlin.jvm.internal.Intrinsics; | ||||
| import kotlin.ranges.IntRange; | ||||
| import kotlin.ranges.RangesKt; | ||||
| import kotlin.sequences.Sequence; | ||||
| import kotlin.sequences.SequencesKt; | ||||
|  | ||||
| /* compiled from: ViewGroup.kt */ | ||||
| @Metadata(d1 = {"\u0000T\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\b\n\u0002\b\u0003\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0010)\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\t\u001a\u0015\u0010\u0010\u001a\u00020\u0011*\u00020\u00032\u0006\u0010\u0012\u001a\u00020\u0002H\u0086\n\u001a3\u0010\u0013\u001a\u00020\u0014*\u00020\u00032!\u0010\u0015\u001a\u001d\u0012\u0013\u0012\u00110\u0002¢\u0006\f\b\u0017\u0012\b\b\u0018\u0012\u0004\b\b(\u0012\u0012\u0004\u0012\u00020\u00140\u0016H\u0086\bø\u0001\u0000\u001aH\u0010\u0019\u001a\u00020\u0014*\u00020\u000326\u0010\u0015\u001a2\u0012\u0013\u0012\u00110\r¢\u0006\f\b\u0017\u0012\b\b\u0018\u0012\u0004\b\b(\u001b\u0012\u0013\u0012\u00110\u0002¢\u0006\f\b\u0017\u0012\b\b\u0018\u0012\u0004\b\b(\u0012\u0012\u0004\u0012\u00020\u00140\u001aH\u0086\bø\u0001\u0000\u001a\u0015\u0010\u001c\u001a\u00020\u0002*\u00020\u00032\u0006\u0010\u001b\u001a\u00020\rH\u0086\u0002\u001a\r\u0010\u001d\u001a\u00020\u0011*\u00020\u0003H\u0086\b\u001a\r\u0010\u001e\u001a\u00020\u0011*\u00020\u0003H\u0086\b\u001a\u0013\u0010\u001f\u001a\b\u0012\u0004\u0012\u00020\u00020 *\u00020\u0003H\u0086\u0002\u001a\u0015\u0010!\u001a\u00020\u0014*\u00020\u00032\u0006\u0010\u0012\u001a\u00020\u0002H\u0086\n\u001a\u0015\u0010\"\u001a\u00020\u0014*\u00020\u00032\u0006\u0010\u0012\u001a\u00020\u0002H\u0086\n\u001a\u0017\u0010#\u001a\u00020\u0014*\u00020$2\b\b\u0001\u0010\f\u001a\u00020\rH\u0086\b\u001a5\u0010%\u001a\u00020\u0014*\u00020$2\b\b\u0003\u0010&\u001a\u00020\r2\b\b\u0003\u0010'\u001a\u00020\r2\b\b\u0003\u0010(\u001a\u00020\r2\b\b\u0003\u0010)\u001a\u00020\rH\u0086\b\u001a5\u0010*\u001a\u00020\u0014*\u00020$2\b\b\u0003\u0010+\u001a\u00020\r2\b\b\u0003\u0010'\u001a\u00020\r2\b\b\u0003\u0010,\u001a\u00020\r2\b\b\u0003\u0010)\u001a\u00020\rH\u0087\b\"\u001b\u0010\u0000\u001a\b\u0012\u0004\u0012\u00020\u00020\u0001*\u00020\u00038F¢\u0006\u0006\u001a\u0004\b\u0004\u0010\u0005\"\u001b\u0010\u0006\u001a\b\u0012\u0004\u0012\u00020\u00020\u0001*\u00020\u00038F¢\u0006\u0006\u001a\u0004\b\u0007\u0010\u0005\"\u0016\u0010\b\u001a\u00020\t*\u00020\u00038Æ\u0002¢\u0006\u0006\u001a\u0004\b\n\u0010\u000b\"\u0016\u0010\f\u001a\u00020\r*\u00020\u00038Æ\u0002¢\u0006\u0006\u001a\u0004\b\u000e\u0010\u000f\u0082\u0002\u0007\n\u0005\b\u009920\u0001¨\u0006-"}, d2 = {"children", "Lkotlin/sequences/Sequence;", "Landroid/view/View;", "Landroid/view/ViewGroup;", "getChildren", "(Landroid/view/ViewGroup;)Lkotlin/sequences/Sequence;", "descendants", "getDescendants", "indices", "Lkotlin/ranges/IntRange;", "getIndices", "(Landroid/view/ViewGroup;)Lkotlin/ranges/IntRange;", "size", "", "getSize", "(Landroid/view/ViewGroup;)I", "contains", "", "view", "forEach", "", "action", "Lkotlin/Function1;", "Lkotlin/ParameterName;", "name", "forEachIndexed", "Lkotlin/Function2;", "index", "get", "isEmpty", "isNotEmpty", "iterator", "", "minusAssign", "plusAssign", "setMargins", "Landroid/view/ViewGroup$MarginLayoutParams;", "updateMargins", "left", "top", "right", "bottom", "updateMarginsRelative", "start", "end", "core-ktx_release"}, k = 2, mv = {1, 7, 1}, xi = 48) | ||||
| /* loaded from: classes.dex */ | ||||
| public final class ViewGroupKt { | ||||
|     public static final View get(ViewGroup viewGroup, int i) { | ||||
|         Intrinsics.checkNotNullParameter(viewGroup, "<this>"); | ||||
|         View childAt = viewGroup.getChildAt(i); | ||||
|         if (childAt != null) { | ||||
|             return childAt; | ||||
|         } | ||||
|         throw new IndexOutOfBoundsException("Index: " + i + ", Size: " + viewGroup.getChildCount()); | ||||
|     } | ||||
|  | ||||
|     public static final boolean contains(ViewGroup viewGroup, View view) { | ||||
|         Intrinsics.checkNotNullParameter(viewGroup, "<this>"); | ||||
|         Intrinsics.checkNotNullParameter(view, "view"); | ||||
|         return viewGroup.indexOfChild(view) != -1; | ||||
|     } | ||||
|  | ||||
|     public static final void plusAssign(ViewGroup viewGroup, View view) { | ||||
|         Intrinsics.checkNotNullParameter(viewGroup, "<this>"); | ||||
|         Intrinsics.checkNotNullParameter(view, "view"); | ||||
|         viewGroup.addView(view); | ||||
|     } | ||||
|  | ||||
|     public static final void minusAssign(ViewGroup viewGroup, View view) { | ||||
|         Intrinsics.checkNotNullParameter(viewGroup, "<this>"); | ||||
|         Intrinsics.checkNotNullParameter(view, "view"); | ||||
|         viewGroup.removeView(view); | ||||
|     } | ||||
|  | ||||
|     public static final int getSize(ViewGroup viewGroup) { | ||||
|         Intrinsics.checkNotNullParameter(viewGroup, "<this>"); | ||||
|         return viewGroup.getChildCount(); | ||||
|     } | ||||
|  | ||||
|     public static final boolean isEmpty(ViewGroup viewGroup) { | ||||
|         Intrinsics.checkNotNullParameter(viewGroup, "<this>"); | ||||
|         return viewGroup.getChildCount() == 0; | ||||
|     } | ||||
|  | ||||
|     public static final boolean isNotEmpty(ViewGroup viewGroup) { | ||||
|         Intrinsics.checkNotNullParameter(viewGroup, "<this>"); | ||||
|         return viewGroup.getChildCount() != 0; | ||||
|     } | ||||
|  | ||||
|     public static final void forEach(ViewGroup viewGroup, Function1<? super View, Unit> action) { | ||||
|         Intrinsics.checkNotNullParameter(viewGroup, "<this>"); | ||||
|         Intrinsics.checkNotNullParameter(action, "action"); | ||||
|         int childCount = viewGroup.getChildCount(); | ||||
|         for (int i = 0; i < childCount; i++) { | ||||
|             View childAt = viewGroup.getChildAt(i); | ||||
|             Intrinsics.checkNotNullExpressionValue(childAt, "getChildAt(index)"); | ||||
|             action.invoke(childAt); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final void forEachIndexed(ViewGroup viewGroup, Function2<? super Integer, ? super View, Unit> action) { | ||||
|         Intrinsics.checkNotNullParameter(viewGroup, "<this>"); | ||||
|         Intrinsics.checkNotNullParameter(action, "action"); | ||||
|         int childCount = viewGroup.getChildCount(); | ||||
|         for (int i = 0; i < childCount; i++) { | ||||
|             Integer valueOf = Integer.valueOf(i); | ||||
|             View childAt = viewGroup.getChildAt(i); | ||||
|             Intrinsics.checkNotNullExpressionValue(childAt, "getChildAt(index)"); | ||||
|             action.invoke(valueOf, childAt); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final IntRange getIndices(ViewGroup viewGroup) { | ||||
|         Intrinsics.checkNotNullParameter(viewGroup, "<this>"); | ||||
|         return RangesKt.until(0, viewGroup.getChildCount()); | ||||
|     } | ||||
|  | ||||
|     public static final Iterator<View> iterator(ViewGroup viewGroup) { | ||||
|         Intrinsics.checkNotNullParameter(viewGroup, "<this>"); | ||||
|         return new ViewGroupKt$iterator$1(viewGroup); | ||||
|     } | ||||
|  | ||||
|     public static final Sequence<View> getChildren(final ViewGroup viewGroup) { | ||||
|         Intrinsics.checkNotNullParameter(viewGroup, "<this>"); | ||||
|         return new Sequence<View>() { // from class: androidx.core.view.ViewGroupKt$children$1 | ||||
|             @Override // kotlin.sequences.Sequence | ||||
|             public Iterator<View> iterator() { | ||||
|                 return ViewGroupKt.iterator(viewGroup); | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     public static final Sequence<View> getDescendants(ViewGroup viewGroup) { | ||||
|         Intrinsics.checkNotNullParameter(viewGroup, "<this>"); | ||||
|         return SequencesKt.sequence(new ViewGroupKt$descendants$1(viewGroup, null)); | ||||
|     } | ||||
|  | ||||
|     public static final void setMargins(ViewGroup.MarginLayoutParams marginLayoutParams, int i) { | ||||
|         Intrinsics.checkNotNullParameter(marginLayoutParams, "<this>"); | ||||
|         marginLayoutParams.setMargins(i, i, i, i); | ||||
|     } | ||||
|  | ||||
|     public static /* synthetic */ void updateMargins$default(ViewGroup.MarginLayoutParams marginLayoutParams, int i, int i2, int i3, int i4, int i5, Object obj) { | ||||
|         if ((i5 & 1) != 0) { | ||||
|             i = marginLayoutParams.leftMargin; | ||||
|         } | ||||
|         if ((i5 & 2) != 0) { | ||||
|             i2 = marginLayoutParams.topMargin; | ||||
|         } | ||||
|         if ((i5 & 4) != 0) { | ||||
|             i3 = marginLayoutParams.rightMargin; | ||||
|         } | ||||
|         if ((i5 & 8) != 0) { | ||||
|             i4 = marginLayoutParams.bottomMargin; | ||||
|         } | ||||
|         Intrinsics.checkNotNullParameter(marginLayoutParams, "<this>"); | ||||
|         marginLayoutParams.setMargins(i, i2, i3, i4); | ||||
|     } | ||||
|  | ||||
|     public static final void updateMargins(ViewGroup.MarginLayoutParams marginLayoutParams, int i, int i2, int i3, int i4) { | ||||
|         Intrinsics.checkNotNullParameter(marginLayoutParams, "<this>"); | ||||
|         marginLayoutParams.setMargins(i, i2, i3, i4); | ||||
|     } | ||||
|  | ||||
|     public static /* synthetic */ void updateMarginsRelative$default(ViewGroup.MarginLayoutParams marginLayoutParams, int i, int i2, int i3, int i4, int i5, Object obj) { | ||||
|         if ((i5 & 1) != 0) { | ||||
|             i = marginLayoutParams.getMarginStart(); | ||||
|         } | ||||
|         if ((i5 & 2) != 0) { | ||||
|             i2 = marginLayoutParams.topMargin; | ||||
|         } | ||||
|         if ((i5 & 4) != 0) { | ||||
|             i3 = marginLayoutParams.getMarginEnd(); | ||||
|         } | ||||
|         if ((i5 & 8) != 0) { | ||||
|             i4 = marginLayoutParams.bottomMargin; | ||||
|         } | ||||
|         Intrinsics.checkNotNullParameter(marginLayoutParams, "<this>"); | ||||
|         marginLayoutParams.setMarginStart(i); | ||||
|         marginLayoutParams.topMargin = i2; | ||||
|         marginLayoutParams.setMarginEnd(i3); | ||||
|         marginLayoutParams.bottomMargin = i4; | ||||
|     } | ||||
|  | ||||
|     public static final void updateMarginsRelative(ViewGroup.MarginLayoutParams marginLayoutParams, int i, int i2, int i3, int i4) { | ||||
|         Intrinsics.checkNotNullParameter(marginLayoutParams, "<this>"); | ||||
|         marginLayoutParams.setMarginStart(i); | ||||
|         marginLayoutParams.topMargin = i2; | ||||
|         marginLayoutParams.setMarginEnd(i3); | ||||
|         marginLayoutParams.bottomMargin = i4; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,77 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
| import androidx.constraintlayout.core.motion.utils.TypedValues; | ||||
| import kotlin.Metadata; | ||||
| import kotlin.ResultKt; | ||||
| import kotlin.Unit; | ||||
| import kotlin.coroutines.Continuation; | ||||
| import kotlin.coroutines.intrinsics.IntrinsicsKt; | ||||
| import kotlin.coroutines.jvm.internal.DebugMetadata; | ||||
| import kotlin.coroutines.jvm.internal.RestrictedSuspendLambda; | ||||
| import kotlin.jvm.functions.Function2; | ||||
| import kotlin.sequences.SequenceScope; | ||||
|  | ||||
| /* compiled from: View.kt */ | ||||
| @Metadata(d1 = {"\u0000\u000e\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0010\u0002\n\u0000\u0010\u0003\u001a\u00020\u0002*\b\u0012\u0004\u0012\u00020\u00010\u0000H\u008a@"}, d2 = {"Lkotlin/sequences/SequenceScope;", "Landroid/view/View;", "", "<anonymous>"}, k = 3, mv = {1, 7, 1}) | ||||
| @DebugMetadata(c = "androidx.core.view.ViewKt$allViews$1", f = "View.kt", i = {0}, l = {414, TypedValues.CycleType.TYPE_PATH_ROTATE}, m = "invokeSuspend", n = {"$this$sequence"}, s = {"L$0"}) | ||||
| /* loaded from: classes.dex */ | ||||
| final class ViewKt$allViews$1 extends RestrictedSuspendLambda implements Function2<SequenceScope<? super View>, Continuation<? super Unit>, Object> { | ||||
|     final /* synthetic */ View $this_allViews; | ||||
|     private /* synthetic */ Object L$0; | ||||
|     int label; | ||||
|  | ||||
|     /* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */ | ||||
|     ViewKt$allViews$1(View view, Continuation<? super ViewKt$allViews$1> continuation) { | ||||
|         super(2, continuation); | ||||
|         this.$this_allViews = view; | ||||
|     } | ||||
|  | ||||
|     @Override // kotlin.coroutines.jvm.internal.BaseContinuationImpl | ||||
|     public final Continuation<Unit> create(Object obj, Continuation<?> continuation) { | ||||
|         ViewKt$allViews$1 viewKt$allViews$1 = new ViewKt$allViews$1(this.$this_allViews, continuation); | ||||
|         viewKt$allViews$1.L$0 = obj; | ||||
|         return viewKt$allViews$1; | ||||
|     } | ||||
|  | ||||
|     @Override // kotlin.jvm.functions.Function2 | ||||
|     public final Object invoke(SequenceScope<? super View> sequenceScope, Continuation<? super Unit> continuation) { | ||||
|         return ((ViewKt$allViews$1) create(sequenceScope, continuation)).invokeSuspend(Unit.INSTANCE); | ||||
|     } | ||||
|  | ||||
|     @Override // kotlin.coroutines.jvm.internal.BaseContinuationImpl | ||||
|     public final Object invokeSuspend(Object obj) { | ||||
|         SequenceScope sequenceScope; | ||||
|         Object coroutine_suspended = IntrinsicsKt.getCOROUTINE_SUSPENDED(); | ||||
|         int i = this.label; | ||||
|         if (i == 0) { | ||||
|             ResultKt.throwOnFailure(obj); | ||||
|             sequenceScope = (SequenceScope) this.L$0; | ||||
|             this.L$0 = sequenceScope; | ||||
|             this.label = 1; | ||||
|             if (sequenceScope.yield(this.$this_allViews, this) == coroutine_suspended) { | ||||
|                 return coroutine_suspended; | ||||
|             } | ||||
|         } else { | ||||
|             if (i != 1) { | ||||
|                 if (i == 2) { | ||||
|                     ResultKt.throwOnFailure(obj); | ||||
|                     return Unit.INSTANCE; | ||||
|                 } | ||||
|                 throw new IllegalStateException("call to 'resume' before 'invoke' with coroutine"); | ||||
|             } | ||||
|             sequenceScope = (SequenceScope) this.L$0; | ||||
|             ResultKt.throwOnFailure(obj); | ||||
|         } | ||||
|         View view = this.$this_allViews; | ||||
|         if (view instanceof ViewGroup) { | ||||
|             this.L$0 = null; | ||||
|             this.label = 2; | ||||
|             if (sequenceScope.yieldAll(ViewGroupKt.getDescendants((ViewGroup) view), this) == coroutine_suspended) { | ||||
|                 return coroutine_suspended; | ||||
|             } | ||||
|         } | ||||
|         return Unit.INSTANCE; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,24 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.ViewParent; | ||||
| import kotlin.Metadata; | ||||
| import kotlin.jvm.functions.Function1; | ||||
| import kotlin.jvm.internal.FunctionReferenceImpl; | ||||
| import kotlin.jvm.internal.Intrinsics; | ||||
|  | ||||
| /* compiled from: View.kt */ | ||||
| @Metadata(k = 3, mv = {1, 7, 1}, xi = 48) | ||||
| /* loaded from: classes.dex */ | ||||
| /* synthetic */ class ViewKt$ancestors$1 extends FunctionReferenceImpl implements Function1<ViewParent, ViewParent> { | ||||
|     public static final ViewKt$ancestors$1 INSTANCE = new ViewKt$ancestors$1(); | ||||
|  | ||||
|     ViewKt$ancestors$1() { | ||||
|         super(1, ViewParent.class, "getParent", "getParent()Landroid/view/ViewParent;", 0); | ||||
|     } | ||||
|  | ||||
|     @Override // kotlin.jvm.functions.Function1 | ||||
|     public final ViewParent invoke(ViewParent p0) { | ||||
|         Intrinsics.checkNotNullParameter(p0, "p0"); | ||||
|         return p0.getParent(); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										327
									
								
								02-Easy5/E5/sources/androidx/core/view/ViewKt.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										327
									
								
								02-Easy5/E5/sources/androidx/core/view/ViewKt.java
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										196
									
								
								02-Easy5/E5/sources/androidx/core/view/ViewParentCompat.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										196
									
								
								02-Easy5/E5/sources/androidx/core/view/ViewParentCompat.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,196 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.util.Log; | ||||
| import android.view.View; | ||||
| import android.view.ViewParent; | ||||
| import android.view.accessibility.AccessibilityEvent; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class ViewParentCompat { | ||||
|     private static final String TAG = "ViewParentCompat"; | ||||
|     private static int[] sTempNestedScrollConsumed; | ||||
|  | ||||
|     private ViewParentCompat() { | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static boolean requestSendAccessibilityEvent(ViewParent viewParent, View view, AccessibilityEvent accessibilityEvent) { | ||||
|         return viewParent.requestSendAccessibilityEvent(view, accessibilityEvent); | ||||
|     } | ||||
|  | ||||
|     public static boolean onStartNestedScroll(ViewParent viewParent, View view, View view2, int i) { | ||||
|         return onStartNestedScroll(viewParent, view, view2, i, 0); | ||||
|     } | ||||
|  | ||||
|     public static void onNestedScrollAccepted(ViewParent viewParent, View view, View view2, int i) { | ||||
|         onNestedScrollAccepted(viewParent, view, view2, i, 0); | ||||
|     } | ||||
|  | ||||
|     public static void onStopNestedScroll(ViewParent viewParent, View view) { | ||||
|         onStopNestedScroll(viewParent, view, 0); | ||||
|     } | ||||
|  | ||||
|     public static void onNestedScroll(ViewParent viewParent, View view, int i, int i2, int i3, int i4) { | ||||
|         onNestedScroll(viewParent, view, i, i2, i3, i4, 0, getTempNestedScrollConsumed()); | ||||
|     } | ||||
|  | ||||
|     public static void onNestedScroll(ViewParent viewParent, View view, int i, int i2, int i3, int i4, int i5) { | ||||
|         onNestedScroll(viewParent, view, i, i2, i3, i4, i5, getTempNestedScrollConsumed()); | ||||
|     } | ||||
|  | ||||
|     public static void onNestedPreScroll(ViewParent viewParent, View view, int i, int i2, int[] iArr) { | ||||
|         onNestedPreScroll(viewParent, view, i, i2, iArr, 0); | ||||
|     } | ||||
|  | ||||
|     public static boolean onStartNestedScroll(ViewParent viewParent, View view, View view2, int i, int i2) { | ||||
|         if (viewParent instanceof NestedScrollingParent2) { | ||||
|             return ((NestedScrollingParent2) viewParent).onStartNestedScroll(view, view2, i, i2); | ||||
|         } | ||||
|         if (i2 != 0) { | ||||
|             return false; | ||||
|         } | ||||
|         try { | ||||
|             return Api21Impl.onStartNestedScroll(viewParent, view, view2, i); | ||||
|         } catch (AbstractMethodError e) { | ||||
|             Log.e(TAG, "ViewParent " + viewParent + " does not implement interface method onStartNestedScroll", e); | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static void onNestedScrollAccepted(ViewParent viewParent, View view, View view2, int i, int i2) { | ||||
|         if (viewParent instanceof NestedScrollingParent2) { | ||||
|             ((NestedScrollingParent2) viewParent).onNestedScrollAccepted(view, view2, i, i2); | ||||
|             return; | ||||
|         } | ||||
|         if (i2 == 0) { | ||||
|             try { | ||||
|                 Api21Impl.onNestedScrollAccepted(viewParent, view, view2, i); | ||||
|             } catch (AbstractMethodError e) { | ||||
|                 Log.e(TAG, "ViewParent " + viewParent + " does not implement interface method onNestedScrollAccepted", e); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static void onStopNestedScroll(ViewParent viewParent, View view, int i) { | ||||
|         if (viewParent instanceof NestedScrollingParent2) { | ||||
|             ((NestedScrollingParent2) viewParent).onStopNestedScroll(view, i); | ||||
|             return; | ||||
|         } | ||||
|         if (i == 0) { | ||||
|             try { | ||||
|                 Api21Impl.onStopNestedScroll(viewParent, view); | ||||
|             } catch (AbstractMethodError e) { | ||||
|                 Log.e(TAG, "ViewParent " + viewParent + " does not implement interface method onStopNestedScroll", e); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static void onNestedScroll(ViewParent viewParent, View view, int i, int i2, int i3, int i4, int i5, int[] iArr) { | ||||
|         if (viewParent instanceof NestedScrollingParent3) { | ||||
|             ((NestedScrollingParent3) viewParent).onNestedScroll(view, i, i2, i3, i4, i5, iArr); | ||||
|             return; | ||||
|         } | ||||
|         iArr[0] = iArr[0] + i3; | ||||
|         iArr[1] = iArr[1] + i4; | ||||
|         if (viewParent instanceof NestedScrollingParent2) { | ||||
|             ((NestedScrollingParent2) viewParent).onNestedScroll(view, i, i2, i3, i4, i5); | ||||
|             return; | ||||
|         } | ||||
|         if (i5 == 0) { | ||||
|             try { | ||||
|                 Api21Impl.onNestedScroll(viewParent, view, i, i2, i3, i4); | ||||
|             } catch (AbstractMethodError e) { | ||||
|                 Log.e(TAG, "ViewParent " + viewParent + " does not implement interface method onNestedScroll", e); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static void onNestedPreScroll(ViewParent viewParent, View view, int i, int i2, int[] iArr, int i3) { | ||||
|         if (viewParent instanceof NestedScrollingParent2) { | ||||
|             ((NestedScrollingParent2) viewParent).onNestedPreScroll(view, i, i2, iArr, i3); | ||||
|             return; | ||||
|         } | ||||
|         if (i3 == 0) { | ||||
|             try { | ||||
|                 Api21Impl.onNestedPreScroll(viewParent, view, i, i2, iArr); | ||||
|             } catch (AbstractMethodError e) { | ||||
|                 Log.e(TAG, "ViewParent " + viewParent + " does not implement interface method onNestedPreScroll", e); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static boolean onNestedFling(ViewParent viewParent, View view, float f, float f2, boolean z) { | ||||
|         try { | ||||
|             return Api21Impl.onNestedFling(viewParent, view, f, f2, z); | ||||
|         } catch (AbstractMethodError e) { | ||||
|             Log.e(TAG, "ViewParent " + viewParent + " does not implement interface method onNestedFling", e); | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static boolean onNestedPreFling(ViewParent viewParent, View view, float f, float f2) { | ||||
|         try { | ||||
|             return Api21Impl.onNestedPreFling(viewParent, view, f, f2); | ||||
|         } catch (AbstractMethodError e) { | ||||
|             Log.e(TAG, "ViewParent " + viewParent + " does not implement interface method onNestedPreFling", e); | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static void notifySubtreeAccessibilityStateChanged(ViewParent viewParent, View view, View view2, int i) { | ||||
|         Api19Impl.notifySubtreeAccessibilityStateChanged(viewParent, view, view2, i); | ||||
|     } | ||||
|  | ||||
|     private static int[] getTempNestedScrollConsumed() { | ||||
|         int[] iArr = sTempNestedScrollConsumed; | ||||
|         if (iArr == null) { | ||||
|             sTempNestedScrollConsumed = new int[2]; | ||||
|         } else { | ||||
|             iArr[0] = 0; | ||||
|             iArr[1] = 0; | ||||
|         } | ||||
|         return sTempNestedScrollConsumed; | ||||
|     } | ||||
|  | ||||
|     static class Api19Impl { | ||||
|         private Api19Impl() { | ||||
|         } | ||||
|  | ||||
|         static void notifySubtreeAccessibilityStateChanged(ViewParent viewParent, View view, View view2, int i) { | ||||
|             viewParent.notifySubtreeAccessibilityStateChanged(view, view2, i); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api21Impl { | ||||
|         private Api21Impl() { | ||||
|         } | ||||
|  | ||||
|         static boolean onStartNestedScroll(ViewParent viewParent, View view, View view2, int i) { | ||||
|             return viewParent.onStartNestedScroll(view, view2, i); | ||||
|         } | ||||
|  | ||||
|         static void onNestedScrollAccepted(ViewParent viewParent, View view, View view2, int i) { | ||||
|             viewParent.onNestedScrollAccepted(view, view2, i); | ||||
|         } | ||||
|  | ||||
|         static void onStopNestedScroll(ViewParent viewParent, View view) { | ||||
|             viewParent.onStopNestedScroll(view); | ||||
|         } | ||||
|  | ||||
|         static void onNestedScroll(ViewParent viewParent, View view, int i, int i2, int i3, int i4) { | ||||
|             viewParent.onNestedScroll(view, i, i2, i3, i4); | ||||
|         } | ||||
|  | ||||
|         static void onNestedPreScroll(ViewParent viewParent, View view, int i, int i2, int[] iArr) { | ||||
|             viewParent.onNestedPreScroll(view, i, i2, iArr); | ||||
|         } | ||||
|  | ||||
|         static boolean onNestedFling(ViewParent viewParent, View view, float f, float f2, boolean z) { | ||||
|             return viewParent.onNestedFling(view, f, f2, z); | ||||
|         } | ||||
|  | ||||
|         static boolean onNestedPreFling(ViewParent viewParent, View view, float f, float f2) { | ||||
|             return viewParent.onNestedPreFling(view, f, f2); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,455 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.animation.Animator; | ||||
| import android.animation.AnimatorListenerAdapter; | ||||
| import android.animation.ValueAnimator; | ||||
| import android.view.View; | ||||
| import android.view.ViewPropertyAnimator; | ||||
| import android.view.animation.Interpolator; | ||||
| import java.lang.ref.WeakReference; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class ViewPropertyAnimatorCompat { | ||||
|     static final int LISTENER_TAG_ID = 2113929216; | ||||
|     private final WeakReference<View> mView; | ||||
|     Runnable mStartAction = null; | ||||
|     Runnable mEndAction = null; | ||||
|     int mOldLayerType = -1; | ||||
|  | ||||
|     ViewPropertyAnimatorCompat(View view) { | ||||
|         this.mView = new WeakReference<>(view); | ||||
|     } | ||||
|  | ||||
|     static class ViewPropertyAnimatorListenerApi14 implements ViewPropertyAnimatorListener { | ||||
|         boolean mAnimEndCalled; | ||||
|         ViewPropertyAnimatorCompat mVpa; | ||||
|  | ||||
|         ViewPropertyAnimatorListenerApi14(ViewPropertyAnimatorCompat viewPropertyAnimatorCompat) { | ||||
|             this.mVpa = viewPropertyAnimatorCompat; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ViewPropertyAnimatorListener | ||||
|         public void onAnimationStart(View view) { | ||||
|             this.mAnimEndCalled = false; | ||||
|             if (this.mVpa.mOldLayerType > -1) { | ||||
|                 view.setLayerType(2, null); | ||||
|             } | ||||
|             if (this.mVpa.mStartAction != null) { | ||||
|                 Runnable runnable = this.mVpa.mStartAction; | ||||
|                 this.mVpa.mStartAction = null; | ||||
|                 runnable.run(); | ||||
|             } | ||||
|             Object tag = view.getTag(ViewPropertyAnimatorCompat.LISTENER_TAG_ID); | ||||
|             ViewPropertyAnimatorListener viewPropertyAnimatorListener = tag instanceof ViewPropertyAnimatorListener ? (ViewPropertyAnimatorListener) tag : null; | ||||
|             if (viewPropertyAnimatorListener != null) { | ||||
|                 viewPropertyAnimatorListener.onAnimationStart(view); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ViewPropertyAnimatorListener | ||||
|         public void onAnimationEnd(View view) { | ||||
|             if (this.mVpa.mOldLayerType > -1) { | ||||
|                 view.setLayerType(this.mVpa.mOldLayerType, null); | ||||
|                 this.mVpa.mOldLayerType = -1; | ||||
|             } | ||||
|             if (this.mVpa.mEndAction != null) { | ||||
|                 Runnable runnable = this.mVpa.mEndAction; | ||||
|                 this.mVpa.mEndAction = null; | ||||
|                 runnable.run(); | ||||
|             } | ||||
|             Object tag = view.getTag(ViewPropertyAnimatorCompat.LISTENER_TAG_ID); | ||||
|             ViewPropertyAnimatorListener viewPropertyAnimatorListener = tag instanceof ViewPropertyAnimatorListener ? (ViewPropertyAnimatorListener) tag : null; | ||||
|             if (viewPropertyAnimatorListener != null) { | ||||
|                 viewPropertyAnimatorListener.onAnimationEnd(view); | ||||
|             } | ||||
|             this.mAnimEndCalled = true; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.ViewPropertyAnimatorListener | ||||
|         public void onAnimationCancel(View view) { | ||||
|             Object tag = view.getTag(ViewPropertyAnimatorCompat.LISTENER_TAG_ID); | ||||
|             ViewPropertyAnimatorListener viewPropertyAnimatorListener = tag instanceof ViewPropertyAnimatorListener ? (ViewPropertyAnimatorListener) tag : null; | ||||
|             if (viewPropertyAnimatorListener != null) { | ||||
|                 viewPropertyAnimatorListener.onAnimationCancel(view); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat setDuration(long j) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().setDuration(j); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat alpha(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().alpha(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat alphaBy(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().alphaBy(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat translationX(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().translationX(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat translationY(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().translationY(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat withEndAction(Runnable runnable) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             Api16Impl.withEndAction(view.animate(), runnable); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public long getDuration() { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             return view.animate().getDuration(); | ||||
|         } | ||||
|         return 0L; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat setInterpolator(Interpolator interpolator) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().setInterpolator(interpolator); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public Interpolator getInterpolator() { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             return Api18Impl.getInterpolator(view.animate()); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat setStartDelay(long j) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().setStartDelay(j); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public long getStartDelay() { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             return view.animate().getStartDelay(); | ||||
|         } | ||||
|         return 0L; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat rotation(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().rotation(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat rotationBy(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().rotationBy(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat rotationX(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().rotationX(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat rotationXBy(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().rotationXBy(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat rotationY(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().rotationY(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat rotationYBy(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().rotationYBy(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat scaleX(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().scaleX(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat scaleXBy(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().scaleXBy(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat scaleY(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().scaleY(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat scaleYBy(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().scaleYBy(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public void cancel() { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().cancel(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat x(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().x(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat xBy(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().xBy(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat y(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().y(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat yBy(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().yBy(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat translationXBy(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().translationXBy(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat translationYBy(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().translationYBy(f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat translationZBy(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             Api21Impl.translationZBy(view.animate(), f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat translationZ(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             Api21Impl.translationZ(view.animate(), f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat z(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             Api21Impl.z(view.animate(), f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat zBy(float f) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             Api21Impl.zBy(view.animate(), f); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public void start() { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             view.animate().start(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat withLayer() { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             Api16Impl.withLayer(view.animate()); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat withStartAction(Runnable runnable) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             Api16Impl.withStartAction(view.animate(), runnable); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat setListener(ViewPropertyAnimatorListener viewPropertyAnimatorListener) { | ||||
|         View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             setListenerInternal(view, viewPropertyAnimatorListener); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     private void setListenerInternal(final View view, final ViewPropertyAnimatorListener viewPropertyAnimatorListener) { | ||||
|         if (viewPropertyAnimatorListener != null) { | ||||
|             view.animate().setListener(new AnimatorListenerAdapter() { // from class: androidx.core.view.ViewPropertyAnimatorCompat.1 | ||||
|                 @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener | ||||
|                 public void onAnimationCancel(Animator animator) { | ||||
|                     viewPropertyAnimatorListener.onAnimationCancel(view); | ||||
|                 } | ||||
|  | ||||
|                 @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener | ||||
|                 public void onAnimationEnd(Animator animator) { | ||||
|                     viewPropertyAnimatorListener.onAnimationEnd(view); | ||||
|                 } | ||||
|  | ||||
|                 @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener | ||||
|                 public void onAnimationStart(Animator animator) { | ||||
|                     viewPropertyAnimatorListener.onAnimationStart(view); | ||||
|                 } | ||||
|             }); | ||||
|         } else { | ||||
|             view.animate().setListener(null); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public ViewPropertyAnimatorCompat setUpdateListener(final ViewPropertyAnimatorUpdateListener viewPropertyAnimatorUpdateListener) { | ||||
|         final View view = this.mView.get(); | ||||
|         if (view != null) { | ||||
|             Api19Impl.setUpdateListener(view.animate(), viewPropertyAnimatorUpdateListener != null ? new ValueAnimator.AnimatorUpdateListener() { // from class: androidx.core.view.ViewPropertyAnimatorCompat$$ExternalSyntheticLambda0 | ||||
|                 @Override // android.animation.ValueAnimator.AnimatorUpdateListener | ||||
|                 public final void onAnimationUpdate(ValueAnimator valueAnimator) { | ||||
|                     ViewPropertyAnimatorUpdateListener.this.onAnimationUpdate(view); | ||||
|                 } | ||||
|             } : null); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     static class Api16Impl { | ||||
|         private Api16Impl() { | ||||
|         } | ||||
|  | ||||
|         static ViewPropertyAnimator withEndAction(ViewPropertyAnimator viewPropertyAnimator, Runnable runnable) { | ||||
|             return viewPropertyAnimator.withEndAction(runnable); | ||||
|         } | ||||
|  | ||||
|         static ViewPropertyAnimator withLayer(ViewPropertyAnimator viewPropertyAnimator) { | ||||
|             return viewPropertyAnimator.withLayer(); | ||||
|         } | ||||
|  | ||||
|         static ViewPropertyAnimator withStartAction(ViewPropertyAnimator viewPropertyAnimator, Runnable runnable) { | ||||
|             return viewPropertyAnimator.withStartAction(runnable); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api18Impl { | ||||
|         private Api18Impl() { | ||||
|         } | ||||
|  | ||||
|         static Interpolator getInterpolator(ViewPropertyAnimator viewPropertyAnimator) { | ||||
|             return (Interpolator) viewPropertyAnimator.getInterpolator(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api21Impl { | ||||
|         private Api21Impl() { | ||||
|         } | ||||
|  | ||||
|         static ViewPropertyAnimator translationZBy(ViewPropertyAnimator viewPropertyAnimator, float f) { | ||||
|             return viewPropertyAnimator.translationZBy(f); | ||||
|         } | ||||
|  | ||||
|         static ViewPropertyAnimator translationZ(ViewPropertyAnimator viewPropertyAnimator, float f) { | ||||
|             return viewPropertyAnimator.translationZ(f); | ||||
|         } | ||||
|  | ||||
|         static ViewPropertyAnimator z(ViewPropertyAnimator viewPropertyAnimator, float f) { | ||||
|             return viewPropertyAnimator.z(f); | ||||
|         } | ||||
|  | ||||
|         static ViewPropertyAnimator zBy(ViewPropertyAnimator viewPropertyAnimator, float f) { | ||||
|             return viewPropertyAnimator.zBy(f); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api19Impl { | ||||
|         private Api19Impl() { | ||||
|         } | ||||
|  | ||||
|         static ViewPropertyAnimator setUpdateListener(ViewPropertyAnimator viewPropertyAnimator, ValueAnimator.AnimatorUpdateListener animatorUpdateListener) { | ||||
|             return viewPropertyAnimator.setUpdateListener(animatorUpdateListener); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,12 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface ViewPropertyAnimatorListener { | ||||
|     void onAnimationCancel(View view); | ||||
|  | ||||
|     void onAnimationEnd(View view); | ||||
|  | ||||
|     void onAnimationStart(View view); | ||||
| } | ||||
| @@ -0,0 +1,18 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class ViewPropertyAnimatorListenerAdapter implements ViewPropertyAnimatorListener { | ||||
|     @Override // androidx.core.view.ViewPropertyAnimatorListener | ||||
|     public void onAnimationCancel(View view) { | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.view.ViewPropertyAnimatorListener | ||||
|     public void onAnimationEnd(View view) { | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.view.ViewPropertyAnimatorListener | ||||
|     public void onAnimationStart(View view) { | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,8 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.View; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface ViewPropertyAnimatorUpdateListener { | ||||
|     void onAnimationUpdate(View view); | ||||
| } | ||||
							
								
								
									
										67
									
								
								02-Easy5/E5/sources/androidx/core/view/WindowCompat.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								02-Easy5/E5/sources/androidx/core/view/WindowCompat.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.os.Build; | ||||
| import android.view.View; | ||||
| import android.view.Window; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class WindowCompat { | ||||
|     public static final int FEATURE_ACTION_BAR = 8; | ||||
|     public static final int FEATURE_ACTION_BAR_OVERLAY = 9; | ||||
|     public static final int FEATURE_ACTION_MODE_OVERLAY = 10; | ||||
|  | ||||
|     private WindowCompat() { | ||||
|     } | ||||
|  | ||||
|     public static <T extends View> T requireViewById(Window window, int i) { | ||||
|         if (Build.VERSION.SDK_INT >= 28) { | ||||
|             return (T) Api28Impl.requireViewById(window, i); | ||||
|         } | ||||
|         T t = (T) window.findViewById(i); | ||||
|         if (t != null) { | ||||
|             return t; | ||||
|         } | ||||
|         throw new IllegalArgumentException("ID does not reference a View inside this Window"); | ||||
|     } | ||||
|  | ||||
|     public static void setDecorFitsSystemWindows(Window window, boolean z) { | ||||
|         if (Build.VERSION.SDK_INT >= 30) { | ||||
|             Api30Impl.setDecorFitsSystemWindows(window, z); | ||||
|         } else { | ||||
|             Api16Impl.setDecorFitsSystemWindows(window, z); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static WindowInsetsControllerCompat getInsetsController(Window window, View view) { | ||||
|         return new WindowInsetsControllerCompat(window, view); | ||||
|     } | ||||
|  | ||||
|     static class Api16Impl { | ||||
|         private Api16Impl() { | ||||
|         } | ||||
|  | ||||
|         static void setDecorFitsSystemWindows(Window window, boolean z) { | ||||
|             View decorView = window.getDecorView(); | ||||
|             int systemUiVisibility = decorView.getSystemUiVisibility(); | ||||
|             decorView.setSystemUiVisibility(z ? systemUiVisibility & (-1793) : systemUiVisibility | 1792); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api30Impl { | ||||
|         private Api30Impl() { | ||||
|         } | ||||
|  | ||||
|         static void setDecorFitsSystemWindows(Window window, boolean z) { | ||||
|             window.setDecorFitsSystemWindows(z); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api28Impl { | ||||
|         private Api28Impl() { | ||||
|         } | ||||
|  | ||||
|         static <T> T requireViewById(Window window, int i) { | ||||
|             return (T) window.requireViewById(i); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,540 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.animation.Animator; | ||||
| import android.animation.AnimatorListenerAdapter; | ||||
| import android.animation.ValueAnimator; | ||||
| import android.os.Build; | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
| import android.view.WindowInsets; | ||||
| import android.view.WindowInsetsAnimation; | ||||
| import android.view.animation.DecelerateInterpolator; | ||||
| import android.view.animation.Interpolator; | ||||
| import androidx.core.R; | ||||
| import androidx.core.graphics.Insets; | ||||
| import androidx.core.util.HalfKt$$ExternalSyntheticApiModelOutline0; | ||||
| import androidx.core.view.WindowInsetsCompat; | ||||
| import java.lang.annotation.Retention; | ||||
| import java.lang.annotation.RetentionPolicy; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Collections; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Objects; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class WindowInsetsAnimationCompat { | ||||
|     private static final boolean DEBUG = false; | ||||
|     private static final String TAG = "WindowInsetsAnimCompat"; | ||||
|     private Impl mImpl; | ||||
|  | ||||
|     public WindowInsetsAnimationCompat(int i, Interpolator interpolator, long j) { | ||||
|         if (Build.VERSION.SDK_INT >= 30) { | ||||
|             this.mImpl = new Impl30(i, interpolator, j); | ||||
|         } else { | ||||
|             this.mImpl = new Impl21(i, interpolator, j); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private WindowInsetsAnimationCompat(WindowInsetsAnimation windowInsetsAnimation) { | ||||
|         this(0, null, 0L); | ||||
|         if (Build.VERSION.SDK_INT >= 30) { | ||||
|             this.mImpl = new Impl30(windowInsetsAnimation); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public int getTypeMask() { | ||||
|         return this.mImpl.getTypeMask(); | ||||
|     } | ||||
|  | ||||
|     public float getFraction() { | ||||
|         return this.mImpl.getFraction(); | ||||
|     } | ||||
|  | ||||
|     public float getInterpolatedFraction() { | ||||
|         return this.mImpl.getInterpolatedFraction(); | ||||
|     } | ||||
|  | ||||
|     public Interpolator getInterpolator() { | ||||
|         return this.mImpl.getInterpolator(); | ||||
|     } | ||||
|  | ||||
|     public long getDurationMillis() { | ||||
|         return this.mImpl.getDurationMillis(); | ||||
|     } | ||||
|  | ||||
|     public void setFraction(float f) { | ||||
|         this.mImpl.setFraction(f); | ||||
|     } | ||||
|  | ||||
|     public float getAlpha() { | ||||
|         return this.mImpl.getAlpha(); | ||||
|     } | ||||
|  | ||||
|     public void setAlpha(float f) { | ||||
|         this.mImpl.setAlpha(f); | ||||
|     } | ||||
|  | ||||
|     public static final class BoundsCompat { | ||||
|         private final Insets mLowerBound; | ||||
|         private final Insets mUpperBound; | ||||
|  | ||||
|         public Insets getLowerBound() { | ||||
|             return this.mLowerBound; | ||||
|         } | ||||
|  | ||||
|         public Insets getUpperBound() { | ||||
|             return this.mUpperBound; | ||||
|         } | ||||
|  | ||||
|         public BoundsCompat(Insets insets, Insets insets2) { | ||||
|             this.mLowerBound = insets; | ||||
|             this.mUpperBound = insets2; | ||||
|         } | ||||
|  | ||||
|         private BoundsCompat(WindowInsetsAnimation.Bounds bounds) { | ||||
|             this.mLowerBound = Impl30.getLowerBounds(bounds); | ||||
|             this.mUpperBound = Impl30.getHigherBounds(bounds); | ||||
|         } | ||||
|  | ||||
|         public BoundsCompat inset(Insets insets) { | ||||
|             return new BoundsCompat(WindowInsetsCompat.insetInsets(this.mLowerBound, insets.left, insets.top, insets.right, insets.bottom), WindowInsetsCompat.insetInsets(this.mUpperBound, insets.left, insets.top, insets.right, insets.bottom)); | ||||
|         } | ||||
|  | ||||
|         public String toString() { | ||||
|             return "Bounds{lower=" + this.mLowerBound + " upper=" + this.mUpperBound + "}"; | ||||
|         } | ||||
|  | ||||
|         public WindowInsetsAnimation.Bounds toBounds() { | ||||
|             return Impl30.createPlatformBounds(this); | ||||
|         } | ||||
|  | ||||
|         public static BoundsCompat toBoundsCompat(WindowInsetsAnimation.Bounds bounds) { | ||||
|             return new BoundsCompat(bounds); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static WindowInsetsAnimationCompat toWindowInsetsAnimationCompat(WindowInsetsAnimation windowInsetsAnimation) { | ||||
|         return new WindowInsetsAnimationCompat(windowInsetsAnimation); | ||||
|     } | ||||
|  | ||||
|     public static abstract class Callback { | ||||
|         public static final int DISPATCH_MODE_CONTINUE_ON_SUBTREE = 1; | ||||
|         public static final int DISPATCH_MODE_STOP = 0; | ||||
|         WindowInsets mDispachedInsets; | ||||
|         private final int mDispatchMode; | ||||
|  | ||||
|         @Retention(RetentionPolicy.SOURCE) | ||||
|         public @interface DispatchMode { | ||||
|         } | ||||
|  | ||||
|         public final int getDispatchMode() { | ||||
|             return this.mDispatchMode; | ||||
|         } | ||||
|  | ||||
|         public void onEnd(WindowInsetsAnimationCompat windowInsetsAnimationCompat) { | ||||
|         } | ||||
|  | ||||
|         public void onPrepare(WindowInsetsAnimationCompat windowInsetsAnimationCompat) { | ||||
|         } | ||||
|  | ||||
|         public abstract WindowInsetsCompat onProgress(WindowInsetsCompat windowInsetsCompat, List<WindowInsetsAnimationCompat> list); | ||||
|  | ||||
|         public BoundsCompat onStart(WindowInsetsAnimationCompat windowInsetsAnimationCompat, BoundsCompat boundsCompat) { | ||||
|             return boundsCompat; | ||||
|         } | ||||
|  | ||||
|         public Callback(int i) { | ||||
|             this.mDispatchMode = i; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static void setCallback(View view, Callback callback) { | ||||
|         if (Build.VERSION.SDK_INT >= 30) { | ||||
|             Impl30.setCallback(view, callback); | ||||
|         } else { | ||||
|             Impl21.setCallback(view, callback); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static class Impl { | ||||
|         private float mAlpha; | ||||
|         private final long mDurationMillis; | ||||
|         private float mFraction; | ||||
|         private final Interpolator mInterpolator; | ||||
|         private final int mTypeMask; | ||||
|  | ||||
|         public float getAlpha() { | ||||
|             return this.mAlpha; | ||||
|         } | ||||
|  | ||||
|         public long getDurationMillis() { | ||||
|             return this.mDurationMillis; | ||||
|         } | ||||
|  | ||||
|         public float getFraction() { | ||||
|             return this.mFraction; | ||||
|         } | ||||
|  | ||||
|         public Interpolator getInterpolator() { | ||||
|             return this.mInterpolator; | ||||
|         } | ||||
|  | ||||
|         public int getTypeMask() { | ||||
|             return this.mTypeMask; | ||||
|         } | ||||
|  | ||||
|         public void setAlpha(float f) { | ||||
|             this.mAlpha = f; | ||||
|         } | ||||
|  | ||||
|         public void setFraction(float f) { | ||||
|             this.mFraction = f; | ||||
|         } | ||||
|  | ||||
|         Impl(int i, Interpolator interpolator, long j) { | ||||
|             this.mTypeMask = i; | ||||
|             this.mInterpolator = interpolator; | ||||
|             this.mDurationMillis = j; | ||||
|         } | ||||
|  | ||||
|         public float getInterpolatedFraction() { | ||||
|             Interpolator interpolator = this.mInterpolator; | ||||
|             return interpolator != null ? interpolator.getInterpolation(this.mFraction) : this.mFraction; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static class Impl21 extends Impl { | ||||
|         Impl21(int i, Interpolator interpolator, long j) { | ||||
|             super(i, interpolator, j); | ||||
|         } | ||||
|  | ||||
|         static void setCallback(View view, Callback callback) { | ||||
|             Object tag = view.getTag(R.id.tag_on_apply_window_listener); | ||||
|             if (callback == null) { | ||||
|                 view.setTag(R.id.tag_window_insets_animation_callback, null); | ||||
|                 if (tag == null) { | ||||
|                     view.setOnApplyWindowInsetsListener(null); | ||||
|                     return; | ||||
|                 } | ||||
|                 return; | ||||
|             } | ||||
|             View.OnApplyWindowInsetsListener createProxyListener = createProxyListener(view, callback); | ||||
|             view.setTag(R.id.tag_window_insets_animation_callback, createProxyListener); | ||||
|             if (tag == null) { | ||||
|                 view.setOnApplyWindowInsetsListener(createProxyListener); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         private static View.OnApplyWindowInsetsListener createProxyListener(View view, Callback callback) { | ||||
|             return new Impl21OnApplyWindowInsetsListener(view, callback); | ||||
|         } | ||||
|  | ||||
|         static BoundsCompat computeAnimationBounds(WindowInsetsCompat windowInsetsCompat, WindowInsetsCompat windowInsetsCompat2, int i) { | ||||
|             Insets insets = windowInsetsCompat.getInsets(i); | ||||
|             Insets insets2 = windowInsetsCompat2.getInsets(i); | ||||
|             return new BoundsCompat(Insets.of(Math.min(insets.left, insets2.left), Math.min(insets.top, insets2.top), Math.min(insets.right, insets2.right), Math.min(insets.bottom, insets2.bottom)), Insets.of(Math.max(insets.left, insets2.left), Math.max(insets.top, insets2.top), Math.max(insets.right, insets2.right), Math.max(insets.bottom, insets2.bottom))); | ||||
|         } | ||||
|  | ||||
|         static int buildAnimationMask(WindowInsetsCompat windowInsetsCompat, WindowInsetsCompat windowInsetsCompat2) { | ||||
|             int i = 0; | ||||
|             for (int i2 = 1; i2 <= 256; i2 <<= 1) { | ||||
|                 if (!windowInsetsCompat.getInsets(i2).equals(windowInsetsCompat2.getInsets(i2))) { | ||||
|                     i |= i2; | ||||
|                 } | ||||
|             } | ||||
|             return i; | ||||
|         } | ||||
|  | ||||
|         static WindowInsetsCompat interpolateInsets(WindowInsetsCompat windowInsetsCompat, WindowInsetsCompat windowInsetsCompat2, float f, int i) { | ||||
|             WindowInsetsCompat.Builder builder = new WindowInsetsCompat.Builder(windowInsetsCompat); | ||||
|             for (int i2 = 1; i2 <= 256; i2 <<= 1) { | ||||
|                 if ((i & i2) == 0) { | ||||
|                     builder.setInsets(i2, windowInsetsCompat.getInsets(i2)); | ||||
|                 } else { | ||||
|                     Insets insets = windowInsetsCompat.getInsets(i2); | ||||
|                     Insets insets2 = windowInsetsCompat2.getInsets(i2); | ||||
|                     float f2 = 1.0f - f; | ||||
|                     builder.setInsets(i2, WindowInsetsCompat.insetInsets(insets, (int) (((insets.left - insets2.left) * f2) + 0.5d), (int) (((insets.top - insets2.top) * f2) + 0.5d), (int) (((insets.right - insets2.right) * f2) + 0.5d), (int) (((insets.bottom - insets2.bottom) * f2) + 0.5d))); | ||||
|                 } | ||||
|             } | ||||
|             return builder.build(); | ||||
|         } | ||||
|  | ||||
|         private static class Impl21OnApplyWindowInsetsListener implements View.OnApplyWindowInsetsListener { | ||||
|             private static final int COMPAT_ANIMATION_DURATION = 160; | ||||
|             final Callback mCallback; | ||||
|             private WindowInsetsCompat mLastInsets; | ||||
|  | ||||
|             Impl21OnApplyWindowInsetsListener(View view, Callback callback) { | ||||
|                 this.mCallback = callback; | ||||
|                 WindowInsetsCompat rootWindowInsets = ViewCompat.getRootWindowInsets(view); | ||||
|                 this.mLastInsets = rootWindowInsets != null ? new WindowInsetsCompat.Builder(rootWindowInsets).build() : null; | ||||
|             } | ||||
|  | ||||
|             @Override // android.view.View.OnApplyWindowInsetsListener | ||||
|             public WindowInsets onApplyWindowInsets(final View view, WindowInsets windowInsets) { | ||||
|                 if (!view.isLaidOut()) { | ||||
|                     this.mLastInsets = WindowInsetsCompat.toWindowInsetsCompat(windowInsets, view); | ||||
|                     return Impl21.forwardToViewIfNeeded(view, windowInsets); | ||||
|                 } | ||||
|                 final WindowInsetsCompat windowInsetsCompat = WindowInsetsCompat.toWindowInsetsCompat(windowInsets, view); | ||||
|                 if (this.mLastInsets == null) { | ||||
|                     this.mLastInsets = ViewCompat.getRootWindowInsets(view); | ||||
|                 } | ||||
|                 if (this.mLastInsets == null) { | ||||
|                     this.mLastInsets = windowInsetsCompat; | ||||
|                     return Impl21.forwardToViewIfNeeded(view, windowInsets); | ||||
|                 } | ||||
|                 Callback callback = Impl21.getCallback(view); | ||||
|                 if (callback != null && Objects.equals(callback.mDispachedInsets, windowInsets)) { | ||||
|                     return Impl21.forwardToViewIfNeeded(view, windowInsets); | ||||
|                 } | ||||
|                 final int buildAnimationMask = Impl21.buildAnimationMask(windowInsetsCompat, this.mLastInsets); | ||||
|                 if (buildAnimationMask == 0) { | ||||
|                     return Impl21.forwardToViewIfNeeded(view, windowInsets); | ||||
|                 } | ||||
|                 final WindowInsetsCompat windowInsetsCompat2 = this.mLastInsets; | ||||
|                 final WindowInsetsAnimationCompat windowInsetsAnimationCompat = new WindowInsetsAnimationCompat(buildAnimationMask, new DecelerateInterpolator(), 160L); | ||||
|                 windowInsetsAnimationCompat.setFraction(0.0f); | ||||
|                 final ValueAnimator duration = ValueAnimator.ofFloat(0.0f, 1.0f).setDuration(windowInsetsAnimationCompat.getDurationMillis()); | ||||
|                 final BoundsCompat computeAnimationBounds = Impl21.computeAnimationBounds(windowInsetsCompat, windowInsetsCompat2, buildAnimationMask); | ||||
|                 Impl21.dispatchOnPrepare(view, windowInsetsAnimationCompat, windowInsets, false); | ||||
|                 duration.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { // from class: androidx.core.view.WindowInsetsAnimationCompat.Impl21.Impl21OnApplyWindowInsetsListener.1 | ||||
|                     @Override // android.animation.ValueAnimator.AnimatorUpdateListener | ||||
|                     public void onAnimationUpdate(ValueAnimator valueAnimator) { | ||||
|                         windowInsetsAnimationCompat.setFraction(valueAnimator.getAnimatedFraction()); | ||||
|                         Impl21.dispatchOnProgress(view, Impl21.interpolateInsets(windowInsetsCompat, windowInsetsCompat2, windowInsetsAnimationCompat.getInterpolatedFraction(), buildAnimationMask), Collections.singletonList(windowInsetsAnimationCompat)); | ||||
|                     } | ||||
|                 }); | ||||
|                 duration.addListener(new AnimatorListenerAdapter() { // from class: androidx.core.view.WindowInsetsAnimationCompat.Impl21.Impl21OnApplyWindowInsetsListener.2 | ||||
|                     @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener | ||||
|                     public void onAnimationEnd(Animator animator) { | ||||
|                         windowInsetsAnimationCompat.setFraction(1.0f); | ||||
|                         Impl21.dispatchOnEnd(view, windowInsetsAnimationCompat); | ||||
|                     } | ||||
|                 }); | ||||
|                 OneShotPreDrawListener.add(view, new Runnable() { // from class: androidx.core.view.WindowInsetsAnimationCompat.Impl21.Impl21OnApplyWindowInsetsListener.3 | ||||
|                     @Override // java.lang.Runnable | ||||
|                     public void run() { | ||||
|                         Impl21.dispatchOnStart(view, windowInsetsAnimationCompat, computeAnimationBounds); | ||||
|                         duration.start(); | ||||
|                     } | ||||
|                 }); | ||||
|                 this.mLastInsets = windowInsetsCompat; | ||||
|                 return Impl21.forwardToViewIfNeeded(view, windowInsets); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         static WindowInsets forwardToViewIfNeeded(View view, WindowInsets windowInsets) { | ||||
|             return view.getTag(R.id.tag_on_apply_window_listener) != null ? windowInsets : view.onApplyWindowInsets(windowInsets); | ||||
|         } | ||||
|  | ||||
|         static void dispatchOnPrepare(View view, WindowInsetsAnimationCompat windowInsetsAnimationCompat, WindowInsets windowInsets, boolean z) { | ||||
|             Callback callback = getCallback(view); | ||||
|             if (callback != null) { | ||||
|                 callback.mDispachedInsets = windowInsets; | ||||
|                 if (!z) { | ||||
|                     callback.onPrepare(windowInsetsAnimationCompat); | ||||
|                     z = callback.getDispatchMode() == 0; | ||||
|                 } | ||||
|             } | ||||
|             if (view instanceof ViewGroup) { | ||||
|                 ViewGroup viewGroup = (ViewGroup) view; | ||||
|                 for (int i = 0; i < viewGroup.getChildCount(); i++) { | ||||
|                     dispatchOnPrepare(viewGroup.getChildAt(i), windowInsetsAnimationCompat, windowInsets, z); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         static void dispatchOnStart(View view, WindowInsetsAnimationCompat windowInsetsAnimationCompat, BoundsCompat boundsCompat) { | ||||
|             Callback callback = getCallback(view); | ||||
|             if (callback != null) { | ||||
|                 callback.onStart(windowInsetsAnimationCompat, boundsCompat); | ||||
|                 if (callback.getDispatchMode() == 0) { | ||||
|                     return; | ||||
|                 } | ||||
|             } | ||||
|             if (view instanceof ViewGroup) { | ||||
|                 ViewGroup viewGroup = (ViewGroup) view; | ||||
|                 for (int i = 0; i < viewGroup.getChildCount(); i++) { | ||||
|                     dispatchOnStart(viewGroup.getChildAt(i), windowInsetsAnimationCompat, boundsCompat); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         static void dispatchOnProgress(View view, WindowInsetsCompat windowInsetsCompat, List<WindowInsetsAnimationCompat> list) { | ||||
|             Callback callback = getCallback(view); | ||||
|             if (callback != null) { | ||||
|                 windowInsetsCompat = callback.onProgress(windowInsetsCompat, list); | ||||
|                 if (callback.getDispatchMode() == 0) { | ||||
|                     return; | ||||
|                 } | ||||
|             } | ||||
|             if (view instanceof ViewGroup) { | ||||
|                 ViewGroup viewGroup = (ViewGroup) view; | ||||
|                 for (int i = 0; i < viewGroup.getChildCount(); i++) { | ||||
|                     dispatchOnProgress(viewGroup.getChildAt(i), windowInsetsCompat, list); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         static void dispatchOnEnd(View view, WindowInsetsAnimationCompat windowInsetsAnimationCompat) { | ||||
|             Callback callback = getCallback(view); | ||||
|             if (callback != null) { | ||||
|                 callback.onEnd(windowInsetsAnimationCompat); | ||||
|                 if (callback.getDispatchMode() == 0) { | ||||
|                     return; | ||||
|                 } | ||||
|             } | ||||
|             if (view instanceof ViewGroup) { | ||||
|                 ViewGroup viewGroup = (ViewGroup) view; | ||||
|                 for (int i = 0; i < viewGroup.getChildCount(); i++) { | ||||
|                     dispatchOnEnd(viewGroup.getChildAt(i), windowInsetsAnimationCompat); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         static Callback getCallback(View view) { | ||||
|             Object tag = view.getTag(R.id.tag_window_insets_animation_callback); | ||||
|             if (tag instanceof Impl21OnApplyWindowInsetsListener) { | ||||
|                 return ((Impl21OnApplyWindowInsetsListener) tag).mCallback; | ||||
|             } | ||||
|             return null; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static class Impl30 extends Impl { | ||||
|         private final WindowInsetsAnimation mWrapped; | ||||
|  | ||||
|         Impl30(WindowInsetsAnimation windowInsetsAnimation) { | ||||
|             super(0, null, 0L); | ||||
|             this.mWrapped = windowInsetsAnimation; | ||||
|         } | ||||
|  | ||||
|         Impl30(int i, Interpolator interpolator, long j) { | ||||
|             this(HalfKt$$ExternalSyntheticApiModelOutline0.m(i, interpolator, j)); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationCompat.Impl | ||||
|         public int getTypeMask() { | ||||
|             int typeMask; | ||||
|             typeMask = this.mWrapped.getTypeMask(); | ||||
|             return typeMask; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationCompat.Impl | ||||
|         public Interpolator getInterpolator() { | ||||
|             Interpolator interpolator; | ||||
|             interpolator = this.mWrapped.getInterpolator(); | ||||
|             return interpolator; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationCompat.Impl | ||||
|         public long getDurationMillis() { | ||||
|             long durationMillis; | ||||
|             durationMillis = this.mWrapped.getDurationMillis(); | ||||
|             return durationMillis; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationCompat.Impl | ||||
|         public float getFraction() { | ||||
|             float fraction; | ||||
|             fraction = this.mWrapped.getFraction(); | ||||
|             return fraction; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationCompat.Impl | ||||
|         public void setFraction(float f) { | ||||
|             this.mWrapped.setFraction(f); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationCompat.Impl | ||||
|         public float getInterpolatedFraction() { | ||||
|             float interpolatedFraction; | ||||
|             interpolatedFraction = this.mWrapped.getInterpolatedFraction(); | ||||
|             return interpolatedFraction; | ||||
|         } | ||||
|  | ||||
|         private static class ProxyCallback extends WindowInsetsAnimation.Callback { | ||||
|             private final HashMap<WindowInsetsAnimation, WindowInsetsAnimationCompat> mAnimations; | ||||
|             private final Callback mCompat; | ||||
|             private List<WindowInsetsAnimationCompat> mRORunningAnimations; | ||||
|             private ArrayList<WindowInsetsAnimationCompat> mTmpRunningAnimations; | ||||
|  | ||||
|             ProxyCallback(Callback callback) { | ||||
|                 super(callback.getDispatchMode()); | ||||
|                 this.mAnimations = new HashMap<>(); | ||||
|                 this.mCompat = callback; | ||||
|             } | ||||
|  | ||||
|             private WindowInsetsAnimationCompat getWindowInsetsAnimationCompat(WindowInsetsAnimation windowInsetsAnimation) { | ||||
|                 WindowInsetsAnimationCompat windowInsetsAnimationCompat = this.mAnimations.get(windowInsetsAnimation); | ||||
|                 if (windowInsetsAnimationCompat != null) { | ||||
|                     return windowInsetsAnimationCompat; | ||||
|                 } | ||||
|                 WindowInsetsAnimationCompat windowInsetsAnimationCompat2 = WindowInsetsAnimationCompat.toWindowInsetsAnimationCompat(windowInsetsAnimation); | ||||
|                 this.mAnimations.put(windowInsetsAnimation, windowInsetsAnimationCompat2); | ||||
|                 return windowInsetsAnimationCompat2; | ||||
|             } | ||||
|  | ||||
|             @Override // android.view.WindowInsetsAnimation.Callback | ||||
|             public void onPrepare(WindowInsetsAnimation windowInsetsAnimation) { | ||||
|                 this.mCompat.onPrepare(getWindowInsetsAnimationCompat(windowInsetsAnimation)); | ||||
|             } | ||||
|  | ||||
|             @Override // android.view.WindowInsetsAnimation.Callback | ||||
|             public WindowInsetsAnimation.Bounds onStart(WindowInsetsAnimation windowInsetsAnimation, WindowInsetsAnimation.Bounds bounds) { | ||||
|                 return this.mCompat.onStart(getWindowInsetsAnimationCompat(windowInsetsAnimation), BoundsCompat.toBoundsCompat(bounds)).toBounds(); | ||||
|             } | ||||
|  | ||||
|             @Override // android.view.WindowInsetsAnimation.Callback | ||||
|             public WindowInsets onProgress(WindowInsets windowInsets, List<WindowInsetsAnimation> list) { | ||||
|                 float fraction; | ||||
|                 ArrayList<WindowInsetsAnimationCompat> arrayList = this.mTmpRunningAnimations; | ||||
|                 if (arrayList == null) { | ||||
|                     ArrayList<WindowInsetsAnimationCompat> arrayList2 = new ArrayList<>(list.size()); | ||||
|                     this.mTmpRunningAnimations = arrayList2; | ||||
|                     this.mRORunningAnimations = Collections.unmodifiableList(arrayList2); | ||||
|                 } else { | ||||
|                     arrayList.clear(); | ||||
|                 } | ||||
|                 for (int size = list.size() - 1; size >= 0; size--) { | ||||
|                     WindowInsetsAnimation m147m = HalfKt$$ExternalSyntheticApiModelOutline0.m147m((Object) list.get(size)); | ||||
|                     WindowInsetsAnimationCompat windowInsetsAnimationCompat = getWindowInsetsAnimationCompat(m147m); | ||||
|                     fraction = m147m.getFraction(); | ||||
|                     windowInsetsAnimationCompat.setFraction(fraction); | ||||
|                     this.mTmpRunningAnimations.add(windowInsetsAnimationCompat); | ||||
|                 } | ||||
|                 return this.mCompat.onProgress(WindowInsetsCompat.toWindowInsetsCompat(windowInsets), this.mRORunningAnimations).toWindowInsets(); | ||||
|             } | ||||
|  | ||||
|             @Override // android.view.WindowInsetsAnimation.Callback | ||||
|             public void onEnd(WindowInsetsAnimation windowInsetsAnimation) { | ||||
|                 this.mCompat.onEnd(getWindowInsetsAnimationCompat(windowInsetsAnimation)); | ||||
|                 this.mAnimations.remove(windowInsetsAnimation); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public static void setCallback(View view, Callback callback) { | ||||
|             view.setWindowInsetsAnimationCallback(callback != null ? new ProxyCallback(callback) : null); | ||||
|         } | ||||
|  | ||||
|         public static WindowInsetsAnimation.Bounds createPlatformBounds(BoundsCompat boundsCompat) { | ||||
|             HalfKt$$ExternalSyntheticApiModelOutline0.m156m$1(); | ||||
|             return HalfKt$$ExternalSyntheticApiModelOutline0.m(boundsCompat.getLowerBound().toPlatformInsets(), boundsCompat.getUpperBound().toPlatformInsets()); | ||||
|         } | ||||
|  | ||||
|         public static Insets getLowerBounds(WindowInsetsAnimation.Bounds bounds) { | ||||
|             android.graphics.Insets lowerBound; | ||||
|             lowerBound = bounds.getLowerBound(); | ||||
|             return Insets.toCompatInsets(lowerBound); | ||||
|         } | ||||
|  | ||||
|         public static Insets getHigherBounds(WindowInsetsAnimation.Bounds bounds) { | ||||
|             android.graphics.Insets upperBound; | ||||
|             upperBound = bounds.getUpperBound(); | ||||
|             return Insets.toCompatInsets(upperBound); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,10 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface WindowInsetsAnimationControlListenerCompat { | ||||
|     void onCancelled(WindowInsetsAnimationControllerCompat windowInsetsAnimationControllerCompat); | ||||
|  | ||||
|     void onFinished(WindowInsetsAnimationControllerCompat windowInsetsAnimationControllerCompat); | ||||
|  | ||||
|     void onReady(WindowInsetsAnimationControllerCompat windowInsetsAnimationControllerCompat, int i); | ||||
| } | ||||
| @@ -0,0 +1,174 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.view.WindowInsetsAnimationController; | ||||
| import androidx.core.graphics.Insets; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class WindowInsetsAnimationControllerCompat { | ||||
|     private final Impl mImpl; | ||||
|  | ||||
|     WindowInsetsAnimationControllerCompat(WindowInsetsAnimationController windowInsetsAnimationController) { | ||||
|         this.mImpl = new Impl30(windowInsetsAnimationController); | ||||
|     } | ||||
|  | ||||
|     public Insets getHiddenStateInsets() { | ||||
|         return this.mImpl.getHiddenStateInsets(); | ||||
|     } | ||||
|  | ||||
|     public Insets getShownStateInsets() { | ||||
|         return this.mImpl.getShownStateInsets(); | ||||
|     } | ||||
|  | ||||
|     public Insets getCurrentInsets() { | ||||
|         return this.mImpl.getCurrentInsets(); | ||||
|     } | ||||
|  | ||||
|     public float getCurrentFraction() { | ||||
|         return this.mImpl.getCurrentFraction(); | ||||
|     } | ||||
|  | ||||
|     public float getCurrentAlpha() { | ||||
|         return this.mImpl.getCurrentAlpha(); | ||||
|     } | ||||
|  | ||||
|     public int getTypes() { | ||||
|         return this.mImpl.getTypes(); | ||||
|     } | ||||
|  | ||||
|     public void setInsetsAndAlpha(Insets insets, float f, float f2) { | ||||
|         this.mImpl.setInsetsAndAlpha(insets, f, f2); | ||||
|     } | ||||
|  | ||||
|     public void finish(boolean z) { | ||||
|         this.mImpl.finish(z); | ||||
|     } | ||||
|  | ||||
|     public boolean isReady() { | ||||
|         return (isFinished() || isCancelled()) ? false : true; | ||||
|     } | ||||
|  | ||||
|     public boolean isFinished() { | ||||
|         return this.mImpl.isFinished(); | ||||
|     } | ||||
|  | ||||
|     public boolean isCancelled() { | ||||
|         return this.mImpl.isCancelled(); | ||||
|     } | ||||
|  | ||||
|     private static class Impl { | ||||
|         void finish(boolean z) { | ||||
|         } | ||||
|  | ||||
|         public float getCurrentAlpha() { | ||||
|             return 0.0f; | ||||
|         } | ||||
|  | ||||
|         public float getCurrentFraction() { | ||||
|             return 0.0f; | ||||
|         } | ||||
|  | ||||
|         public int getTypes() { | ||||
|             return 0; | ||||
|         } | ||||
|  | ||||
|         boolean isCancelled() { | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         boolean isFinished() { | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
|         public void setInsetsAndAlpha(Insets insets, float f, float f2) { | ||||
|         } | ||||
|  | ||||
|         Impl() { | ||||
|         } | ||||
|  | ||||
|         public Insets getHiddenStateInsets() { | ||||
|             return Insets.NONE; | ||||
|         } | ||||
|  | ||||
|         public Insets getShownStateInsets() { | ||||
|             return Insets.NONE; | ||||
|         } | ||||
|  | ||||
|         public Insets getCurrentInsets() { | ||||
|             return Insets.NONE; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static class Impl30 extends Impl { | ||||
|         private final WindowInsetsAnimationController mController; | ||||
|  | ||||
|         Impl30(WindowInsetsAnimationController windowInsetsAnimationController) { | ||||
|             this.mController = windowInsetsAnimationController; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationControllerCompat.Impl | ||||
|         public Insets getHiddenStateInsets() { | ||||
|             android.graphics.Insets hiddenStateInsets; | ||||
|             hiddenStateInsets = this.mController.getHiddenStateInsets(); | ||||
|             return Insets.toCompatInsets(hiddenStateInsets); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationControllerCompat.Impl | ||||
|         public Insets getShownStateInsets() { | ||||
|             android.graphics.Insets shownStateInsets; | ||||
|             shownStateInsets = this.mController.getShownStateInsets(); | ||||
|             return Insets.toCompatInsets(shownStateInsets); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationControllerCompat.Impl | ||||
|         public Insets getCurrentInsets() { | ||||
|             android.graphics.Insets currentInsets; | ||||
|             currentInsets = this.mController.getCurrentInsets(); | ||||
|             return Insets.toCompatInsets(currentInsets); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationControllerCompat.Impl | ||||
|         public float getCurrentFraction() { | ||||
|             float currentFraction; | ||||
|             currentFraction = this.mController.getCurrentFraction(); | ||||
|             return currentFraction; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationControllerCompat.Impl | ||||
|         public float getCurrentAlpha() { | ||||
|             float currentAlpha; | ||||
|             currentAlpha = this.mController.getCurrentAlpha(); | ||||
|             return currentAlpha; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationControllerCompat.Impl | ||||
|         public int getTypes() { | ||||
|             int types; | ||||
|             types = this.mController.getTypes(); | ||||
|             return types; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationControllerCompat.Impl | ||||
|         public void setInsetsAndAlpha(Insets insets, float f, float f2) { | ||||
|             this.mController.setInsetsAndAlpha(insets == null ? null : insets.toPlatformInsets(), f, f2); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationControllerCompat.Impl | ||||
|         void finish(boolean z) { | ||||
|             this.mController.finish(z); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationControllerCompat.Impl | ||||
|         boolean isFinished() { | ||||
|             boolean isFinished; | ||||
|             isFinished = this.mController.isFinished(); | ||||
|             return isFinished; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsAnimationControllerCompat.Impl | ||||
|         boolean isCancelled() { | ||||
|             boolean isCancelled; | ||||
|             isCancelled = this.mController.isCancelled(); | ||||
|             return isCancelled; | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										1304
									
								
								02-Easy5/E5/sources/androidx/core/view/WindowInsetsCompat.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1304
									
								
								02-Easy5/E5/sources/androidx/core/view/WindowInsetsCompat.java
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -0,0 +1,471 @@ | ||||
| package androidx.core.view; | ||||
|  | ||||
| import android.R; | ||||
| import android.os.Build; | ||||
| import android.os.CancellationSignal; | ||||
| import android.view.View; | ||||
| import android.view.Window; | ||||
| import android.view.WindowInsetsAnimationControlListener; | ||||
| import android.view.WindowInsetsAnimationController; | ||||
| import android.view.WindowInsetsController; | ||||
| import android.view.animation.Interpolator; | ||||
| import android.view.inputmethod.InputMethodManager; | ||||
| import androidx.collection.SimpleArrayMap; | ||||
| import androidx.core.util.HalfKt$$ExternalSyntheticApiModelOutline0; | ||||
| import androidx.core.view.WindowInsetsControllerCompat; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class WindowInsetsControllerCompat { | ||||
|     public static final int BEHAVIOR_SHOW_BARS_BY_SWIPE = 1; | ||||
|     public static final int BEHAVIOR_SHOW_BARS_BY_TOUCH = 0; | ||||
|     public static final int BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE = 2; | ||||
|     private final Impl mImpl; | ||||
|  | ||||
|     public interface OnControllableInsetsChangedListener { | ||||
|         void onControllableInsetsChanged(WindowInsetsControllerCompat windowInsetsControllerCompat, int i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     private WindowInsetsControllerCompat(WindowInsetsController windowInsetsController) { | ||||
|         this.mImpl = new Impl30(windowInsetsController, this); | ||||
|     } | ||||
|  | ||||
|     public WindowInsetsControllerCompat(Window window, View view) { | ||||
|         if (Build.VERSION.SDK_INT >= 30) { | ||||
|             this.mImpl = new Impl30(window, this); | ||||
|             return; | ||||
|         } | ||||
|         if (Build.VERSION.SDK_INT >= 26) { | ||||
|             this.mImpl = new Impl26(window, view); | ||||
|         } else if (Build.VERSION.SDK_INT >= 23) { | ||||
|             this.mImpl = new Impl23(window, view); | ||||
|         } else { | ||||
|             this.mImpl = new Impl20(window, view); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static WindowInsetsControllerCompat toWindowInsetsControllerCompat(WindowInsetsController windowInsetsController) { | ||||
|         return new WindowInsetsControllerCompat(windowInsetsController); | ||||
|     } | ||||
|  | ||||
|     public void show(int i) { | ||||
|         this.mImpl.show(i); | ||||
|     } | ||||
|  | ||||
|     public void hide(int i) { | ||||
|         this.mImpl.hide(i); | ||||
|     } | ||||
|  | ||||
|     public boolean isAppearanceLightStatusBars() { | ||||
|         return this.mImpl.isAppearanceLightStatusBars(); | ||||
|     } | ||||
|  | ||||
|     public void setAppearanceLightStatusBars(boolean z) { | ||||
|         this.mImpl.setAppearanceLightStatusBars(z); | ||||
|     } | ||||
|  | ||||
|     public boolean isAppearanceLightNavigationBars() { | ||||
|         return this.mImpl.isAppearanceLightNavigationBars(); | ||||
|     } | ||||
|  | ||||
|     public void setAppearanceLightNavigationBars(boolean z) { | ||||
|         this.mImpl.setAppearanceLightNavigationBars(z); | ||||
|     } | ||||
|  | ||||
|     public void controlWindowInsetsAnimation(int i, long j, Interpolator interpolator, CancellationSignal cancellationSignal, WindowInsetsAnimationControlListenerCompat windowInsetsAnimationControlListenerCompat) { | ||||
|         this.mImpl.controlWindowInsetsAnimation(i, j, interpolator, cancellationSignal, windowInsetsAnimationControlListenerCompat); | ||||
|     } | ||||
|  | ||||
|     public void setSystemBarsBehavior(int i) { | ||||
|         this.mImpl.setSystemBarsBehavior(i); | ||||
|     } | ||||
|  | ||||
|     public int getSystemBarsBehavior() { | ||||
|         return this.mImpl.getSystemBarsBehavior(); | ||||
|     } | ||||
|  | ||||
|     public void addOnControllableInsetsChangedListener(OnControllableInsetsChangedListener onControllableInsetsChangedListener) { | ||||
|         this.mImpl.addOnControllableInsetsChangedListener(onControllableInsetsChangedListener); | ||||
|     } | ||||
|  | ||||
|     public void removeOnControllableInsetsChangedListener(OnControllableInsetsChangedListener onControllableInsetsChangedListener) { | ||||
|         this.mImpl.removeOnControllableInsetsChangedListener(onControllableInsetsChangedListener); | ||||
|     } | ||||
|  | ||||
|     private static class Impl { | ||||
|         void addOnControllableInsetsChangedListener(OnControllableInsetsChangedListener onControllableInsetsChangedListener) { | ||||
|         } | ||||
|  | ||||
|         void controlWindowInsetsAnimation(int i, long j, Interpolator interpolator, CancellationSignal cancellationSignal, WindowInsetsAnimationControlListenerCompat windowInsetsAnimationControlListenerCompat) { | ||||
|         } | ||||
|  | ||||
|         int getSystemBarsBehavior() { | ||||
|             return 0; | ||||
|         } | ||||
|  | ||||
|         void hide(int i) { | ||||
|         } | ||||
|  | ||||
|         public boolean isAppearanceLightNavigationBars() { | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
|         public boolean isAppearanceLightStatusBars() { | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
|         void removeOnControllableInsetsChangedListener(OnControllableInsetsChangedListener onControllableInsetsChangedListener) { | ||||
|         } | ||||
|  | ||||
|         public void setAppearanceLightNavigationBars(boolean z) { | ||||
|         } | ||||
|  | ||||
|         public void setAppearanceLightStatusBars(boolean z) { | ||||
|         } | ||||
|  | ||||
|         void setSystemBarsBehavior(int i) { | ||||
|         } | ||||
|  | ||||
|         void show(int i) { | ||||
|         } | ||||
|  | ||||
|         Impl() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /* JADX INFO: Access modifiers changed from: private */ | ||||
|     static class Impl20 extends Impl { | ||||
|         private final View mView; | ||||
|         protected final Window mWindow; | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         void addOnControllableInsetsChangedListener(OnControllableInsetsChangedListener onControllableInsetsChangedListener) { | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         void controlWindowInsetsAnimation(int i, long j, Interpolator interpolator, CancellationSignal cancellationSignal, WindowInsetsAnimationControlListenerCompat windowInsetsAnimationControlListenerCompat) { | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         int getSystemBarsBehavior() { | ||||
|             return 0; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         void removeOnControllableInsetsChangedListener(OnControllableInsetsChangedListener onControllableInsetsChangedListener) { | ||||
|         } | ||||
|  | ||||
|         Impl20(Window window, View view) { | ||||
|             this.mWindow = window; | ||||
|             this.mView = view; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         void show(int i) { | ||||
|             for (int i2 = 1; i2 <= 256; i2 <<= 1) { | ||||
|                 if ((i & i2) != 0) { | ||||
|                     showForType(i2); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         private void showForType(int i) { | ||||
|             if (i == 1) { | ||||
|                 unsetSystemUiFlag(4); | ||||
|                 unsetWindowFlag(1024); | ||||
|                 return; | ||||
|             } | ||||
|             if (i == 2) { | ||||
|                 unsetSystemUiFlag(2); | ||||
|                 return; | ||||
|             } | ||||
|             if (i != 8) { | ||||
|                 return; | ||||
|             } | ||||
|             final View view = this.mView; | ||||
|             if (view.isInEditMode() || view.onCheckIsTextEditor()) { | ||||
|                 view.requestFocus(); | ||||
|             } else { | ||||
|                 view = this.mWindow.getCurrentFocus(); | ||||
|             } | ||||
|             if (view == null) { | ||||
|                 view = this.mWindow.findViewById(R.id.content); | ||||
|             } | ||||
|             if (view == null || !view.hasWindowFocus()) { | ||||
|                 return; | ||||
|             } | ||||
|             view.post(new Runnable() { // from class: androidx.core.view.WindowInsetsControllerCompat$Impl20$$ExternalSyntheticLambda0 | ||||
|                 @Override // java.lang.Runnable | ||||
|                 public final void run() { | ||||
|                     ((InputMethodManager) r0.getContext().getSystemService("input_method")).showSoftInput(view, 0); | ||||
|                 } | ||||
|             }); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         void hide(int i) { | ||||
|             for (int i2 = 1; i2 <= 256; i2 <<= 1) { | ||||
|                 if ((i & i2) != 0) { | ||||
|                     hideForType(i2); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         private void hideForType(int i) { | ||||
|             if (i == 1) { | ||||
|                 setSystemUiFlag(4); | ||||
|             } else if (i == 2) { | ||||
|                 setSystemUiFlag(2); | ||||
|             } else { | ||||
|                 if (i != 8) { | ||||
|                     return; | ||||
|                 } | ||||
|                 ((InputMethodManager) this.mWindow.getContext().getSystemService("input_method")).hideSoftInputFromWindow(this.mWindow.getDecorView().getWindowToken(), 0); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         protected void setSystemUiFlag(int i) { | ||||
|             View decorView = this.mWindow.getDecorView(); | ||||
|             decorView.setSystemUiVisibility(i | decorView.getSystemUiVisibility()); | ||||
|         } | ||||
|  | ||||
|         protected void unsetSystemUiFlag(int i) { | ||||
|             View decorView = this.mWindow.getDecorView(); | ||||
|             decorView.setSystemUiVisibility((~i) & decorView.getSystemUiVisibility()); | ||||
|         } | ||||
|  | ||||
|         protected void setWindowFlag(int i) { | ||||
|             this.mWindow.addFlags(i); | ||||
|         } | ||||
|  | ||||
|         protected void unsetWindowFlag(int i) { | ||||
|             this.mWindow.clearFlags(i); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         void setSystemBarsBehavior(int i) { | ||||
|             if (i == 0) { | ||||
|                 unsetSystemUiFlag(6144); | ||||
|                 return; | ||||
|             } | ||||
|             if (i == 1) { | ||||
|                 unsetSystemUiFlag(4096); | ||||
|                 setSystemUiFlag(2048); | ||||
|             } else { | ||||
|                 if (i != 2) { | ||||
|                     return; | ||||
|                 } | ||||
|                 unsetSystemUiFlag(2048); | ||||
|                 setSystemUiFlag(4096); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static class Impl23 extends Impl20 { | ||||
|         Impl23(Window window, View view) { | ||||
|             super(window, view); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         public boolean isAppearanceLightStatusBars() { | ||||
|             return (this.mWindow.getDecorView().getSystemUiVisibility() & 8192) != 0; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         public void setAppearanceLightStatusBars(boolean z) { | ||||
|             if (z) { | ||||
|                 unsetWindowFlag(67108864); | ||||
|                 setWindowFlag(Integer.MIN_VALUE); | ||||
|                 setSystemUiFlag(8192); | ||||
|                 return; | ||||
|             } | ||||
|             unsetSystemUiFlag(8192); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static class Impl26 extends Impl23 { | ||||
|         Impl26(Window window, View view) { | ||||
|             super(window, view); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         public boolean isAppearanceLightNavigationBars() { | ||||
|             return (this.mWindow.getDecorView().getSystemUiVisibility() & 16) != 0; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         public void setAppearanceLightNavigationBars(boolean z) { | ||||
|             if (z) { | ||||
|                 unsetWindowFlag(134217728); | ||||
|                 setWindowFlag(Integer.MIN_VALUE); | ||||
|                 setSystemUiFlag(16); | ||||
|                 return; | ||||
|             } | ||||
|             unsetSystemUiFlag(16); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /* JADX INFO: Access modifiers changed from: private */ | ||||
|     static class Impl30 extends Impl { | ||||
|         final WindowInsetsControllerCompat mCompatController; | ||||
|         final WindowInsetsController mInsetsController; | ||||
|         private final SimpleArrayMap<OnControllableInsetsChangedListener, WindowInsetsController.OnControllableInsetsChangedListener> mListeners; | ||||
|         protected Window mWindow; | ||||
|  | ||||
|         /* JADX WARN: Illegal instructions before constructor call */ | ||||
|         /* | ||||
|             Code decompiled incorrectly, please refer to instructions dump. | ||||
|             To view partially-correct add '--show-bad-code' argument | ||||
|         */ | ||||
|         Impl30(android.view.Window r2, androidx.core.view.WindowInsetsControllerCompat r3) { | ||||
|             /* | ||||
|                 r1 = this; | ||||
|                 android.view.WindowInsetsController r0 = androidx.core.util.HalfKt$$ExternalSyntheticApiModelOutline0.m(r2) | ||||
|                 r1.<init>(r0, r3) | ||||
|                 r1.mWindow = r2 | ||||
|                 return | ||||
|             */ | ||||
|             throw new UnsupportedOperationException("Method not decompiled: androidx.core.view.WindowInsetsControllerCompat.Impl30.<init>(android.view.Window, androidx.core.view.WindowInsetsControllerCompat):void"); | ||||
|         } | ||||
|  | ||||
|         Impl30(WindowInsetsController windowInsetsController, WindowInsetsControllerCompat windowInsetsControllerCompat) { | ||||
|             this.mListeners = new SimpleArrayMap<>(); | ||||
|             this.mInsetsController = windowInsetsController; | ||||
|             this.mCompatController = windowInsetsControllerCompat; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         void show(int i) { | ||||
|             if (this.mWindow != null && (i & 8) != 0 && Build.VERSION.SDK_INT < 32) { | ||||
|                 ((InputMethodManager) this.mWindow.getContext().getSystemService("input_method")).isActive(); | ||||
|             } | ||||
|             this.mInsetsController.show(i); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         void hide(int i) { | ||||
|             this.mInsetsController.hide(i); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         public boolean isAppearanceLightStatusBars() { | ||||
|             int systemBarsAppearance; | ||||
|             systemBarsAppearance = this.mInsetsController.getSystemBarsAppearance(); | ||||
|             return (systemBarsAppearance & 8) != 0; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         public void setAppearanceLightStatusBars(boolean z) { | ||||
|             if (z) { | ||||
|                 if (this.mWindow != null) { | ||||
|                     setSystemUiFlag(8192); | ||||
|                 } | ||||
|                 this.mInsetsController.setSystemBarsAppearance(8, 8); | ||||
|             } else { | ||||
|                 if (this.mWindow != null) { | ||||
|                     unsetSystemUiFlag(8192); | ||||
|                 } | ||||
|                 this.mInsetsController.setSystemBarsAppearance(0, 8); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         public boolean isAppearanceLightNavigationBars() { | ||||
|             int systemBarsAppearance; | ||||
|             systemBarsAppearance = this.mInsetsController.getSystemBarsAppearance(); | ||||
|             return (systemBarsAppearance & 16) != 0; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         public void setAppearanceLightNavigationBars(boolean z) { | ||||
|             if (z) { | ||||
|                 if (this.mWindow != null) { | ||||
|                     setSystemUiFlag(16); | ||||
|                 } | ||||
|                 this.mInsetsController.setSystemBarsAppearance(16, 16); | ||||
|             } else { | ||||
|                 if (this.mWindow != null) { | ||||
|                     unsetSystemUiFlag(16); | ||||
|                 } | ||||
|                 this.mInsetsController.setSystemBarsAppearance(0, 16); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         void controlWindowInsetsAnimation(int i, long j, Interpolator interpolator, CancellationSignal cancellationSignal, final WindowInsetsAnimationControlListenerCompat windowInsetsAnimationControlListenerCompat) { | ||||
|             this.mInsetsController.controlWindowInsetsAnimation(i, j, interpolator, cancellationSignal, new WindowInsetsAnimationControlListener() { // from class: androidx.core.view.WindowInsetsControllerCompat.Impl30.1 | ||||
|                 private WindowInsetsAnimationControllerCompat mCompatAnimController = null; | ||||
|  | ||||
|                 @Override // android.view.WindowInsetsAnimationControlListener | ||||
|                 public void onReady(WindowInsetsAnimationController windowInsetsAnimationController, int i2) { | ||||
|                     WindowInsetsAnimationControllerCompat windowInsetsAnimationControllerCompat = new WindowInsetsAnimationControllerCompat(windowInsetsAnimationController); | ||||
|                     this.mCompatAnimController = windowInsetsAnimationControllerCompat; | ||||
|                     windowInsetsAnimationControlListenerCompat.onReady(windowInsetsAnimationControllerCompat, i2); | ||||
|                 } | ||||
|  | ||||
|                 @Override // android.view.WindowInsetsAnimationControlListener | ||||
|                 public void onFinished(WindowInsetsAnimationController windowInsetsAnimationController) { | ||||
|                     windowInsetsAnimationControlListenerCompat.onFinished(this.mCompatAnimController); | ||||
|                 } | ||||
|  | ||||
|                 @Override // android.view.WindowInsetsAnimationControlListener | ||||
|                 public void onCancelled(WindowInsetsAnimationController windowInsetsAnimationController) { | ||||
|                     windowInsetsAnimationControlListenerCompat.onCancelled(windowInsetsAnimationController == null ? null : this.mCompatAnimController); | ||||
|                 } | ||||
|             }); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         void setSystemBarsBehavior(int i) { | ||||
|             this.mInsetsController.setSystemBarsBehavior(i); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         int getSystemBarsBehavior() { | ||||
|             int systemBarsBehavior; | ||||
|             systemBarsBehavior = this.mInsetsController.getSystemBarsBehavior(); | ||||
|             return systemBarsBehavior; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         void addOnControllableInsetsChangedListener(final OnControllableInsetsChangedListener onControllableInsetsChangedListener) { | ||||
|             if (this.mListeners.containsKey(onControllableInsetsChangedListener)) { | ||||
|                 return; | ||||
|             } | ||||
|             WindowInsetsController.OnControllableInsetsChangedListener onControllableInsetsChangedListener2 = new WindowInsetsController.OnControllableInsetsChangedListener() { // from class: androidx.core.view.WindowInsetsControllerCompat$Impl30$$ExternalSyntheticLambda11 | ||||
|                 @Override // android.view.WindowInsetsController.OnControllableInsetsChangedListener | ||||
|                 public final void onControllableInsetsChanged(WindowInsetsController windowInsetsController, int i) { | ||||
|                     WindowInsetsControllerCompat.Impl30.this.m162xe96d8c51(onControllableInsetsChangedListener, windowInsetsController, i); | ||||
|                 } | ||||
|             }; | ||||
|             this.mListeners.put(onControllableInsetsChangedListener, onControllableInsetsChangedListener2); | ||||
|             this.mInsetsController.addOnControllableInsetsChangedListener(onControllableInsetsChangedListener2); | ||||
|         } | ||||
|  | ||||
|         /* renamed from: lambda$addOnControllableInsetsChangedListener$0$androidx-core-view-WindowInsetsControllerCompat$Impl30, reason: not valid java name */ | ||||
|         /* synthetic */ void m162xe96d8c51(OnControllableInsetsChangedListener onControllableInsetsChangedListener, WindowInsetsController windowInsetsController, int i) { | ||||
|             if (this.mInsetsController == windowInsetsController) { | ||||
|                 onControllableInsetsChangedListener.onControllableInsetsChanged(this.mCompatController, i); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.WindowInsetsControllerCompat.Impl | ||||
|         void removeOnControllableInsetsChangedListener(OnControllableInsetsChangedListener onControllableInsetsChangedListener) { | ||||
|             WindowInsetsController.OnControllableInsetsChangedListener m148m = HalfKt$$ExternalSyntheticApiModelOutline0.m148m((Object) this.mListeners.remove(onControllableInsetsChangedListener)); | ||||
|             if (m148m != null) { | ||||
|                 this.mInsetsController.removeOnControllableInsetsChangedListener(m148m); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         protected void unsetSystemUiFlag(int i) { | ||||
|             View decorView = this.mWindow.getDecorView(); | ||||
|             decorView.setSystemUiVisibility((~i) & decorView.getSystemUiVisibility()); | ||||
|         } | ||||
|  | ||||
|         protected void setSystemUiFlag(int i) { | ||||
|             View decorView = this.mWindow.getDecorView(); | ||||
|             decorView.setSystemUiVisibility(i | decorView.getSystemUiVisibility()); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,26 @@ | ||||
| package androidx.core.view.accessibility; | ||||
|  | ||||
| import android.os.Bundle; | ||||
| import android.text.style.ClickableSpan; | ||||
| import android.view.View; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class AccessibilityClickableSpanCompat extends ClickableSpan { | ||||
|     public static final String SPAN_ID = "ACCESSIBILITY_CLICKABLE_SPAN_ID"; | ||||
|     private final int mClickableSpanActionId; | ||||
|     private final AccessibilityNodeInfoCompat mNodeInfoCompat; | ||||
|     private final int mOriginalClickableSpanId; | ||||
|  | ||||
|     public AccessibilityClickableSpanCompat(int i, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat, int i2) { | ||||
|         this.mOriginalClickableSpanId = i; | ||||
|         this.mNodeInfoCompat = accessibilityNodeInfoCompat; | ||||
|         this.mClickableSpanActionId = i2; | ||||
|     } | ||||
|  | ||||
|     @Override // android.text.style.ClickableSpan | ||||
|     public void onClick(View view) { | ||||
|         Bundle bundle = new Bundle(); | ||||
|         bundle.putInt(SPAN_ID, this.mOriginalClickableSpanId); | ||||
|         this.mNodeInfoCompat.performAction(this.mClickableSpanActionId, bundle); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,139 @@ | ||||
| package androidx.core.view.accessibility; | ||||
|  | ||||
| import android.view.accessibility.AccessibilityEvent; | ||||
| import android.view.accessibility.AccessibilityRecord; | ||||
| import java.lang.annotation.Retention; | ||||
| import java.lang.annotation.RetentionPolicy; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class AccessibilityEventCompat { | ||||
|     public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; | ||||
|     public static final int CONTENT_CHANGE_TYPE_DRAG_CANCELLED = 512; | ||||
|     public static final int CONTENT_CHANGE_TYPE_DRAG_DROPPED = 256; | ||||
|     public static final int CONTENT_CHANGE_TYPE_DRAG_STARTED = 128; | ||||
|     public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; | ||||
|     public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; | ||||
|     public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; | ||||
|     public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; | ||||
|     public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; | ||||
|     public static final int CONTENT_CHANGE_TYPE_TEXT = 2; | ||||
|     public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; | ||||
|     public static final int TYPES_ALL_MASK = -1; | ||||
|     public static final int TYPE_ANNOUNCEMENT = 16384; | ||||
|     public static final int TYPE_ASSIST_READING_CONTEXT = 16777216; | ||||
|     public static final int TYPE_GESTURE_DETECTION_END = 524288; | ||||
|     public static final int TYPE_GESTURE_DETECTION_START = 262144; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int TYPE_TOUCH_EXPLORATION_GESTURE_END = 1024; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int TYPE_TOUCH_EXPLORATION_GESTURE_START = 512; | ||||
|     public static final int TYPE_TOUCH_INTERACTION_END = 2097152; | ||||
|     public static final int TYPE_TOUCH_INTERACTION_START = 1048576; | ||||
|     public static final int TYPE_VIEW_ACCESSIBILITY_FOCUSED = 32768; | ||||
|     public static final int TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED = 65536; | ||||
|     public static final int TYPE_VIEW_CONTEXT_CLICKED = 8388608; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int TYPE_VIEW_HOVER_ENTER = 128; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int TYPE_VIEW_HOVER_EXIT = 256; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int TYPE_VIEW_SCROLLED = 4096; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int TYPE_VIEW_TEXT_SELECTION_CHANGED = 8192; | ||||
|     public static final int TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY = 131072; | ||||
|     public static final int TYPE_WINDOWS_CHANGED = 4194304; | ||||
|  | ||||
|     @Deprecated | ||||
|     public static final int TYPE_WINDOW_CONTENT_CHANGED = 2048; | ||||
|  | ||||
|     @Retention(RetentionPolicy.SOURCE) | ||||
|     public @interface ContentChangeType { | ||||
|     } | ||||
|  | ||||
|     private AccessibilityEventCompat() { | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static int getRecordCount(AccessibilityEvent accessibilityEvent) { | ||||
|         return accessibilityEvent.getRecordCount(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static void appendRecord(AccessibilityEvent accessibilityEvent, AccessibilityRecordCompat accessibilityRecordCompat) { | ||||
|         accessibilityEvent.appendRecord((AccessibilityRecord) accessibilityRecordCompat.getImpl()); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static AccessibilityRecordCompat getRecord(AccessibilityEvent accessibilityEvent, int i) { | ||||
|         return new AccessibilityRecordCompat(accessibilityEvent.getRecord(i)); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static AccessibilityRecordCompat asRecord(AccessibilityEvent accessibilityEvent) { | ||||
|         return new AccessibilityRecordCompat(accessibilityEvent); | ||||
|     } | ||||
|  | ||||
|     public static void setContentChangeTypes(AccessibilityEvent accessibilityEvent, int i) { | ||||
|         Api19Impl.setContentChangeTypes(accessibilityEvent, i); | ||||
|     } | ||||
|  | ||||
|     public static int getContentChangeTypes(AccessibilityEvent accessibilityEvent) { | ||||
|         return Api19Impl.getContentChangeTypes(accessibilityEvent); | ||||
|     } | ||||
|  | ||||
|     public static void setMovementGranularity(AccessibilityEvent accessibilityEvent, int i) { | ||||
|         Api16Impl.setMovementGranularity(accessibilityEvent, i); | ||||
|     } | ||||
|  | ||||
|     public static int getMovementGranularity(AccessibilityEvent accessibilityEvent) { | ||||
|         return Api16Impl.getMovementGranularity(accessibilityEvent); | ||||
|     } | ||||
|  | ||||
|     public static void setAction(AccessibilityEvent accessibilityEvent, int i) { | ||||
|         Api16Impl.setAction(accessibilityEvent, i); | ||||
|     } | ||||
|  | ||||
|     public static int getAction(AccessibilityEvent accessibilityEvent) { | ||||
|         return Api16Impl.getAction(accessibilityEvent); | ||||
|     } | ||||
|  | ||||
|     static class Api19Impl { | ||||
|         private Api19Impl() { | ||||
|         } | ||||
|  | ||||
|         static void setContentChangeTypes(AccessibilityEvent accessibilityEvent, int i) { | ||||
|             accessibilityEvent.setContentChangeTypes(i); | ||||
|         } | ||||
|  | ||||
|         static int getContentChangeTypes(AccessibilityEvent accessibilityEvent) { | ||||
|             return accessibilityEvent.getContentChangeTypes(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api16Impl { | ||||
|         private Api16Impl() { | ||||
|         } | ||||
|  | ||||
|         static void setMovementGranularity(AccessibilityEvent accessibilityEvent, int i) { | ||||
|             accessibilityEvent.setMovementGranularity(i); | ||||
|         } | ||||
|  | ||||
|         static int getMovementGranularity(AccessibilityEvent accessibilityEvent) { | ||||
|             return accessibilityEvent.getMovementGranularity(); | ||||
|         } | ||||
|  | ||||
|         static void setAction(AccessibilityEvent accessibilityEvent, int i) { | ||||
|             accessibilityEvent.setAction(i); | ||||
|         } | ||||
|  | ||||
|         static int getAction(AccessibilityEvent accessibilityEvent) { | ||||
|             return accessibilityEvent.getAction(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,132 @@ | ||||
| package androidx.core.view.accessibility; | ||||
|  | ||||
| import android.accessibilityservice.AccessibilityServiceInfo; | ||||
| import android.view.accessibility.AccessibilityManager; | ||||
| import java.util.List; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class AccessibilityManagerCompat { | ||||
|  | ||||
|     @Deprecated | ||||
|     public interface AccessibilityStateChangeListener { | ||||
|         @Deprecated | ||||
|         void onAccessibilityStateChanged(boolean z); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static abstract class AccessibilityStateChangeListenerCompat implements AccessibilityStateChangeListener { | ||||
|     } | ||||
|  | ||||
|     public interface TouchExplorationStateChangeListener { | ||||
|         void onTouchExplorationStateChanged(boolean z); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static boolean addAccessibilityStateChangeListener(AccessibilityManager accessibilityManager, AccessibilityStateChangeListener accessibilityStateChangeListener) { | ||||
|         if (accessibilityStateChangeListener == null) { | ||||
|             return false; | ||||
|         } | ||||
|         return accessibilityManager.addAccessibilityStateChangeListener(new AccessibilityStateChangeListenerWrapper(accessibilityStateChangeListener)); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static boolean removeAccessibilityStateChangeListener(AccessibilityManager accessibilityManager, AccessibilityStateChangeListener accessibilityStateChangeListener) { | ||||
|         if (accessibilityStateChangeListener == null) { | ||||
|             return false; | ||||
|         } | ||||
|         return accessibilityManager.removeAccessibilityStateChangeListener(new AccessibilityStateChangeListenerWrapper(accessibilityStateChangeListener)); | ||||
|     } | ||||
|  | ||||
|     private static class AccessibilityStateChangeListenerWrapper implements AccessibilityManager.AccessibilityStateChangeListener { | ||||
|         AccessibilityStateChangeListener mListener; | ||||
|  | ||||
|         AccessibilityStateChangeListenerWrapper(AccessibilityStateChangeListener accessibilityStateChangeListener) { | ||||
|             this.mListener = accessibilityStateChangeListener; | ||||
|         } | ||||
|  | ||||
|         public int hashCode() { | ||||
|             return this.mListener.hashCode(); | ||||
|         } | ||||
|  | ||||
|         public boolean equals(Object obj) { | ||||
|             if (this == obj) { | ||||
|                 return true; | ||||
|             } | ||||
|             if (obj instanceof AccessibilityStateChangeListenerWrapper) { | ||||
|                 return this.mListener.equals(((AccessibilityStateChangeListenerWrapper) obj).mListener); | ||||
|             } | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener | ||||
|         public void onAccessibilityStateChanged(boolean z) { | ||||
|             this.mListener.onAccessibilityStateChanged(z); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(AccessibilityManager accessibilityManager) { | ||||
|         return accessibilityManager.getInstalledAccessibilityServiceList(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(AccessibilityManager accessibilityManager, int i) { | ||||
|         return accessibilityManager.getEnabledAccessibilityServiceList(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static boolean isTouchExplorationEnabled(AccessibilityManager accessibilityManager) { | ||||
|         return accessibilityManager.isTouchExplorationEnabled(); | ||||
|     } | ||||
|  | ||||
|     public static boolean addTouchExplorationStateChangeListener(AccessibilityManager accessibilityManager, TouchExplorationStateChangeListener touchExplorationStateChangeListener) { | ||||
|         return Api19Impl.addTouchExplorationStateChangeListenerWrapper(accessibilityManager, touchExplorationStateChangeListener); | ||||
|     } | ||||
|  | ||||
|     public static boolean removeTouchExplorationStateChangeListener(AccessibilityManager accessibilityManager, TouchExplorationStateChangeListener touchExplorationStateChangeListener) { | ||||
|         return Api19Impl.removeTouchExplorationStateChangeListenerWrapper(accessibilityManager, touchExplorationStateChangeListener); | ||||
|     } | ||||
|  | ||||
|     private static final class TouchExplorationStateChangeListenerWrapper implements AccessibilityManager.TouchExplorationStateChangeListener { | ||||
|         final TouchExplorationStateChangeListener mListener; | ||||
|  | ||||
|         TouchExplorationStateChangeListenerWrapper(TouchExplorationStateChangeListener touchExplorationStateChangeListener) { | ||||
|             this.mListener = touchExplorationStateChangeListener; | ||||
|         } | ||||
|  | ||||
|         public int hashCode() { | ||||
|             return this.mListener.hashCode(); | ||||
|         } | ||||
|  | ||||
|         public boolean equals(Object obj) { | ||||
|             if (this == obj) { | ||||
|                 return true; | ||||
|             } | ||||
|             if (obj instanceof TouchExplorationStateChangeListenerWrapper) { | ||||
|                 return this.mListener.equals(((TouchExplorationStateChangeListenerWrapper) obj).mListener); | ||||
|             } | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener | ||||
|         public void onTouchExplorationStateChanged(boolean z) { | ||||
|             this.mListener.onTouchExplorationStateChanged(z); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private AccessibilityManagerCompat() { | ||||
|     } | ||||
|  | ||||
|     static class Api19Impl { | ||||
|         private Api19Impl() { | ||||
|         } | ||||
|  | ||||
|         static boolean addTouchExplorationStateChangeListenerWrapper(AccessibilityManager accessibilityManager, TouchExplorationStateChangeListener touchExplorationStateChangeListener) { | ||||
|             return accessibilityManager.addTouchExplorationStateChangeListener(new TouchExplorationStateChangeListenerWrapper(touchExplorationStateChangeListener)); | ||||
|         } | ||||
|  | ||||
|         static boolean removeTouchExplorationStateChangeListenerWrapper(AccessibilityManager accessibilityManager, TouchExplorationStateChangeListener touchExplorationStateChangeListener) { | ||||
|             return accessibilityManager.removeTouchExplorationStateChangeListener(new TouchExplorationStateChangeListenerWrapper(touchExplorationStateChangeListener)); | ||||
|         } | ||||
|     } | ||||
| } | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -0,0 +1,111 @@ | ||||
| package androidx.core.view.accessibility; | ||||
|  | ||||
| import android.os.Build; | ||||
| import android.os.Bundle; | ||||
| import android.view.accessibility.AccessibilityNodeInfo; | ||||
| import android.view.accessibility.AccessibilityNodeProvider; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class AccessibilityNodeProviderCompat { | ||||
|     public static final int HOST_VIEW_ID = -1; | ||||
|     private final Object mProvider; | ||||
|  | ||||
|     public void addExtraDataToAccessibilityNodeInfo(int i, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat, String str, Bundle bundle) { | ||||
|     } | ||||
|  | ||||
|     public AccessibilityNodeInfoCompat createAccessibilityNodeInfo(int i) { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public List<AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByText(String str, int i) { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public AccessibilityNodeInfoCompat findFocus(int i) { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public Object getProvider() { | ||||
|         return this.mProvider; | ||||
|     } | ||||
|  | ||||
|     public boolean performAction(int i, int i2, Bundle bundle) { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     static class AccessibilityNodeProviderApi16 extends AccessibilityNodeProvider { | ||||
|         final AccessibilityNodeProviderCompat mCompat; | ||||
|  | ||||
|         AccessibilityNodeProviderApi16(AccessibilityNodeProviderCompat accessibilityNodeProviderCompat) { | ||||
|             this.mCompat = accessibilityNodeProviderCompat; | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.accessibility.AccessibilityNodeProvider | ||||
|         public AccessibilityNodeInfo createAccessibilityNodeInfo(int i) { | ||||
|             AccessibilityNodeInfoCompat createAccessibilityNodeInfo = this.mCompat.createAccessibilityNodeInfo(i); | ||||
|             if (createAccessibilityNodeInfo == null) { | ||||
|                 return null; | ||||
|             } | ||||
|             return createAccessibilityNodeInfo.unwrap(); | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.accessibility.AccessibilityNodeProvider | ||||
|         public List<AccessibilityNodeInfo> findAccessibilityNodeInfosByText(String str, int i) { | ||||
|             List<AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByText = this.mCompat.findAccessibilityNodeInfosByText(str, i); | ||||
|             if (findAccessibilityNodeInfosByText == null) { | ||||
|                 return null; | ||||
|             } | ||||
|             ArrayList arrayList = new ArrayList(); | ||||
|             int size = findAccessibilityNodeInfosByText.size(); | ||||
|             for (int i2 = 0; i2 < size; i2++) { | ||||
|                 arrayList.add(findAccessibilityNodeInfosByText.get(i2).unwrap()); | ||||
|             } | ||||
|             return arrayList; | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.accessibility.AccessibilityNodeProvider | ||||
|         public boolean performAction(int i, int i2, Bundle bundle) { | ||||
|             return this.mCompat.performAction(i, i2, bundle); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class AccessibilityNodeProviderApi19 extends AccessibilityNodeProviderApi16 { | ||||
|         AccessibilityNodeProviderApi19(AccessibilityNodeProviderCompat accessibilityNodeProviderCompat) { | ||||
|             super(accessibilityNodeProviderCompat); | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.accessibility.AccessibilityNodeProvider | ||||
|         public AccessibilityNodeInfo findFocus(int i) { | ||||
|             AccessibilityNodeInfoCompat findFocus = this.mCompat.findFocus(i); | ||||
|             if (findFocus == null) { | ||||
|                 return null; | ||||
|             } | ||||
|             return findFocus.unwrap(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class AccessibilityNodeProviderApi26 extends AccessibilityNodeProviderApi19 { | ||||
|         AccessibilityNodeProviderApi26(AccessibilityNodeProviderCompat accessibilityNodeProviderCompat) { | ||||
|             super(accessibilityNodeProviderCompat); | ||||
|         } | ||||
|  | ||||
|         @Override // android.view.accessibility.AccessibilityNodeProvider | ||||
|         public void addExtraDataToAccessibilityNodeInfo(int i, AccessibilityNodeInfo accessibilityNodeInfo, String str, Bundle bundle) { | ||||
|             this.mCompat.addExtraDataToAccessibilityNodeInfo(i, AccessibilityNodeInfoCompat.wrap(accessibilityNodeInfo), str, bundle); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public AccessibilityNodeProviderCompat() { | ||||
|         if (Build.VERSION.SDK_INT >= 26) { | ||||
|             this.mProvider = new AccessibilityNodeProviderApi26(this); | ||||
|         } else { | ||||
|             this.mProvider = new AccessibilityNodeProviderApi19(this); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public AccessibilityNodeProviderCompat(Object obj) { | ||||
|         this.mProvider = obj; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,326 @@ | ||||
| package androidx.core.view.accessibility; | ||||
|  | ||||
| import android.os.Parcelable; | ||||
| import android.view.View; | ||||
| import android.view.accessibility.AccessibilityRecord; | ||||
| import java.util.List; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class AccessibilityRecordCompat { | ||||
|     private final AccessibilityRecord mRecord; | ||||
|  | ||||
|     @Deprecated | ||||
|     public Object getImpl() { | ||||
|         return this.mRecord; | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public AccessibilityRecordCompat(Object obj) { | ||||
|         this.mRecord = (AccessibilityRecord) obj; | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static AccessibilityRecordCompat obtain(AccessibilityRecordCompat accessibilityRecordCompat) { | ||||
|         return new AccessibilityRecordCompat(AccessibilityRecord.obtain(accessibilityRecordCompat.mRecord)); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static AccessibilityRecordCompat obtain() { | ||||
|         return new AccessibilityRecordCompat(AccessibilityRecord.obtain()); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setSource(View view) { | ||||
|         this.mRecord.setSource(view); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setSource(View view, int i) { | ||||
|         setSource(this.mRecord, view, i); | ||||
|     } | ||||
|  | ||||
|     public static void setSource(AccessibilityRecord accessibilityRecord, View view, int i) { | ||||
|         Api16Impl.setSource(accessibilityRecord, view, i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public AccessibilityNodeInfoCompat getSource() { | ||||
|         return AccessibilityNodeInfoCompat.wrapNonNullInstance(this.mRecord.getSource()); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public int getWindowId() { | ||||
|         return this.mRecord.getWindowId(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public boolean isChecked() { | ||||
|         return this.mRecord.isChecked(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setChecked(boolean z) { | ||||
|         this.mRecord.setChecked(z); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public boolean isEnabled() { | ||||
|         return this.mRecord.isEnabled(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setEnabled(boolean z) { | ||||
|         this.mRecord.setEnabled(z); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public boolean isPassword() { | ||||
|         return this.mRecord.isPassword(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setPassword(boolean z) { | ||||
|         this.mRecord.setPassword(z); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public boolean isFullScreen() { | ||||
|         return this.mRecord.isFullScreen(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setFullScreen(boolean z) { | ||||
|         this.mRecord.setFullScreen(z); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public boolean isScrollable() { | ||||
|         return this.mRecord.isScrollable(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setScrollable(boolean z) { | ||||
|         this.mRecord.setScrollable(z); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public int getItemCount() { | ||||
|         return this.mRecord.getItemCount(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setItemCount(int i) { | ||||
|         this.mRecord.setItemCount(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public int getCurrentItemIndex() { | ||||
|         return this.mRecord.getCurrentItemIndex(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setCurrentItemIndex(int i) { | ||||
|         this.mRecord.setCurrentItemIndex(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public int getFromIndex() { | ||||
|         return this.mRecord.getFromIndex(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setFromIndex(int i) { | ||||
|         this.mRecord.setFromIndex(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public int getToIndex() { | ||||
|         return this.mRecord.getToIndex(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setToIndex(int i) { | ||||
|         this.mRecord.setToIndex(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public int getScrollX() { | ||||
|         return this.mRecord.getScrollX(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setScrollX(int i) { | ||||
|         this.mRecord.setScrollX(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public int getScrollY() { | ||||
|         return this.mRecord.getScrollY(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setScrollY(int i) { | ||||
|         this.mRecord.setScrollY(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public int getMaxScrollX() { | ||||
|         return getMaxScrollX(this.mRecord); | ||||
|     } | ||||
|  | ||||
|     public static int getMaxScrollX(AccessibilityRecord accessibilityRecord) { | ||||
|         return Api15Impl.getMaxScrollX(accessibilityRecord); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setMaxScrollX(int i) { | ||||
|         setMaxScrollX(this.mRecord, i); | ||||
|     } | ||||
|  | ||||
|     public static void setMaxScrollX(AccessibilityRecord accessibilityRecord, int i) { | ||||
|         Api15Impl.setMaxScrollX(accessibilityRecord, i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public int getMaxScrollY() { | ||||
|         return getMaxScrollY(this.mRecord); | ||||
|     } | ||||
|  | ||||
|     public static int getMaxScrollY(AccessibilityRecord accessibilityRecord) { | ||||
|         return Api15Impl.getMaxScrollY(accessibilityRecord); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setMaxScrollY(int i) { | ||||
|         setMaxScrollY(this.mRecord, i); | ||||
|     } | ||||
|  | ||||
|     public static void setMaxScrollY(AccessibilityRecord accessibilityRecord, int i) { | ||||
|         Api15Impl.setMaxScrollY(accessibilityRecord, i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public int getAddedCount() { | ||||
|         return this.mRecord.getAddedCount(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setAddedCount(int i) { | ||||
|         this.mRecord.setAddedCount(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public int getRemovedCount() { | ||||
|         return this.mRecord.getRemovedCount(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setRemovedCount(int i) { | ||||
|         this.mRecord.setRemovedCount(i); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public CharSequence getClassName() { | ||||
|         return this.mRecord.getClassName(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setClassName(CharSequence charSequence) { | ||||
|         this.mRecord.setClassName(charSequence); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public List<CharSequence> getText() { | ||||
|         return this.mRecord.getText(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public CharSequence getBeforeText() { | ||||
|         return this.mRecord.getBeforeText(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setBeforeText(CharSequence charSequence) { | ||||
|         this.mRecord.setBeforeText(charSequence); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public CharSequence getContentDescription() { | ||||
|         return this.mRecord.getContentDescription(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setContentDescription(CharSequence charSequence) { | ||||
|         this.mRecord.setContentDescription(charSequence); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public Parcelable getParcelableData() { | ||||
|         return this.mRecord.getParcelableData(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void setParcelableData(Parcelable parcelable) { | ||||
|         this.mRecord.setParcelableData(parcelable); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void recycle() { | ||||
|         this.mRecord.recycle(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public int hashCode() { | ||||
|         AccessibilityRecord accessibilityRecord = this.mRecord; | ||||
|         if (accessibilityRecord == null) { | ||||
|             return 0; | ||||
|         } | ||||
|         return accessibilityRecord.hashCode(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) { | ||||
|             return true; | ||||
|         } | ||||
|         if (!(obj instanceof AccessibilityRecordCompat)) { | ||||
|             return false; | ||||
|         } | ||||
|         AccessibilityRecordCompat accessibilityRecordCompat = (AccessibilityRecordCompat) obj; | ||||
|         AccessibilityRecord accessibilityRecord = this.mRecord; | ||||
|         if (accessibilityRecord == null) { | ||||
|             return accessibilityRecordCompat.mRecord == null; | ||||
|         } | ||||
|         return accessibilityRecord.equals(accessibilityRecordCompat.mRecord); | ||||
|     } | ||||
|  | ||||
|     static class Api16Impl { | ||||
|         private Api16Impl() { | ||||
|         } | ||||
|  | ||||
|         static void setSource(AccessibilityRecord accessibilityRecord, View view, int i) { | ||||
|             accessibilityRecord.setSource(view, i); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static class Api15Impl { | ||||
|         private Api15Impl() { | ||||
|         } | ||||
|  | ||||
|         static int getMaxScrollX(AccessibilityRecord accessibilityRecord) { | ||||
|             return accessibilityRecord.getMaxScrollX(); | ||||
|         } | ||||
|  | ||||
|         static void setMaxScrollX(AccessibilityRecord accessibilityRecord, int i) { | ||||
|             accessibilityRecord.setMaxScrollX(i); | ||||
|         } | ||||
|  | ||||
|         static int getMaxScrollY(AccessibilityRecord accessibilityRecord) { | ||||
|             return accessibilityRecord.getMaxScrollY(); | ||||
|         } | ||||
|  | ||||
|         static void setMaxScrollY(AccessibilityRecord accessibilityRecord, int i) { | ||||
|             accessibilityRecord.setMaxScrollY(i); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,76 @@ | ||||
| package androidx.core.view.accessibility; | ||||
|  | ||||
| import android.os.Bundle; | ||||
| import android.view.View; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface AccessibilityViewCommand { | ||||
|  | ||||
|     public static abstract class CommandArguments { | ||||
|         Bundle mBundle; | ||||
|  | ||||
|         public void setBundle(Bundle bundle) { | ||||
|             this.mBundle = bundle; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     boolean perform(View view, CommandArguments commandArguments); | ||||
|  | ||||
|     public static final class MoveAtGranularityArguments extends CommandArguments { | ||||
|         public int getGranularity() { | ||||
|             return this.mBundle.getInt(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT); | ||||
|         } | ||||
|  | ||||
|         public boolean getExtendSelection() { | ||||
|             return this.mBundle.getBoolean(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class MoveHtmlArguments extends CommandArguments { | ||||
|         public String getHTMLElement() { | ||||
|             return this.mBundle.getString(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_HTML_ELEMENT_STRING); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class SetSelectionArguments extends CommandArguments { | ||||
|         public int getStart() { | ||||
|             return this.mBundle.getInt(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_SELECTION_START_INT); | ||||
|         } | ||||
|  | ||||
|         public int getEnd() { | ||||
|             return this.mBundle.getInt(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_SELECTION_END_INT); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class SetTextArguments extends CommandArguments { | ||||
|         public CharSequence getText() { | ||||
|             return this.mBundle.getCharSequence(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class ScrollToPositionArguments extends CommandArguments { | ||||
|         public int getRow() { | ||||
|             return this.mBundle.getInt(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_ROW_INT); | ||||
|         } | ||||
|  | ||||
|         public int getColumn() { | ||||
|             return this.mBundle.getInt(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_COLUMN_INT); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class SetProgressArguments extends CommandArguments { | ||||
|         public float getProgress() { | ||||
|             return this.mBundle.getFloat(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_PROGRESS_VALUE); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class MoveWindowArguments extends CommandArguments { | ||||
|         public int getX() { | ||||
|             return this.mBundle.getInt(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_MOVE_WINDOW_X); | ||||
|         } | ||||
|  | ||||
|         public int getY() { | ||||
|             return this.mBundle.getInt(AccessibilityNodeInfoCompat.ACTION_ARGUMENT_MOVE_WINDOW_Y); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,271 @@ | ||||
| package androidx.core.view.accessibility; | ||||
|  | ||||
| import android.graphics.Rect; | ||||
| import android.graphics.Region; | ||||
| import android.os.Build; | ||||
| import android.view.accessibility.AccessibilityNodeInfo; | ||||
| import android.view.accessibility.AccessibilityWindowInfo; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class AccessibilityWindowInfoCompat { | ||||
|     public static final int TYPE_ACCESSIBILITY_OVERLAY = 4; | ||||
|     public static final int TYPE_APPLICATION = 1; | ||||
|     public static final int TYPE_INPUT_METHOD = 2; | ||||
|     public static final int TYPE_SPLIT_SCREEN_DIVIDER = 5; | ||||
|     public static final int TYPE_SYSTEM = 3; | ||||
|     private static final int UNDEFINED = -1; | ||||
|     private final Object mInfo; | ||||
|  | ||||
|     private static String typeToString(int i) { | ||||
|         return i != 1 ? i != 2 ? i != 3 ? i != 4 ? "<UNKNOWN>" : "TYPE_ACCESSIBILITY_OVERLAY" : "TYPE_SYSTEM" : "TYPE_INPUT_METHOD" : "TYPE_APPLICATION"; | ||||
|     } | ||||
|  | ||||
|     static AccessibilityWindowInfoCompat wrapNonNullInstance(Object obj) { | ||||
|         if (obj != null) { | ||||
|             return new AccessibilityWindowInfoCompat(obj); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     private AccessibilityWindowInfoCompat(Object obj) { | ||||
|         this.mInfo = obj; | ||||
|     } | ||||
|  | ||||
|     public int getType() { | ||||
|         return Api21Impl.getType((AccessibilityWindowInfo) this.mInfo); | ||||
|     } | ||||
|  | ||||
|     public int getLayer() { | ||||
|         return Api21Impl.getLayer((AccessibilityWindowInfo) this.mInfo); | ||||
|     } | ||||
|  | ||||
|     public AccessibilityNodeInfoCompat getRoot() { | ||||
|         return AccessibilityNodeInfoCompat.wrapNonNullInstance(Api21Impl.getRoot((AccessibilityWindowInfo) this.mInfo)); | ||||
|     } | ||||
|  | ||||
|     public boolean isInPictureInPictureMode() { | ||||
|         if (Build.VERSION.SDK_INT >= 33) { | ||||
|             return Api33Impl.isInPictureInPictureMode((AccessibilityWindowInfo) this.mInfo); | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public AccessibilityWindowInfoCompat getParent() { | ||||
|         return wrapNonNullInstance(Api21Impl.getParent((AccessibilityWindowInfo) this.mInfo)); | ||||
|     } | ||||
|  | ||||
|     public int getId() { | ||||
|         return Api21Impl.getId((AccessibilityWindowInfo) this.mInfo); | ||||
|     } | ||||
|  | ||||
|     public void getRegionInScreen(Region region) { | ||||
|         if (Build.VERSION.SDK_INT >= 33) { | ||||
|             Api33Impl.getRegionInScreen((AccessibilityWindowInfo) this.mInfo, region); | ||||
|             return; | ||||
|         } | ||||
|         Rect rect = new Rect(); | ||||
|         Api21Impl.getBoundsInScreen((AccessibilityWindowInfo) this.mInfo, rect); | ||||
|         region.set(rect); | ||||
|     } | ||||
|  | ||||
|     public void getBoundsInScreen(Rect rect) { | ||||
|         Api21Impl.getBoundsInScreen((AccessibilityWindowInfo) this.mInfo, rect); | ||||
|     } | ||||
|  | ||||
|     public boolean isActive() { | ||||
|         return Api21Impl.isActive((AccessibilityWindowInfo) this.mInfo); | ||||
|     } | ||||
|  | ||||
|     public boolean isFocused() { | ||||
|         return Api21Impl.isFocused((AccessibilityWindowInfo) this.mInfo); | ||||
|     } | ||||
|  | ||||
|     public boolean isAccessibilityFocused() { | ||||
|         return Api21Impl.isAccessibilityFocused((AccessibilityWindowInfo) this.mInfo); | ||||
|     } | ||||
|  | ||||
|     public int getChildCount() { | ||||
|         return Api21Impl.getChildCount((AccessibilityWindowInfo) this.mInfo); | ||||
|     } | ||||
|  | ||||
|     public AccessibilityWindowInfoCompat getChild(int i) { | ||||
|         return wrapNonNullInstance(Api21Impl.getChild((AccessibilityWindowInfo) this.mInfo, i)); | ||||
|     } | ||||
|  | ||||
|     public int getDisplayId() { | ||||
|         if (Build.VERSION.SDK_INT >= 33) { | ||||
|             return Api33Impl.getDisplayId((AccessibilityWindowInfo) this.mInfo); | ||||
|         } | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     public CharSequence getTitle() { | ||||
|         if (Build.VERSION.SDK_INT >= 24) { | ||||
|             return Api24Impl.getTitle((AccessibilityWindowInfo) this.mInfo); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public AccessibilityNodeInfoCompat getAnchor() { | ||||
|         if (Build.VERSION.SDK_INT >= 24) { | ||||
|             return AccessibilityNodeInfoCompat.wrapNonNullInstance(Api24Impl.getAnchor((AccessibilityWindowInfo) this.mInfo)); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public static AccessibilityWindowInfoCompat obtain() { | ||||
|         return wrapNonNullInstance(Api21Impl.obtain()); | ||||
|     } | ||||
|  | ||||
|     public static AccessibilityWindowInfoCompat obtain(AccessibilityWindowInfoCompat accessibilityWindowInfoCompat) { | ||||
|         if (accessibilityWindowInfoCompat == null) { | ||||
|             return null; | ||||
|         } | ||||
|         return wrapNonNullInstance(Api21Impl.obtain((AccessibilityWindowInfo) accessibilityWindowInfoCompat.mInfo)); | ||||
|     } | ||||
|  | ||||
|     public void recycle() { | ||||
|         Api21Impl.recycle((AccessibilityWindowInfo) this.mInfo); | ||||
|     } | ||||
|  | ||||
|     public AccessibilityWindowInfo unwrap() { | ||||
|         return (AccessibilityWindowInfo) this.mInfo; | ||||
|     } | ||||
|  | ||||
|     public int hashCode() { | ||||
|         Object obj = this.mInfo; | ||||
|         if (obj == null) { | ||||
|             return 0; | ||||
|         } | ||||
|         return obj.hashCode(); | ||||
|     } | ||||
|  | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) { | ||||
|             return true; | ||||
|         } | ||||
|         if (obj == null || !(obj instanceof AccessibilityWindowInfoCompat)) { | ||||
|             return false; | ||||
|         } | ||||
|         AccessibilityWindowInfoCompat accessibilityWindowInfoCompat = (AccessibilityWindowInfoCompat) obj; | ||||
|         Object obj2 = this.mInfo; | ||||
|         if (obj2 == null) { | ||||
|             return accessibilityWindowInfoCompat.mInfo == null; | ||||
|         } | ||||
|         return obj2.equals(accessibilityWindowInfoCompat.mInfo); | ||||
|     } | ||||
|  | ||||
|     public String toString() { | ||||
|         StringBuilder sb = new StringBuilder("AccessibilityWindowInfo[id="); | ||||
|         Rect rect = new Rect(); | ||||
|         getBoundsInScreen(rect); | ||||
|         sb.append(getId()); | ||||
|         sb.append(", type="); | ||||
|         sb.append(typeToString(getType())); | ||||
|         sb.append(", layer="); | ||||
|         sb.append(getLayer()); | ||||
|         sb.append(", bounds="); | ||||
|         sb.append(rect); | ||||
|         sb.append(", focused="); | ||||
|         sb.append(isFocused()); | ||||
|         sb.append(", active="); | ||||
|         sb.append(isActive()); | ||||
|         sb.append(", hasParent="); | ||||
|         sb.append(getParent() != null); | ||||
|         sb.append(", hasChildren="); | ||||
|         sb.append(getChildCount() > 0); | ||||
|         sb.append(']'); | ||||
|         return sb.toString(); | ||||
|     } | ||||
|  | ||||
|     private static class Api21Impl { | ||||
|         private Api21Impl() { | ||||
|         } | ||||
|  | ||||
|         static void getBoundsInScreen(AccessibilityWindowInfo accessibilityWindowInfo, Rect rect) { | ||||
|             accessibilityWindowInfo.getBoundsInScreen(rect); | ||||
|         } | ||||
|  | ||||
|         static AccessibilityWindowInfo getChild(AccessibilityWindowInfo accessibilityWindowInfo, int i) { | ||||
|             return accessibilityWindowInfo.getChild(i); | ||||
|         } | ||||
|  | ||||
|         static int getChildCount(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             return accessibilityWindowInfo.getChildCount(); | ||||
|         } | ||||
|  | ||||
|         static int getId(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             return accessibilityWindowInfo.getId(); | ||||
|         } | ||||
|  | ||||
|         static int getLayer(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             return accessibilityWindowInfo.getLayer(); | ||||
|         } | ||||
|  | ||||
|         static AccessibilityWindowInfo getParent(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             return accessibilityWindowInfo.getParent(); | ||||
|         } | ||||
|  | ||||
|         static AccessibilityNodeInfo getRoot(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             return accessibilityWindowInfo.getRoot(); | ||||
|         } | ||||
|  | ||||
|         static int getType(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             return accessibilityWindowInfo.getType(); | ||||
|         } | ||||
|  | ||||
|         static boolean isAccessibilityFocused(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             return accessibilityWindowInfo.isAccessibilityFocused(); | ||||
|         } | ||||
|  | ||||
|         static boolean isActive(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             return accessibilityWindowInfo.isActive(); | ||||
|         } | ||||
|  | ||||
|         static boolean isFocused(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             return accessibilityWindowInfo.isFocused(); | ||||
|         } | ||||
|  | ||||
|         static AccessibilityWindowInfo obtain() { | ||||
|             return AccessibilityWindowInfo.obtain(); | ||||
|         } | ||||
|  | ||||
|         static AccessibilityWindowInfo obtain(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             return AccessibilityWindowInfo.obtain(accessibilityWindowInfo); | ||||
|         } | ||||
|  | ||||
|         static void recycle(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             accessibilityWindowInfo.recycle(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static class Api24Impl { | ||||
|         private Api24Impl() { | ||||
|         } | ||||
|  | ||||
|         static AccessibilityNodeInfo getAnchor(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             return accessibilityWindowInfo.getAnchor(); | ||||
|         } | ||||
|  | ||||
|         static CharSequence getTitle(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             return accessibilityWindowInfo.getTitle(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static class Api33Impl { | ||||
|         private Api33Impl() { | ||||
|         } | ||||
|  | ||||
|         static int getDisplayId(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             return accessibilityWindowInfo.getDisplayId(); | ||||
|         } | ||||
|  | ||||
|         static void getRegionInScreen(AccessibilityWindowInfo accessibilityWindowInfo, Region region) { | ||||
|             accessibilityWindowInfo.getRegionInScreen(region); | ||||
|         } | ||||
|  | ||||
|         static boolean isInPictureInPictureMode(AccessibilityWindowInfo accessibilityWindowInfo) { | ||||
|             return accessibilityWindowInfo.isInPictureInPictureMode(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,80 @@ | ||||
| package androidx.core.view.animation; | ||||
|  | ||||
| import android.graphics.Path; | ||||
| import android.graphics.PathMeasure; | ||||
| import android.view.animation.Interpolator; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| class PathInterpolatorApi14 implements Interpolator { | ||||
|     private static final float PRECISION = 0.002f; | ||||
|     private final float[] mX; | ||||
|     private final float[] mY; | ||||
|  | ||||
|     PathInterpolatorApi14(Path path) { | ||||
|         PathMeasure pathMeasure = new PathMeasure(path, false); | ||||
|         float length = pathMeasure.getLength(); | ||||
|         int i = (int) (length / 0.002f); | ||||
|         int i2 = i + 1; | ||||
|         this.mX = new float[i2]; | ||||
|         this.mY = new float[i2]; | ||||
|         float[] fArr = new float[2]; | ||||
|         for (int i3 = 0; i3 < i2; i3++) { | ||||
|             pathMeasure.getPosTan((i3 * length) / i, fArr, null); | ||||
|             this.mX[i3] = fArr[0]; | ||||
|             this.mY[i3] = fArr[1]; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     PathInterpolatorApi14(float f, float f2) { | ||||
|         this(createQuad(f, f2)); | ||||
|     } | ||||
|  | ||||
|     PathInterpolatorApi14(float f, float f2, float f3, float f4) { | ||||
|         this(createCubic(f, f2, f3, f4)); | ||||
|     } | ||||
|  | ||||
|     @Override // android.animation.TimeInterpolator | ||||
|     public float getInterpolation(float f) { | ||||
|         if (f <= 0.0f) { | ||||
|             return 0.0f; | ||||
|         } | ||||
|         if (f >= 1.0f) { | ||||
|             return 1.0f; | ||||
|         } | ||||
|         int length = this.mX.length - 1; | ||||
|         int i = 0; | ||||
|         while (length - i > 1) { | ||||
|             int i2 = (i + length) / 2; | ||||
|             if (f < this.mX[i2]) { | ||||
|                 length = i2; | ||||
|             } else { | ||||
|                 i = i2; | ||||
|             } | ||||
|         } | ||||
|         float[] fArr = this.mX; | ||||
|         float f2 = fArr[length]; | ||||
|         float f3 = fArr[i]; | ||||
|         float f4 = f2 - f3; | ||||
|         if (f4 == 0.0f) { | ||||
|             return this.mY[i]; | ||||
|         } | ||||
|         float f5 = (f - f3) / f4; | ||||
|         float[] fArr2 = this.mY; | ||||
|         float f6 = fArr2[i]; | ||||
|         return f6 + (f5 * (fArr2[length] - f6)); | ||||
|     } | ||||
|  | ||||
|     private static Path createQuad(float f, float f2) { | ||||
|         Path path = new Path(); | ||||
|         path.moveTo(0.0f, 0.0f); | ||||
|         path.quadTo(f, f2, 1.0f, 1.0f); | ||||
|         return path; | ||||
|     } | ||||
|  | ||||
|     private static Path createCubic(float f, float f2, float f3, float f4) { | ||||
|         Path path = new Path(); | ||||
|         path.moveTo(0.0f, 0.0f); | ||||
|         path.cubicTo(f, f2, f3, f4, 1.0f, 1.0f); | ||||
|         return path; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,40 @@ | ||||
| package androidx.core.view.animation; | ||||
|  | ||||
| import android.graphics.Path; | ||||
| import android.view.animation.Interpolator; | ||||
| import android.view.animation.PathInterpolator; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class PathInterpolatorCompat { | ||||
|     private PathInterpolatorCompat() { | ||||
|     } | ||||
|  | ||||
|     public static Interpolator create(Path path) { | ||||
|         return Api21Impl.createPathInterpolator(path); | ||||
|     } | ||||
|  | ||||
|     public static Interpolator create(float f, float f2) { | ||||
|         return Api21Impl.createPathInterpolator(f, f2); | ||||
|     } | ||||
|  | ||||
|     public static Interpolator create(float f, float f2, float f3, float f4) { | ||||
|         return Api21Impl.createPathInterpolator(f, f2, f3, f4); | ||||
|     } | ||||
|  | ||||
|     static class Api21Impl { | ||||
|         private Api21Impl() { | ||||
|         } | ||||
|  | ||||
|         static PathInterpolator createPathInterpolator(Path path) { | ||||
|             return new PathInterpolator(path); | ||||
|         } | ||||
|  | ||||
|         static PathInterpolator createPathInterpolator(float f, float f2) { | ||||
|             return new PathInterpolator(f, f2); | ||||
|         } | ||||
|  | ||||
|         static PathInterpolator createPathInterpolator(float f, float f2, float f3, float f4) { | ||||
|             return new PathInterpolator(f, f2, f3, f4); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,237 @@ | ||||
| package androidx.core.view.inputmethod; | ||||
|  | ||||
| import android.os.Build; | ||||
| import android.os.Bundle; | ||||
| import android.text.SpannableStringBuilder; | ||||
| import android.text.TextUtils; | ||||
| import android.view.inputmethod.EditorInfo; | ||||
| import androidx.core.util.Preconditions; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class EditorInfoCompat { | ||||
|     private static final String CONTENT_MIME_TYPES_INTEROP_KEY = "android.support.v13.view.inputmethod.EditorInfoCompat.CONTENT_MIME_TYPES"; | ||||
|     private static final String CONTENT_MIME_TYPES_KEY = "androidx.core.view.inputmethod.EditorInfoCompat.CONTENT_MIME_TYPES"; | ||||
|     private static final String CONTENT_SELECTION_END_KEY = "androidx.core.view.inputmethod.EditorInfoCompat.CONTENT_SELECTION_END"; | ||||
|     private static final String CONTENT_SELECTION_HEAD_KEY = "androidx.core.view.inputmethod.EditorInfoCompat.CONTENT_SELECTION_HEAD"; | ||||
|     private static final String CONTENT_SURROUNDING_TEXT_KEY = "androidx.core.view.inputmethod.EditorInfoCompat.CONTENT_SURROUNDING_TEXT"; | ||||
|     private static final String[] EMPTY_STRING_ARRAY = new String[0]; | ||||
|     public static final int IME_FLAG_FORCE_ASCII = Integer.MIN_VALUE; | ||||
|     public static final int IME_FLAG_NO_PERSONALIZED_LEARNING = 16777216; | ||||
|     static final int MAX_INITIAL_SELECTION_LENGTH = 1024; | ||||
|     static final int MEMORY_EFFICIENT_TEXT_LENGTH = 2048; | ||||
|  | ||||
|     private static boolean isPasswordInputType(int i) { | ||||
|         int i2 = i & 4095; | ||||
|         return i2 == 129 || i2 == 225 || i2 == 18; | ||||
|     } | ||||
|  | ||||
|     public static void setContentMimeTypes(EditorInfo editorInfo, String[] strArr) { | ||||
|         if (Build.VERSION.SDK_INT >= 25) { | ||||
|             editorInfo.contentMimeTypes = strArr; | ||||
|             return; | ||||
|         } | ||||
|         if (editorInfo.extras == null) { | ||||
|             editorInfo.extras = new Bundle(); | ||||
|         } | ||||
|         editorInfo.extras.putStringArray(CONTENT_MIME_TYPES_KEY, strArr); | ||||
|         editorInfo.extras.putStringArray(CONTENT_MIME_TYPES_INTEROP_KEY, strArr); | ||||
|     } | ||||
|  | ||||
|     public static String[] getContentMimeTypes(EditorInfo editorInfo) { | ||||
|         String[] strArr; | ||||
|         if (Build.VERSION.SDK_INT >= 25) { | ||||
|             strArr = editorInfo.contentMimeTypes; | ||||
|             return strArr != null ? strArr : EMPTY_STRING_ARRAY; | ||||
|         } | ||||
|         if (editorInfo.extras == null) { | ||||
|             return EMPTY_STRING_ARRAY; | ||||
|         } | ||||
|         String[] stringArray = editorInfo.extras.getStringArray(CONTENT_MIME_TYPES_KEY); | ||||
|         if (stringArray == null) { | ||||
|             stringArray = editorInfo.extras.getStringArray(CONTENT_MIME_TYPES_INTEROP_KEY); | ||||
|         } | ||||
|         return stringArray != null ? stringArray : EMPTY_STRING_ARRAY; | ||||
|     } | ||||
|  | ||||
|     public static void setInitialSurroundingText(EditorInfo editorInfo, CharSequence charSequence) { | ||||
|         if (Build.VERSION.SDK_INT >= 30) { | ||||
|             Api30Impl.setInitialSurroundingSubText(editorInfo, charSequence, 0); | ||||
|         } else { | ||||
|             setInitialSurroundingSubText(editorInfo, charSequence, 0); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static void setInitialSurroundingSubText(EditorInfo editorInfo, CharSequence charSequence, int i) { | ||||
|         int i2; | ||||
|         int i3; | ||||
|         Preconditions.checkNotNull(charSequence); | ||||
|         if (Build.VERSION.SDK_INT >= 30) { | ||||
|             Api30Impl.setInitialSurroundingSubText(editorInfo, charSequence, i); | ||||
|             return; | ||||
|         } | ||||
|         if (editorInfo.initialSelStart > editorInfo.initialSelEnd) { | ||||
|             i2 = editorInfo.initialSelEnd; | ||||
|         } else { | ||||
|             i2 = editorInfo.initialSelStart; | ||||
|         } | ||||
|         int i4 = i2 - i; | ||||
|         if (editorInfo.initialSelStart > editorInfo.initialSelEnd) { | ||||
|             i3 = editorInfo.initialSelStart; | ||||
|         } else { | ||||
|             i3 = editorInfo.initialSelEnd; | ||||
|         } | ||||
|         int i5 = i3 - i; | ||||
|         int length = charSequence.length(); | ||||
|         if (i < 0 || i4 < 0 || i5 > length) { | ||||
|             setSurroundingText(editorInfo, null, 0, 0); | ||||
|             return; | ||||
|         } | ||||
|         if (isPasswordInputType(editorInfo.inputType)) { | ||||
|             setSurroundingText(editorInfo, null, 0, 0); | ||||
|         } else if (length <= 2048) { | ||||
|             setSurroundingText(editorInfo, charSequence, i4, i5); | ||||
|         } else { | ||||
|             trimLongSurroundingText(editorInfo, charSequence, i4, i5); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static void trimLongSurroundingText(EditorInfo editorInfo, CharSequence charSequence, int i, int i2) { | ||||
|         CharSequence subSequence; | ||||
|         int i3 = i2 - i; | ||||
|         int i4 = i3 > 1024 ? 0 : i3; | ||||
|         int i5 = 2048 - i4; | ||||
|         int min = Math.min(charSequence.length() - i2, i5 - Math.min(i, (int) (i5 * 0.8d))); | ||||
|         int min2 = Math.min(i, i5 - min); | ||||
|         int i6 = i - min2; | ||||
|         if (isCutOnSurrogate(charSequence, i6, 0)) { | ||||
|             i6++; | ||||
|             min2--; | ||||
|         } | ||||
|         if (isCutOnSurrogate(charSequence, (i2 + min) - 1, 1)) { | ||||
|             min--; | ||||
|         } | ||||
|         int i7 = min2 + i4 + min; | ||||
|         if (i4 != i3) { | ||||
|             subSequence = TextUtils.concat(charSequence.subSequence(i6, i6 + min2), charSequence.subSequence(i2, min + i2)); | ||||
|         } else { | ||||
|             subSequence = charSequence.subSequence(i6, i7 + i6); | ||||
|         } | ||||
|         setSurroundingText(editorInfo, subSequence, min2, i4 + min2); | ||||
|     } | ||||
|  | ||||
|     public static CharSequence getInitialTextBeforeCursor(EditorInfo editorInfo, int i, int i2) { | ||||
|         CharSequence charSequence; | ||||
|         if (Build.VERSION.SDK_INT >= 30) { | ||||
|             return Api30Impl.getInitialTextBeforeCursor(editorInfo, i, i2); | ||||
|         } | ||||
|         if (editorInfo.extras == null || (charSequence = editorInfo.extras.getCharSequence(CONTENT_SURROUNDING_TEXT_KEY)) == null) { | ||||
|             return null; | ||||
|         } | ||||
|         int i3 = editorInfo.extras.getInt(CONTENT_SELECTION_HEAD_KEY); | ||||
|         int min = Math.min(i, i3); | ||||
|         if ((i2 & 1) != 0) { | ||||
|             return charSequence.subSequence(i3 - min, i3); | ||||
|         } | ||||
|         return TextUtils.substring(charSequence, i3 - min, i3); | ||||
|     } | ||||
|  | ||||
|     public static CharSequence getInitialSelectedText(EditorInfo editorInfo, int i) { | ||||
|         CharSequence charSequence; | ||||
|         if (Build.VERSION.SDK_INT >= 30) { | ||||
|             return Api30Impl.getInitialSelectedText(editorInfo, i); | ||||
|         } | ||||
|         if (editorInfo.extras == null) { | ||||
|             return null; | ||||
|         } | ||||
|         int min = Math.min(editorInfo.initialSelStart, editorInfo.initialSelEnd); | ||||
|         int max = Math.max(editorInfo.initialSelStart, editorInfo.initialSelEnd); | ||||
|         int i2 = editorInfo.extras.getInt(CONTENT_SELECTION_HEAD_KEY); | ||||
|         int i3 = editorInfo.extras.getInt(CONTENT_SELECTION_END_KEY); | ||||
|         int i4 = max - min; | ||||
|         if (editorInfo.initialSelStart < 0 || editorInfo.initialSelEnd < 0 || i3 - i2 != i4 || (charSequence = editorInfo.extras.getCharSequence(CONTENT_SURROUNDING_TEXT_KEY)) == null) { | ||||
|             return null; | ||||
|         } | ||||
|         if ((i & 1) != 0) { | ||||
|             return charSequence.subSequence(i2, i3); | ||||
|         } | ||||
|         return TextUtils.substring(charSequence, i2, i3); | ||||
|     } | ||||
|  | ||||
|     public static CharSequence getInitialTextAfterCursor(EditorInfo editorInfo, int i, int i2) { | ||||
|         CharSequence charSequence; | ||||
|         if (Build.VERSION.SDK_INT >= 30) { | ||||
|             return Api30Impl.getInitialTextAfterCursor(editorInfo, i, i2); | ||||
|         } | ||||
|         if (editorInfo.extras == null || (charSequence = editorInfo.extras.getCharSequence(CONTENT_SURROUNDING_TEXT_KEY)) == null) { | ||||
|             return null; | ||||
|         } | ||||
|         int i3 = editorInfo.extras.getInt(CONTENT_SELECTION_END_KEY); | ||||
|         int min = Math.min(i, charSequence.length() - i3); | ||||
|         if ((i2 & 1) != 0) { | ||||
|             return charSequence.subSequence(i3, min + i3); | ||||
|         } | ||||
|         return TextUtils.substring(charSequence, i3, min + i3); | ||||
|     } | ||||
|  | ||||
|     private static boolean isCutOnSurrogate(CharSequence charSequence, int i, int i2) { | ||||
|         if (i2 == 0) { | ||||
|             return Character.isLowSurrogate(charSequence.charAt(i)); | ||||
|         } | ||||
|         if (i2 != 1) { | ||||
|             return false; | ||||
|         } | ||||
|         return Character.isHighSurrogate(charSequence.charAt(i)); | ||||
|     } | ||||
|  | ||||
|     private static void setSurroundingText(EditorInfo editorInfo, CharSequence charSequence, int i, int i2) { | ||||
|         if (editorInfo.extras == null) { | ||||
|             editorInfo.extras = new Bundle(); | ||||
|         } | ||||
|         editorInfo.extras.putCharSequence(CONTENT_SURROUNDING_TEXT_KEY, charSequence != null ? new SpannableStringBuilder(charSequence) : null); | ||||
|         editorInfo.extras.putInt(CONTENT_SELECTION_HEAD_KEY, i); | ||||
|         editorInfo.extras.putInt(CONTENT_SELECTION_END_KEY, i2); | ||||
|     } | ||||
|  | ||||
|     static int getProtocol(EditorInfo editorInfo) { | ||||
|         if (Build.VERSION.SDK_INT >= 25) { | ||||
|             return 1; | ||||
|         } | ||||
|         if (editorInfo.extras == null) { | ||||
|             return 0; | ||||
|         } | ||||
|         boolean containsKey = editorInfo.extras.containsKey(CONTENT_MIME_TYPES_KEY); | ||||
|         boolean containsKey2 = editorInfo.extras.containsKey(CONTENT_MIME_TYPES_INTEROP_KEY); | ||||
|         if (containsKey && containsKey2) { | ||||
|             return 4; | ||||
|         } | ||||
|         if (containsKey) { | ||||
|             return 3; | ||||
|         } | ||||
|         return containsKey2 ? 2 : 0; | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public EditorInfoCompat() { | ||||
|     } | ||||
|  | ||||
|     private static class Api30Impl { | ||||
|         private Api30Impl() { | ||||
|         } | ||||
|  | ||||
|         static void setInitialSurroundingSubText(EditorInfo editorInfo, CharSequence charSequence, int i) { | ||||
|             editorInfo.setInitialSurroundingSubText(charSequence, i); | ||||
|         } | ||||
|  | ||||
|         static CharSequence getInitialTextBeforeCursor(EditorInfo editorInfo, int i, int i2) { | ||||
|             return editorInfo.getInitialTextBeforeCursor(i, i2); | ||||
|         } | ||||
|  | ||||
|         static CharSequence getInitialSelectedText(EditorInfo editorInfo, int i) { | ||||
|             return editorInfo.getInitialSelectedText(i); | ||||
|         } | ||||
|  | ||||
|         static CharSequence getInitialTextAfterCursor(EditorInfo editorInfo, int i, int i2) { | ||||
|             return editorInfo.getInitialTextAfterCursor(i, i2); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,187 @@ | ||||
| package androidx.core.view.inputmethod; | ||||
|  | ||||
| import android.content.ClipData; | ||||
| import android.content.ClipDescription; | ||||
| import android.net.Uri; | ||||
| import android.os.Build; | ||||
| import android.os.Bundle; | ||||
| import android.os.ResultReceiver; | ||||
| import android.text.TextUtils; | ||||
| import android.util.Log; | ||||
| import android.view.View; | ||||
| import android.view.inputmethod.EditorInfo; | ||||
| import android.view.inputmethod.InputConnection; | ||||
| import android.view.inputmethod.InputConnectionWrapper; | ||||
| import android.view.inputmethod.InputContentInfo; | ||||
| import androidx.core.util.ObjectsCompat; | ||||
| import androidx.core.util.Preconditions; | ||||
| import androidx.core.view.ContentInfoCompat; | ||||
| import androidx.core.view.ViewCompat; | ||||
| import androidx.tracing.Trace$$ExternalSyntheticApiModelOutline0; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class InputConnectionCompat { | ||||
|     private static final String COMMIT_CONTENT_ACTION = "androidx.core.view.inputmethod.InputConnectionCompat.COMMIT_CONTENT"; | ||||
|     private static final String COMMIT_CONTENT_CONTENT_URI_INTEROP_KEY = "android.support.v13.view.inputmethod.InputConnectionCompat.CONTENT_URI"; | ||||
|     private static final String COMMIT_CONTENT_CONTENT_URI_KEY = "androidx.core.view.inputmethod.InputConnectionCompat.CONTENT_URI"; | ||||
|     private static final String COMMIT_CONTENT_DESCRIPTION_INTEROP_KEY = "android.support.v13.view.inputmethod.InputConnectionCompat.CONTENT_DESCRIPTION"; | ||||
|     private static final String COMMIT_CONTENT_DESCRIPTION_KEY = "androidx.core.view.inputmethod.InputConnectionCompat.CONTENT_DESCRIPTION"; | ||||
|     private static final String COMMIT_CONTENT_FLAGS_INTEROP_KEY = "android.support.v13.view.inputmethod.InputConnectionCompat.CONTENT_FLAGS"; | ||||
|     private static final String COMMIT_CONTENT_FLAGS_KEY = "androidx.core.view.inputmethod.InputConnectionCompat.CONTENT_FLAGS"; | ||||
|     private static final String COMMIT_CONTENT_INTEROP_ACTION = "android.support.v13.view.inputmethod.InputConnectionCompat.COMMIT_CONTENT"; | ||||
|     private static final String COMMIT_CONTENT_LINK_URI_INTEROP_KEY = "android.support.v13.view.inputmethod.InputConnectionCompat.CONTENT_LINK_URI"; | ||||
|     private static final String COMMIT_CONTENT_LINK_URI_KEY = "androidx.core.view.inputmethod.InputConnectionCompat.CONTENT_LINK_URI"; | ||||
|     private static final String COMMIT_CONTENT_OPTS_INTEROP_KEY = "android.support.v13.view.inputmethod.InputConnectionCompat.CONTENT_OPTS"; | ||||
|     private static final String COMMIT_CONTENT_OPTS_KEY = "androidx.core.view.inputmethod.InputConnectionCompat.CONTENT_OPTS"; | ||||
|     private static final String COMMIT_CONTENT_RESULT_INTEROP_RECEIVER_KEY = "android.support.v13.view.inputmethod.InputConnectionCompat.CONTENT_RESULT_RECEIVER"; | ||||
|     private static final String COMMIT_CONTENT_RESULT_RECEIVER_KEY = "androidx.core.view.inputmethod.InputConnectionCompat.CONTENT_RESULT_RECEIVER"; | ||||
|     private static final String EXTRA_INPUT_CONTENT_INFO = "androidx.core.view.extra.INPUT_CONTENT_INFO"; | ||||
|     public static final int INPUT_CONTENT_GRANT_READ_URI_PERMISSION = 1; | ||||
|     private static final String LOG_TAG = "InputConnectionCompat"; | ||||
|  | ||||
|     public interface OnCommitContentListener { | ||||
|         boolean onCommitContent(InputContentInfoCompat inputContentInfoCompat, int i, Bundle bundle); | ||||
|     } | ||||
|  | ||||
|     /* JADX WARN: Multi-variable type inference failed */ | ||||
|     /* JADX WARN: Type inference failed for: r0v0 */ | ||||
|     /* JADX WARN: Type inference failed for: r0v3, types: [boolean, int] */ | ||||
|     /* JADX WARN: Type inference failed for: r0v5 */ | ||||
|     /* JADX WARN: Type inference failed for: r0v6 */ | ||||
|     static boolean handlePerformPrivateCommand(String str, Bundle bundle, OnCommitContentListener onCommitContentListener) { | ||||
|         boolean z; | ||||
|         ResultReceiver resultReceiver; | ||||
|         ?? r0 = 0; | ||||
|         r0 = 0; | ||||
|         if (bundle == null) { | ||||
|             return false; | ||||
|         } | ||||
|         if (TextUtils.equals(COMMIT_CONTENT_ACTION, str)) { | ||||
|             z = false; | ||||
|         } else { | ||||
|             if (!TextUtils.equals(COMMIT_CONTENT_INTEROP_ACTION, str)) { | ||||
|                 return false; | ||||
|             } | ||||
|             z = true; | ||||
|         } | ||||
|         try { | ||||
|             resultReceiver = (ResultReceiver) bundle.getParcelable(z ? COMMIT_CONTENT_RESULT_INTEROP_RECEIVER_KEY : COMMIT_CONTENT_RESULT_RECEIVER_KEY); | ||||
|             try { | ||||
|                 Uri uri = (Uri) bundle.getParcelable(z ? COMMIT_CONTENT_CONTENT_URI_INTEROP_KEY : COMMIT_CONTENT_CONTENT_URI_KEY); | ||||
|                 ClipDescription clipDescription = (ClipDescription) bundle.getParcelable(z ? COMMIT_CONTENT_DESCRIPTION_INTEROP_KEY : COMMIT_CONTENT_DESCRIPTION_KEY); | ||||
|                 Uri uri2 = (Uri) bundle.getParcelable(z ? COMMIT_CONTENT_LINK_URI_INTEROP_KEY : COMMIT_CONTENT_LINK_URI_KEY); | ||||
|                 int i = bundle.getInt(z ? COMMIT_CONTENT_FLAGS_INTEROP_KEY : COMMIT_CONTENT_FLAGS_KEY); | ||||
|                 Bundle bundle2 = (Bundle) bundle.getParcelable(z ? COMMIT_CONTENT_OPTS_INTEROP_KEY : COMMIT_CONTENT_OPTS_KEY); | ||||
|                 if (uri != null && clipDescription != null) { | ||||
|                     r0 = onCommitContentListener.onCommitContent(new InputContentInfoCompat(uri, clipDescription, uri2), i, bundle2); | ||||
|                 } | ||||
|                 if (resultReceiver != 0) { | ||||
|                     resultReceiver.send(r0, null); | ||||
|                 } | ||||
|                 return r0; | ||||
|             } catch (Throwable th) { | ||||
|                 th = th; | ||||
|                 if (resultReceiver != 0) { | ||||
|                     resultReceiver.send(0, null); | ||||
|                 } | ||||
|                 throw th; | ||||
|             } | ||||
|         } catch (Throwable th2) { | ||||
|             th = th2; | ||||
|             resultReceiver = 0; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static boolean commitContent(InputConnection inputConnection, EditorInfo editorInfo, InputContentInfoCompat inputContentInfoCompat, int i, Bundle bundle) { | ||||
|         boolean z; | ||||
|         if (Build.VERSION.SDK_INT >= 25) { | ||||
|             return Api25Impl.commitContent(inputConnection, Trace$$ExternalSyntheticApiModelOutline0.m(inputContentInfoCompat.unwrap()), i, bundle); | ||||
|         } | ||||
|         int protocol = EditorInfoCompat.getProtocol(editorInfo); | ||||
|         if (protocol != 2) { | ||||
|             z = false; | ||||
|             if (protocol != 3 && protocol != 4) { | ||||
|                 return false; | ||||
|             } | ||||
|         } else { | ||||
|             z = true; | ||||
|         } | ||||
|         Bundle bundle2 = new Bundle(); | ||||
|         bundle2.putParcelable(z ? COMMIT_CONTENT_CONTENT_URI_INTEROP_KEY : COMMIT_CONTENT_CONTENT_URI_KEY, inputContentInfoCompat.getContentUri()); | ||||
|         bundle2.putParcelable(z ? COMMIT_CONTENT_DESCRIPTION_INTEROP_KEY : COMMIT_CONTENT_DESCRIPTION_KEY, inputContentInfoCompat.getDescription()); | ||||
|         bundle2.putParcelable(z ? COMMIT_CONTENT_LINK_URI_INTEROP_KEY : COMMIT_CONTENT_LINK_URI_KEY, inputContentInfoCompat.getLinkUri()); | ||||
|         bundle2.putInt(z ? COMMIT_CONTENT_FLAGS_INTEROP_KEY : COMMIT_CONTENT_FLAGS_KEY, i); | ||||
|         bundle2.putParcelable(z ? COMMIT_CONTENT_OPTS_INTEROP_KEY : COMMIT_CONTENT_OPTS_KEY, bundle); | ||||
|         return inputConnection.performPrivateCommand(z ? COMMIT_CONTENT_INTEROP_ACTION : COMMIT_CONTENT_ACTION, bundle2); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public static InputConnection createWrapper(InputConnection inputConnection, EditorInfo editorInfo, final OnCommitContentListener onCommitContentListener) { | ||||
|         ObjectsCompat.requireNonNull(inputConnection, "inputConnection must be non-null"); | ||||
|         ObjectsCompat.requireNonNull(editorInfo, "editorInfo must be non-null"); | ||||
|         ObjectsCompat.requireNonNull(onCommitContentListener, "onCommitContentListener must be non-null"); | ||||
|         boolean z = false; | ||||
|         if (Build.VERSION.SDK_INT >= 25) { | ||||
|             return new InputConnectionWrapper(inputConnection, z) { // from class: androidx.core.view.inputmethod.InputConnectionCompat.1 | ||||
|                 @Override // android.view.inputmethod.InputConnectionWrapper, android.view.inputmethod.InputConnection | ||||
|                 public boolean commitContent(InputContentInfo inputContentInfo, int i, Bundle bundle) { | ||||
|                     if (onCommitContentListener.onCommitContent(InputContentInfoCompat.wrap(inputContentInfo), i, bundle)) { | ||||
|                         return true; | ||||
|                     } | ||||
|                     return super.commitContent(inputContentInfo, i, bundle); | ||||
|                 } | ||||
|             }; | ||||
|         } | ||||
|         return EditorInfoCompat.getContentMimeTypes(editorInfo).length == 0 ? inputConnection : new InputConnectionWrapper(inputConnection, z) { // from class: androidx.core.view.inputmethod.InputConnectionCompat.2 | ||||
|             @Override // android.view.inputmethod.InputConnectionWrapper, android.view.inputmethod.InputConnection | ||||
|             public boolean performPrivateCommand(String str, Bundle bundle) { | ||||
|                 if (InputConnectionCompat.handlePerformPrivateCommand(str, bundle, onCommitContentListener)) { | ||||
|                     return true; | ||||
|                 } | ||||
|                 return super.performPrivateCommand(str, bundle); | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     public static InputConnection createWrapper(View view, InputConnection inputConnection, EditorInfo editorInfo) { | ||||
|         return createWrapper(inputConnection, editorInfo, createOnCommitContentListenerUsingPerformReceiveContent(view)); | ||||
|     } | ||||
|  | ||||
|     private static OnCommitContentListener createOnCommitContentListenerUsingPerformReceiveContent(final View view) { | ||||
|         Preconditions.checkNotNull(view); | ||||
|         return new OnCommitContentListener() { // from class: androidx.core.view.inputmethod.InputConnectionCompat$$ExternalSyntheticLambda1 | ||||
|             @Override // androidx.core.view.inputmethod.InputConnectionCompat.OnCommitContentListener | ||||
|             public final boolean onCommitContent(InputContentInfoCompat inputContentInfoCompat, int i, Bundle bundle) { | ||||
|                 return InputConnectionCompat.lambda$createOnCommitContentListenerUsingPerformReceiveContent$0(view, inputContentInfoCompat, i, bundle); | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     static /* synthetic */ boolean lambda$createOnCommitContentListenerUsingPerformReceiveContent$0(View view, InputContentInfoCompat inputContentInfoCompat, int i, Bundle bundle) { | ||||
|         if (Build.VERSION.SDK_INT >= 25 && (i & 1) != 0) { | ||||
|             try { | ||||
|                 inputContentInfoCompat.requestPermission(); | ||||
|                 InputContentInfo m = Trace$$ExternalSyntheticApiModelOutline0.m(inputContentInfoCompat.unwrap()); | ||||
|                 bundle = bundle == null ? new Bundle() : new Bundle(bundle); | ||||
|                 bundle.putParcelable(EXTRA_INPUT_CONTENT_INFO, m); | ||||
|             } catch (Exception e) { | ||||
|                 Log.w(LOG_TAG, "Can't insert content from IME; requestPermission() failed", e); | ||||
|                 return false; | ||||
|             } | ||||
|         } | ||||
|         return ViewCompat.performReceiveContent(view, new ContentInfoCompat.Builder(new ClipData(inputContentInfoCompat.getDescription(), new ClipData.Item(inputContentInfoCompat.getContentUri())), 2).setLinkUri(inputContentInfoCompat.getLinkUri()).setExtras(bundle).build()) == null; | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public InputConnectionCompat() { | ||||
|     } | ||||
|  | ||||
|     static class Api25Impl { | ||||
|         private Api25Impl() { | ||||
|         } | ||||
|  | ||||
|         static boolean commitContent(InputConnection inputConnection, InputContentInfo inputContentInfo, int i, Bundle bundle) { | ||||
|             return inputConnection.commitContent(inputContentInfo, i, bundle); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,150 @@ | ||||
| package androidx.core.view.inputmethod; | ||||
|  | ||||
| import android.content.ClipDescription; | ||||
| import android.net.Uri; | ||||
| import android.os.Build; | ||||
| import android.view.inputmethod.InputContentInfo; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class InputContentInfoCompat { | ||||
|     private final InputContentInfoCompatImpl mImpl; | ||||
|  | ||||
|     private interface InputContentInfoCompatImpl { | ||||
|         Uri getContentUri(); | ||||
|  | ||||
|         ClipDescription getDescription(); | ||||
|  | ||||
|         Object getInputContentInfo(); | ||||
|  | ||||
|         Uri getLinkUri(); | ||||
|  | ||||
|         void releasePermission(); | ||||
|  | ||||
|         void requestPermission(); | ||||
|     } | ||||
|  | ||||
|     private static final class InputContentInfoCompatBaseImpl implements InputContentInfoCompatImpl { | ||||
|         private final Uri mContentUri; | ||||
|         private final ClipDescription mDescription; | ||||
|         private final Uri mLinkUri; | ||||
|  | ||||
|         @Override // androidx.core.view.inputmethod.InputContentInfoCompat.InputContentInfoCompatImpl | ||||
|         public Uri getContentUri() { | ||||
|             return this.mContentUri; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.inputmethod.InputContentInfoCompat.InputContentInfoCompatImpl | ||||
|         public ClipDescription getDescription() { | ||||
|             return this.mDescription; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.inputmethod.InputContentInfoCompat.InputContentInfoCompatImpl | ||||
|         public Object getInputContentInfo() { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.inputmethod.InputContentInfoCompat.InputContentInfoCompatImpl | ||||
|         public Uri getLinkUri() { | ||||
|             return this.mLinkUri; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.inputmethod.InputContentInfoCompat.InputContentInfoCompatImpl | ||||
|         public void releasePermission() { | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.inputmethod.InputContentInfoCompat.InputContentInfoCompatImpl | ||||
|         public void requestPermission() { | ||||
|         } | ||||
|  | ||||
|         InputContentInfoCompatBaseImpl(Uri uri, ClipDescription clipDescription, Uri uri2) { | ||||
|             this.mContentUri = uri; | ||||
|             this.mDescription = clipDescription; | ||||
|             this.mLinkUri = uri2; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static final class InputContentInfoCompatApi25Impl implements InputContentInfoCompatImpl { | ||||
|         final InputContentInfo mObject; | ||||
|  | ||||
|         @Override // androidx.core.view.inputmethod.InputContentInfoCompat.InputContentInfoCompatImpl | ||||
|         public Object getInputContentInfo() { | ||||
|             return this.mObject; | ||||
|         } | ||||
|  | ||||
|         InputContentInfoCompatApi25Impl(Object obj) { | ||||
|             this.mObject = (InputContentInfo) obj; | ||||
|         } | ||||
|  | ||||
|         InputContentInfoCompatApi25Impl(Uri uri, ClipDescription clipDescription, Uri uri2) { | ||||
|             this.mObject = new InputContentInfo(uri, clipDescription, uri2); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.inputmethod.InputContentInfoCompat.InputContentInfoCompatImpl | ||||
|         public Uri getContentUri() { | ||||
|             return this.mObject.getContentUri(); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.inputmethod.InputContentInfoCompat.InputContentInfoCompatImpl | ||||
|         public ClipDescription getDescription() { | ||||
|             return this.mObject.getDescription(); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.inputmethod.InputContentInfoCompat.InputContentInfoCompatImpl | ||||
|         public Uri getLinkUri() { | ||||
|             return this.mObject.getLinkUri(); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.inputmethod.InputContentInfoCompat.InputContentInfoCompatImpl | ||||
|         public void requestPermission() { | ||||
|             this.mObject.requestPermission(); | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.core.view.inputmethod.InputContentInfoCompat.InputContentInfoCompatImpl | ||||
|         public void releasePermission() { | ||||
|             this.mObject.releasePermission(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public InputContentInfoCompat(Uri uri, ClipDescription clipDescription, Uri uri2) { | ||||
|         if (Build.VERSION.SDK_INT >= 25) { | ||||
|             this.mImpl = new InputContentInfoCompatApi25Impl(uri, clipDescription, uri2); | ||||
|         } else { | ||||
|             this.mImpl = new InputContentInfoCompatBaseImpl(uri, clipDescription, uri2); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private InputContentInfoCompat(InputContentInfoCompatImpl inputContentInfoCompatImpl) { | ||||
|         this.mImpl = inputContentInfoCompatImpl; | ||||
|     } | ||||
|  | ||||
|     public Uri getContentUri() { | ||||
|         return this.mImpl.getContentUri(); | ||||
|     } | ||||
|  | ||||
|     public ClipDescription getDescription() { | ||||
|         return this.mImpl.getDescription(); | ||||
|     } | ||||
|  | ||||
|     public Uri getLinkUri() { | ||||
|         return this.mImpl.getLinkUri(); | ||||
|     } | ||||
|  | ||||
|     public static InputContentInfoCompat wrap(Object obj) { | ||||
|         if (obj != null && Build.VERSION.SDK_INT >= 25) { | ||||
|             return new InputContentInfoCompat(new InputContentInfoCompatApi25Impl(obj)); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public Object unwrap() { | ||||
|         return this.mImpl.getInputContentInfo(); | ||||
|     } | ||||
|  | ||||
|     public void requestPermission() { | ||||
|         this.mImpl.requestPermission(); | ||||
|     } | ||||
|  | ||||
|     public void releasePermission() { | ||||
|         this.mImpl.releasePermission(); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user