Loading packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +39 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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) { Loading packages/SystemUI/res/values/config.xml +1 −1 Original line number Diff line number Diff line Loading @@ -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 --> Loading packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java +0 −36 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } Loading @@ -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; } Loading packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java +1 −13 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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) { Loading Loading @@ -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; Loading packages/SystemUI/tests/src/com/android/systemui/qs/QSTileHostTest.java +0 −19 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading Loading @@ -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()); Loading @@ -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 Loading
packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +39 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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) { Loading
packages/SystemUI/res/values/config.xml +1 −1 Original line number Diff line number Diff line Loading @@ -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 --> Loading
packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java +0 −36 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } Loading @@ -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; } Loading
packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java +1 −13 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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) { Loading Loading @@ -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; Loading
packages/SystemUI/tests/src/com/android/systemui/qs/QSTileHostTest.java +0 −19 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading Loading @@ -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()); Loading @@ -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