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

Commit a3d10620 authored by Bill Rassieur's avatar Bill Rassieur
Browse files

Merge PPR2.181005.003 from pi-release-2 into pi-platform-release.

Change-Id: Ib38d3cdccddfe001600aeccf593b59c0e79505e9
BUG: 117431430
parents 73b36ef8 17087369
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -291,8 +291,10 @@ public class SettingsActivity extends SettingsDrawerActivity
            launchSettingFragment(initialFragmentName, isSubSettings, intent);
            launchSettingFragment(initialFragmentName, isSubSettings, intent);
        }
        }


        final boolean deviceProvisioned = Utils.isDeviceProvisioned(this);
        if (mIsShowingDashboard) {
        if (mIsShowingDashboard) {
            findViewById(R.id.search_bar).setVisibility(View.VISIBLE);
            findViewById(R.id.search_bar).setVisibility(
                    deviceProvisioned ? View.VISIBLE : View.INVISIBLE);
            findViewById(R.id.action_bar).setVisibility(View.GONE);
            findViewById(R.id.action_bar).setVisibility(View.GONE);
            final Toolbar toolbar = findViewById(R.id.search_action_bar);
            final Toolbar toolbar = findViewById(R.id.search_action_bar);
            FeatureFactory.getFactory(this).getSearchFeatureProvider()
            FeatureFactory.getFactory(this).getSearchFeatureProvider()
@@ -311,7 +313,6 @@ public class SettingsActivity extends SettingsDrawerActivity


        ActionBar actionBar = getActionBar();
        ActionBar actionBar = getActionBar();
        if (actionBar != null) {
        if (actionBar != null) {
            boolean deviceProvisioned = Utils.isDeviceProvisioned(this);
            actionBar.setDisplayHomeAsUpEnabled(deviceProvisioned);
            actionBar.setDisplayHomeAsUpEnabled(deviceProvisioned);
            actionBar.setHomeButtonEnabled(deviceProvisioned);
            actionBar.setHomeButtonEnabled(deviceProvisioned);
            actionBar.setDisplayShowTitleEnabled(!mIsShowingDashboard);
            actionBar.setDisplayShowTitleEnabled(!mIsShowingDashboard);
+9 −0
Original line number Original line Diff line number Diff line
@@ -164,6 +164,11 @@ public class ChooseLockGeneric extends SettingsActivity {
        @Override
        @Override
        public void onCreate(Bundle savedInstanceState) {
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            super.onCreate(savedInstanceState);
            final Activity activity = getActivity();
            if (!Utils.isDeviceProvisioned(activity) && !canRunBeforeDeviceProvisioned()) {
                activity.finish();
                return;
            }


            String chooseLockAction = getActivity().getIntent().getAction();
            String chooseLockAction = getActivity().getIntent().getAction();
            mFingerprintManager = Utils.getFingerprintManagerOrNull(getActivity());
            mFingerprintManager = Utils.getFingerprintManagerOrNull(getActivity());
@@ -249,6 +254,10 @@ public class ChooseLockGeneric extends SettingsActivity {
            addHeaderView();
            addHeaderView();
        }
        }


        protected boolean canRunBeforeDeviceProvisioned() {
            return false;
        }

        protected void addHeaderView() {
        protected void addHeaderView() {
            if (mForFingerprint) {
            if (mForFingerprint) {
                setHeaderView(R.layout.choose_lock_generic_fingerprint_header);
                setHeaderView(R.layout.choose_lock_generic_fingerprint_header);
+5 −0
Original line number Original line Diff line number Diff line
@@ -129,6 +129,11 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric {
            return layout.onCreateRecyclerView(inflater, parent, savedInstanceState);
            return layout.onCreateRecyclerView(inflater, parent, savedInstanceState);
        }
        }


        @Override
        protected boolean canRunBeforeDeviceProvisioned() {
            return true;
        }

        /***
        /***
         * Disables preferences that are less secure than required quality and shows only secure
         * Disables preferences that are less secure than required quality and shows only secure
         * screen lock options here.
         * screen lock options here.
+4 −0
Original line number Original line Diff line number Diff line
@@ -25,6 +25,7 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.MenuItem;


import com.android.settings.R;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -52,6 +53,9 @@ public class SearchMenuController implements LifecycleObserver, OnCreateOptionsM


    @Override
    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        if (!Utils.isDeviceProvisioned(mHost.getContext())) {
            return;
        }
        if (menu == null) {
        if (menu == null) {
            return;
            return;
        }
        }
+40 −0
Original line number Original line Diff line number Diff line
@@ -16,6 +16,7 @@


package com.android.settings;
package com.android.settings;


import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doReturn;
@@ -27,17 +28,25 @@ import static org.mockito.Mockito.when;
import android.app.ActivityManager;
import android.app.ActivityManager;
import android.app.FragmentManager;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.app.FragmentTransaction;
import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.Settings.Global;
import android.view.View;


import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;


import org.junit.Before;
import org.junit.Before;
import org.junit.Test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;


@RunWith(SettingsRobolectricTestRunner.class)
@RunWith(SettingsRobolectricTestRunner.class)
public class SettingsActivityTest {
public class SettingsActivityTest {
@@ -49,15 +58,46 @@ public class SettingsActivityTest {
    @Mock
    @Mock
    private Bitmap mBitmap;
    private Bitmap mBitmap;
    private SettingsActivity mActivity;
    private SettingsActivity mActivity;
    private Context mContext;


    @Before
    @Before
    public void setUp() {
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        MockitoAnnotations.initMocks(this);


        mContext = RuntimeEnvironment.application;
        mActivity = spy(new SettingsActivity());
        mActivity = spy(new SettingsActivity());
        doReturn(mBitmap).when(mActivity).getBitmapFromXmlResource(anyInt());
        doReturn(mBitmap).when(mActivity).getBitmapFromXmlResource(anyInt());
    }
    }


    @Test
    @Config(shadows = {
        SettingsShadowResourcesImpl.class,
        SettingsShadowResources.SettingsShadowTheme.class,
    })
    public void onCreate_deviceNotProvisioned_shouldDisableSearch() {
        Global.putInt(mContext.getContentResolver(), Global.DEVICE_PROVISIONED, 0);
        final Intent intent = new Intent(mContext, Settings.class);
        final SettingsActivity activity =
            Robolectric.buildActivity(SettingsActivity.class, intent).create(Bundle.EMPTY).get();

        assertThat(activity.findViewById(R.id.search_bar).getVisibility())
            .isEqualTo(View.INVISIBLE);
    }

    @Test
    @Config(shadows = {
        SettingsShadowResourcesImpl.class,
        SettingsShadowResources.SettingsShadowTheme.class,
    })
    public void onCreate_deviceProvisioned_shouldEnableSearch() {
        Global.putInt(mContext.getContentResolver(), Global.DEVICE_PROVISIONED, 1);
        final Intent intent = new Intent(mContext, Settings.class);
        final SettingsActivity activity =
            Robolectric.buildActivity(SettingsActivity.class, intent).create(Bundle.EMPTY).get();

        assertThat(activity.findViewById(R.id.search_bar).getVisibility()).isEqualTo(View.VISIBLE);
    }

    @Test
    @Test
    public void launchSettingFragment_nullExtraShowFragment_shouldNotCrash() {
    public void launchSettingFragment_nullExtraShowFragment_shouldNotCrash() {
        when(mActivity.getFragmentManager()).thenReturn(mFragmentManager);
        when(mActivity.getFragmentManager()).thenReturn(mFragmentManager);
Loading