Rabbit-R1/android (non root)/java/sources/com/google/android/material/badge/BadgeUtils.java
2024-05-21 17:08:36 -04:00

162 lines
7.9 KiB
Java

package com.google.android.material.badge;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Rect;
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: classes2.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) {
if (ViewCompat.hasAccessibilityDelegate(view)) {
ViewCompat.setAccessibilityDelegate(view, new AccessibilityDelegateCompat(view.getAccessibilityDelegate()) { // 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);
return;
}
Log.w(LOG_TAG, "Trying to remove badge from a null menuItemView: " + i);
}
private static void detachBadgeContentDescription(View view) {
if (ViewCompat.hasAccessibilityDelegate(view)) {
ViewCompat.setAccessibilityDelegate(view, new AccessibilityDelegateCompat(view.getAccessibilityDelegate()) { // 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;
}
}