Loading core/api/current.txt +28 −0 Original line number Diff line number Diff line Loading @@ -25235,16 +25235,19 @@ package android.media { method @FlaggedApi("com.android.media.flags.enable_screen_off_scanning") public void cancelScanRequest(@NonNull android.media.MediaRouter2.ScanToken); method @Nullable public android.media.MediaRouter2.RoutingController getController(@NonNull String); method @NonNull public java.util.List<android.media.MediaRouter2.RoutingController> getControllers(); method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") @NonNull public java.util.Map<java.lang.String,java.util.List<android.media.SuggestedDeviceInfo>> getDeviceSuggestions(); method @NonNull public static android.media.MediaRouter2 getInstance(@NonNull android.content.Context); method @FlaggedApi("com.android.media.flags.enable_privileged_routing_for_media_routing_control") @NonNull @RequiresPermission(anyOf={android.Manifest.permission.MEDIA_CONTENT_CONTROL, android.Manifest.permission.MEDIA_ROUTING_CONTROL}) public static android.media.MediaRouter2 getInstance(@NonNull android.content.Context, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull Runnable); method @FlaggedApi("com.android.media.flags.enable_rlp_callbacks_in_media_router2") @Nullable public android.media.RouteListingPreference getRouteListingPreference(); method @NonNull public java.util.List<android.media.MediaRoute2Info> getRoutes(); method @NonNull public android.media.MediaRouter2.RoutingController getSystemController(); method public void registerControllerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.ControllerCallback); method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public void registerDeviceSuggestionsCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.DeviceSuggestionsCallback); method public void registerRouteCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.RouteCallback, @NonNull android.media.RouteDiscoveryPreference); method @FlaggedApi("com.android.media.flags.enable_rlp_callbacks_in_media_router2") public void registerRouteListingPreferenceUpdatedCallback(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.media.RouteListingPreference>); method public void registerTransferCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.TransferCallback); method @FlaggedApi("com.android.media.flags.enable_screen_off_scanning") @NonNull public android.media.MediaRouter2.ScanToken requestScan(@NonNull android.media.MediaRouter2.ScanRequest); method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public void setDeviceSuggestions(@NonNull java.util.List<android.media.SuggestedDeviceInfo>); method public void setOnGetControllerHintsListener(@Nullable android.media.MediaRouter2.OnGetControllerHintsListener); method public void setRouteListingPreference(@Nullable android.media.RouteListingPreference); method @FlaggedApi("com.android.media.flags.enable_privileged_routing_for_media_routing_control") @RequiresPermission(anyOf={android.Manifest.permission.MEDIA_CONTENT_CONTROL, android.Manifest.permission.MEDIA_ROUTING_CONTROL}) public void setRouteVolume(@NonNull android.media.MediaRoute2Info, int); Loading @@ -25252,6 +25255,7 @@ package android.media { method public void stop(); method public void transferTo(@NonNull android.media.MediaRoute2Info); method public void unregisterControllerCallback(@NonNull android.media.MediaRouter2.ControllerCallback); method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public void unregisterDeviceSuggestionsCallback(@NonNull android.media.MediaRouter2.DeviceSuggestionsCallback); method public void unregisterRouteCallback(@NonNull android.media.MediaRouter2.RouteCallback); method @FlaggedApi("com.android.media.flags.enable_rlp_callbacks_in_media_router2") public void unregisterRouteListingPreferenceUpdatedCallback(@NonNull java.util.function.Consumer<android.media.RouteListingPreference>); method public void unregisterTransferCallback(@NonNull android.media.MediaRouter2.TransferCallback); Loading @@ -25262,6 +25266,11 @@ package android.media { method public void onControllerUpdated(@NonNull android.media.MediaRouter2.RoutingController); } @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public static interface MediaRouter2.DeviceSuggestionsCallback { method public void onSuggestionRequested(); method public void onSuggestionUpdated(@NonNull String, @NonNull java.util.List<android.media.SuggestedDeviceInfo>); } public static interface MediaRouter2.OnGetControllerHintsListener { method @Nullable public android.os.Bundle onGetControllerHints(@NonNull android.media.MediaRoute2Info); } Loading Loading @@ -25807,6 +25816,22 @@ package android.media { method public int getTrackIndex(); } @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public final class SuggestedDeviceInfo implements android.os.Parcelable { method public int describeContents(); method @NonNull public String getDeviceDisplayName(); method @NonNull public android.os.Bundle getExtras(); method @NonNull public String getRouteId(); method public int getType(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.media.SuggestedDeviceInfo> CREATOR; } public static final class SuggestedDeviceInfo.Builder { ctor public SuggestedDeviceInfo.Builder(@NonNull String, @NonNull String, int); method @NonNull public android.media.SuggestedDeviceInfo build(); method @NonNull public android.media.SuggestedDeviceInfo.Builder setExtras(@NonNull android.os.Bundle); } public final class SyncParams { ctor public SyncParams(); method public android.media.SyncParams allowDefaults(); Loading Loading @@ -54931,6 +54956,7 @@ package android.view { method @Deprecated @FloatRange(from=1.0) public static float getAmbiguousGestureMultiplier(); method public static long getDefaultActionModeHideDuration(); method public static int getDoubleTapTimeout(); method @FlaggedApi("android.companion.virtualdevice.flags.viewconfiguration_apis") public int getDoubleTapTimeoutMillis(); method @Deprecated public static int getEdgeSlop(); method @Deprecated public static int getFadingEdgeLength(); method @Deprecated public static long getGlobalActionKeyTimeout(); Loading Loading @@ -54968,7 +54994,9 @@ package android.view { method @Deprecated public static int getScrollBarSize(); method public static int getScrollDefaultDelay(); method public static float getScrollFriction(); method @FlaggedApi("android.companion.virtualdevice.flags.viewconfiguration_apis") public float getScrollFrictionAmount(); method public static int getTapTimeout(); method @FlaggedApi("android.companion.virtualdevice.flags.viewconfiguration_apis") public int getTapTimeoutMillis(); method @Deprecated public static int getTouchSlop(); method @Deprecated public static int getWindowTouchSlop(); method public static long getZoomControlsTimeout(); core/java/android/app/admin/DevicePolicyManager.java +0 −5 Original line number Diff line number Diff line Loading @@ -318,11 +318,6 @@ import java.util.function.Consumer; @RequiresFeature(PackageManager.FEATURE_DEVICE_ADMIN) public class DevicePolicyManager { /** @hide */ public static final String DEPRECATE_USERMANAGERINTERNAL_DEVICEPOLICY_FLAG = "deprecate_usermanagerinternal_devicepolicy"; /** @hide */ public static final boolean DEPRECATE_USERMANAGERINTERNAL_DEVICEPOLICY_DEFAULT = true; /** @hide */ public static final String ADD_ISFINANCED_DEVICE_FLAG = "add-isfinanced-device"; Loading core/java/android/inputmethodservice/navigationbar/KeyButtonRipple.java +7 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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<>(); Loading @@ -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() { Loading Loading @@ -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(); } Loading Loading @@ -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(); } Loading core/java/android/os/CombinedMessageQueue/MessageQueue.java +6 −15 Original line number Diff line number Diff line Loading @@ -2563,10 +2563,6 @@ public final class MessageQueue { return mMessage.when; } boolean isRemovedFromStack() { return mRemovedFromStackValue; } boolean removeFromStack() { return sRemovedFromStack.compareAndSet(this, false, true); } Loading Loading @@ -2919,16 +2915,10 @@ public final class MessageQueue { StateNode bottom = getStateNode(top); /* * If the top node is a state node, there are no reachable messages. * If it's anything other than Active, we can quit as we know that next() is not * consuming items. * If the top node is Active then we know that next() is currently consuming items. * In that case we should wait next() has drained the stack. * If the top node is a state node, there are no reachable messages. We should still * wait for next to complete draining the stack. */ if (top == bottom) { if (bottom != sStackStateActive) { return false; } waitForDrainCompleted(); return false; } Loading Loading @@ -2957,7 +2947,7 @@ public final class MessageQueue { } } } else { return true; break; } } Loading @@ -2967,16 +2957,17 @@ public final class MessageQueue { if (DEBUG) { Log.d(TAG_C, "stackHasMessages next() is walking the stack, we must re-sample"); } waitForDrainCompleted(); break; } if (!n.isMessageNode()) { /* We reached the end of the stack */ return found; break; } p = (MessageNode) n; } waitForDrainCompleted(); return found; } Loading core/java/android/view/GestureDetector.java +20 −12 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -239,7 +239,6 @@ public class GestureDetector { } } private static final String TAG = GestureDetector.class.getSimpleName(); @UnsupportedAppUsage private int mTouchSlopSquare; private int mDoubleTapTouchSlopSquare; Loading @@ -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; Loading Loading @@ -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. Loading Loading @@ -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); Loading @@ -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; Loading Loading @@ -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); } } Loading Loading @@ -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; Loading Loading @@ -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; } Loading Loading
core/api/current.txt +28 −0 Original line number Diff line number Diff line Loading @@ -25235,16 +25235,19 @@ package android.media { method @FlaggedApi("com.android.media.flags.enable_screen_off_scanning") public void cancelScanRequest(@NonNull android.media.MediaRouter2.ScanToken); method @Nullable public android.media.MediaRouter2.RoutingController getController(@NonNull String); method @NonNull public java.util.List<android.media.MediaRouter2.RoutingController> getControllers(); method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") @NonNull public java.util.Map<java.lang.String,java.util.List<android.media.SuggestedDeviceInfo>> getDeviceSuggestions(); method @NonNull public static android.media.MediaRouter2 getInstance(@NonNull android.content.Context); method @FlaggedApi("com.android.media.flags.enable_privileged_routing_for_media_routing_control") @NonNull @RequiresPermission(anyOf={android.Manifest.permission.MEDIA_CONTENT_CONTROL, android.Manifest.permission.MEDIA_ROUTING_CONTROL}) public static android.media.MediaRouter2 getInstance(@NonNull android.content.Context, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull Runnable); method @FlaggedApi("com.android.media.flags.enable_rlp_callbacks_in_media_router2") @Nullable public android.media.RouteListingPreference getRouteListingPreference(); method @NonNull public java.util.List<android.media.MediaRoute2Info> getRoutes(); method @NonNull public android.media.MediaRouter2.RoutingController getSystemController(); method public void registerControllerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.ControllerCallback); method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public void registerDeviceSuggestionsCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.DeviceSuggestionsCallback); method public void registerRouteCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.RouteCallback, @NonNull android.media.RouteDiscoveryPreference); method @FlaggedApi("com.android.media.flags.enable_rlp_callbacks_in_media_router2") public void registerRouteListingPreferenceUpdatedCallback(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.media.RouteListingPreference>); method public void registerTransferCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.TransferCallback); method @FlaggedApi("com.android.media.flags.enable_screen_off_scanning") @NonNull public android.media.MediaRouter2.ScanToken requestScan(@NonNull android.media.MediaRouter2.ScanRequest); method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public void setDeviceSuggestions(@NonNull java.util.List<android.media.SuggestedDeviceInfo>); method public void setOnGetControllerHintsListener(@Nullable android.media.MediaRouter2.OnGetControllerHintsListener); method public void setRouteListingPreference(@Nullable android.media.RouteListingPreference); method @FlaggedApi("com.android.media.flags.enable_privileged_routing_for_media_routing_control") @RequiresPermission(anyOf={android.Manifest.permission.MEDIA_CONTENT_CONTROL, android.Manifest.permission.MEDIA_ROUTING_CONTROL}) public void setRouteVolume(@NonNull android.media.MediaRoute2Info, int); Loading @@ -25252,6 +25255,7 @@ package android.media { method public void stop(); method public void transferTo(@NonNull android.media.MediaRoute2Info); method public void unregisterControllerCallback(@NonNull android.media.MediaRouter2.ControllerCallback); method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public void unregisterDeviceSuggestionsCallback(@NonNull android.media.MediaRouter2.DeviceSuggestionsCallback); method public void unregisterRouteCallback(@NonNull android.media.MediaRouter2.RouteCallback); method @FlaggedApi("com.android.media.flags.enable_rlp_callbacks_in_media_router2") public void unregisterRouteListingPreferenceUpdatedCallback(@NonNull java.util.function.Consumer<android.media.RouteListingPreference>); method public void unregisterTransferCallback(@NonNull android.media.MediaRouter2.TransferCallback); Loading @@ -25262,6 +25266,11 @@ package android.media { method public void onControllerUpdated(@NonNull android.media.MediaRouter2.RoutingController); } @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public static interface MediaRouter2.DeviceSuggestionsCallback { method public void onSuggestionRequested(); method public void onSuggestionUpdated(@NonNull String, @NonNull java.util.List<android.media.SuggestedDeviceInfo>); } public static interface MediaRouter2.OnGetControllerHintsListener { method @Nullable public android.os.Bundle onGetControllerHints(@NonNull android.media.MediaRoute2Info); } Loading Loading @@ -25807,6 +25816,22 @@ package android.media { method public int getTrackIndex(); } @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public final class SuggestedDeviceInfo implements android.os.Parcelable { method public int describeContents(); method @NonNull public String getDeviceDisplayName(); method @NonNull public android.os.Bundle getExtras(); method @NonNull public String getRouteId(); method public int getType(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.media.SuggestedDeviceInfo> CREATOR; } public static final class SuggestedDeviceInfo.Builder { ctor public SuggestedDeviceInfo.Builder(@NonNull String, @NonNull String, int); method @NonNull public android.media.SuggestedDeviceInfo build(); method @NonNull public android.media.SuggestedDeviceInfo.Builder setExtras(@NonNull android.os.Bundle); } public final class SyncParams { ctor public SyncParams(); method public android.media.SyncParams allowDefaults(); Loading Loading @@ -54931,6 +54956,7 @@ package android.view { method @Deprecated @FloatRange(from=1.0) public static float getAmbiguousGestureMultiplier(); method public static long getDefaultActionModeHideDuration(); method public static int getDoubleTapTimeout(); method @FlaggedApi("android.companion.virtualdevice.flags.viewconfiguration_apis") public int getDoubleTapTimeoutMillis(); method @Deprecated public static int getEdgeSlop(); method @Deprecated public static int getFadingEdgeLength(); method @Deprecated public static long getGlobalActionKeyTimeout(); Loading Loading @@ -54968,7 +54994,9 @@ package android.view { method @Deprecated public static int getScrollBarSize(); method public static int getScrollDefaultDelay(); method public static float getScrollFriction(); method @FlaggedApi("android.companion.virtualdevice.flags.viewconfiguration_apis") public float getScrollFrictionAmount(); method public static int getTapTimeout(); method @FlaggedApi("android.companion.virtualdevice.flags.viewconfiguration_apis") public int getTapTimeoutMillis(); method @Deprecated public static int getTouchSlop(); method @Deprecated public static int getWindowTouchSlop(); method public static long getZoomControlsTimeout();
core/java/android/app/admin/DevicePolicyManager.java +0 −5 Original line number Diff line number Diff line Loading @@ -318,11 +318,6 @@ import java.util.function.Consumer; @RequiresFeature(PackageManager.FEATURE_DEVICE_ADMIN) public class DevicePolicyManager { /** @hide */ public static final String DEPRECATE_USERMANAGERINTERNAL_DEVICEPOLICY_FLAG = "deprecate_usermanagerinternal_devicepolicy"; /** @hide */ public static final boolean DEPRECATE_USERMANAGERINTERNAL_DEVICEPOLICY_DEFAULT = true; /** @hide */ public static final String ADD_ISFINANCED_DEVICE_FLAG = "add-isfinanced-device"; Loading
core/java/android/inputmethodservice/navigationbar/KeyButtonRipple.java +7 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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<>(); Loading @@ -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() { Loading Loading @@ -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(); } Loading Loading @@ -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(); } Loading
core/java/android/os/CombinedMessageQueue/MessageQueue.java +6 −15 Original line number Diff line number Diff line Loading @@ -2563,10 +2563,6 @@ public final class MessageQueue { return mMessage.when; } boolean isRemovedFromStack() { return mRemovedFromStackValue; } boolean removeFromStack() { return sRemovedFromStack.compareAndSet(this, false, true); } Loading Loading @@ -2919,16 +2915,10 @@ public final class MessageQueue { StateNode bottom = getStateNode(top); /* * If the top node is a state node, there are no reachable messages. * If it's anything other than Active, we can quit as we know that next() is not * consuming items. * If the top node is Active then we know that next() is currently consuming items. * In that case we should wait next() has drained the stack. * If the top node is a state node, there are no reachable messages. We should still * wait for next to complete draining the stack. */ if (top == bottom) { if (bottom != sStackStateActive) { return false; } waitForDrainCompleted(); return false; } Loading Loading @@ -2957,7 +2947,7 @@ public final class MessageQueue { } } } else { return true; break; } } Loading @@ -2967,16 +2957,17 @@ public final class MessageQueue { if (DEBUG) { Log.d(TAG_C, "stackHasMessages next() is walking the stack, we must re-sample"); } waitForDrainCompleted(); break; } if (!n.isMessageNode()) { /* We reached the end of the stack */ return found; break; } p = (MessageNode) n; } waitForDrainCompleted(); return found; } Loading
core/java/android/view/GestureDetector.java +20 −12 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -239,7 +239,6 @@ public class GestureDetector { } } private static final String TAG = GestureDetector.class.getSimpleName(); @UnsupportedAppUsage private int mTouchSlopSquare; private int mDoubleTapTouchSlopSquare; Loading @@ -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; Loading Loading @@ -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. Loading Loading @@ -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); Loading @@ -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; Loading Loading @@ -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); } } Loading Loading @@ -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; Loading Loading @@ -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; } Loading