From 7ef9c46afadc2d2992ae97fc6bdb593de146f829 Mon Sep 17 00:00:00 2001 From: josephpv Date: Tue, 28 May 2024 13:26:41 +0000 Subject: [PATCH] Private space auto lock on device restart during setup After creation of private space value of auto-lock setting is explicitly set to lock on device restarts. Just before the end of the setup flow the auto-lock setting is changed to auto-lock on device lock before the last screen of private space setup. Bug: 342398315 Test: atest PrivateSpaceMaintainerTest Change-Id: I8eeb0058c7ecb31d6e30b4cc78ec5877ed316f75 --- .../settings/privatespace/PrivateSpaceMaintainer.java | 7 ++++++- .../privatespace/SetupPreFinishDelayFragment.java | 11 +++++++++-- .../privatespace/PrivateSpaceMaintainerTest.java | 6 +++--- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java b/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java index debec45a159..bdbe993f8fc 100644 --- a/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java +++ b/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java @@ -19,6 +19,7 @@ package com.android.settings.privatespace; import static android.os.UserManager.USER_TYPE_PROFILE_PRIVATE; import static android.provider.Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT; import static android.provider.Settings.Secure.PRIVATE_SPACE_AUTO_LOCK; +import static android.provider.Settings.Secure.PRIVATE_SPACE_AUTO_LOCK_AFTER_DEVICE_RESTART; import static android.provider.Settings.Secure.PRIVATE_SPACE_AUTO_LOCK_ON_DEVICE_LOCK; import static android.provider.Settings.Secure.SKIP_FIRST_USE_HINTS; import static android.provider.Settings.Secure.USER_SETUP_COMPLETE; @@ -70,6 +71,10 @@ public class PrivateSpaceMaintainer { @Settings.Secure.PrivateSpaceAutoLockOption public static final int PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL = PRIVATE_SPACE_AUTO_LOCK_ON_DEVICE_LOCK; + /** Value for private space auto lock settings after private space creation. */ + @Settings.Secure.PrivateSpaceAutoLockOption + public static final int PRIVATE_SPACE_CREATE_AUTO_LOCK_VAL = + PRIVATE_SPACE_AUTO_LOCK_AFTER_DEVICE_RESTART; /** Default value for the hide private space sensitive notifications on lockscreen. */ public static final int HIDE_PRIVATE_SPACE_SENSITIVE_NOTIFICATIONS_DISABLED_VAL = 0; @@ -327,7 +332,7 @@ public class PrivateSpaceMaintainer { @GuardedBy("this") private void resetPrivateSpaceSettings() { setHidePrivateSpaceEntryPointSetting(HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL); - setPrivateSpaceAutoLockSetting(PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL); + setPrivateSpaceAutoLockSetting(PRIVATE_SPACE_CREATE_AUTO_LOCK_VAL); setPrivateSpaceSensitiveNotificationsDefaultValue(); } diff --git a/src/com/android/settings/privatespace/SetupPreFinishDelayFragment.java b/src/com/android/settings/privatespace/SetupPreFinishDelayFragment.java index 9d04e7900aa..4f2634eb775 100644 --- a/src/com/android/settings/privatespace/SetupPreFinishDelayFragment.java +++ b/src/com/android/settings/privatespace/SetupPreFinishDelayFragment.java @@ -19,6 +19,8 @@ package com.android.settings.privatespace; import static android.content.Intent.ACTION_PROFILE_INACCESSIBLE; import static android.content.Intent.ACTION_PROFILE_UNAVAILABLE; +import static com.android.settings.privatespace.PrivateSpaceMaintainer.PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL; + import android.app.settings.SettingsEnums; import android.content.BroadcastReceiver; import android.content.Context; @@ -101,8 +103,13 @@ public class SetupPreFinishDelayFragment extends InstrumentedFragment { }; requireActivity().getOnBackPressedDispatcher().addCallback(this, callback); if (savedInstanceState == null) { - // TODO(b/307729746): Add a test to verify PS is locked after setup completion. - PrivateSpaceMaintainer.getInstance(getActivity()).lockPrivateSpace(); + // TODO(b/307729746): Add test to verify PS is locked and auto-lock value is set to + // auto-lock on device lock after setup completion. + PrivateSpaceMaintainer privateSpaceMaintainer = + PrivateSpaceMaintainer.getInstance(getActivity()); + privateSpaceMaintainer.setPrivateSpaceAutoLockSetting( + PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL); + privateSpaceMaintainer.lockPrivateSpace(); } return rootView; } diff --git a/tests/unit/src/com/android/settings/privatespace/PrivateSpaceMaintainerTest.java b/tests/unit/src/com/android/settings/privatespace/PrivateSpaceMaintainerTest.java index 522dcd5e242..36edfa0e9e1 100644 --- a/tests/unit/src/com/android/settings/privatespace/PrivateSpaceMaintainerTest.java +++ b/tests/unit/src/com/android/settings/privatespace/PrivateSpaceMaintainerTest.java @@ -22,7 +22,7 @@ import static android.provider.Settings.Secure.PRIVATE_SPACE_AUTO_LOCK; import static com.android.settings.privatespace.PrivateSpaceMaintainer.HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL; import static com.android.settings.privatespace.PrivateSpaceMaintainer.HIDE_PRIVATE_SPACE_ENTRY_POINT_ENABLED_VAL; import static com.android.settings.privatespace.PrivateSpaceMaintainer.HIDE_PRIVATE_SPACE_SENSITIVE_NOTIFICATIONS_DISABLED_VAL; -import static com.android.settings.privatespace.PrivateSpaceMaintainer.PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL; +import static com.android.settings.privatespace.PrivateSpaceMaintainer.PRIVATE_SPACE_CREATE_AUTO_LOCK_VAL; import static com.google.common.truth.Truth.assertThat; @@ -336,9 +336,9 @@ public class PrivateSpaceMaintainerTest { privateSpaceMaintainer.deletePrivateSpace(); privateSpaceMaintainer.createPrivateSpace(); assertThat(privateSpaceMaintainer.getPrivateSpaceAutoLockSetting()) - .isEqualTo(PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL); + .isEqualTo(PRIVATE_SPACE_CREATE_AUTO_LOCK_VAL); assertThat(Settings.Secure.getInt(mContentResolver, PRIVATE_SPACE_AUTO_LOCK, -1)) - .isEqualTo(PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL); + .isEqualTo(PRIVATE_SPACE_CREATE_AUTO_LOCK_VAL); } /**