Remove Dependency.get usages from QSTileHost.
Test: existing tests
Change-Id: I348bdb1c7e14810a2864637d550a388e6f399f6d
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
index ff73cf1..3a6b785 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
@@ -20,6 +20,7 @@
import android.content.Intent;
import android.content.res.Resources;
import android.os.Handler;
+import android.os.Looper;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
@@ -69,6 +70,8 @@
private final LinkedHashMap<String, QSTile> mTiles = new LinkedHashMap<>();
protected final ArrayList<String> mTileSpecs = new ArrayList<>();
private final TileServices mServices;
+ private final TunerService mTunerService;
+ private final PluginManager mPluginManager;
private final List<Callback> mCallbacks = new ArrayList<>();
private final AutoTileManager mAutoTiles;
@@ -81,21 +84,26 @@
public QSTileHost(Context context,
StatusBarIconController iconController,
QSFactoryImpl defaultFactory,
- @Named(Dependency.MAIN_HANDLER_NAME) Handler mainHandler) {
+ @Named(Dependency.MAIN_HANDLER_NAME) Handler mainHandler,
+ @Named(Dependency.BG_LOOPER_NAME) Looper bgLooper,
+ PluginManager pluginManager,
+ TunerService tunerService) {
mIconController = iconController;
mContext = context;
+ mTunerService = tunerService;
+ mPluginManager = pluginManager;
- mServices = new TileServices(this, Dependency.get(Dependency.BG_LOOPER));
+ mServices = new TileServices(this, bgLooper);
defaultFactory.setHost(this);
mQsFactories.add(defaultFactory);
- Dependency.get(PluginManager.class).addPluginListener(this, QSFactory.class, true);
+ pluginManager.addPluginListener(this, QSFactory.class, true);
mainHandler.post(() -> {
// This is technically a hack to avoid circular dependency of
// QSTileHost -> XXXTile -> QSTileHost. Posting ensures creation
// finishes before creating any tiles.
- Dependency.get(TunerService.class).addTunable(this, TILES_SETTING);
+ tunerService.addTunable(this, TILES_SETTING);
});
// AutoTileManager can modify mTiles so make sure mTiles has already been initialized.
mAutoTiles = new AutoTileManager(context, this);
@@ -108,16 +116,16 @@
public void destroy() {
mTiles.values().forEach(tile -> tile.destroy());
mAutoTiles.destroy();
- Dependency.get(TunerService.class).removeTunable(this);
+ mTunerService.removeTunable(this);
mServices.destroy();
- Dependency.get(PluginManager.class).removePluginListener(this);
+ mPluginManager.removePluginListener(this);
}
@Override
public void onPluginConnected(QSFactory plugin, Context pluginContext) {
// Give plugins priority over creation so they can override if they wish.
mQsFactories.add(0, plugin);
- String value = Dependency.get(TunerService.class).getValue(TILES_SETTING);
+ String value = mTunerService.getValue(TILES_SETTING);
// Force remove and recreate of all tiles.
onTuningChanged(TILES_SETTING, "");
onTuningChanged(TILES_SETTING, value);
@@ -127,7 +135,7 @@
public void onPluginDisconnected(QSFactory plugin) {
mQsFactories.remove(plugin);
// Force remove and recreate of all tiles.
- String value = Dependency.get(TunerService.class).getValue(TILES_SETTING);
+ String value = mTunerService.getValue(TILES_SETTING);
onTuningChanged(TILES_SETTING, "");
onTuningChanged(TILES_SETTING, value);
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
index 5bdaf60..2cb326e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
@@ -38,11 +38,13 @@
import com.android.systemui.SystemUIFactory;
import com.android.systemui.SysuiBaseFragmentTest;
import com.android.systemui.qs.tileimpl.QSFactoryImpl;
+import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.policy.Clock;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
import com.android.systemui.statusbar.policy.UserSwitcherController;
+import com.android.systemui.tuner.TunerService;
import com.android.systemui.util.InjectionInflationController;
import org.junit.Before;
@@ -89,7 +91,8 @@
mFragments.dispatchResume();
processAllMessages();
QSTileHost host = new QSTileHost(mContext, mock(StatusBarIconController.class),
- mock(QSFactoryImpl.class), new Handler());
+ mock(QSFactoryImpl.class), new Handler(), Looper.myLooper(),
+ mock(PluginManager.class), mock(TunerService.class));
qs.setHost(host);
qs.setListening(true);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileServicesTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileServicesTest.java
index de5952e..63f4bbc 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileServicesTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileServicesTest.java
@@ -32,8 +32,10 @@
import com.android.systemui.SysuiTestCase;
import com.android.systemui.qs.QSTileHost;
import com.android.systemui.qs.tileimpl.QSFactoryImpl;
+import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.policy.BluetoothController;
+import com.android.systemui.tuner.TunerService;
import org.junit.After;
import org.junit.Before;
@@ -60,7 +62,10 @@
QSTileHost host = new QSTileHost(mContext,
mock(StatusBarIconController.class),
mock(QSFactoryImpl.class),
- new Handler());
+ new Handler(),
+ Looper.myLooper(),
+ mock(PluginManager.class),
+ mock(TunerService.class));
mTileService = new TestTileServices(host, Looper.getMainLooper());
}