Loading res/xml/one_handed_settings.xml +1 −1 Original line number Diff line number Diff line Loading @@ -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"/> Loading src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceController.java +6 −4 Original line number Diff line number Diff line Loading @@ -33,15 +33,17 @@ import com.android.settingslib.core.lifecycle.events.OnStop; 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 Loading @@ -67,12 +69,12 @@ public class OneHandedAppTapsExitPreferenceController extends TogglePreferenceCo @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 Loading src/com/android/settings/gestures/OneHandedEnablePreferenceController.java +3 −5 Original line number Diff line number Diff line Loading @@ -40,8 +40,7 @@ public class OneHandedEnablePreferenceController extends TogglePreferenceControl @Override public boolean setChecked(boolean isChecked) { OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, isChecked); OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, isChecked); OneHandedSettingsUtils.setSwipeDownNotificationEnabled(mContext, !isChecked); return true; } Loading @@ -53,8 +52,7 @@ public class OneHandedEnablePreferenceController extends TogglePreferenceControl @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); } } src/com/android/settings/gestures/OneHandedSettings.java +7 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.gestures; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.UserHandle; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; Loading @@ -42,6 +43,12 @@ public class OneHandedSettings extends DashboardFragment { return TAG; } @Override protected void updatePreferenceStates() { OneHandedSettingsUtils.setUserId(UserHandle.myUserId()); super.updatePreferenceStates(); } @Override protected int getPreferenceScreenResId() { return R.xml.one_handed_settings; Loading src/com/android/settings/gestures/OneHandedSettingsUtils.java +61 −34 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.os.SystemProperties; import android.os.UserHandle; import android.provider.Settings; /** Loading @@ -31,6 +32,8 @@ import android.provider.Settings; 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); Loading @@ -49,109 +52,132 @@ public class OneHandedSettingsUtils { 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. */ 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); } /** * Gets current user id from OneHandedSettingsUtils * * @return the current user id in OneHandedSettingsUtils */ public static int getUserId() { return sCurrentUserId; } /** * Set one-handed mode timeout value to Settings provider. * 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) { Loading @@ -160,7 +186,7 @@ public class OneHandedSettingsUtils { } /** * 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(); Loading Loading @@ -198,7 +224,8 @@ public class OneHandedSettingsUtils { 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); } Loading Loading
res/xml/one_handed_settings.xml +1 −1 Original line number Diff line number Diff line Loading @@ -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"/> Loading
src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceController.java +6 −4 Original line number Diff line number Diff line Loading @@ -33,15 +33,17 @@ import com.android.settingslib.core.lifecycle.events.OnStop; 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 Loading @@ -67,12 +69,12 @@ public class OneHandedAppTapsExitPreferenceController extends TogglePreferenceCo @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 Loading
src/com/android/settings/gestures/OneHandedEnablePreferenceController.java +3 −5 Original line number Diff line number Diff line Loading @@ -40,8 +40,7 @@ public class OneHandedEnablePreferenceController extends TogglePreferenceControl @Override public boolean setChecked(boolean isChecked) { OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, isChecked); OneHandedSettingsUtils.setOneHandedModeEnabled(mContext, isChecked); OneHandedSettingsUtils.setSwipeDownNotificationEnabled(mContext, !isChecked); return true; } Loading @@ -53,8 +52,7 @@ public class OneHandedEnablePreferenceController extends TogglePreferenceControl @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); } }
src/com/android/settings/gestures/OneHandedSettings.java +7 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.gestures; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.UserHandle; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; Loading @@ -42,6 +43,12 @@ public class OneHandedSettings extends DashboardFragment { return TAG; } @Override protected void updatePreferenceStates() { OneHandedSettingsUtils.setUserId(UserHandle.myUserId()); super.updatePreferenceStates(); } @Override protected int getPreferenceScreenResId() { return R.xml.one_handed_settings; Loading
src/com/android/settings/gestures/OneHandedSettingsUtils.java +61 −34 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.os.SystemProperties; import android.os.UserHandle; import android.provider.Settings; /** Loading @@ -31,6 +32,8 @@ import android.provider.Settings; 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); Loading @@ -49,109 +52,132 @@ public class OneHandedSettingsUtils { 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. */ 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); } /** * Gets current user id from OneHandedSettingsUtils * * @return the current user id in OneHandedSettingsUtils */ public static int getUserId() { return sCurrentUserId; } /** * Set one-handed mode timeout value to Settings provider. * 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) { Loading @@ -160,7 +186,7 @@ public class OneHandedSettingsUtils { } /** * 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(); Loading Loading @@ -198,7 +224,8 @@ public class OneHandedSettingsUtils { 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); } Loading