mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
162 lines
7.9 KiB
Java
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;
|
|
}
|
|
}
|