Lock Private space at the end of PS setup.
This change is to call UserManager requestQuietModeEnabled() API at the end of PS setup to enable quitemode for private space. Bug: 313652502 Test: atest PrivateSpaceMaintainerTest Verify Private space is locked state after private space setup completion. Change-Id: I1d863f6d51ffa4bb58318696603905d35c3109b6
This commit is contained in:
@@ -34,6 +34,7 @@ import android.util.ArraySet;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
import com.android.internal.annotations.GuardedBy;
|
||||
|
||||
@@ -226,6 +227,26 @@ public class PrivateSpaceMaintainer {
|
||||
HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if private space exists and quiet mode is successfully enabled, otherwise
|
||||
* returns false
|
||||
*/
|
||||
public synchronized boolean lockPrivateSpace() {
|
||||
if (isPrivateProfileRunning()) {
|
||||
return mUserManager.requestQuietModeEnabled(true, mUserHandle);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Returns true if private space exists and is running, otherwise returns false */
|
||||
@VisibleForTesting
|
||||
synchronized boolean isPrivateProfileRunning() {
|
||||
if (doesPrivateSpaceExist() && mUserHandle != null) {
|
||||
return mUserManager.isUserRunning(mUserHandle);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void resetPrivateSpaceSettings() {
|
||||
setHidePrivateSpaceEntryPointSetting(HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL);
|
||||
}
|
||||
|
@@ -84,6 +84,8 @@ public class SetupSuccessFragment extends InstrumentedFragment {
|
||||
if (activity != null) {
|
||||
mMetricsFeatureProvider.action(
|
||||
getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_DONE);
|
||||
//TODO(b/307729746): Add a test to verify PS is locked after setup completion.
|
||||
PrivateSpaceMaintainer.getInstance(activity).lockPrivateSpace();
|
||||
Intent allAppsIntent = new Intent(Intent.ACTION_ALL_APPS);
|
||||
ResolveInfo resolveInfo =
|
||||
activity.getPackageManager()
|
||||
|
@@ -21,8 +21,11 @@ import static com.android.settings.privatespace.PrivateSpaceMaintainer.HIDE_PRIV
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.app.IActivityManager;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.os.RemoteException;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
@@ -30,6 +33,8 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
import com.android.settings.privatespace.PrivateSpaceMaintainer.ErrorDeletingPrivateSpace;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -37,6 +42,7 @@ import org.mockito.MockitoAnnotations;
|
||||
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class PrivateSpaceMaintainerTest {
|
||||
private static final String TAG = "PSMaintainerTest";
|
||||
private Context mContext;
|
||||
private ContentResolver mContentResolver;
|
||||
|
||||
@@ -48,6 +54,13 @@ public class PrivateSpaceMaintainerTest {
|
||||
mContentResolver = mContext.getContentResolver();
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
PrivateSpaceMaintainer privateSpaceMaintainer =
|
||||
PrivateSpaceMaintainer.getInstance(mContext);
|
||||
privateSpaceMaintainer.deletePrivateSpace();
|
||||
}
|
||||
|
||||
/** Tests that {@link PrivateSpaceMaintainer#deletePrivateSpace()} deletes PS when PS exists. */
|
||||
@Test
|
||||
public void deletePrivateSpace_psExists_deletesPS() {
|
||||
@@ -137,4 +150,52 @@ public class PrivateSpaceMaintainerTest {
|
||||
assertThat(privateSpaceMaintainer.getHidePrivateSpaceEntryPointSetting())
|
||||
.isEqualTo(HIDE_PRIVATE_SPACE_ENTRY_POINT_ENABLED_VAL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that {@link PrivateSpaceMaintainer#lockPrivateSpace()} when PS exists and is running
|
||||
* locks the private profile.
|
||||
*/
|
||||
@Test
|
||||
public void lockPrivateSpace_psExistsAndPrivateProfileRunning_locksCreatedPrivateSpace() {
|
||||
PrivateSpaceMaintainer privateSpaceMaintainer =
|
||||
PrivateSpaceMaintainer.getInstance(mContext);
|
||||
privateSpaceMaintainer.createPrivateSpace();
|
||||
assertThat(privateSpaceMaintainer.doesPrivateSpaceExist()).isTrue();
|
||||
assertThat(privateSpaceMaintainer.isPrivateProfileRunning()).isTrue();
|
||||
assertThat(privateSpaceMaintainer.isPrivateSpaceLocked()).isFalse();
|
||||
assertThat(privateSpaceMaintainer.lockPrivateSpace()).isTrue();
|
||||
assertThat(privateSpaceMaintainer.isPrivateSpaceLocked()).isTrue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that {@link PrivateSpaceMaintainer#lockPrivateSpace()} when PS exist and private
|
||||
* profile not running returns false.
|
||||
*/
|
||||
@Test
|
||||
public void lockPrivateSpace_psExistsAndPrivateProfileNotRunning_returnsFalse() {
|
||||
PrivateSpaceMaintainer privateSpaceMaintainer =
|
||||
PrivateSpaceMaintainer.getInstance(mContext);
|
||||
privateSpaceMaintainer.createPrivateSpace();
|
||||
assertThat(privateSpaceMaintainer.doesPrivateSpaceExist()).isTrue();
|
||||
assertThat(privateSpaceMaintainer.isPrivateProfileRunning()).isTrue();
|
||||
IActivityManager am = ActivityManager.getService();
|
||||
try {
|
||||
am.stopProfile(privateSpaceMaintainer.getPrivateProfileHandle().getIdentifier());
|
||||
} catch (RemoteException e) {
|
||||
Assert.fail("Stop profile failed with exception " + e.getMessage());
|
||||
}
|
||||
assertThat(privateSpaceMaintainer.isPrivateProfileRunning()).isFalse();
|
||||
assertThat(privateSpaceMaintainer.lockPrivateSpace()).isFalse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that {@link PrivateSpaceMaintainer#lockPrivateSpace()} when no PS exists returns false.
|
||||
*/
|
||||
@Test
|
||||
public void lockPrivateSpace_psDoesNotExist_returnsFalse() {
|
||||
PrivateSpaceMaintainer privateSpaceMaintainer =
|
||||
PrivateSpaceMaintainer.getInstance(mContext);
|
||||
assertThat(privateSpaceMaintainer.doesPrivateSpaceExist()).isFalse();
|
||||
assertThat(privateSpaceMaintainer.lockPrivateSpace()).isFalse();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user