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

Commit 8618b864 authored by Daniel Nishi's avatar Daniel Nishi Committed by Android (Google) Code Review
Browse files

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

parents cf11e21d 83ceab82
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);