From e478bf5797b00dc5333de0a17a316b61803ddd6f Mon Sep 17 00:00:00 2001 From: Ebru Kurnaz Date: Wed, 12 Mar 2025 10:26:20 +0000 Subject: [PATCH] Fix density slider not updating density when dragged. Flag: com.android.settings.flags.display_size_connected_display_setting Test: atest ExternalDisplayPreferenceFragmentTest Bug: 401603093 Change-Id: Ie27a6f50dd9869b3d00a197cadfb24bf76901828 --- .../display/ExternalDisplaySizePreference.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/connecteddevice/display/ExternalDisplaySizePreference.java b/src/com/android/settings/connecteddevice/display/ExternalDisplaySizePreference.java index df405ba4a94..bb3e1b37a18 100644 --- a/src/com/android/settings/connecteddevice/display/ExternalDisplaySizePreference.java +++ b/src/com/android/settings/connecteddevice/display/ExternalDisplaySizePreference.java @@ -81,9 +81,11 @@ public class ExternalDisplaySizePreference extends AccessibilitySeekBarPreferenc implements SeekBar.OnSeekBarChangeListener { private static final long MIN_COMMIT_INTERVAL_MS = 800; private static final long CHANGE_BY_BUTTON_DELAY_MS = 300; + private static final long CHANGE_BY_SEEKBAR_DELAY_MS = 100; private final DisplaySizeData mDisplaySizeData; private int mLastDisplayProgress; private long mLastCommitTime; + private boolean mSeekByTouch; ExternalDisplaySizePreferenceStateHandler(DisplaySizeData displaySizeData) { mDisplaySizeData = displaySizeData; } @@ -99,8 +101,7 @@ public class ExternalDisplaySizePreference extends AccessibilitySeekBarPreferenc mLastCommitTime = SystemClock.elapsedRealtime(); } - private void postCommitDelayed() { - var commitDelayMs = CHANGE_BY_BUTTON_DELAY_MS; + private void postCommitDelayed(long commitDelayMs) { if (SystemClock.elapsedRealtime() - mLastCommitTime < MIN_COMMIT_INTERVAL_MS) { commitDelayMs += MIN_COMMIT_INTERVAL_MS; } @@ -112,13 +113,18 @@ public class ExternalDisplaySizePreference extends AccessibilitySeekBarPreferenc @Override public void onProgressChanged(@NonNull SeekBar seekBar, int i, boolean b) { - postCommitDelayed(); + if (!mSeekByTouch) postCommitDelayed(CHANGE_BY_BUTTON_DELAY_MS); } @Override - public void onStartTrackingTouch(@NonNull SeekBar seekBar) {} + public void onStartTrackingTouch(@NonNull SeekBar seekBar) { + mSeekByTouch = true; + } @Override - public void onStopTrackingTouch(@NonNull SeekBar seekBar) {} + public void onStopTrackingTouch(@NonNull SeekBar seekBar) { + mSeekByTouch = false; + postCommitDelayed(CHANGE_BY_SEEKBAR_DELAY_MS); + } } }