mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
199 lines
7.7 KiB
Java
199 lines
7.7 KiB
Java
package androidx.appcompat.widget;
|
|
|
|
import android.text.TextUtils;
|
|
import android.util.Log;
|
|
import android.view.MotionEvent;
|
|
import android.view.View;
|
|
import android.view.ViewConfiguration;
|
|
import android.view.accessibility.AccessibilityManager;
|
|
import androidx.core.view.ViewCompat;
|
|
import androidx.core.view.ViewConfigurationCompat;
|
|
|
|
/* loaded from: classes.dex */
|
|
class TooltipCompatHandler implements View.OnLongClickListener, View.OnHoverListener, View.OnAttachStateChangeListener {
|
|
private static final long HOVER_HIDE_TIMEOUT_MS = 15000;
|
|
private static final long HOVER_HIDE_TIMEOUT_SHORT_MS = 3000;
|
|
private static final long LONG_CLICK_HIDE_TIMEOUT_MS = 2500;
|
|
private static final String TAG = "TooltipCompatHandler";
|
|
private static TooltipCompatHandler sActiveHandler;
|
|
private static TooltipCompatHandler sPendingHandler;
|
|
private final View mAnchor;
|
|
private int mAnchorX;
|
|
private int mAnchorY;
|
|
private boolean mForceNextChangeSignificant;
|
|
private boolean mFromTouch;
|
|
private final int mHoverSlop;
|
|
private TooltipPopup mPopup;
|
|
private final CharSequence mTooltipText;
|
|
private final Runnable mShowRunnable = new Runnable() { // from class: androidx.appcompat.widget.TooltipCompatHandler$$ExternalSyntheticLambda0
|
|
@Override // java.lang.Runnable
|
|
public final void run() {
|
|
TooltipCompatHandler.this.m15lambda$new$0$androidxappcompatwidgetTooltipCompatHandler();
|
|
}
|
|
};
|
|
private final Runnable mHideRunnable = new Runnable() { // from class: androidx.appcompat.widget.TooltipCompatHandler$$ExternalSyntheticLambda1
|
|
@Override // java.lang.Runnable
|
|
public final void run() {
|
|
TooltipCompatHandler.this.hide();
|
|
}
|
|
};
|
|
|
|
private void forceNextChangeSignificant() {
|
|
this.mForceNextChangeSignificant = true;
|
|
}
|
|
|
|
@Override // android.view.View.OnAttachStateChangeListener
|
|
public void onViewAttachedToWindow(View view) {
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
/* renamed from: lambda$new$0$androidx-appcompat-widget-TooltipCompatHandler, reason: not valid java name */
|
|
public /* synthetic */ void m15lambda$new$0$androidxappcompatwidgetTooltipCompatHandler() {
|
|
show(false);
|
|
}
|
|
|
|
public static void setTooltipText(View view, CharSequence charSequence) {
|
|
TooltipCompatHandler tooltipCompatHandler = sPendingHandler;
|
|
if (tooltipCompatHandler != null && tooltipCompatHandler.mAnchor == view) {
|
|
setPendingHandler(null);
|
|
}
|
|
if (TextUtils.isEmpty(charSequence)) {
|
|
TooltipCompatHandler tooltipCompatHandler2 = sActiveHandler;
|
|
if (tooltipCompatHandler2 != null && tooltipCompatHandler2.mAnchor == view) {
|
|
tooltipCompatHandler2.hide();
|
|
}
|
|
view.setOnLongClickListener(null);
|
|
view.setLongClickable(false);
|
|
view.setOnHoverListener(null);
|
|
return;
|
|
}
|
|
new TooltipCompatHandler(view, charSequence);
|
|
}
|
|
|
|
private TooltipCompatHandler(View view, CharSequence charSequence) {
|
|
this.mAnchor = view;
|
|
this.mTooltipText = charSequence;
|
|
this.mHoverSlop = ViewConfigurationCompat.getScaledHoverSlop(ViewConfiguration.get(view.getContext()));
|
|
forceNextChangeSignificant();
|
|
view.setOnLongClickListener(this);
|
|
view.setOnHoverListener(this);
|
|
}
|
|
|
|
@Override // android.view.View.OnLongClickListener
|
|
public boolean onLongClick(View view) {
|
|
this.mAnchorX = view.getWidth() / 2;
|
|
this.mAnchorY = view.getHeight() / 2;
|
|
show(true);
|
|
return true;
|
|
}
|
|
|
|
@Override // android.view.View.OnHoverListener
|
|
public boolean onHover(View view, MotionEvent motionEvent) {
|
|
if (this.mPopup != null && this.mFromTouch) {
|
|
return false;
|
|
}
|
|
AccessibilityManager accessibilityManager = (AccessibilityManager) this.mAnchor.getContext().getSystemService("accessibility");
|
|
if (accessibilityManager.isEnabled() && accessibilityManager.isTouchExplorationEnabled()) {
|
|
return false;
|
|
}
|
|
int action = motionEvent.getAction();
|
|
if (action != 7) {
|
|
if (action == 10) {
|
|
forceNextChangeSignificant();
|
|
hide();
|
|
}
|
|
} else if (this.mAnchor.isEnabled() && this.mPopup == null && updateAnchorPos(motionEvent)) {
|
|
setPendingHandler(this);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override // android.view.View.OnAttachStateChangeListener
|
|
public void onViewDetachedFromWindow(View view) {
|
|
hide();
|
|
}
|
|
|
|
void show(boolean z) {
|
|
long longPressTimeout;
|
|
long j;
|
|
long j2;
|
|
if (ViewCompat.isAttachedToWindow(this.mAnchor)) {
|
|
setPendingHandler(null);
|
|
TooltipCompatHandler tooltipCompatHandler = sActiveHandler;
|
|
if (tooltipCompatHandler != null) {
|
|
tooltipCompatHandler.hide();
|
|
}
|
|
sActiveHandler = this;
|
|
this.mFromTouch = z;
|
|
TooltipPopup tooltipPopup = new TooltipPopup(this.mAnchor.getContext());
|
|
this.mPopup = tooltipPopup;
|
|
tooltipPopup.show(this.mAnchor, this.mAnchorX, this.mAnchorY, this.mFromTouch, this.mTooltipText);
|
|
this.mAnchor.addOnAttachStateChangeListener(this);
|
|
if (this.mFromTouch) {
|
|
j2 = LONG_CLICK_HIDE_TIMEOUT_MS;
|
|
} else {
|
|
if ((ViewCompat.getWindowSystemUiVisibility(this.mAnchor) & 1) == 1) {
|
|
longPressTimeout = ViewConfiguration.getLongPressTimeout();
|
|
j = 3000;
|
|
} else {
|
|
longPressTimeout = ViewConfiguration.getLongPressTimeout();
|
|
j = 15000;
|
|
}
|
|
j2 = j - longPressTimeout;
|
|
}
|
|
this.mAnchor.removeCallbacks(this.mHideRunnable);
|
|
this.mAnchor.postDelayed(this.mHideRunnable, j2);
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void hide() {
|
|
if (sActiveHandler == this) {
|
|
sActiveHandler = null;
|
|
TooltipPopup tooltipPopup = this.mPopup;
|
|
if (tooltipPopup != null) {
|
|
tooltipPopup.hide();
|
|
this.mPopup = null;
|
|
forceNextChangeSignificant();
|
|
this.mAnchor.removeOnAttachStateChangeListener(this);
|
|
} else {
|
|
Log.e(TAG, "sActiveHandler.mPopup == null");
|
|
}
|
|
}
|
|
if (sPendingHandler == this) {
|
|
setPendingHandler(null);
|
|
}
|
|
this.mAnchor.removeCallbacks(this.mHideRunnable);
|
|
}
|
|
|
|
private static void setPendingHandler(TooltipCompatHandler tooltipCompatHandler) {
|
|
TooltipCompatHandler tooltipCompatHandler2 = sPendingHandler;
|
|
if (tooltipCompatHandler2 != null) {
|
|
tooltipCompatHandler2.cancelPendingShow();
|
|
}
|
|
sPendingHandler = tooltipCompatHandler;
|
|
if (tooltipCompatHandler != null) {
|
|
tooltipCompatHandler.scheduleShow();
|
|
}
|
|
}
|
|
|
|
private void scheduleShow() {
|
|
this.mAnchor.postDelayed(this.mShowRunnable, ViewConfiguration.getLongPressTimeout());
|
|
}
|
|
|
|
private void cancelPendingShow() {
|
|
this.mAnchor.removeCallbacks(this.mShowRunnable);
|
|
}
|
|
|
|
private boolean updateAnchorPos(MotionEvent motionEvent) {
|
|
int x = (int) motionEvent.getX();
|
|
int y = (int) motionEvent.getY();
|
|
if (!this.mForceNextChangeSignificant && Math.abs(x - this.mAnchorX) <= this.mHoverSlop && Math.abs(y - this.mAnchorY) <= this.mHoverSlop) {
|
|
return false;
|
|
}
|
|
this.mAnchorX = x;
|
|
this.mAnchorY = y;
|
|
this.mForceNextChangeSignificant = false;
|
|
return true;
|
|
}
|
|
}
|