Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02f1db61 authored by Joseph Vincent's avatar Joseph Vincent Committed by Android (Google) Code Review
Browse files

Merge "Set SKIP_FIRST_USE_HINTS setting for private space" into main

parents 96401147 83f73732
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ 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.SKIP_FIRST_USE_HINTS;
import static android.provider.Settings.Secure.USER_SETUP_COMPLETE;

import android.app.ActivityManager;
@@ -122,6 +123,7 @@ public class PrivateSpaceMaintainer {
            Log.i(TAG, "Private space created with id: " + mUserHandle.getIdentifier());
            resetPrivateSpaceSettings();
            setUserSetupComplete();
            setSkipFirstUseHints();
        }
        return true;
    }
@@ -350,6 +352,17 @@ public class PrivateSpaceMaintainer {
                1, mUserHandle.getIdentifier());
    }

    /**
     * Sets the SKIP_FIRST_USE_HINTS for private profile so that the first launch of an app in
     * private space will not display introductory hints.
     */
    @GuardedBy("this")
    private void setSkipFirstUseHints() {
        Log.d(TAG, "setting SKIP_FIRST_USE_HINTS = 1 for private profile");
        Settings.Secure.putIntForUser(mContext.getContentResolver(), SKIP_FIRST_USE_HINTS,
                1, mUserHandle.getIdentifier());
    }

    private boolean isPrivateSpaceAutoLockSupported() {
        return android.os.Flags.allowPrivateProfile()
                && android.multiuser.Flags.supportAutolockForPrivateSpace()
+34 −0
Original line number Diff line number Diff line
@@ -421,6 +421,30 @@ public class PrivateSpaceMaintainerTest {
        assertThat(privateSpaceMaintainer.isPrivateSpaceEntryPointEnabled()).isFalse();
    }

    @Test
    public void createPrivateSpace_psDoesNotExist_setsSkipFirstUseHints() {
        mSetFlagsRule.enableFlags(
                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
        assumeTrue(mContext.getSystemService(UserManager.class).canAddPrivateProfile());
        PrivateSpaceMaintainer privateSpaceMaintainer =
                PrivateSpaceMaintainer.getInstance(mContext);
        privateSpaceMaintainer.createPrivateSpace();
        assertThat(getSecureSkipFirstUseHints()).isEqualTo(1);
    }

    @Test
    public void createPrivateSpace_pSExists_doesNotChangeSkipFirstUseHints() {
        mSetFlagsRule.enableFlags(
                android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
        assumeTrue(mContext.getSystemService(UserManager.class).canAddPrivateProfile());
        PrivateSpaceMaintainer privateSpaceMaintainer =
                PrivateSpaceMaintainer.getInstance(mContext);
        privateSpaceMaintainer.createPrivateSpace();
        assertThat(getSecureSkipFirstUseHints()).isEqualTo(1);
        privateSpaceMaintainer.createPrivateSpace();
        assertThat(getSecureSkipFirstUseHints()).isEqualTo(1);
    }

    private int getSecureUserSetupComplete() {
        PrivateSpaceMaintainer privateSpaceMaintainer =
                PrivateSpaceMaintainer.getInstance(mContext);
@@ -431,6 +455,16 @@ public class PrivateSpaceMaintainerTest {
                privateSpaceMaintainer.getPrivateProfileHandle().getIdentifier());
    }

    private int getSecureSkipFirstUseHints() {
        PrivateSpaceMaintainer privateSpaceMaintainer =
                PrivateSpaceMaintainer.getInstance(mContext);
        return Settings.Secure.getIntForUser(
                mContentResolver,
                Settings.Secure.SKIP_FIRST_USE_HINTS,
                0,
                privateSpaceMaintainer.getPrivateProfileHandle().getIdentifier());
    }

    private int getPsSensitiveNotificationsValue(PrivateSpaceMaintainer privateSpaceMaintainer) {
        return Settings.Secure.getIntForUser(mContentResolver,
                LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS,