From b30e394305c77269fa559d73ceb6f9bdf872588c Mon Sep 17 00:00:00 2001 From: ChenJean Date: Fri, 7 Feb 2020 16:30:47 +0800 Subject: [PATCH] Support autoclick secondary action (3/n) Changeed autoclick preference summary unit from ms to second. Bug: 146019277 Test: manual Change-Id: Ib5dcc2459716277cd278c1e19dbb99bb540b25ce --- res/values/strings.xml | 20 ++++++------- ...oggleAutoclickCustomSeekbarController.java | 16 +--------- .../ToggleAutoclickPreferenceFragment.java | 29 +++++++++++++++---- 3 files changed, 35 insertions(+), 30 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index ad56f21a4b4..f03c46522e9 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -5028,28 +5028,28 @@ - Extremely short delay (%1$d ms) - Extremely short delay (%1$d ms) + Extremely short delay (%1$s second) + Extremely short delay (%1$s seconds) - Very short delay (%1$d ms) - Very short delay (%1$d ms) + Very short delay (%1$s second) + Very short delay (%1$s seconds) - Short delay (%1$d ms) - Short delay (%1$d ms) + Short delay (%1$s second) + Short delay (%1$s seconds) - Long delay (%1$d ms) - Long delay (%1$d ms) + Long delay (%1$s second) + Long delay (%1$s seconds) - Very long delay (%1$d ms) - Very long delay (%1$d ms) + Very long delay (%1$s second) + Very long delay (%1$s seconds) diff --git a/src/com/android/settings/accessibility/ToggleAutoclickCustomSeekbarController.java b/src/com/android/settings/accessibility/ToggleAutoclickCustomSeekbarController.java index 9079c319f59..301d8dc877a 100644 --- a/src/com/android/settings/accessibility/ToggleAutoclickCustomSeekbarController.java +++ b/src/com/android/settings/accessibility/ToggleAutoclickCustomSeekbarController.java @@ -19,10 +19,8 @@ package com.android.settings.accessibility; import static android.content.Context.MODE_PRIVATE; import static com.android.settings.accessibility.ToggleAutoclickPreferenceController.KEY_DELAY_MODE; +import static com.android.settings.accessibility.ToggleAutoclickPreferenceFragment.Quantity; -import static java.lang.annotation.RetentionPolicy.SOURCE; - -import android.annotation.IntDef; import android.content.ContentResolver; import android.content.Context; import android.content.SharedPreferences; @@ -42,8 +40,6 @@ import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.widget.LayoutPreference; -import java.lang.annotation.Retention; - /** * Controller class that controls accessibility autoclick seekbar settings. */ @@ -51,16 +47,6 @@ public class ToggleAutoclickCustomSeekbarController extends BasePreferenceContro implements LifecycleObserver, OnResume, OnPause, SharedPreferences.OnSharedPreferenceChangeListener { - @Retention(SOURCE) - @IntDef({ - Quantity.OTHER, - Quantity.ONE - }) - @interface Quantity { - int OTHER = 0; - int ONE = 1; - } - private static final String CONTROL_AUTOCLICK_DELAY_SECURE = Settings.Secure.ACCESSIBILITY_AUTOCLICK_DELAY; private static final String KEY_CUSTOM_DELAY_VALUE = "custom_delay_value"; diff --git a/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java index 4a88956a761..5e09b2a78c1 100644 --- a/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java @@ -19,6 +19,9 @@ package com.android.settings.accessibility; import static com.android.settings.accessibility.ToggleAutoclickCustomSeekbarController.MAX_AUTOCLICK_DELAY_MS; import static com.android.settings.accessibility.ToggleAutoclickCustomSeekbarController.MIN_AUTOCLICK_DELAY_MS; +import static java.lang.annotation.RetentionPolicy.SOURCE; + +import android.annotation.IntDef; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.res.Resources; @@ -32,6 +35,7 @@ import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.search.SearchIndexable; +import java.lang.annotation.Retention; import java.util.ArrayList; import java.util.List; @@ -46,6 +50,16 @@ public class ToggleAutoclickPreferenceFragment extends DashboardFragment private static final String TAG = "AutoclickPrefFragment"; private static final List sControllers = new ArrayList<>(); + @Retention(SOURCE) + @IntDef({ + Quantity.OTHER, + Quantity.ONE + }) + @interface Quantity { + int OTHER = 0; + int ONE = 1; + } + /** * Resource ids from which autoclick preference summaries should be derived. The strings have * placeholder for integer delay value. @@ -63,12 +77,17 @@ public class ToggleAutoclickPreferenceFragment extends DashboardFragment * delay. * * @param resources Resources from which string should be retrieved. - * @param delay Delay for whose value summary should be retrieved. + * @param delayMillis Delay for whose value summary should be retrieved. */ - static CharSequence getAutoclickPreferenceSummary(Resources resources, int delay) { - int summaryIndex = getAutoclickPreferenceSummaryIndex(delay); - return resources.getQuantityString( - mAutoclickPreferenceSummaries[summaryIndex], delay, delay); + static CharSequence getAutoclickPreferenceSummary(Resources resources, int delayMillis) { + final int summaryIndex = getAutoclickPreferenceSummaryIndex(delayMillis); + final int quantity = (delayMillis == 1000) ? Quantity.ONE : Quantity.OTHER; + final float delaySecond = (float) delayMillis / 1000; + // Only show integer when delay time is 1. + final String decimalFormat = (delaySecond == 1) ? "%.0f" : "%.1f"; + + return resources.getQuantityString(mAutoclickPreferenceSummaries[summaryIndex], + quantity, String.format(decimalFormat, delaySecond)); } /**