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

Commit 8bbbb083 authored by yinxu's avatar yinxu
Browse files

Hide the WifiTIle and CellularTile for Provider Model

Bug: 174753536
Test: Manual Tests
Change-Id: I3bb1bd81abe7cdbaae95b0bb904a5d0af41d733e
parent 6d6a9489
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -457,6 +457,17 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D
                if (!addedDefault) {
                    List<String> defaultSpecs = getDefaultSpecs(context);
                    for (String spec : defaultSpecs) {
                        // TODO(b/174753536): Move it into the config file.
                        if (FeatureFlagUtils.isEnabled(
                                context, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
                            if (spec.equals("wifi") || spec.equals("cell")) {
                                continue;
                            }
                        } else {
                            if (spec.equals("internet")) {
                                continue;
                            }
                        }
                        if (!addedSpecs.contains(spec)) {
                            tiles.add(spec);
                            addedSpecs.add(spec);
+17 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.service.quicksettings.Tile;
import android.service.quicksettings.TileService;
import android.text.TextUtils;
import android.util.ArraySet;
import android.util.FeatureFlagUtils;
import android.widget.Button;

import com.android.systemui.R;
@@ -113,10 +114,26 @@ public class TileQueryHelper {
        }

        final ArrayList<QSTile> tilesToAdd = new ArrayList<>();
        // TODO(b/174753536): Move it into the config file.
        if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
            if (!possibleTiles.contains("internet")) {
                possibleTiles.add("internet");
            }
        }
        for (String spec : possibleTiles) {
            // Only add current and stock tiles that can be created from QSFactoryImpl.
            // Do not include CustomTile. Those will be created by `addPackageTiles`.
            if (spec.startsWith(CustomTile.PREFIX)) continue;
            // TODO(b/174753536): Move it into the config file.
            if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
                if (spec.equals("wifi") || spec.equals("cell")) {
                    continue;
                }
            } else {
                if (spec.equals("internet")) {
                    continue;
                }
            }
            final QSTile tile = host.createTile(spec);
            if (tile == null) {
                continue;
+19 −0
Original line number Diff line number Diff line
@@ -38,9 +38,11 @@ import android.provider.Settings;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
import android.testing.TestableLooper.RunWithLooper;
import android.util.FeatureFlagUtils;

import androidx.test.filters.SmallTest;

import com.android.dx.mockito.inline.extended.ExtendedMockito;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.util.CollectionUtils;
@@ -62,11 +64,14 @@ import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.tuner.TunerService;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;

import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -117,9 +122,16 @@ public class QSTileHostTest extends SysuiTestCase {
    private Handler mHandler;
    private TestableLooper mLooper;
    private QSTileHost mQSTileHost;
    MockitoSession mMockingSession = null;

    @Before
    public void setUp() {
        // TODO(b/174753536): Remove the mMockingSession when
        // FeatureFlagUtils.SETTINGS_PROVIDER_MODEL is removed.
        mMockingSession = ExtendedMockito.mockitoSession().strictness(Strictness.LENIENT)
                .mockStatic(FeatureFlagUtils.class).startMocking();
        ExtendedMockito.doReturn(false).when(() -> FeatureFlagUtils.isEnabled(mContext,
                FeatureFlagUtils.SETTINGS_PROVIDER_MODEL));
        MockitoAnnotations.initMocks(this);
        mLooper = TestableLooper.get(this);
        mHandler = new Handler(mLooper.getLooper());
@@ -132,6 +144,13 @@ public class QSTileHostTest extends SysuiTestCase {
                "", ActivityManager.getCurrentUser());
    }

    @After
    public void tearDown() throws Exception {
        if (mMockingSession != null) {
            mMockingSession.finishMocking();
        }
    }

    private void setUpTileFactory() {
        when(mMockState.toString()).thenReturn(MOCK_STATE_STRING);
        // Only create this kind of tiles
+19 −0
Original line number Diff line number Diff line
@@ -45,9 +45,11 @@ import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
import android.text.TextUtils;
import android.util.ArraySet;
import android.util.FeatureFlagUtils;

import androidx.test.filters.SmallTest;

import com.android.dx.mockito.inline.extended.ExtendedMockito;
import com.android.internal.logging.InstanceId;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
@@ -59,6 +61,7 @@ import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.concurrency.FakeExecutor;
import com.android.systemui.util.time.FakeSystemClock;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -68,6 +71,8 @@ import org.mockito.Captor;
import org.mockito.InOrder;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;

import java.util.ArrayList;
import java.util.Arrays;
@@ -113,10 +118,17 @@ public class TileQueryHelperTest extends SysuiTestCase {
    private TileQueryHelper mTileQueryHelper;
    private FakeExecutor mMainExecutor;
    private FakeExecutor mBgExecutor;
    MockitoSession mMockingSession = null;

    @Before
    public void setup() {
        MockitoAnnotations.initMocks(this);
        // TODO(b/174753536): Remove the mMockingSession when
        // FeatureFlagUtils.SETTINGS_PROVIDER_MODEL is removed.
        mMockingSession = ExtendedMockito.mockitoSession().strictness(Strictness.LENIENT)
                .mockStatic(FeatureFlagUtils.class).startMocking();
        ExtendedMockito.doReturn(false).when(() -> FeatureFlagUtils.isEnabled(mContext,
                FeatureFlagUtils.SETTINGS_PROVIDER_MODEL));

        mContext.setMockPackageManager(mPackageManager);

@@ -140,6 +152,13 @@ public class TileQueryHelperTest extends SysuiTestCase {
        mTileQueryHelper.setListener(mListener);
    }

    @After
    public void tearDown() throws Exception {
        if (mMockingSession != null) {
            mMockingSession.finishMocking();
        }
    }

    @Test
    public void testIsFinished_falseBeforeQuerying() {
        assertFalse(mTileQueryHelper.isFinished());