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

Commit 15ff73e8 authored by Chris Antol's avatar Chris Antol Committed by Android (Google) Code Review
Browse files

Merge "Restrict Settings Homepage prior to provisioning" into main

parents 517bc0c8 70a5a0fd
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -187,6 +187,15 @@ public class SettingsHomepageActivity extends FragmentActivity implements
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Ensure device is provisioned in order to access Settings home
        // TODO(b/331254029): This should later be replaced in favor of an allowlist
        boolean unprovisioned = android.provider.Settings.Global.getInt(getContentResolver(),
                android.provider.Settings.Global.DEVICE_PROVISIONED, 0) == 0;
        if (unprovisioned) {
            Log.e(TAG, "Device is not provisioned, exiting Settings");
            finish();
        }

        mIsEmbeddingActivityEnabled = ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this);
        if (mIsEmbeddingActivityEnabled) {
            final UserManager um = getSystemService(UserManager.class);
+19 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
@@ -54,6 +55,7 @@ import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin;

import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -80,11 +82,28 @@ public class SettingsHomepageActivityTest {
    @Rule
    public final MockitoRule mMockitoRule = MockitoJUnit.rule();

    @Before
    public void setup() {
        Settings.Global.putInt(ApplicationProvider.getApplicationContext().getContentResolver(),
                Settings.Global.DEVICE_PROVISIONED, 1);
    }

    @After
    public void tearDown() {
        ShadowPasswordUtils.reset();
    }

    @Test
    public void launch_deviceUnprovisioned_finish() {
        Settings.Global.putInt(ApplicationProvider.getApplicationContext().getContentResolver(),
                Settings.Global.DEVICE_PROVISIONED, 0);

        SettingsHomepageActivity activity = Robolectric.buildActivity(
                SettingsHomepageActivity.class).create().get();

        assertThat(activity.isFinishing()).isTrue();
    }

    @Test
    public void launch_shouldHaveAnimationForIaFragment() {
        final SettingsHomepageActivity activity = Robolectric.buildActivity(