Merge "2/ Make One handed mode support multiple user switch" into sc-dev
diff --git a/res/xml/one_handed_settings.xml b/res/xml/one_handed_settings.xml
index 9382657..5a71d48 100644
--- a/res/xml/one_handed_settings.xml
+++ b/res/xml/one_handed_settings.xml
@@ -41,9 +41,9 @@
         settings:controller="com.android.settings.gestures.OneHandedAppTapsExitPreferenceController"/>
 
     <ListPreference
+        android:key="gesture_one_handed_timeout"
         android:entries="@array/one_handed_timeout_title"
         android:entryValues="@array/one_handed_timeout_values"
-        android:key="one_handed_timeout_preference"
         android:persistent="false"
         android:title="@string/one_handed_timeout_title"
         settings:controller="com.android.settings.gestures.OneHandedTimeoutPreferenceController"/>
diff --git a/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceController.java b/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceController.java
index c49199c..1cc7911 100644
--- a/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceController.java
+++ b/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceController.java
@@ -33,15 +33,17 @@
 public class OneHandedAppTapsExitPreferenceController extends TogglePreferenceController implements
         LifecycleObserver, OnStart, OnStop, OneHandedSettingsUtils.TogglesCallback {
 
-    private Preference mPreference;
     private final OneHandedSettingsUtils mUtils;
 
+    private Preference mPreference;
+
     public OneHandedAppTapsExitPreferenceController(Context context, String key) {
         super(context, key);
+
         mUtils = new OneHandedSettingsUtils(context);
 
         // By default, app taps to stop one-handed is enabled, this will get default value once.
-        OneHandedSettingsUtils.setSettingsTapsAppToExit(mContext, isChecked());
+        OneHandedSettingsUtils.setTapsAppToExitEnabled(mContext, isChecked());
     }
 
     @Override
@@ -67,12 +69,12 @@
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        return OneHandedSettingsUtils.setSettingsTapsAppToExit(mContext, isChecked);
+        return OneHandedSettingsUtils.setTapsAppToExitEnabled(mContext, isChecked);
     }
 
     @Override
     public boolean isChecked() {
-        return OneHandedSettingsUtils.getSettingsTapsAppToExit(mContext);
+        return OneHandedSettingsUtils.isTapsAppToExitEnabled(mContext);
     }
 
     @Override
diff --git a/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java b/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java
index 03bd195..adfa137 100644
--- a/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java
+++ b/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java
@@ -40,8 +40,7 @@
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext,
-                isChecked);
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, isChecked);
         OneHandedSettingsUtils.setSwipeDownNotificationEnabled(mContext, !isChecked);
         return true;
     }
@@ -53,8 +52,7 @@
 
     @Override
     public CharSequence getSummary() {
-        return OneHandedSettingsUtils.isOneHandedModeEnabled(mContext)
-                ? mContext.getText(R.string.switch_on_text)
-                : mContext.getText(R.string.switch_off_text);
+        return mContext.getText(
+                isChecked() ? R.string.gesture_setting_on : R.string.gesture_setting_off);
     }
 }
diff --git a/src/com/android/settings/gestures/OneHandedSettings.java b/src/com/android/settings/gestures/OneHandedSettings.java
index 6a07c85..11fc774 100644
--- a/src/com/android/settings/gestures/OneHandedSettings.java
+++ b/src/com/android/settings/gestures/OneHandedSettings.java
@@ -18,6 +18,7 @@
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
+import android.os.UserHandle;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
@@ -43,6 +44,12 @@
     }
 
     @Override
+    protected void updatePreferenceStates() {
+        OneHandedSettingsUtils.setUserId(UserHandle.myUserId());
+        super.updatePreferenceStates();
+    }
+
+    @Override
     protected int getPreferenceScreenResId() {
         return R.xml.one_handed_settings;
     }
diff --git a/src/com/android/settings/gestures/OneHandedSettingsUtils.java b/src/com/android/settings/gestures/OneHandedSettingsUtils.java
index ed0f62f..5de02db 100644
--- a/src/com/android/settings/gestures/OneHandedSettingsUtils.java
+++ b/src/com/android/settings/gestures/OneHandedSettingsUtils.java
@@ -23,6 +23,7 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.SystemProperties;
+import android.os.UserHandle;
 import android.provider.Settings;
 
 /**
@@ -31,6 +32,8 @@
 public class OneHandedSettingsUtils {
 
     static final String SUPPORT_ONE_HANDED_MODE = "ro.support_one_handed_mode";
+    static final int OFF = 0;
+    static final int ON = 1;
 
     public enum OneHandedTimeout {
         NEVER(0), SHORT(4), MEDIUM(8), LONG(12);
@@ -49,109 +52,132 @@
     private final Context mContext;
     private final SettingsObserver mSettingsObserver;
 
+    private static int sCurrentUserId;
+
     OneHandedSettingsUtils(Context context) {
         mContext = context;
+        sCurrentUserId = UserHandle.myUserId();
         mSettingsObserver = new SettingsObserver(new Handler(Looper.getMainLooper()));
     }
 
     /**
-     * Get One-Handed mode support flag.
+     * Gets One-Handed mode support flag.
      */
     public static boolean isSupportOneHandedMode() {
         return SystemProperties.getBoolean(SUPPORT_ONE_HANDED_MODE, false);
     }
 
     /**
-     * Get one-handed mode enable or disable flag from Settings provider.
+     * Gets one-handed mode feature enable or disable flag from Settings provider.
      *
      * @param context App context
      * @return enable or disable one-handed mode flag.
      */
     public static boolean isOneHandedModeEnabled(Context context) {
-        return Settings.Secure.getInt(context.getContentResolver(),
-                Settings.Secure.ONE_HANDED_MODE_ENABLED, 0) == 1;
+        return Settings.Secure.getIntForUser(context.getContentResolver(),
+                Settings.Secure.ONE_HANDED_MODE_ENABLED, OFF, sCurrentUserId) == ON;
     }
 
     /**
-     * Set one-handed mode enable or disable flag to Settings provider.
+     * Sets one-handed mode enable or disable flag to Settings provider.
      *
      * @param context App context
-     * @param enable enable or disable one-handed mode.
+     * @param enable  enable or disable one-handed mode.
      */
-    public static void setSettingsOneHandedModeEnabled(Context context, boolean enable) {
-        Settings.Secure.putInt(context.getContentResolver(),
-                Settings.Secure.ONE_HANDED_MODE_ENABLED, enable ? 1 : 0);
+    public static void setOneHandedModeEnabled(Context context, boolean enable) {
+        Settings.Secure.putIntForUser(context.getContentResolver(),
+                Settings.Secure.ONE_HANDED_MODE_ENABLED, enable ? ON : OFF, sCurrentUserId);
     }
 
     /**
-     * Get enabling taps app to exit one-handed mode flag from Settings provider.
+     * Gets enabling taps app to exit one-handed mode flag from Settings provider.
      *
      * @param context App context
      * @return enable or disable taps app to exit.
      */
-    public static boolean getSettingsTapsAppToExit(Context context) {
-        return Settings.Secure.getInt(context.getContentResolver(),
-                Settings.Secure.TAPS_APP_TO_EXIT, 1) == 1;
+    public static boolean isTapsAppToExitEnabled(Context context) {
+        return Settings.Secure.getIntForUser(context.getContentResolver(),
+                Settings.Secure.TAPS_APP_TO_EXIT, OFF, sCurrentUserId) == ON;
     }
 
     /**
-     * Set enabling taps app to exit one-handed mode flag to Settings provider.
+     * Sets enabling taps app to exit one-handed mode flag to Settings provider.
      *
      * @param context App context
      * @param enable  enable or disable when taping app to exit one-handed mode.
      */
-    public static boolean setSettingsTapsAppToExit(Context context, boolean enable) {
-        return Settings.Secure.putInt(context.getContentResolver(),
-                Settings.Secure.TAPS_APP_TO_EXIT, enable ? 1 : 0);
+    public static boolean setTapsAppToExitEnabled(Context context, boolean enable) {
+        return Settings.Secure.putIntForUser(context.getContentResolver(),
+                Settings.Secure.TAPS_APP_TO_EXIT, enable ? ON : OFF, sCurrentUserId);
     }
 
     /**
-     * Get one-handed mode timeout value from Settings provider.
+     * Gets one-handed mode timeout value from Settings provider.
      *
      * @param context App context
      * @return timeout value in seconds.
      */
-    public static int getSettingsOneHandedModeTimeout(Context context) {
-        return Settings.Secure.getInt(context.getContentResolver(),
+    public static int getTimeoutValue(Context context) {
+        return Settings.Secure.getIntForUser(context.getContentResolver(),
                 Settings.Secure.ONE_HANDED_MODE_TIMEOUT,
-                OneHandedTimeout.MEDIUM.getValue() /* default MEDIUM(8) by UX */);
+                OneHandedTimeout.MEDIUM.getValue() /* default MEDIUM(8) by UX */,
+                sCurrentUserId);
     }
 
     /**
-     * Set one-handed mode timeout value to Settings provider.
+     * Gets current user id from OneHandedSettingsUtils
+     *
+     * @return the current user id in OneHandedSettingsUtils
+     */
+    public static int getUserId() {
+        return sCurrentUserId;
+    }
+
+    /**
+     * Sets specific user id for OneHandedSettingsUtils
+     *
+     * @param userId the user id to be updated
+     */
+    public static void setUserId(int userId) {
+        sCurrentUserId = userId;
+    }
+
+    /**
+     * Sets one-handed mode timeout value to Settings provider.
      *
      * @param context App context
      * @param timeout timeout in seconds for exiting one-handed mode.
      */
-    public static void setSettingsOneHandedModeTimeout(Context context, int timeout) {
-        Settings.Secure.putInt(context.getContentResolver(),
-                Settings.Secure.ONE_HANDED_MODE_TIMEOUT, timeout);
+    public static void setTimeoutValue(Context context, int timeout) {
+        Settings.Secure.putIntForUser(context.getContentResolver(),
+                Settings.Secure.ONE_HANDED_MODE_TIMEOUT, timeout, sCurrentUserId);
     }
 
     /**
-     * Get Swipe-down-notification enable or disable flag from Settings provider.
+     * Gets Swipe-down-notification enable or disable flag from Settings provider.
      *
      * @param context App context
      * @return enable or disable Swipe-down-notification flag.
      */
     public static boolean isSwipeDownNotificationEnabled(Context context) {
-        return Settings.Secure.getInt(context.getContentResolver(),
-                Settings.Secure.SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, 0) == 1;
+        return Settings.Secure.getIntForUser(context.getContentResolver(),
+                Settings.Secure.SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, OFF, sCurrentUserId) == ON;
     }
 
     /**
-     * Set Swipe-down-notification enable or disable flag to Settings provider.
+     * Sets Swipe-down-notification enable or disable flag to Settings provider.
      *
      * @param context App context
      * @param enable enable or disable Swipe-down-notification.
      */
     public static void setSwipeDownNotificationEnabled(Context context, boolean enable) {
-        Settings.Secure.putInt(context.getContentResolver(),
-                Settings.Secure.SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, enable ? 1 : 0);
+        Settings.Secure.putIntForUser(context.getContentResolver(),
+                Settings.Secure.SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, enable ? ON : OFF,
+                sCurrentUserId);
     }
 
     /**
-     * Register callback for observing Settings.Secure.ONE_HANDED_MODE_ENABLED state.
+     * Registers callback for observing Settings.Secure.ONE_HANDED_MODE_ENABLED state.
      * @param callback for state changes
      */
     public void registerToggleAwareObserver(TogglesCallback callback) {
@@ -160,7 +186,7 @@
     }
 
     /**
-     * Unregister callback for observing Settings.Secure.ONE_HANDED_MODE_ENABLED state.
+     * Unregisters callback for observing Settings.Secure.ONE_HANDED_MODE_ENABLED state.
      */
     public void unregisterToggleAwareObserver() {
         final ContentResolver resolver = mContext.getContentResolver();
@@ -198,7 +224,8 @@
     public interface TogglesCallback {
         /**
          * Callback method for Settings.Secure key state changes.
-         * @param uri
+         *
+         * @param uri The Uri of the changed content.
          */
         void onChange(Uri uri);
     }
diff --git a/src/com/android/settings/gestures/OneHandedTimeoutPreferenceController.java b/src/com/android/settings/gestures/OneHandedTimeoutPreferenceController.java
index 90ff9a6..8ce0e86 100644
--- a/src/com/android/settings/gestures/OneHandedTimeoutPreferenceController.java
+++ b/src/com/android/settings/gestures/OneHandedTimeoutPreferenceController.java
@@ -40,11 +40,13 @@
         OneHandedSettingsUtils.TogglesCallback {
 
     private final Map<String, String> mTimeoutMap;
-    private Preference mTimeoutPreference;
     private final OneHandedSettingsUtils mUtils;
 
+    private Preference mTimeoutPreference;
+
     public OneHandedTimeoutPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
+
         mTimeoutMap = new HashMap<>();
         initTimeoutMap();
         mUtils = new OneHandedSettingsUtils(context);
@@ -62,7 +64,7 @@
             return false;
         }
         final int newValue = Integer.parseInt((String) object);
-        OneHandedSettingsUtils.setSettingsOneHandedModeTimeout(mContext, newValue);
+        OneHandedSettingsUtils.setTimeoutValue(mContext, newValue);
         updateState(preference);
         return true;
     }
@@ -83,7 +85,7 @@
 
     @Override
     public CharSequence getSummary() {
-        if (OneHandedSettingsUtils.getSettingsOneHandedModeTimeout(mContext) == 0) {
+        if (OneHandedSettingsUtils.getTimeoutValue(mContext) == 0) {
             return mContext.getResources().getString(R.string.screensaver_settings_summary_never);
         }
         return String.format(mContext.getResources().getString(
@@ -112,7 +114,7 @@
     }
 
     private String getTimeoutValue() {
-        return String.valueOf(OneHandedSettingsUtils.getSettingsOneHandedModeTimeout(mContext));
+        return String.valueOf(OneHandedSettingsUtils.getTimeoutValue(mContext));
     }
 
     private void initTimeoutMap() {
diff --git a/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java b/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java
index 28441cd..320d006 100644
--- a/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java
+++ b/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java
@@ -27,8 +27,6 @@
  **/
 public class SwipeBottomToNotificationPreferenceController extends TogglePreferenceController {
 
-    private static final String PREF_KEY = "gesture_swipe_bottom_to_notification";
-
     public SwipeBottomToNotificationPreferenceController(Context context, String key) {
         super(context, key);
     }
@@ -51,7 +49,7 @@
     @Override
     public boolean setChecked(boolean isChecked) {
         if (isChecked) {
-            OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, false);
+            OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
         }
         OneHandedSettingsUtils.setSwipeDownNotificationEnabled(mContext, isChecked);
         return true;
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedEnablePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedEnablePreferenceControllerTest.java
index b53629e..ac2beb3 100644
--- a/tests/robotests/src/com/android/settings/gestures/OneHandedEnablePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedEnablePreferenceControllerTest.java
@@ -20,6 +20,7 @@
 
 import android.content.Context;
 import android.os.SystemProperties;
+import android.os.UserHandle;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
@@ -27,24 +28,22 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
 
 @RunWith(RobolectricTestRunner.class)
 public class OneHandedEnablePreferenceControllerTest {
 
     private static final String KEY = "gesture_one_handed_mode_enabled";
 
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Context mContext;
     private OneHandedEnablePreferenceController mController;
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
         mController = new OneHandedEnablePreferenceController(mContext, KEY);
+        OneHandedSettingsUtils.setUserId(UserHandle.myUserId());
     }
 
     @Test
@@ -76,7 +75,7 @@
 
     @Test
     public void getSummary_enabledOneHanded_shouldDisplayOnSummary() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, true);
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
 
         assertThat(mController.getSummary())
                 .isEqualTo(mContext.getText(R.string.switch_on_text));
@@ -84,7 +83,7 @@
 
     @Test
     public void getSummary_disabledOneHanded_shouldDisplayOffSummary() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, false);
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
 
         assertThat(mController.getSummary())
                 .isEqualTo(mContext.getText(R.string.switch_off_text));
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedSettingsUtilsTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedSettingsUtilsTest.java
index 7afd12d..dae455c 100644
--- a/tests/robotests/src/com/android/settings/gestures/OneHandedSettingsUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedSettingsUtilsTest.java
@@ -19,6 +19,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
+import android.os.UserHandle;
 import android.provider.Settings;
 
 import com.android.settings.R;
@@ -37,88 +38,95 @@
     private static final int TIMEOUT_INDEX_MEDIUM = 2;
     private static final int TIMEOUT_INDEX_LONG = 3;
 
+    private static final int OFF = 0;
+    private static final int ON = 1;
+
     private Context mContext;
+
     private String[] mConfigTimeout;
+    private int mCurrentUserId;
 
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
+        mCurrentUserId = UserHandle.myUserId();
         mConfigTimeout = mContext.getResources().getStringArray(R.array.one_handed_timeout_values);
+        OneHandedSettingsUtils.setUserId(mCurrentUserId);
     }
 
     @Test
-    public void setSettingsOneHandedModeEnabled_setEnable_shouldReturnEnabled() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, true);
+    public void setOneHandedModeEnabled_setEnable_shouldReturnEnabled() {
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
 
-        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.ONE_HANDED_MODE_ENABLED, 0)).isEqualTo(1);
+        assertThat(Settings.Secure.getIntForUser(mContext.getContentResolver(),
+                Settings.Secure.ONE_HANDED_MODE_ENABLED, OFF, mCurrentUserId)).isEqualTo(ON);
     }
 
     @Test
-    public void setSettingsOneHandedModeEnabled_setDisable_shouldReturnDisabled() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, false);
+    public void setOneHandedModeEnabled_setDisable_shouldReturnDisabled() {
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
 
-        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.ONE_HANDED_MODE_ENABLED, 0)).isEqualTo(0);
+        assertThat(Settings.Secure.getIntForUser(mContext.getContentResolver(),
+                Settings.Secure.ONE_HANDED_MODE_ENABLED, OFF, mCurrentUserId)).isEqualTo(OFF);
     }
 
     @Test
-    public void setSettingsTapsAppToExitEnabled_setEnable_shouldReturnEnabled() {
-        OneHandedSettingsUtils.setSettingsTapsAppToExit(mContext, true);
+    public void setTapsAppToExitEnabled_setEnable_shouldReturnEnabled() {
+        OneHandedSettingsUtils.setTapsAppToExitEnabled(mContext, true);
 
-        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.TAPS_APP_TO_EXIT, 1)).isEqualTo(1);
+        assertThat(Settings.Secure.getIntForUser(mContext.getContentResolver(),
+                Settings.Secure.TAPS_APP_TO_EXIT, OFF, mCurrentUserId)).isEqualTo(ON);
     }
 
     @Test
-    public void setSettingsTapsAppToExitEnabled_setDisable_shouldReturnDisabled() {
-        OneHandedSettingsUtils.setSettingsTapsAppToExit(mContext, false);
+    public void setTapsAppToExitEnabled_setDisable_shouldReturnDisabled() {
+        OneHandedSettingsUtils.setTapsAppToExitEnabled(mContext, false);
 
-        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.TAPS_APP_TO_EXIT, 1)).isEqualTo(0);
+        assertThat(Settings.Secure.getIntForUser(mContext.getContentResolver(),
+                Settings.Secure.TAPS_APP_TO_EXIT, OFF, mCurrentUserId)).isEqualTo(OFF);
     }
 
     @Test
-    public void setSettingsTimeout_setNever_shouldReturnNeverValue() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeTimeout(mContext,
+    public void setTimeout_setNever_shouldReturnNeverValue() {
+        OneHandedSettingsUtils.setTimeoutValue(mContext,
                 OneHandedSettingsUtils.OneHandedTimeout.NEVER.getValue());
 
-        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+        assertThat(Settings.Secure.getIntForUser(mContext.getContentResolver(),
                 Settings.Secure.ONE_HANDED_MODE_TIMEOUT,
-                OneHandedSettingsUtils.OneHandedTimeout.NEVER.getValue()))
+                OneHandedSettingsUtils.OneHandedTimeout.NEVER.getValue(), mCurrentUserId))
                 .isEqualTo(Integer.parseInt(mConfigTimeout[TIMEOUT_INDEX_NEVER]));
     }
 
     @Test
-    public void setSettingsTimeout_setShort_shouldReturnShortValue() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeTimeout(mContext,
+    public void setTimeout_setShort_shouldReturnShortValue() {
+        OneHandedSettingsUtils.setTimeoutValue(mContext,
                 OneHandedSettingsUtils.OneHandedTimeout.SHORT.getValue());
 
-        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+        assertThat(Settings.Secure.getIntForUser(mContext.getContentResolver(),
                 Settings.Secure.ONE_HANDED_MODE_TIMEOUT,
-                OneHandedSettingsUtils.OneHandedTimeout.SHORT.getValue()))
+                OneHandedSettingsUtils.OneHandedTimeout.SHORT.getValue(), mCurrentUserId))
                 .isEqualTo(Integer.parseInt(mConfigTimeout[TIMEOUT_INDEX_SHORT]));
     }
 
     @Test
-    public void setSettingsTimeout_setMedium_shouldReturnMediumValue() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeTimeout(mContext,
+    public void setTimeout_setMedium_shouldReturnMediumValue() {
+        OneHandedSettingsUtils.setTimeoutValue(mContext,
                 OneHandedSettingsUtils.OneHandedTimeout.MEDIUM.getValue());
 
-        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+        assertThat(Settings.Secure.getIntForUser(mContext.getContentResolver(),
                 Settings.Secure.ONE_HANDED_MODE_TIMEOUT,
-                OneHandedSettingsUtils.OneHandedTimeout.MEDIUM.getValue()))
+                OneHandedSettingsUtils.OneHandedTimeout.MEDIUM.getValue(), mCurrentUserId))
                 .isEqualTo(Integer.parseInt(mConfigTimeout[TIMEOUT_INDEX_MEDIUM]));
     }
 
     @Test
-    public void setSettingsTimeout_setLong_shouldReturnLongValue() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeTimeout(mContext,
+    public void setTimeout_setLong_shouldReturnLongValue() {
+        OneHandedSettingsUtils.setTimeoutValue(mContext,
                 OneHandedSettingsUtils.OneHandedTimeout.LONG.getValue());
 
-        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+        assertThat(Settings.Secure.getIntForUser(mContext.getContentResolver(),
                 Settings.Secure.ONE_HANDED_MODE_TIMEOUT,
-                OneHandedSettingsUtils.OneHandedTimeout.LONG.getValue()))
+                OneHandedSettingsUtils.OneHandedTimeout.LONG.getValue(), mCurrentUserId))
                 .isEqualTo(Integer.parseInt(mConfigTimeout[TIMEOUT_INDEX_LONG]));
     }
 }
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedTimeoutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedTimeoutPreferenceControllerTest.java
index baf8347..d278945 100644
--- a/tests/robotests/src/com/android/settings/gestures/OneHandedTimeoutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedTimeoutPreferenceControllerTest.java
@@ -19,6 +19,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
+import android.os.UserHandle;
 
 import androidx.preference.ListPreference;
 
@@ -34,7 +35,7 @@
 @RunWith(RobolectricTestRunner.class)
 public class OneHandedTimeoutPreferenceControllerTest {
 
-    private static final String KEY = "one_handed_timeout_preference";
+    private static final String KEY = "gesture_one_handed_timeout";
 
     private Context mContext;
     private OneHandedTimeoutPreferenceController mController;
@@ -46,11 +47,12 @@
         mController = new OneHandedTimeoutPreferenceController(mContext, KEY);
         mPreference = new ListPreference(mContext);
         mPreference.setKey(KEY);
+        OneHandedSettingsUtils.setUserId(UserHandle.myUserId());
     }
 
     @Test
     public void getAvailabilityStatus_enabledOneHanded_shouldAvailable() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, true);
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
 
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.AVAILABLE);
@@ -58,7 +60,7 @@
 
     @Test
     public void getAvailabilityStatus_disableOneHanded_shouldUnavailable() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, false);
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
 
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
@@ -66,7 +68,7 @@
 
     @Test
     public void updateState_enableOneHanded_switchShouldEnabled() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, true);
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
 
         mController.updateState(mPreference);
 
@@ -75,7 +77,7 @@
 
     @Test
     public void updateState_disableOneHanded_switchShouldDisabled() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, false);
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
 
         mController.updateState(mPreference);
 
@@ -87,7 +89,7 @@
         final String[] timeoutTitles = mContext.getResources().getStringArray(
                 R.array.one_handed_timeout_title);
 
-        OneHandedSettingsUtils.setSettingsOneHandedModeTimeout(mContext,
+        OneHandedSettingsUtils.setTimeoutValue(mContext,
                 OneHandedSettingsUtils.OneHandedTimeout.NEVER.getValue());
 
         assertThat(mController.getSummary()).isEqualTo(
@@ -99,7 +101,7 @@
         final String[] timeoutTitles = mContext.getResources().getStringArray(
                 R.array.one_handed_timeout_title);
 
-        OneHandedSettingsUtils.setSettingsOneHandedModeTimeout(mContext,
+        OneHandedSettingsUtils.setTimeoutValue(mContext,
                 OneHandedSettingsUtils.OneHandedTimeout.SHORT.getValue());
 
         assertThat(mController.getSummary()).isEqualTo(String.format(
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationSettingsTest.java
index 3a65b26..a3c8a1e 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationSettingsTest.java
@@ -77,7 +77,7 @@
     @Test
     public void isPageSearchEnabled_oneHandedDisabled_shouldReturnTrue() {
         SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, false);
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
 
         final Object obj = ReflectionHelpers.callInstanceMethod(
                 SwipeBottomToNotificationSettings.SEARCH_INDEX_DATA_PROVIDER, "isPageSearchEnabled",
@@ -90,7 +90,7 @@
     @Test
     public void isPageSearchEnabled_oneHandedEnabled_shouldReturnFalse() {
         SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, true);
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
 
         final Object obj = ReflectionHelpers.callInstanceMethod(
                 SwipeBottomToNotificationSettings.SEARCH_INDEX_DATA_PROVIDER, "isPageSearchEnabled",
diff --git a/tests/unit/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceControllerTest.java b/tests/unit/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceControllerTest.java
index 18738e9..980ca6e 100644
--- a/tests/unit/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceControllerTest.java
@@ -19,6 +19,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
+import android.os.UserHandle;
 
 import androidx.preference.SwitchPreference;
 import androidx.test.core.app.ApplicationProvider;
@@ -37,7 +38,6 @@
 
     private Context mContext;
     private SwitchPreference mSwitchPreference;
-
     private OneHandedAppTapsExitPreferenceController mController;
 
     @Before
@@ -46,6 +46,7 @@
         mController = new OneHandedAppTapsExitPreferenceController(mContext, KEY);
         mSwitchPreference = new SwitchPreference(mContext);
         mSwitchPreference.setKey(KEY);
+        OneHandedSettingsUtils.setUserId(UserHandle.myUserId());
     }
 
     @Test
@@ -59,7 +60,7 @@
 
     @Test
     public void getAvailabilityStatus_enabledOneHanded_shouldAvailable() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, true);
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
 
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(TogglePreferenceController.AVAILABLE);
@@ -67,7 +68,7 @@
 
     @Test
     public void getAvailabilityStatus_disabledOneHanded_shouldUnavailable() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, false);
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
 
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(TogglePreferenceController.DISABLED_DEPENDENT_SETTING);
@@ -75,7 +76,7 @@
 
     @Test
     public void updateState_enableOneHanded_switchShouldEnabled() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, true);
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, true);
 
         mController.updateState(mSwitchPreference);
 
@@ -84,7 +85,7 @@
 
     @Test
     public void updateState_disableOneHanded_switchShouldDisabled() {
-        OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, false);
+        OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, false);
 
         mController.updateState(mSwitchPreference);