Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9346183e authored by Biswarup Pal's avatar Biswarup Pal
Browse files

Migrate usages of ViewConfiguration static methods

... to use non-static ones, for tapTimeout, doubleTapTimeout,
doubleTapMinTime, scrollFriction.

Test: presubmit
Bug: 370720522
Flag: android.companion.virtualdevice.flags.viewconfiguration_apis
Change-Id: I2fdd39b8162e4249b8587bcb6b689cde02000671
parent f287c587
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.annotation.DimenRes;
import android.companion.virtualdevice.flags.Flags;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.CanvasProperty;
@@ -73,6 +74,7 @@ final class KeyButtonRipple extends Drawable {
    private final Interpolator mInterpolator = new LogInterpolator();
    private boolean mSupportHardware;
    private final View mTargetView;
    private final int mTapTimeoutMillis;
    private final Handler mHandler = new Handler();

    private final HashSet<Animator> mRunningAnimations = new HashSet<>();
@@ -94,6 +96,9 @@ final class KeyButtonRipple extends Drawable {
        mMaxWidthResource = maxWidthResource;
        mMaxWidth = ctx.getResources().getDimensionPixelSize(maxWidthResource);
        mTargetView = targetView;
        mTapTimeoutMillis = Flags.viewconfigurationApis()
                ? ViewConfiguration.get(mTargetView.getContext()).getTapTimeoutMillis()
                : ViewConfiguration.getTapTimeout();
    }

    public void updateResources() {
@@ -308,7 +313,7 @@ final class KeyButtonRipple extends Drawable {
            if (mDelayTouchFeedback) {
                if (mRunningAnimations.isEmpty()) {
                    mHandler.removeCallbacksAndMessages(null);
                    mHandler.postDelayed(this::enterSoftware, ViewConfiguration.getTapTimeout());
                    mHandler.postDelayed(this::enterSoftware, mTapTimeoutMillis);
                } else if (mVisible) {
                    enterSoftware();
                }
@@ -353,7 +358,7 @@ final class KeyButtonRipple extends Drawable {
            if (mDelayTouchFeedback) {
                if (mRunningAnimations.isEmpty()) {
                    mHandler.removeCallbacksAndMessages(null);
                    mHandler.postDelayed(this::enterHardware, ViewConfiguration.getTapTimeout());
                    mHandler.postDelayed(this::enterHardware, mTapTimeoutMillis);
                } else if (mVisible) {
                    enterHardware();
                }
+20 −12
Original line number Diff line number Diff line
@@ -27,9 +27,9 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UiContext;
import android.app.Activity;
import android.companion.virtualdevice.flags.Flags;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
@@ -239,7 +239,6 @@ public class GestureDetector {
        }
    }

    private static final String TAG = GestureDetector.class.getSimpleName();
    @UnsupportedAppUsage
    private int mTouchSlopSquare;
    private int mDoubleTapTouchSlopSquare;
@@ -248,12 +247,9 @@ public class GestureDetector {
    @UnsupportedAppUsage
    private int mMinimumFlingVelocity;
    private int mMaximumFlingVelocity;

    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
    private static final int LONGPRESS_TIMEOUT = ViewConfiguration.getLongPressTimeout();
    private static final int TAP_TIMEOUT = ViewConfiguration.getTapTimeout();
    private static final int DOUBLE_TAP_TIMEOUT = ViewConfiguration.getDoubleTapTimeout();
    private static final int DOUBLE_TAP_MIN_TIME = ViewConfiguration.getDoubleTapMinTime();
    private int mTapTimeout;
    private int mDoubleTapTimeout;
    private int mDoubleTapMinTime;

    // constants for Message.what used by GestureHandler below
    private static final int SHOW_PRESS = 1;
@@ -303,7 +299,7 @@ public class GestureDetector {
    /**
     * Determines strategy for velocity calculation
     */
    private @VelocityTracker.VelocityTrackerStrategy int mVelocityTrackerStrategy;
    private final @VelocityTracker.VelocityTrackerStrategy int mVelocityTrackerStrategy;

    /**
     * Consistency verifier for debugging purposes.
@@ -502,6 +498,9 @@ public class GestureDetector {
            mMinimumFlingVelocity = ViewConfiguration.getMinimumFlingVelocity();
            mMaximumFlingVelocity = ViewConfiguration.getMaximumFlingVelocity();
            mAmbiguousGestureMultiplier = ViewConfiguration.getAmbiguousGestureMultiplier();
            mTapTimeout = ViewConfiguration.getTapTimeout();
            mDoubleTapTimeout = ViewConfiguration.getDoubleTapTimeout();
            mDoubleTapMinTime = ViewConfiguration.getDoubleTapMinTime();
        } else {
            StrictMode.assertConfigurationContext(context, "GestureDetector#init");
            final ViewConfiguration configuration = ViewConfiguration.get(context);
@@ -511,6 +510,15 @@ public class GestureDetector {
            mMinimumFlingVelocity = configuration.getScaledMinimumFlingVelocity();
            mMaximumFlingVelocity = configuration.getScaledMaximumFlingVelocity();
            mAmbiguousGestureMultiplier = configuration.getScaledAmbiguousGestureMultiplier();
            if (Flags.viewconfigurationApis()) {
                mTapTimeout = configuration.getTapTimeoutMillis();
                mDoubleTapTimeout = configuration.getDoubleTapTimeoutMillis();
                mDoubleTapMinTime = configuration.getDoubleTapMinTimeMillis();
            } else {
                mTapTimeout = ViewConfiguration.getTapTimeout();
                mDoubleTapTimeout = ViewConfiguration.getDoubleTapTimeout();
                mDoubleTapMinTime = ViewConfiguration.getDoubleTapMinTime();
            }
        }
        mTouchSlopSquare = touchSlop * touchSlop;
        mDoubleTapTouchSlopSquare = doubleTapTouchSlop * doubleTapTouchSlop;
@@ -654,7 +662,7 @@ public class GestureDetector {
                        handled |= mDoubleTapListener.onDoubleTapEvent(ev);
                    } else {
                        // This is a first tap
                        mHandler.sendEmptyMessageDelayed(TAP, DOUBLE_TAP_TIMEOUT);
                        mHandler.sendEmptyMessageDelayed(TAP, mDoubleTapTimeout);
                    }
                }

@@ -682,7 +690,7 @@ public class GestureDetector {
                                    + ViewConfiguration.getLongPressTimeout());
                }
                mHandler.sendEmptyMessageAtTime(SHOW_PRESS,
                        mCurrentDownEvent.getDownTime() + TAP_TIMEOUT);
                        mCurrentDownEvent.getDownTime() + mTapTimeout);
                handled |= mListener.onDown(ev);
                break;

@@ -907,7 +915,7 @@ public class GestureDetector {
        }

        final long deltaTime = secondDown.getEventTime() - firstUp.getEventTime();
        if (deltaTime > DOUBLE_TAP_TIMEOUT || deltaTime < DOUBLE_TAP_MIN_TIME) {
        if (deltaTime > mDoubleTapTimeout || deltaTime < mDoubleTapMinTime) {
            return false;
        }

+10 −4
Original line number Diff line number Diff line
@@ -95,6 +95,7 @@ import android.annotation.UiThread;
import android.app.PendingIntent;
import android.app.jank.AppJankStats;
import android.app.jank.JankTracker;
import android.companion.virtualdevice.flags.Flags;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.AutofillOptions;
import android.content.ClipData;
@@ -5430,6 +5431,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     */
    private int mTouchSlop;
    /**
     * Cache the tap timeout from the context that created the view.
     */
    private int mTapTimeoutMillis;
    /**
     * Cache the ambiguous gesture multiplier from the context that created the view.
     */
@@ -5867,6 +5873,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        final ViewConfiguration configuration = ViewConfiguration.get(context);
        mTouchSlop = configuration.getScaledTouchSlop();
        mTapTimeoutMillis = Flags.viewconfigurationApis()
                ? configuration.getTapTimeoutMillis() : ViewConfiguration.getTapTimeout();
        mAmbiguousGestureMultiplier = configuration.getScaledAmbiguousGestureMultiplier();
        setOverScrollMode(OVER_SCROLL_IF_CONTENT_SCROLLS);
@@ -7361,7 +7369,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        }
        scrollabilityCache.fadeScrollBars = fadeScrollbars;
        scrollabilityCache.scrollBarFadeDuration = a.getInt(
                R.styleable.View_scrollbarFadeDuration, ViewConfiguration
                        .getScrollBarFadeDuration());
@@ -7369,7 +7376,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                R.styleable.View_scrollbarDefaultDelayBeforeFade,
                ViewConfiguration.getScrollDefaultDelay());
        scrollabilityCache.scrollBarSize = a.getDimensionPixelSize(
                com.android.internal.R.styleable.View_scrollbarSize,
                ViewConfiguration.get(mContext).getScaledScrollBarSize());
@@ -18214,7 +18220,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                        }
                        mPendingCheckForTap.x = event.getX();
                        mPendingCheckForTap.y = event.getY();
                        postDelayed(mPendingCheckForTap, ViewConfiguration.getTapTimeout());
                        postDelayed(mPendingCheckForTap, mTapTimeoutMillis);
                    } else {
                        // Not inside a scrolling container, so show the feedback right away
                        setPressed(true, x, y);
@@ -31537,7 +31543,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            mPrivateFlags &= ~PFLAG_PREPRESSED;
            setPressed(true, x, y);
            final long delay =
                    ViewConfiguration.getLongPressTimeout() - ViewConfiguration.getTapTimeout();
                    (long) ViewConfiguration.getLongPressTimeout() - mTapTimeoutMillis;
            checkForLongClick(delay, x, y, TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__LONG_PRESS);
        }
    }
+5 −1
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.annotation.DrawableRes;
import android.annotation.NonNull;
import android.annotation.TestApi;
import android.app.ActivityThread;
import android.companion.virtualdevice.flags.Flags;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.content.Intent;
@@ -685,6 +686,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te

    @UnsupportedAppUsage
    private int mTouchSlop;
    private int mTapTimeoutMillis;
    private float mDensityScale;

    private float mVerticalScrollFactor;
@@ -1008,6 +1010,8 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te

        final ViewConfiguration configuration = ViewConfiguration.get(mContext);
        mTouchSlop = configuration.getScaledTouchSlop();
        mTapTimeoutMillis = Flags.viewconfigurationApis()
                ? configuration.getTapTimeoutMillis() : ViewConfiguration.getTapTimeout();
        mVerticalScrollFactor = configuration.getScaledVerticalScrollFactor();
        mMinimumVelocity = configuration.getScaledMinimumFlingVelocity();
        mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
@@ -4118,7 +4122,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te

                    mPendingCheckForTap.x = ev.getX();
                    mPendingCheckForTap.y = ev.getY();
                    postDelayed(mPendingCheckForTap, ViewConfiguration.getTapTimeout());
                    postDelayed(mPendingCheckForTap, mTapTimeoutMillis);
                }
            }

+7 −2
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.widget;

import android.animation.AnimatorInflater;
import android.animation.ObjectAnimator;
import android.companion.virtualdevice.flags.Flags;
import android.content.Context;
import android.content.Intent;
import android.content.res.TypedArray;
@@ -45,7 +46,6 @@ import java.util.HashMap;
 */
public abstract class AdapterViewAnimator extends AdapterView<Adapter>
        implements RemoteViewsAdapter.RemoteAdapterConnectionCallback, Advanceable {
    private static final String TAG = "RemoteViewAnimator";

    /**
     * The index of the current child, which appears anywhere from the beginning
@@ -160,6 +160,8 @@ public abstract class AdapterViewAnimator extends AdapterView<Adapter>

    private Runnable mPendingCheckForTap;

    private final int mTapTimeoutMillis;

    private static final int DEFAULT_ANIMATION_DURATION = 200;

    public AdapterViewAnimator(Context context) {
@@ -204,6 +206,9 @@ public abstract class AdapterViewAnimator extends AdapterView<Adapter>

        mLoopViews = a.getBoolean(
                com.android.internal.R.styleable.AdapterViewAnimator_loopViews, false);
        mTapTimeoutMillis = Flags.viewconfigurationApis()
                ? ViewConfiguration.get(context).getTapTimeoutMillis()
                : ViewConfiguration.getTapTimeout();

        a.recycle();

@@ -634,7 +639,7 @@ public abstract class AdapterViewAnimator extends AdapterView<Adapter>
                            mPendingCheckForTap = new CheckForTap();
                        }
                        mTouchMode = TOUCH_MODE_DOWN_IN_CURRENT_VIEW;
                        postDelayed(mPendingCheckForTap, ViewConfiguration.getTapTimeout());
                        postDelayed(mPendingCheckForTap, mTapTimeoutMillis);
                    }
                }
                break;
Loading