Loading core/java/android/widget/AbsListView.java +3 −3 Original line number Diff line number Diff line Loading @@ -80,6 +80,7 @@ import android.view.animation.LinearInterpolator; import android.view.autofill.AutofillId; import android.view.contentcapture.ContentCaptureManager; import android.view.contentcapture.ContentCaptureSession; import android.view.flags.Flags; import android.view.inputmethod.BaseInputConnection; import android.view.inputmethod.CompletionInfo; import android.view.inputmethod.CorrectionInfo; Loading @@ -92,7 +93,6 @@ import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.SurroundingText; import android.view.inspector.InspectableProperty; import android.view.inspector.InspectableProperty.EnumEntry; import android.widget.flags.Flags; import android.widget.RemoteViews.InteractionHandler; import com.android.internal.R; Loading Loading @@ -4518,7 +4518,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te final int overscrollMode = getOverScrollMode(); if (!trackMotionScroll(delta, delta)) { if (Flags.platformWidgetHapticScrollFeedback()) { if (Flags.scrollFeedbackApi()) { initHapticScrollFeedbackProviderIfNotExists(); mHapticScrollFeedbackProvider.onScrollProgress( event.getDeviceId(), event.getSource(), axis, delta); Loading @@ -4534,7 +4534,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te float overscroll = (delta - (motionViewRealTop - motionViewPrevTop)) / ((float) getHeight()); boolean hitTopLimit = delta > 0; if (Flags.platformWidgetHapticScrollFeedback()) { if (Flags.scrollFeedbackApi()) { initHapticScrollFeedbackProviderIfNotExists(); mHapticScrollFeedbackProvider.onScrollLimit( event.getDeviceId(), event.getSource(), axis, Loading core/java/android/widget/DifferentialMotionFlingHelper.java +12 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import android.content.Context; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.ViewConfiguration; import android.widget.flags.FeatureFlags; import android.widget.flags.FeatureFlagsImpl; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -50,6 +52,8 @@ public class DifferentialMotionFlingHelper { private final FlingVelocityThresholdCalculator mVelocityThresholdCalculator; private final DifferentialVelocityProvider mVelocityProvider; private final FeatureFlags mWidgetFeatureFlags; @Nullable private VelocityTracker mVelocityTracker; private float mLastFlingVelocity; Loading Loading @@ -134,7 +138,8 @@ public class DifferentialMotionFlingHelper { this(context, target, DifferentialMotionFlingHelper::calculateFlingVelocityThresholds, DifferentialMotionFlingHelper::getCurrentVelocity); DifferentialMotionFlingHelper::getCurrentVelocity, /* widgetFeatureFlags= */ new FeatureFlagsImpl()); } @VisibleForTesting Loading @@ -142,11 +147,13 @@ public class DifferentialMotionFlingHelper { Context context, DifferentialMotionFlingTarget target, FlingVelocityThresholdCalculator velocityThresholdCalculator, DifferentialVelocityProvider velocityProvider) { DifferentialVelocityProvider velocityProvider, FeatureFlags widgetFeatureFlags) { mContext = context; mTarget = target; mVelocityThresholdCalculator = velocityThresholdCalculator; mVelocityProvider = velocityProvider; mWidgetFeatureFlags = widgetFeatureFlags; } /** Loading @@ -156,6 +163,9 @@ public class DifferentialMotionFlingHelper { * @param axis the axis being processed by the target View. */ public void onMotionEvent(MotionEvent event, int axis) { if (!mWidgetFeatureFlags.enablePlatformWidgetDifferentialMotionFling()) { return; } boolean flingParamsChanged = calculateFlingVelocityThresholds(event, axis); if (mFlingVelocityThresholds[0] == Integer.MAX_VALUE) { // Integer.MAX_VALUE means that the device does not support fling for the current Loading core/java/android/widget/ScrollView.java +3 −3 Original line number Diff line number Diff line Loading @@ -47,8 +47,8 @@ import android.view.ViewParent; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.view.animation.AnimationUtils; import android.view.flags.Flags; import android.view.inspector.InspectableProperty; import android.widget.flags.Flags; import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -1011,14 +1011,14 @@ public class ScrollView extends FrameLayout { if (newScrollY != oldScrollY) { super.scrollTo(mScrollX, newScrollY); if (hitLimit) { if (Flags.platformWidgetHapticScrollFeedback()) { if (Flags.scrollFeedbackApi()) { initHapticScrollFeedbackProviderIfNotExists(); mHapticScrollFeedbackProvider.onScrollLimit( event.getDeviceId(), event.getSource(), axis, /* isStart= */ newScrollY == 0); } } else { if (Flags.platformWidgetHapticScrollFeedback()) { if (Flags.scrollFeedbackApi()) { initHapticScrollFeedbackProviderIfNotExists(); mHapticScrollFeedbackProvider.onScrollProgress( event.getDeviceId(), event.getSource(), axis, delta); Loading core/java/android/widget/flags/differential_motion_fling_flags.aconfig 0 → 100644 +8 −0 Original line number Diff line number Diff line package: "android.widget.flags" flag { namespace: "toolkit" name: "enable_platform_widget_differential_motion_fling" description: "Enables differential motion fling in platform widgets" bug: "293332089" } No newline at end of file core/java/android/widget/flags/scroll_view_flags.aconfigdeleted 100644 → 0 +0 −8 Original line number Diff line number Diff line package: "android.widget.flags" flag { namespace: "widget" name: "platform_widget_haptic_scroll_feedback" description: "Enables haptic scroll feedback in platform widgets" bug: "287914819" } No newline at end of file Loading
core/java/android/widget/AbsListView.java +3 −3 Original line number Diff line number Diff line Loading @@ -80,6 +80,7 @@ import android.view.animation.LinearInterpolator; import android.view.autofill.AutofillId; import android.view.contentcapture.ContentCaptureManager; import android.view.contentcapture.ContentCaptureSession; import android.view.flags.Flags; import android.view.inputmethod.BaseInputConnection; import android.view.inputmethod.CompletionInfo; import android.view.inputmethod.CorrectionInfo; Loading @@ -92,7 +93,6 @@ import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.SurroundingText; import android.view.inspector.InspectableProperty; import android.view.inspector.InspectableProperty.EnumEntry; import android.widget.flags.Flags; import android.widget.RemoteViews.InteractionHandler; import com.android.internal.R; Loading Loading @@ -4518,7 +4518,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te final int overscrollMode = getOverScrollMode(); if (!trackMotionScroll(delta, delta)) { if (Flags.platformWidgetHapticScrollFeedback()) { if (Flags.scrollFeedbackApi()) { initHapticScrollFeedbackProviderIfNotExists(); mHapticScrollFeedbackProvider.onScrollProgress( event.getDeviceId(), event.getSource(), axis, delta); Loading @@ -4534,7 +4534,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te float overscroll = (delta - (motionViewRealTop - motionViewPrevTop)) / ((float) getHeight()); boolean hitTopLimit = delta > 0; if (Flags.platformWidgetHapticScrollFeedback()) { if (Flags.scrollFeedbackApi()) { initHapticScrollFeedbackProviderIfNotExists(); mHapticScrollFeedbackProvider.onScrollLimit( event.getDeviceId(), event.getSource(), axis, Loading
core/java/android/widget/DifferentialMotionFlingHelper.java +12 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import android.content.Context; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.ViewConfiguration; import android.widget.flags.FeatureFlags; import android.widget.flags.FeatureFlagsImpl; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -50,6 +52,8 @@ public class DifferentialMotionFlingHelper { private final FlingVelocityThresholdCalculator mVelocityThresholdCalculator; private final DifferentialVelocityProvider mVelocityProvider; private final FeatureFlags mWidgetFeatureFlags; @Nullable private VelocityTracker mVelocityTracker; private float mLastFlingVelocity; Loading Loading @@ -134,7 +138,8 @@ public class DifferentialMotionFlingHelper { this(context, target, DifferentialMotionFlingHelper::calculateFlingVelocityThresholds, DifferentialMotionFlingHelper::getCurrentVelocity); DifferentialMotionFlingHelper::getCurrentVelocity, /* widgetFeatureFlags= */ new FeatureFlagsImpl()); } @VisibleForTesting Loading @@ -142,11 +147,13 @@ public class DifferentialMotionFlingHelper { Context context, DifferentialMotionFlingTarget target, FlingVelocityThresholdCalculator velocityThresholdCalculator, DifferentialVelocityProvider velocityProvider) { DifferentialVelocityProvider velocityProvider, FeatureFlags widgetFeatureFlags) { mContext = context; mTarget = target; mVelocityThresholdCalculator = velocityThresholdCalculator; mVelocityProvider = velocityProvider; mWidgetFeatureFlags = widgetFeatureFlags; } /** Loading @@ -156,6 +163,9 @@ public class DifferentialMotionFlingHelper { * @param axis the axis being processed by the target View. */ public void onMotionEvent(MotionEvent event, int axis) { if (!mWidgetFeatureFlags.enablePlatformWidgetDifferentialMotionFling()) { return; } boolean flingParamsChanged = calculateFlingVelocityThresholds(event, axis); if (mFlingVelocityThresholds[0] == Integer.MAX_VALUE) { // Integer.MAX_VALUE means that the device does not support fling for the current Loading
core/java/android/widget/ScrollView.java +3 −3 Original line number Diff line number Diff line Loading @@ -47,8 +47,8 @@ import android.view.ViewParent; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.view.animation.AnimationUtils; import android.view.flags.Flags; import android.view.inspector.InspectableProperty; import android.widget.flags.Flags; import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -1011,14 +1011,14 @@ public class ScrollView extends FrameLayout { if (newScrollY != oldScrollY) { super.scrollTo(mScrollX, newScrollY); if (hitLimit) { if (Flags.platformWidgetHapticScrollFeedback()) { if (Flags.scrollFeedbackApi()) { initHapticScrollFeedbackProviderIfNotExists(); mHapticScrollFeedbackProvider.onScrollLimit( event.getDeviceId(), event.getSource(), axis, /* isStart= */ newScrollY == 0); } } else { if (Flags.platformWidgetHapticScrollFeedback()) { if (Flags.scrollFeedbackApi()) { initHapticScrollFeedbackProviderIfNotExists(); mHapticScrollFeedbackProvider.onScrollProgress( event.getDeviceId(), event.getSource(), axis, delta); Loading
core/java/android/widget/flags/differential_motion_fling_flags.aconfig 0 → 100644 +8 −0 Original line number Diff line number Diff line package: "android.widget.flags" flag { namespace: "toolkit" name: "enable_platform_widget_differential_motion_fling" description: "Enables differential motion fling in platform widgets" bug: "293332089" } No newline at end of file
core/java/android/widget/flags/scroll_view_flags.aconfigdeleted 100644 → 0 +0 −8 Original line number Diff line number Diff line package: "android.widget.flags" flag { namespace: "widget" name: "platform_widget_haptic_scroll_feedback" description: "Enables haptic scroll feedback in platform widgets" bug: "287914819" } No newline at end of file