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

Commit d3e0d745 authored by Daniel Nishi's avatar Daniel Nishi Committed by android-build-merger
Browse files

Merge "Show work profile apps only on app list." into oc-mr1-dev

am: 8618b864

Change-Id: I8757ff64193dc0754b01aa769e55a355464e2d01
parents f161b63c 8618b864
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -115,6 +115,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
    public static final String EXTRA_VOLUME_UUID = "volumeUuid";
    public static final String EXTRA_VOLUME_NAME = "volumeName";
    public static final String EXTRA_STORAGE_TYPE = "storageType";
    public static final String EXTRA_WORK_ONLY = "workProfileOnly";

    private static final String EXTRA_SORT_ORDER = "sortOrder";
    private static final String EXTRA_SHOW_SYSTEM = "showSystem";
@@ -277,6 +278,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
    private ResetAppsHelper mResetAppsHelper;
    private String mVolumeUuid;
    private int mStorageType;
    private boolean mIsWorkOnly;

    @Override
    public void onCreate(Bundle savedInstanceState) {
@@ -328,6 +330,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
            mListType = LIST_TYPE_MAIN;
        }
        mFilter = getDefaultFilter();
        mIsWorkOnly = args != null ? args.getBoolean(EXTRA_WORK_ONLY) : false;

        if (savedInstanceState != null) {
            mSortOrder = savedInstanceState.getInt(EXTRA_SORT_ORDER, mSortOrder);
@@ -423,6 +426,9 @@ public class ManageApplications extends InstrumentedPreferenceFragment
        }

        AppFilter compositeFilter = getCompositeFilter(mListType, mStorageType, mVolumeUuid);
        if (mIsWorkOnly) {
            compositeFilter = new CompoundFilter(compositeFilter, FILTERS[FILTER_APPS_WORK]);
        }
        if (compositeFilter != null) {
            mApplications.setCompositeFilter(compositeFilter);
        }
+7 −2
Original line number Diff line number Diff line
@@ -101,8 +101,13 @@ public class StorageProfileFragment extends DashboardFragment
    protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
        final List<AbstractPreferenceController> controllers = new ArrayList<>();
        final StorageManager sm = context.getSystemService(StorageManager.class);
        mPreferenceController = new StorageItemPreferenceController(context, this,
                mVolume, new StorageManagerVolumeProvider(sm));
        mPreferenceController =
                new StorageItemPreferenceController(
                        context,
                        this,
                        mVolume,
                        new StorageManagerVolumeProvider(sm),
                        /* isWorkProfile */ true);
        controllers.add(mPreferenceController);
        return controllers;
    }
+17 −2
Original line number Diff line number Diff line
@@ -95,6 +95,7 @@ public class StorageItemPreferenceController extends AbstractPreferenceControlle
    private StorageItemPreference mSystemPreference;

    private static final String AUTHORITY_MEDIA = "com.android.providers.media.documents";
    private boolean mIsWorkProfile;

    public StorageItemPreferenceController(
            Context context, Fragment hostFragment, VolumeInfo volume, StorageVolumeProvider svp) {
@@ -106,6 +107,16 @@ public class StorageItemPreferenceController extends AbstractPreferenceControlle
        mUserId = UserHandle.myUserId();
    }

    public StorageItemPreferenceController(
            Context context,
            Fragment hostFragment,
            VolumeInfo volume,
            StorageVolumeProvider svp,
            boolean isWorkProfile) {
        this(context, hostFragment, volume, svp);
        mIsWorkProfile = isWorkProfile;
    }

    @Override
    public boolean isAvailable() {
        return true;
@@ -212,7 +223,7 @@ public class StorageItemPreferenceController extends AbstractPreferenceControlle
        if (preference != null) {
            Drawable currentIcon = preference.getIcon();
            // Sigh... Applying the badge to the icon clobbers the tint on the base drawable.
            // For some reason, re-applying it here means the tint remains.
            // For some reason, reapplying it here means the tint remains.
            currentIcon = applyTint(mContext, currentIcon);
            preference.setIcon(pm.getUserBadgedIcon(currentIcon, userHandle));
        }
@@ -320,6 +331,7 @@ public class StorageItemPreferenceController extends AbstractPreferenceControlle
        }

        Bundle args = new Bundle();
        args.putBoolean(ManageApplications.EXTRA_WORK_ONLY, mIsWorkProfile);
        args.putString(ManageApplications.EXTRA_CLASSNAME,
                Settings.StorageUseActivity.class.getName());
        args.putString(ManageApplications.EXTRA_VOLUME_UUID, mVolume.getFsUuid());
@@ -336,6 +348,7 @@ public class StorageItemPreferenceController extends AbstractPreferenceControlle
        }

        Bundle args = new Bundle();
        args.putBoolean(ManageApplications.EXTRA_WORK_ONLY, mIsWorkProfile);
        args.putString(ManageApplications.EXTRA_CLASSNAME,
                Settings.StorageUseActivity.class.getName());
        args.putString(ManageApplications.EXTRA_VOLUME_UUID, mVolume.getFsUuid());
@@ -347,6 +360,7 @@ public class StorageItemPreferenceController extends AbstractPreferenceControlle

    private Intent getGamesIntent() {
        Bundle args = new Bundle(1);
        args.putBoolean(ManageApplications.EXTRA_WORK_ONLY, mIsWorkProfile);
        args.putString(ManageApplications.EXTRA_CLASSNAME,
                Settings.GamesStorageActivity.class.getName());
        return Utils.onBuildStartFragmentIntent(mContext,
@@ -356,6 +370,7 @@ public class StorageItemPreferenceController extends AbstractPreferenceControlle

    private Intent getMoviesIntent() {
        Bundle args = new Bundle(1);
        args.putBoolean(ManageApplications.EXTRA_WORK_ONLY, mIsWorkProfile);
        args.putString(ManageApplications.EXTRA_CLASSNAME,
                Settings.MoviesStorageActivity.class.getName());
        return Utils.onBuildStartFragmentIntent(mContext,
+24 −1
Original line number Diff line number Diff line
@@ -16,12 +16,12 @@
package com.android.settings.deviceinfo.storage;


import static com.android.settings.applications.ManageApplications.EXTRA_WORK_ONLY;
import static com.android.settings.utils.FileSizeFormatter.MEGABYTE_IN_BYTES;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
@@ -171,6 +171,29 @@ public class StorageItemPreferenceControllerTest {
                .isEqualTo(R.string.apps_storage);
    }

    @Test
    public void testClickAppsForWork() {
        mController = new StorageItemPreferenceController(mContext, mFragment, mVolume, mSvp, true);
        mPreference.setKey("pref_other_apps");
        mController.handlePreferenceTreeClick(mPreference);

        final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
        verify(mFragment.getActivity())
                .startActivityAsUser(argumentCaptor.capture(), nullable(UserHandle.class));

        Intent intent = argumentCaptor.getValue();
        assertThat(intent.getAction()).isEqualTo(Intent.ACTION_MAIN);
        assertThat(intent.getComponent().getClassName()).isEqualTo(SubSettings.class.getName());
        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
                .isEqualTo(ManageApplications.class.getName());
        assertThat(intent.getIntExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, 0))
                .isEqualTo(R.string.apps_storage);
        assertThat(
                        intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
                                .getBoolean(EXTRA_WORK_ONLY))
                .isTrue();
    }

    @Test
    public void handlePreferenceTreeClick_tappingAppsWhileUninitializedDoesntCrash() {
        mController.setVolume(null);