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

Commit 0d3c916d authored by Xi Han's avatar Xi Han Committed by Android (Google) Code Review
Browse files

Merge "Make InternetTile default in SysUI."

parents 45db0e00 ddd02efb
Loading
Loading
Loading
Loading
+39 −1
Original line number Diff line number Diff line
@@ -3588,7 +3588,7 @@ public class SettingsProvider extends ContentProvider {
        }

        private final class UpgradeController {
            private static final int SETTINGS_VERSION = 204;
            private static final int SETTINGS_VERSION = 205;

            private final int mUserId;

@@ -5399,6 +5399,44 @@ public class SettingsProvider extends ContentProvider {
                        currentVersion = 204;
                }

                if (currentVersion == 204) {
                    // Version 204: Replace 'wifi' or 'cell' tiles with 'internet' if existed.
                    final SettingsState secureSettings = getSecureSettingsLocked(userId);
                    final Setting currentValue = secureSettings.getSettingLocked(Secure.QS_TILES);
                    if (!currentValue.isNull()) {
                        String tileList = currentValue.getValue();
                        String[] tileSplit = tileList.split(",");
                        final ArrayList<String> tiles = new ArrayList<String>();
                        boolean hasInternetTile = false;
                        for (int i = 0; i < tileSplit.length; i++) {
                            String tile = tileSplit[i].trim();
                            if (tile.isEmpty()) continue;
                            tiles.add(tile);
                            if (tile.equals("internet")) hasInternetTile = true;
                        }
                        if (!hasInternetTile) {
                            if (tiles.contains("wifi")) {
                                // Replace the WiFi with Internet, and remove the Cell
                                tiles.set(tiles.indexOf("wifi"), "internet");
                                tiles.remove("cell");
                            } else if (tiles.contains("cell")) {
                                // Replace the Cell with Internet
                                tiles.set(tiles.indexOf("cell"), "internet");
                            }
                        } else {
                            tiles.remove("wifi");
                            tiles.remove("cell");
                        }
                        secureSettings.insertSettingOverrideableByRestoreLocked(
                                Secure.QS_TILES,
                                TextUtils.join(",", tiles),
                                null /* tag */,
                                true /* makeDefault */,
                                SettingsState.SYSTEM_PACKAGE_NAME);
                    }
                    currentVersion = 205;
                }

                // vXXX: Add new settings above this point.

                if (currentVersion != newVersion) {
+1 −1
Original line number Diff line number Diff line
@@ -110,7 +110,7 @@

    <!-- Tiles native to System UI. Order should match "quick_settings_tiles_default" -->
    <string name="quick_settings_tiles_stock" translatable="false">
        internet,wifi,cell,bt,flashlight,dnd,alarm,airplane,controls,wallet,rotation,battery,cast,screenrecord,mictoggle,cameratoggle,location,hotspot,inversion,saver,dark,work,night,reverse,reduce_brightness
        internet,bt,flashlight,dnd,alarm,airplane,controls,wallet,rotation,battery,cast,screenrecord,mictoggle,cameratoggle,location,hotspot,inversion,saver,dark,work,night,reverse,reduce_brightness
    </string>

    <!-- The tiles to display in QuickSettings -->
+0 −36
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.plugins.PluginListener;
import com.android.systemui.plugins.qs.QSFactory;
import com.android.systemui.plugins.qs.QSTile;
@@ -512,33 +511,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D
                }
            }
        }
        // TODO(b/174753536): Move it into the config file.
        // Only do the below hacking when at least one of the below tiles exist
        //   --InternetTile
        //   --WiFiTile
        //   --CellularTIle
        if (tiles.contains("internet") || tiles.contains("wifi") || tiles.contains("cell")) {
            if (FeatureFlags.isProviderModelSettingEnabled(context)) {
                if (!tiles.contains("internet")) {
                    if (tiles.contains("wifi")) {
                        // Replace the WiFi with Internet, and remove the Cell
                        tiles.set(tiles.indexOf("wifi"), "internet");
                        tiles.remove("cell");
                    } else if (tiles.contains("cell")) {
                        // Replace the Cell with Internet
                        tiles.set(tiles.indexOf("cell"), "internet");
                    }
                } else {
                    tiles.remove("wifi");
                    tiles.remove("cell");
                }
            } else {
                if (tiles.contains("internet")) {
                    tiles.set(tiles.indexOf("internet"), "wifi");
                    tiles.add("cell");
                }
            }
        }
        return tiles;
    }

@@ -558,14 +530,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D
                && GarbageMonitor.ADD_MEMORY_TILE_TO_DEFAULT_ON_DEBUGGABLE_BUILDS) {
            tiles.add(GarbageMonitor.MemoryTile.TILE_SPEC);
        }
        // TODO(b/174753536): Change the config file directly.
        // Filter out unused tiles from the default QS config.
        if (FeatureFlags.isProviderModelSettingEnabled(context)) {
            tiles.remove("cell");
            tiles.remove("wifi");
        } else {
            tiles.remove("internet");
        }
        return tiles;
    }

+1 −13
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@ import android.widget.Button;
import com.android.systemui.R;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.qs.QSTile.State;
import com.android.systemui.qs.QSTileHost;
@@ -63,7 +62,6 @@ public class TileQueryHelper {
    private final Executor mBgExecutor;
    private final Context mContext;
    private final UserTracker mUserTracker;
    private final FeatureFlags mFeatureFlags;
    private TileStateListener mListener;

    private boolean mFinished;
@@ -73,14 +71,12 @@ public class TileQueryHelper {
            Context context,
            UserTracker userTracker,
            @Main Executor mainExecutor,
            @Background Executor bgExecutor,
            FeatureFlags featureFlags
            @Background Executor bgExecutor
    ) {
        mContext = context;
        mMainExecutor = mainExecutor;
        mBgExecutor = bgExecutor;
        mUserTracker = userTracker;
        mFeatureFlags = featureFlags;
    }

    public void setListener(TileStateListener listener) {
@@ -121,19 +117,11 @@ public class TileQueryHelper {
        }

        final ArrayList<QSTile> tilesToAdd = new ArrayList<>();
        // TODO(b/174753536): Move it into the config file.
        if (mFeatureFlags.isProviderModelSettingEnabled()) {
            possibleTiles.remove("cell");
            possibleTiles.remove("wifi");
        } else {
            possibleTiles.remove("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.
            final QSTile tile = host.createTile(spec);
            if (tile == null) {
                continue;
+0 −19
Original line number Diff line number Diff line
@@ -44,7 +44,6 @@ import android.view.View;
import androidx.annotation.Nullable;
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;
@@ -53,7 +52,6 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.qs.QSFactory;
import com.android.systemui.plugins.qs.QSTile;
@@ -71,15 +69,12 @@ import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.util.settings.SecureSettings;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
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;
@@ -133,16 +128,9 @@ 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(FeatureFlags.class).startMocking();
        ExtendedMockito.doReturn(false)
                .when(() -> FeatureFlags.isProviderModelSettingEnabled(mContext));
        MockitoAnnotations.initMocks(this);
        mLooper = TestableLooper.get(this);
        mHandler = new Handler(mLooper.getLooper());
@@ -156,13 +144,6 @@ public class QSTileHostTest extends SysuiTestCase {
                .thenReturn("");
    }

    @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
Loading