Loading core/java/android/provider/Settings.java +9 −0 Original line number Diff line number Diff line Loading @@ -13062,6 +13062,15 @@ public final class Settings { */ public static final String LTE_SERVICE_FORCED = "lte_service_forced"; /** * Specifies the behaviour the lid triggers when closed * <p> * See WindowManagerPolicy.WindowManagerFuncs * @hide */ public static final String LID_BEHAVIOR = "lid_behavior"; /** * Ephemeral app cookie max size in bytes. * <p> Loading core/tests/coretests/src/android/provider/SettingsBackupTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -319,6 +319,7 @@ public class SettingsBackupTest { Settings.Global.LOW_POWER_MODE_STICKY, Settings.Global.LOW_POWER_MODE_SUGGESTION_PARAMS, Settings.Global.LTE_SERVICE_FORCED, Settings.Global.LID_BEHAVIOR, Settings.Global.MAX_NOTIFICATION_ENQUEUE_RATE, Settings.Global.MAX_SOUND_TRIGGER_DETECTION_SERVICE_OPS_PER_DAY, Settings.Global.MDC_INITIAL_MAX_RETRY, Loading packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java +19 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.res.Resources; import android.content.res.XmlResourceParser; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; Loading Loading @@ -2440,6 +2441,7 @@ class DatabaseHelper extends SQLiteOpenHelper { private void loadGlobalSettings(SQLiteDatabase db) { SQLiteStatement stmt = null; final Resources res = mContext.getResources(); try { stmt = db.compileStatement("INSERT OR IGNORE INTO global(name,value)" + " VALUES(?,?);"); Loading Loading @@ -2468,7 +2470,7 @@ class DatabaseHelper extends SQLiteOpenHelper { loadSetting(stmt, Settings.Global.STAY_ON_WHILE_PLUGGED_IN, ("1".equals(SystemProperties.get("ro.kernel.qemu")) || mContext.getResources().getBoolean(R.bool.def_stay_on_while_plugged_in)) res.getBoolean(R.bool.def_stay_on_while_plugged_in)) ? 1 : 0); loadIntegerSetting(stmt, Settings.Global.WIFI_SLEEP_POLICY, Loading Loading @@ -2505,14 +2507,14 @@ class DatabaseHelper extends SQLiteOpenHelper { loadBooleanSetting(stmt, Settings.Global.DEVICE_PROVISIONED, R.bool.def_device_provisioned); final int maxBytes = mContext.getResources().getInteger( final int maxBytes = res.getInteger( R.integer.def_download_manager_max_bytes_over_mobile); if (maxBytes > 0) { loadSetting(stmt, Settings.Global.DOWNLOAD_MAX_BYTES_OVER_MOBILE, Integer.toString(maxBytes)); } final int recommendedMaxBytes = mContext.getResources().getInteger( final int recommendedMaxBytes = res.getInteger( R.integer.def_download_manager_recommended_max_bytes_over_mobile); if (recommendedMaxBytes > 0) { loadSetting(stmt, Settings.Global.DOWNLOAD_RECOMMENDED_MAX_BYTES_OVER_MOBILE, Loading Loading @@ -2609,6 +2611,20 @@ class DatabaseHelper extends SQLiteOpenHelper { loadSetting(stmt, Settings.Global.DEVICE_NAME, getDefaultDeviceName()); // Set default lid/cover behaviour according to legacy device config final int defaultLidBehavior; if (res.getBoolean(com.android.internal.R.bool.config_lidControlsSleep)) { // WindowManagerFuncs.LID_BEHAVIOR_SLEEP defaultLidBehavior = 1; } else if (res.getBoolean(com.android.internal.R.bool.config_lidControlsScreenLock)) { // WindowManagerFuncs.LID_BEHAVIOR_LOCK defaultLidBehavior = 2; } else { // WindowManagerFuncs.LID_BEHAVIOR_NONE defaultLidBehavior = 0; } loadSetting(stmt, Settings.Global.LID_BEHAVIOR, defaultLidBehavior); /* * IMPORTANT: Do not add any more upgrade steps here as the global, * secure, and system settings are no longer stored in a database Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +41 −15 Original line number Diff line number Diff line Loading @@ -86,6 +86,9 @@ import static android.view.WindowManagerGlobal.ADD_PERMISSION_DENIED; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.CAMERA_LENS_COVERED; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.CAMERA_LENS_COVER_ABSENT; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.CAMERA_LENS_UNCOVERED; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_BEHAVIOR_LOCK; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_BEHAVIOR_NONE; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_BEHAVIOR_SLEEP; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_CLOSED; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_OPEN; import static com.android.server.wm.WindowManagerPolicyProto.KEYGUARD_DELEGATE; Loading Loading @@ -473,8 +476,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { int mLidKeyboardAccessibility; int mLidNavigationAccessibility; boolean mLidControlsScreenLock; boolean mLidControlsSleep; private boolean mLidControlsDisplayFold; int mShortPressOnPowerBehavior; int mLongPressOnPowerBehavior; Loading Loading @@ -1195,6 +1196,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } private int getLidBehavior() { return Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.LID_BEHAVIOR, LID_BEHAVIOR_NONE); } private int getMaxMultiPressPowerCount() { if (mTriplePressOnPowerBehavior != MULTI_PRESS_POWER_NOTHING) { return 3; Loading Loading @@ -1796,10 +1802,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { com.android.internal.R.integer.config_lidKeyboardAccessibility); mLidNavigationAccessibility = mContext.getResources().getInteger( com.android.internal.R.integer.config_lidNavigationAccessibility); mLidControlsScreenLock = mContext.getResources().getBoolean( com.android.internal.R.bool.config_lidControlsScreenLock); mLidControlsSleep = mContext.getResources().getBoolean( com.android.internal.R.bool.config_lidControlsSleep); mLidControlsDisplayFold = mContext.getResources().getBoolean( com.android.internal.R.bool.config_lidControlsDisplayFold); Loading Loading @@ -2040,7 +2042,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { private boolean shouldEnableWakeGestureLp() { return mWakeGestureEnabledSetting && !mDefaultDisplayPolicy.isAwake() && (!mLidControlsSleep || mDefaultDisplayPolicy.getLidState() != LID_CLOSED) && (getLidBehavior() != LID_BEHAVIOR_SLEEP || mDefaultDisplayPolicy.getLidState() != LID_CLOSED) && mWakeGestureListener.isSupported(); } Loading Loading @@ -3546,7 +3549,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (lidOpen) { wakeUp(SystemClock.uptimeMillis(), mAllowTheaterModeWakeFromLidSwitch, PowerManager.WAKE_REASON_LID, "android.policy:LID"); } else if (!mLidControlsSleep) { } else if (getLidBehavior() != LID_BEHAVIOR_SLEEP) { mPowerManager.userActivity(SystemClock.uptimeMillis(), false); } } Loading Loading @@ -5041,11 +5044,22 @@ public class PhoneWindowManager implements WindowManagerPolicy { final int lidState = mDefaultDisplayPolicy.getLidState(); if (mLidControlsDisplayFold && mDisplayFoldController != null) { mDisplayFoldController.requestDeviceFolded(lidState == LID_CLOSED); } else if (lidState == LID_CLOSED && mLidControlsSleep) { goToSleep(SystemClock.uptimeMillis(), PowerManager.GO_TO_SLEEP_REASON_LID_SWITCH, PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE); } else if (lidState == LID_CLOSED && mLidControlsScreenLock) { } else if (lidState == LID_CLOSED) { int lidBehavior = getLidBehavior(); switch (lidBehavior) { case LID_BEHAVIOR_LOCK: mWindowManagerFuncs.lockDeviceNow(); break; case LID_BEHAVIOR_SLEEP: goToSleep(SystemClock.uptimeMillis(), PowerManager.GO_TO_SLEEP_REASON_LID_SWITCH, PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE); break; case LID_BEHAVIOR_NONE: // fall through default: break; } } synchronized (mLock) { Loading Loading @@ -5401,8 +5415,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { pw.print(prefix); pw.print("mLidKeyboardAccessibility="); pw.print(mLidKeyboardAccessibility); pw.print(" mLidNavigationAccessibility="); pw.print(mLidNavigationAccessibility); pw.print(" mLidControlsScreenLock="); pw.println(mLidControlsScreenLock); pw.print(prefix); pw.print("mLidControlsSleep="); pw.println(mLidControlsSleep); pw.print(" getLidBehavior="); pw.println(lidBehaviorToString(getLidBehavior())); pw.print(prefix); pw.print("mLongPressOnBackBehavior="); pw.println(longPressOnBackBehaviorToString(mLongPressOnBackBehavior)); Loading Loading @@ -5636,6 +5649,19 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } private static String lidBehaviorToString(int behavior) { switch (behavior) { case LID_BEHAVIOR_LOCK: return "LID_BEHAVIOR_LOCK"; case LID_BEHAVIOR_SLEEP: return "LID_BEHAVIOR_SLEEP"; case LID_BEHAVIOR_NONE: return "LID_BEHAVIOR_NONE"; default: return Integer.toString(behavior); } } @Override public boolean setAodShowing(boolean aodShowing) { if (mAodShowing != aodShowing) { Loading services/core/java/com/android/server/policy/WindowManagerPolicy.java +4 −0 Original line number Diff line number Diff line Loading @@ -518,6 +518,10 @@ public interface WindowManagerPolicy extends WindowManagerPolicyConstants { public static final int LID_CLOSED = 0; public static final int LID_OPEN = 1; public static final int LID_BEHAVIOR_NONE = 0; public static final int LID_BEHAVIOR_SLEEP = 1; public static final int LID_BEHAVIOR_LOCK = 2; public static final int CAMERA_LENS_COVER_ABSENT = -1; public static final int CAMERA_LENS_UNCOVERED = 0; public static final int CAMERA_LENS_COVERED = 1; Loading Loading
core/java/android/provider/Settings.java +9 −0 Original line number Diff line number Diff line Loading @@ -13062,6 +13062,15 @@ public final class Settings { */ public static final String LTE_SERVICE_FORCED = "lte_service_forced"; /** * Specifies the behaviour the lid triggers when closed * <p> * See WindowManagerPolicy.WindowManagerFuncs * @hide */ public static final String LID_BEHAVIOR = "lid_behavior"; /** * Ephemeral app cookie max size in bytes. * <p> Loading
core/tests/coretests/src/android/provider/SettingsBackupTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -319,6 +319,7 @@ public class SettingsBackupTest { Settings.Global.LOW_POWER_MODE_STICKY, Settings.Global.LOW_POWER_MODE_SUGGESTION_PARAMS, Settings.Global.LTE_SERVICE_FORCED, Settings.Global.LID_BEHAVIOR, Settings.Global.MAX_NOTIFICATION_ENQUEUE_RATE, Settings.Global.MAX_SOUND_TRIGGER_DETECTION_SERVICE_OPS_PER_DAY, Settings.Global.MDC_INITIAL_MAX_RETRY, Loading
packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java +19 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.res.Resources; import android.content.res.XmlResourceParser; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; Loading Loading @@ -2440,6 +2441,7 @@ class DatabaseHelper extends SQLiteOpenHelper { private void loadGlobalSettings(SQLiteDatabase db) { SQLiteStatement stmt = null; final Resources res = mContext.getResources(); try { stmt = db.compileStatement("INSERT OR IGNORE INTO global(name,value)" + " VALUES(?,?);"); Loading Loading @@ -2468,7 +2470,7 @@ class DatabaseHelper extends SQLiteOpenHelper { loadSetting(stmt, Settings.Global.STAY_ON_WHILE_PLUGGED_IN, ("1".equals(SystemProperties.get("ro.kernel.qemu")) || mContext.getResources().getBoolean(R.bool.def_stay_on_while_plugged_in)) res.getBoolean(R.bool.def_stay_on_while_plugged_in)) ? 1 : 0); loadIntegerSetting(stmt, Settings.Global.WIFI_SLEEP_POLICY, Loading Loading @@ -2505,14 +2507,14 @@ class DatabaseHelper extends SQLiteOpenHelper { loadBooleanSetting(stmt, Settings.Global.DEVICE_PROVISIONED, R.bool.def_device_provisioned); final int maxBytes = mContext.getResources().getInteger( final int maxBytes = res.getInteger( R.integer.def_download_manager_max_bytes_over_mobile); if (maxBytes > 0) { loadSetting(stmt, Settings.Global.DOWNLOAD_MAX_BYTES_OVER_MOBILE, Integer.toString(maxBytes)); } final int recommendedMaxBytes = mContext.getResources().getInteger( final int recommendedMaxBytes = res.getInteger( R.integer.def_download_manager_recommended_max_bytes_over_mobile); if (recommendedMaxBytes > 0) { loadSetting(stmt, Settings.Global.DOWNLOAD_RECOMMENDED_MAX_BYTES_OVER_MOBILE, Loading Loading @@ -2609,6 +2611,20 @@ class DatabaseHelper extends SQLiteOpenHelper { loadSetting(stmt, Settings.Global.DEVICE_NAME, getDefaultDeviceName()); // Set default lid/cover behaviour according to legacy device config final int defaultLidBehavior; if (res.getBoolean(com.android.internal.R.bool.config_lidControlsSleep)) { // WindowManagerFuncs.LID_BEHAVIOR_SLEEP defaultLidBehavior = 1; } else if (res.getBoolean(com.android.internal.R.bool.config_lidControlsScreenLock)) { // WindowManagerFuncs.LID_BEHAVIOR_LOCK defaultLidBehavior = 2; } else { // WindowManagerFuncs.LID_BEHAVIOR_NONE defaultLidBehavior = 0; } loadSetting(stmt, Settings.Global.LID_BEHAVIOR, defaultLidBehavior); /* * IMPORTANT: Do not add any more upgrade steps here as the global, * secure, and system settings are no longer stored in a database Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +41 −15 Original line number Diff line number Diff line Loading @@ -86,6 +86,9 @@ import static android.view.WindowManagerGlobal.ADD_PERMISSION_DENIED; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.CAMERA_LENS_COVERED; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.CAMERA_LENS_COVER_ABSENT; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.CAMERA_LENS_UNCOVERED; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_BEHAVIOR_LOCK; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_BEHAVIOR_NONE; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_BEHAVIOR_SLEEP; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_CLOSED; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_OPEN; import static com.android.server.wm.WindowManagerPolicyProto.KEYGUARD_DELEGATE; Loading Loading @@ -473,8 +476,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { int mLidKeyboardAccessibility; int mLidNavigationAccessibility; boolean mLidControlsScreenLock; boolean mLidControlsSleep; private boolean mLidControlsDisplayFold; int mShortPressOnPowerBehavior; int mLongPressOnPowerBehavior; Loading Loading @@ -1195,6 +1196,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } private int getLidBehavior() { return Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.LID_BEHAVIOR, LID_BEHAVIOR_NONE); } private int getMaxMultiPressPowerCount() { if (mTriplePressOnPowerBehavior != MULTI_PRESS_POWER_NOTHING) { return 3; Loading Loading @@ -1796,10 +1802,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { com.android.internal.R.integer.config_lidKeyboardAccessibility); mLidNavigationAccessibility = mContext.getResources().getInteger( com.android.internal.R.integer.config_lidNavigationAccessibility); mLidControlsScreenLock = mContext.getResources().getBoolean( com.android.internal.R.bool.config_lidControlsScreenLock); mLidControlsSleep = mContext.getResources().getBoolean( com.android.internal.R.bool.config_lidControlsSleep); mLidControlsDisplayFold = mContext.getResources().getBoolean( com.android.internal.R.bool.config_lidControlsDisplayFold); Loading Loading @@ -2040,7 +2042,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { private boolean shouldEnableWakeGestureLp() { return mWakeGestureEnabledSetting && !mDefaultDisplayPolicy.isAwake() && (!mLidControlsSleep || mDefaultDisplayPolicy.getLidState() != LID_CLOSED) && (getLidBehavior() != LID_BEHAVIOR_SLEEP || mDefaultDisplayPolicy.getLidState() != LID_CLOSED) && mWakeGestureListener.isSupported(); } Loading Loading @@ -3546,7 +3549,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (lidOpen) { wakeUp(SystemClock.uptimeMillis(), mAllowTheaterModeWakeFromLidSwitch, PowerManager.WAKE_REASON_LID, "android.policy:LID"); } else if (!mLidControlsSleep) { } else if (getLidBehavior() != LID_BEHAVIOR_SLEEP) { mPowerManager.userActivity(SystemClock.uptimeMillis(), false); } } Loading Loading @@ -5041,11 +5044,22 @@ public class PhoneWindowManager implements WindowManagerPolicy { final int lidState = mDefaultDisplayPolicy.getLidState(); if (mLidControlsDisplayFold && mDisplayFoldController != null) { mDisplayFoldController.requestDeviceFolded(lidState == LID_CLOSED); } else if (lidState == LID_CLOSED && mLidControlsSleep) { goToSleep(SystemClock.uptimeMillis(), PowerManager.GO_TO_SLEEP_REASON_LID_SWITCH, PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE); } else if (lidState == LID_CLOSED && mLidControlsScreenLock) { } else if (lidState == LID_CLOSED) { int lidBehavior = getLidBehavior(); switch (lidBehavior) { case LID_BEHAVIOR_LOCK: mWindowManagerFuncs.lockDeviceNow(); break; case LID_BEHAVIOR_SLEEP: goToSleep(SystemClock.uptimeMillis(), PowerManager.GO_TO_SLEEP_REASON_LID_SWITCH, PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE); break; case LID_BEHAVIOR_NONE: // fall through default: break; } } synchronized (mLock) { Loading Loading @@ -5401,8 +5415,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { pw.print(prefix); pw.print("mLidKeyboardAccessibility="); pw.print(mLidKeyboardAccessibility); pw.print(" mLidNavigationAccessibility="); pw.print(mLidNavigationAccessibility); pw.print(" mLidControlsScreenLock="); pw.println(mLidControlsScreenLock); pw.print(prefix); pw.print("mLidControlsSleep="); pw.println(mLidControlsSleep); pw.print(" getLidBehavior="); pw.println(lidBehaviorToString(getLidBehavior())); pw.print(prefix); pw.print("mLongPressOnBackBehavior="); pw.println(longPressOnBackBehaviorToString(mLongPressOnBackBehavior)); Loading Loading @@ -5636,6 +5649,19 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } private static String lidBehaviorToString(int behavior) { switch (behavior) { case LID_BEHAVIOR_LOCK: return "LID_BEHAVIOR_LOCK"; case LID_BEHAVIOR_SLEEP: return "LID_BEHAVIOR_SLEEP"; case LID_BEHAVIOR_NONE: return "LID_BEHAVIOR_NONE"; default: return Integer.toString(behavior); } } @Override public boolean setAodShowing(boolean aodShowing) { if (mAodShowing != aodShowing) { Loading
services/core/java/com/android/server/policy/WindowManagerPolicy.java +4 −0 Original line number Diff line number Diff line Loading @@ -518,6 +518,10 @@ public interface WindowManagerPolicy extends WindowManagerPolicyConstants { public static final int LID_CLOSED = 0; public static final int LID_OPEN = 1; public static final int LID_BEHAVIOR_NONE = 0; public static final int LID_BEHAVIOR_SLEEP = 1; public static final int LID_BEHAVIOR_LOCK = 2; public static final int CAMERA_LENS_COVER_ABSENT = -1; public static final int CAMERA_LENS_UNCOVERED = 0; public static final int CAMERA_LENS_COVERED = 1; Loading