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

Commit cf0e5c4b authored by Ben Reich's avatar Ben Reich Committed by Android (Google) Code Review
Browse files

Merge "Only hide the AppsRow on devices the are non-FEATURE_PC" into main

parents d1b5bf90 daf172e1
Loading
Loading
Loading
Loading
+17 −7
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.documentsui.dirlist;

import static com.android.documentsui.util.FlagUtils.isUseMaterial3FlagEnabled;

import android.text.TextUtils;
import android.view.LayoutInflater;
@@ -57,25 +56,36 @@ public class AppsRowManager {
    private final UserIdManager mUserIdManager;
    private final UserManagerState mUserManagerState;
    private final ConfigStore mConfigStore;

    public AppsRowManager(ActionHandler handler, boolean maybeShowBadge,
            UserIdManager userIdManager, ConfigStore configStore) {
    private final boolean mShouldShowByDefault;

    public AppsRowManager(
            ActionHandler handler,
            boolean maybeShowBadge,
            UserIdManager userIdManager,
            ConfigStore configStore,
            boolean shouldShowByDefault) {
        mDataList = new ArrayList<>();
        mActionHandler = handler;
        mMaybeShowBadge = maybeShowBadge;
        mUserIdManager = userIdManager;
        mUserManagerState = null;
        mConfigStore = configStore;
        mShouldShowByDefault = shouldShowByDefault;
    }

    public AppsRowManager(ActionHandler handler, boolean maybeShowBadge,
            UserManagerState userManagerState, ConfigStore configStore) {
    public AppsRowManager(
            ActionHandler handler,
            boolean maybeShowBadge,
            UserManagerState userManagerState,
            ConfigStore configStore,
            boolean shouldShowByDefault) {
        mDataList = new ArrayList<>();
        mActionHandler = handler;
        mMaybeShowBadge = maybeShowBadge;
        mUserIdManager = null;
        mUserManagerState = userManagerState;
        mConfigStore = configStore;
        mShouldShowByDefault = shouldShowByDefault;
    }

    public List<AppsRowItemData> updateList(List<Item> itemList) {
@@ -105,7 +115,7 @@ public class AppsRowManager {
    }

    private boolean shouldShow(State state, boolean isSearchExpanded) {
        if (isUseMaterial3FlagEnabled()) {
        if (!mShouldShowByDefault) {
            return false;
        }

+16 −4
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static com.android.documentsui.util.FlagUtils.isZipNgFlagEnabled;

import android.app.ActivityManager.TaskDescription;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
@@ -224,11 +225,22 @@ public class FilesActivity extends BaseActivity implements AbstractActionHandler
    }

    private AppsRowManager getAppsRowManager() {
        boolean shouldShowByDefault =
                !isUseMaterial3FlagEnabled()
                        || !getPackageManager().hasSystemFeature(PackageManager.FEATURE_PC);
        return mConfigStore.isPrivateSpaceInDocsUIEnabled()
                ? new AppsRowManager(mInjector.actions, mState.supportsCrossProfile(),
                mUserManagerState, mConfigStore)
                : new AppsRowManager(mInjector.actions, mState.supportsCrossProfile(),
                        mUserIdManager, mConfigStore);
                ? new AppsRowManager(
                mInjector.actions,
                mState.supportsCrossProfile(),
                mUserManagerState,
                mConfigStore,
                shouldShowByDefault)
                : new AppsRowManager(
                        mInjector.actions,
                        mState.supportsCrossProfile(),
                        mUserIdManager,
                        mConfigStore,
                        shouldShowByDefault);
    }

    // This is called in the intent contains label and icon resources.
+16 −4
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static com.android.documentsui.base.State.ACTION_PICK_COPY_DESTINATION;
import static com.android.documentsui.util.FlagUtils.isUseMaterial3FlagEnabled;

import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.Color;
import android.net.Uri;
@@ -175,11 +176,22 @@ public class PickActivity extends BaseActivity implements ActionHandler.Addons {
    }

    private AppsRowManager getAppsRowManager() {
        boolean shouldShowByDefault =
                !isUseMaterial3FlagEnabled()
                        || !getPackageManager().hasSystemFeature(PackageManager.FEATURE_PC);
        return mConfigStore.isPrivateSpaceInDocsUIEnabled()
                ? new AppsRowManager(mInjector.actions, mState.supportsCrossProfile(),
                mUserManagerState, mConfigStore)
                : new AppsRowManager(mInjector.actions, mState.supportsCrossProfile(),
                        mUserIdManager, mConfigStore);
                ? new AppsRowManager(
                mInjector.actions,
                mState.supportsCrossProfile(),
                mUserManagerState,
                mConfigStore,
                shouldShowByDefault)
                : new AppsRowManager(
                        mInjector.actions,
                        mState.supportsCrossProfile(),
                        mUserIdManager,
                        mConfigStore,
                        shouldShowByDefault);
    }

    @Override
+21 −3
Original line number Diff line number Diff line
@@ -16,7 +16,10 @@

package com.android.documentsui.dirlist;

import static com.android.documentsui.util.FlagUtils.isUseMaterial3FlagEnabled;

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

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
@@ -25,12 +28,13 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;

import androidx.test.InstrumentationRegistry;
import androidx.test.platform.app.InstrumentationRegistry;

import com.android.documentsui.ActionHandler;
import com.android.documentsui.BaseActivity;
@@ -52,6 +56,7 @@ import com.android.modules.utils.build.SdkLevel;
import com.google.common.collect.Lists;

import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -89,6 +94,19 @@ public class AppsRowManagerTest {
        return com.google.android.collect.Lists.newArrayList(true, false);
    }

    @BeforeClass
    public static void setUpClass() {
        if (isUseMaterial3FlagEnabled()) {
            // The AppsRowManager is only available on devices that don't specify `FEATURE_PC`.
            assume().that(
                            InstrumentationRegistry.getInstrumentation()
                                    .getTargetContext()
                                    .getPackageManager()
                                    .hasSystemFeature(PackageManager.FEATURE_PC))
                    .isFalse();
        }
    }

    @Before
    public void setUp() {
        mActionHandler = new TestActionHandler();
@@ -124,13 +142,13 @@ public class AppsRowManagerTest {
                    Lists.newArrayList(UserId.DEFAULT_USER, TestProvidersAccess.OtherUser.USER_ID,
                            TestProvidersAccess.AnotherUser.USER_ID);
            return new AppsRowManager(mActionHandler, mMaybeShowBadge, mTestUserManagerState,
                    mTestConfigStore);
                    mTestConfigStore, /*shouldShowByDefault=*/true);
        }
        mTestUserIdManager = new TestUserIdManager();
        mTestUserIdManager.userIds =
                Lists.newArrayList(UserId.DEFAULT_USER, TestProvidersAccess.OtherUser.USER_ID);
        return new AppsRowManager(mActionHandler, mMaybeShowBadge, mTestUserIdManager,
                mTestConfigStore);
                mTestConfigStore, /*shouldShowByDefault=*/true);
    }

    @Test