ADD week 5
This commit is contained in:
		| @@ -0,0 +1,167 @@ | ||||
| package com.google.android.material.badge; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.content.res.Resources; | ||||
| import android.graphics.Rect; | ||||
| import android.os.Build; | ||||
| import android.util.Log; | ||||
| import android.util.SparseArray; | ||||
| import android.view.View; | ||||
| import android.widget.FrameLayout; | ||||
| import androidx.appcompat.view.menu.ActionMenuItemView; | ||||
| import androidx.appcompat.widget.Toolbar; | ||||
| import androidx.core.view.AccessibilityDelegateCompat; | ||||
| import androidx.core.view.ViewCompat; | ||||
| import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; | ||||
| import com.google.android.material.R; | ||||
| import com.google.android.material.badge.BadgeState; | ||||
| import com.google.android.material.internal.ParcelableSparseArray; | ||||
| import com.google.android.material.internal.ToolbarUtils; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class BadgeUtils { | ||||
|     private static final String LOG_TAG = "BadgeUtils"; | ||||
|     public static final boolean USE_COMPAT_PARENT = false; | ||||
|  | ||||
|     private BadgeUtils() { | ||||
|     } | ||||
|  | ||||
|     public static void updateBadgeBounds(Rect rect, float f, float f2, float f3, float f4) { | ||||
|         rect.set((int) (f - f3), (int) (f2 - f4), (int) (f + f3), (int) (f2 + f4)); | ||||
|     } | ||||
|  | ||||
|     public static void attachBadgeDrawable(BadgeDrawable badgeDrawable, View view) { | ||||
|         attachBadgeDrawable(badgeDrawable, view, (FrameLayout) null); | ||||
|     } | ||||
|  | ||||
|     public static void attachBadgeDrawable(BadgeDrawable badgeDrawable, View view, FrameLayout frameLayout) { | ||||
|         setBadgeDrawableBounds(badgeDrawable, view, frameLayout); | ||||
|         if (badgeDrawable.getCustomBadgeParent() != null) { | ||||
|             badgeDrawable.getCustomBadgeParent().setForeground(badgeDrawable); | ||||
|         } else { | ||||
|             if (USE_COMPAT_PARENT) { | ||||
|                 throw new IllegalArgumentException("Trying to reference null customBadgeParent"); | ||||
|             } | ||||
|             view.getOverlay().add(badgeDrawable); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static void attachBadgeDrawable(BadgeDrawable badgeDrawable, Toolbar toolbar, int i) { | ||||
|         attachBadgeDrawable(badgeDrawable, toolbar, i, null); | ||||
|     } | ||||
|  | ||||
|     public static void attachBadgeDrawable(final BadgeDrawable badgeDrawable, final Toolbar toolbar, final int i, final FrameLayout frameLayout) { | ||||
|         toolbar.post(new Runnable() { // from class: com.google.android.material.badge.BadgeUtils.1 | ||||
|             @Override // java.lang.Runnable | ||||
|             public void run() { | ||||
|                 ActionMenuItemView actionMenuItemView = ToolbarUtils.getActionMenuItemView(Toolbar.this, i); | ||||
|                 if (actionMenuItemView != null) { | ||||
|                     BadgeUtils.setToolbarOffset(badgeDrawable, Toolbar.this.getResources()); | ||||
|                     BadgeUtils.attachBadgeDrawable(badgeDrawable, actionMenuItemView, frameLayout); | ||||
|                     BadgeUtils.attachBadgeContentDescription(badgeDrawable, actionMenuItemView); | ||||
|                 } | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     /* JADX INFO: Access modifiers changed from: private */ | ||||
|     public static void attachBadgeContentDescription(final BadgeDrawable badgeDrawable, View view) { | ||||
|         View.AccessibilityDelegate accessibilityDelegate; | ||||
|         if (Build.VERSION.SDK_INT >= 29 && ViewCompat.hasAccessibilityDelegate(view)) { | ||||
|             accessibilityDelegate = view.getAccessibilityDelegate(); | ||||
|             ViewCompat.setAccessibilityDelegate(view, new AccessibilityDelegateCompat(accessibilityDelegate) { // from class: com.google.android.material.badge.BadgeUtils.2 | ||||
|                 @Override // androidx.core.view.AccessibilityDelegateCompat | ||||
|                 public void onInitializeAccessibilityNodeInfo(View view2, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) { | ||||
|                     super.onInitializeAccessibilityNodeInfo(view2, accessibilityNodeInfoCompat); | ||||
|                     accessibilityNodeInfoCompat.setContentDescription(badgeDrawable.getContentDescription()); | ||||
|                 } | ||||
|             }); | ||||
|         } else { | ||||
|             ViewCompat.setAccessibilityDelegate(view, new AccessibilityDelegateCompat() { // from class: com.google.android.material.badge.BadgeUtils.3 | ||||
|                 @Override // androidx.core.view.AccessibilityDelegateCompat | ||||
|                 public void onInitializeAccessibilityNodeInfo(View view2, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) { | ||||
|                     super.onInitializeAccessibilityNodeInfo(view2, accessibilityNodeInfoCompat); | ||||
|                     accessibilityNodeInfoCompat.setContentDescription(BadgeDrawable.this.getContentDescription()); | ||||
|                 } | ||||
|             }); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static void detachBadgeDrawable(BadgeDrawable badgeDrawable, View view) { | ||||
|         if (badgeDrawable == null) { | ||||
|             return; | ||||
|         } | ||||
|         if (USE_COMPAT_PARENT || badgeDrawable.getCustomBadgeParent() != null) { | ||||
|             badgeDrawable.getCustomBadgeParent().setForeground(null); | ||||
|         } else { | ||||
|             view.getOverlay().remove(badgeDrawable); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static void detachBadgeDrawable(BadgeDrawable badgeDrawable, Toolbar toolbar, int i) { | ||||
|         if (badgeDrawable == null) { | ||||
|             return; | ||||
|         } | ||||
|         ActionMenuItemView actionMenuItemView = ToolbarUtils.getActionMenuItemView(toolbar, i); | ||||
|         if (actionMenuItemView != null) { | ||||
|             removeToolbarOffset(badgeDrawable); | ||||
|             detachBadgeDrawable(badgeDrawable, actionMenuItemView); | ||||
|             detachBadgeContentDescription(actionMenuItemView); | ||||
|         } else { | ||||
|             Log.w(LOG_TAG, "Trying to remove badge from a null menuItemView: " + i); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static void detachBadgeContentDescription(View view) { | ||||
|         View.AccessibilityDelegate accessibilityDelegate; | ||||
|         if (Build.VERSION.SDK_INT >= 29 && ViewCompat.hasAccessibilityDelegate(view)) { | ||||
|             accessibilityDelegate = view.getAccessibilityDelegate(); | ||||
|             ViewCompat.setAccessibilityDelegate(view, new AccessibilityDelegateCompat(accessibilityDelegate) { // from class: com.google.android.material.badge.BadgeUtils.4 | ||||
|                 @Override // androidx.core.view.AccessibilityDelegateCompat | ||||
|                 public void onInitializeAccessibilityNodeInfo(View view2, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) { | ||||
|                     super.onInitializeAccessibilityNodeInfo(view2, accessibilityNodeInfoCompat); | ||||
|                     accessibilityNodeInfoCompat.setContentDescription(null); | ||||
|                 } | ||||
|             }); | ||||
|         } else { | ||||
|             ViewCompat.setAccessibilityDelegate(view, null); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static void setToolbarOffset(BadgeDrawable badgeDrawable, Resources resources) { | ||||
|         badgeDrawable.setAdditionalHorizontalOffset(resources.getDimensionPixelOffset(R.dimen.mtrl_badge_toolbar_action_menu_item_horizontal_offset)); | ||||
|         badgeDrawable.setAdditionalVerticalOffset(resources.getDimensionPixelOffset(R.dimen.mtrl_badge_toolbar_action_menu_item_vertical_offset)); | ||||
|     } | ||||
|  | ||||
|     static void removeToolbarOffset(BadgeDrawable badgeDrawable) { | ||||
|         badgeDrawable.setAdditionalHorizontalOffset(0); | ||||
|         badgeDrawable.setAdditionalVerticalOffset(0); | ||||
|     } | ||||
|  | ||||
|     public static void setBadgeDrawableBounds(BadgeDrawable badgeDrawable, View view, FrameLayout frameLayout) { | ||||
|         Rect rect = new Rect(); | ||||
|         view.getDrawingRect(rect); | ||||
|         badgeDrawable.setBounds(rect); | ||||
|         badgeDrawable.updateBadgeCoordinates(view, frameLayout); | ||||
|     } | ||||
|  | ||||
|     public static ParcelableSparseArray createParcelableBadgeStates(SparseArray<BadgeDrawable> sparseArray) { | ||||
|         ParcelableSparseArray parcelableSparseArray = new ParcelableSparseArray(); | ||||
|         for (int i = 0; i < sparseArray.size(); i++) { | ||||
|             int keyAt = sparseArray.keyAt(i); | ||||
|             BadgeDrawable valueAt = sparseArray.valueAt(i); | ||||
|             parcelableSparseArray.put(keyAt, valueAt != null ? valueAt.getSavedState() : null); | ||||
|         } | ||||
|         return parcelableSparseArray; | ||||
|     } | ||||
|  | ||||
|     public static SparseArray<BadgeDrawable> createBadgeDrawablesFromSavedStates(Context context, ParcelableSparseArray parcelableSparseArray) { | ||||
|         SparseArray<BadgeDrawable> sparseArray = new SparseArray<>(parcelableSparseArray.size()); | ||||
|         for (int i = 0; i < parcelableSparseArray.size(); i++) { | ||||
|             int keyAt = parcelableSparseArray.keyAt(i); | ||||
|             BadgeState.State state = (BadgeState.State) parcelableSparseArray.valueAt(i); | ||||
|             sparseArray.put(keyAt, state != null ? BadgeDrawable.createFromSavedState(context, state) : null); | ||||
|         } | ||||
|         return sparseArray; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user