Merge "Extract QSHost interface" into tm-qpr-dev

This commit is contained in:
Fabian Kozynski
2023-02-23 20:52:27 +00:00
committed by Android (Google) Code Review
46 changed files with 360 additions and 388 deletions

View File

@@ -183,7 +183,7 @@ class AutoAddTracker @VisibleForTesting constructor(
} }
fun getRestoredTilePosition(tile: String): Int = fun getRestoredTilePosition(tile: String): Int =
restoredTiles?.get(tile)?.index ?: QSTileHost.POSITION_AT_END restoredTiles?.get(tile)?.index ?: QSHost.POSITION_AT_END
/** /**
* Returns `true` if the tile has been auto-added before * Returns `true` if the tile has been auto-added before

View File

@@ -135,7 +135,7 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener
private int mNumQuickTiles; private int mNumQuickTiles;
private int mLastQQSTileHeight; private int mLastQQSTileHeight;
private float mLastPosition; private float mLastPosition;
private final QSTileHost mHost; private final QSHost mHost;
private final Executor mExecutor; private final Executor mExecutor;
private boolean mShowCollapsedOnKeyguard; private boolean mShowCollapsedOnKeyguard;
private int mQQSTop; private int mQQSTop;
@@ -146,7 +146,7 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener
@Inject @Inject
public QSAnimator(QS qs, QuickQSPanel quickPanel, QuickStatusBarHeader quickStatusBarHeader, public QSAnimator(QS qs, QuickQSPanel quickPanel, QuickStatusBarHeader quickStatusBarHeader,
QSPanelController qsPanelController, QSPanelController qsPanelController,
QuickQSPanelController quickQSPanelController, QSTileHost qsTileHost, QuickQSPanelController quickQSPanelController, QSHost qsTileHost,
@Main Executor executor, TunerService tunerService, @Main Executor executor, TunerService tunerService,
QSExpansionPathInterpolator qsExpansionPathInterpolator) { QSExpansionPathInterpolator qsExpansionPathInterpolator) {
mQs = qs; mQs = qs;
@@ -485,7 +485,7 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener
if (specs.isEmpty()) { if (specs.isEmpty()) {
// specs should not be empty in a valid secondary page, as we scrolled to it. // specs should not be empty in a valid secondary page, as we scrolled to it.
// We may crash later on because there's a null animator. // We may crash later on because there's a null animator.
specs = mQsPanelController.getHost().mTileSpecs; specs = mHost.getSpecs();
Log.e(TAG, "Trying to create animators for empty page " + page + ". Tiles: " + specs); Log.e(TAG, "Trying to create animators for empty page " + page + ". Tiles: " + specs);
// return null; // return null;
} }

View File

@@ -14,15 +14,48 @@
package com.android.systemui.qs; package com.android.systemui.qs;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.res.Resources;
import android.os.Build;
import android.provider.Settings;
import com.android.internal.logging.InstanceId; import com.android.internal.logging.InstanceId;
import com.android.internal.logging.UiEventLogger; import com.android.internal.logging.UiEventLogger;
import com.android.systemui.R;
import com.android.systemui.plugins.qs.QSFactory;
import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.qs.QSTileView;
import com.android.systemui.util.leak.GarbageMonitor;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.List;
public interface QSHost { public interface QSHost {
String TILES_SETTING = Settings.Secure.QS_TILES;
int POSITION_AT_END = -1;
/**
* Returns the default QS tiles for the context.
* @param context the context to obtain the resources from
* @return a list of specs of the default tiles
*/
static List<String> getDefaultSpecs(Context context) {
final ArrayList<String> tiles = new ArrayList();
final Resources res = context.getResources();
final String defaultTileList = res.getString(R.string.quick_settings_tiles_default);
tiles.addAll(Arrays.asList(defaultTileList.split(",")));
if (Build.IS_DEBUGGABLE
&& GarbageMonitor.ADD_MEMORY_TILE_TO_DEFAULT_ON_DEBUGGABLE_BUILDS) {
tiles.add(GarbageMonitor.MemoryTile.TILE_SPEC);
}
return tiles;
}
void warn(String message, Throwable t); void warn(String message, Throwable t);
void collapsePanels(); void collapsePanels();
void forceCollapsePanels(); void forceCollapsePanels();
@@ -37,6 +70,44 @@ public interface QSHost {
void removeTile(String tileSpec); void removeTile(String tileSpec);
void removeTiles(Collection<String> specs); void removeTiles(Collection<String> specs);
List<String> getSpecs();
/**
* Create a view for a tile, iterating over all possible {@link QSFactory}.
*
* @see QSFactory#createTileView
*/
QSTileView createTileView(Context themedContext, QSTile tile, boolean collapsedView);
/** Create a {@link QSTile} of a {@code tileSpec} type. */
QSTile createTile(String tileSpec);
/**
* Add a tile to the end
*
* @param spec string matching a pre-defined tilespec
*/
void addTile(String spec);
/**
* Add a tile into the requested spot, or at the end if the position is greater than the number
* of tiles.
* @param spec string matching a pre-defined tilespec
* @param requestPosition -1 for end, 0 for beginning, or X for insertion at position X
*/
void addTile(String spec, int requestPosition);
void addTile(ComponentName tile);
/**
* Adds a custom tile to the set of current tiles.
* @param tile the component name of the {@link android.service.quicksettings.TileService}
* @param end if true, the tile will be added at the end. If false, at the beginning.
*/
void addTile(ComponentName tile, boolean end);
void removeTileByUser(ComponentName tile);
void changeTilesByUser(List<String> previousTiles, List<String> newTiles);
boolean isTileAdded(ComponentName componentName, int userId);
void setTileAdded(ComponentName componentName, int userId, boolean added);
int indexOf(String tileSpec); int indexOf(String tileSpec);
InstanceId getNewInstanceId(); InstanceId getNewInstanceId();

View File

@@ -79,7 +79,6 @@ public class QSPanel extends LinearLayout implements Tunable {
protected boolean mExpanded; protected boolean mExpanded;
protected boolean mListening; protected boolean mListening;
@Nullable protected QSTileHost mHost;
private final List<OnConfigurationChangedListener> mOnConfigurationChangedListeners = private final List<OnConfigurationChangedListener> mOnConfigurationChangedListeners =
new ArrayList<>(); new ArrayList<>();
@@ -359,11 +358,6 @@ public class QSPanel extends LinearLayout implements Tunable {
} }
} }
@Nullable
public QSTileHost getHost() {
return mHost;
}
public void updateResources() { public void updateResources() {
updatePadding(); updatePadding();

View File

@@ -71,7 +71,7 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
@Inject @Inject
QSPanelController(QSPanel view, TunerService tunerService, QSPanelController(QSPanel view, TunerService tunerService,
QSTileHost qstileHost, QSCustomizerController qsCustomizerController, QSHost qsHost, QSCustomizerController qsCustomizerController,
@Named(QS_USING_MEDIA_PLAYER) boolean usingMediaPlayer, @Named(QS_USING_MEDIA_PLAYER) boolean usingMediaPlayer,
@Named(QS_PANEL) MediaHost mediaHost, @Named(QS_PANEL) MediaHost mediaHost,
QSTileRevealController.Factory qsTileRevealControllerFactory, QSTileRevealController.Factory qsTileRevealControllerFactory,
@@ -80,7 +80,7 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
BrightnessSliderController.Factory brightnessSliderFactory, BrightnessSliderController.Factory brightnessSliderFactory,
FalsingManager falsingManager, FalsingManager falsingManager,
StatusBarKeyguardViewManager statusBarKeyguardViewManager) { StatusBarKeyguardViewManager statusBarKeyguardViewManager) {
super(view, qstileHost, qsCustomizerController, usingMediaPlayer, mediaHost, super(view, qsHost, qsCustomizerController, usingMediaPlayer, mediaHost,
metricsLogger, uiEventLogger, qsLogger, dumpManager); metricsLogger, uiEventLogger, qsLogger, dumpManager);
mTunerService = tunerService; mTunerService = tunerService;
mQsCustomizerController = qsCustomizerController; mQsCustomizerController = qsCustomizerController;
@@ -172,12 +172,6 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
mBrightnessMirrorHandler.setController(brightnessMirrorController); mBrightnessMirrorHandler.setController(brightnessMirrorController);
} }
/** Get the QSTileHost this panel uses. */
public QSTileHost getHost() {
return mHost;
}
/** Update appearance of QSPanel. */ /** Update appearance of QSPanel. */
public void updateResources() { public void updateResources() {
mView.updateResources(); mView.updateResources();

View File

@@ -64,7 +64,7 @@ import kotlin.jvm.functions.Function1;
public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewController<T> public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewController<T>
implements Dumpable{ implements Dumpable{
private static final String TAG = "QSPanelControllerBase"; private static final String TAG = "QSPanelControllerBase";
protected final QSTileHost mHost; protected final QSHost mHost;
private final QSCustomizerController mQsCustomizerController; private final QSCustomizerController mQsCustomizerController;
private final boolean mUsingMediaPlayer; private final boolean mUsingMediaPlayer;
protected final MediaHost mMediaHost; protected final MediaHost mMediaHost;
@@ -128,7 +128,7 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
protected QSPanelControllerBase( protected QSPanelControllerBase(
T view, T view,
QSTileHost host, QSHost host,
QSCustomizerController qsCustomizerController, QSCustomizerController qsCustomizerController,
@Named(QS_USING_MEDIA_PLAYER) boolean usingMediaPlayer, @Named(QS_USING_MEDIA_PLAYER) boolean usingMediaPlayer,
MediaHost mediaHost, MediaHost mediaHost,

View File

@@ -18,7 +18,6 @@ import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.Build;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
import android.provider.Settings.Secure; import android.provider.Settings.Secure;
@@ -56,17 +55,14 @@ import com.android.systemui.settings.UserFileManager;
import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.phone.AutoTileManager; import com.android.systemui.statusbar.phone.AutoTileManager;
import com.android.systemui.statusbar.phone.CentralSurfaces; import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService;
import com.android.systemui.tuner.TunerService.Tunable; import com.android.systemui.tuner.TunerService.Tunable;
import com.android.systemui.util.leak.GarbageMonitor;
import com.android.systemui.util.settings.SecureSettings; import com.android.systemui.util.settings.SecureSettings;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
@@ -94,16 +90,13 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
private static final int MAX_QS_INSTANCE_ID = 1 << 20; private static final int MAX_QS_INSTANCE_ID = 1 << 20;
public static final int POSITION_AT_END = -1;
public static final String TILES_SETTING = Secure.QS_TILES;
// Shared prefs that hold tile lifecycle info. // Shared prefs that hold tile lifecycle info.
@VisibleForTesting @VisibleForTesting
static final String TILES = "tiles_prefs"; static final String TILES = "tiles_prefs";
private final Context mContext; private final Context mContext;
private final LinkedHashMap<String, QSTile> mTiles = new LinkedHashMap<>(); private final LinkedHashMap<String, QSTile> mTiles = new LinkedHashMap<>();
protected final ArrayList<String> mTileSpecs = new ArrayList<>(); private final ArrayList<String> mTileSpecs = new ArrayList<>();
private final TunerService mTunerService; private final TunerService mTunerService;
private final PluginManager mPluginManager; private final PluginManager mPluginManager;
private final DumpManager mDumpManager; private final DumpManager mDumpManager;
@@ -117,7 +110,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
private final List<Callback> mCallbacks = new ArrayList<>(); private final List<Callback> mCallbacks = new ArrayList<>();
@Nullable @Nullable
private AutoTileManager mAutoTiles; private AutoTileManager mAutoTiles;
private final StatusBarIconController mIconController;
private final ArrayList<QSFactory> mQsFactories = new ArrayList<>(); private final ArrayList<QSFactory> mQsFactories = new ArrayList<>();
private int mCurrentUser; private int mCurrentUser;
private final Optional<CentralSurfaces> mCentralSurfacesOptional; private final Optional<CentralSurfaces> mCentralSurfacesOptional;
@@ -135,7 +127,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
@Inject @Inject
public QSTileHost(Context context, public QSTileHost(Context context,
StatusBarIconController iconController,
QSFactory defaultFactory, QSFactory defaultFactory,
@Main Executor mainExecutor, @Main Executor mainExecutor,
PluginManager pluginManager, PluginManager pluginManager,
@@ -152,7 +143,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
TileLifecycleManager.Factory tileLifecycleManagerFactory, TileLifecycleManager.Factory tileLifecycleManagerFactory,
UserFileManager userFileManager UserFileManager userFileManager
) { ) {
mIconController = iconController;
mContext = context; mContext = context;
mUserContext = context; mUserContext = context;
mTunerService = tunerService; mTunerService = tunerService;
@@ -186,10 +176,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
}); });
} }
public StatusBarIconController getIconController() {
return mIconController;
}
@Override @Override
public InstanceId getNewInstanceId() { public InstanceId getNewInstanceId() {
return mInstanceIdSequence.newInstanceId(); return mInstanceIdSequence.newInstanceId();
@@ -438,12 +424,7 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
addTile(spec, POSITION_AT_END); addTile(spec, POSITION_AT_END);
} }
/** @Override
* Add a tile into the requested spot, or at the end if the position is greater than the number
* of tiles.
* @param spec string matching a pre-defined tilespec
* @param requestPosition -1 for end, 0 for beginning, or X for insertion at position X
*/
public void addTile(String spec, int requestPosition) { public void addTile(String spec, int requestPosition) {
mMainExecutor.execute(() -> mMainExecutor.execute(() ->
changeTileSpecs(tileSpecs -> { changeTileSpecs(tileSpecs -> {
@@ -483,15 +464,12 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
} }
} }
@Override
public void addTile(ComponentName tile) { public void addTile(ComponentName tile) {
addTile(tile, /* end */ false); addTile(tile, /* end */ false);
} }
/** @Override
* Adds a custom tile to the set of current tiles.
* @param tile the component name of the {@link android.service.quicksettings.TileService}
* @param end if true, the tile will be added at the end. If false, at the beginning.
*/
public void addTile(ComponentName tile, boolean end) { public void addTile(ComponentName tile, boolean end) {
String spec = CustomTile.toSpec(tile); String spec = CustomTile.toSpec(tile);
addTile(spec, end ? POSITION_AT_END : 0); addTile(spec, end ? POSITION_AT_END : 0);
@@ -501,6 +479,7 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
* This will call through {@link #changeTilesByUser}. It should only be used when a tile is * This will call through {@link #changeTilesByUser}. It should only be used when a tile is
* removed by a <b>user action</b> like {@code adb}. * removed by a <b>user action</b> like {@code adb}.
*/ */
@Override
public void removeTileByUser(ComponentName tile) { public void removeTileByUser(ComponentName tile) {
mMainExecutor.execute(() -> { mMainExecutor.execute(() -> {
List<String> newSpecs = new ArrayList<>(mTileSpecs); List<String> newSpecs = new ArrayList<>(mTileSpecs);
@@ -519,6 +498,7 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
* that are removed. * that are removed.
*/ */
@MainThread @MainThread
@Override
public void changeTilesByUser(List<String> previousTiles, List<String> newTiles) { public void changeTilesByUser(List<String> previousTiles, List<String> newTiles) {
final List<String> copy = new ArrayList<>(previousTiles); final List<String> copy = new ArrayList<>(previousTiles);
final int NP = copy.size(); final int NP = copy.size();
@@ -542,8 +522,8 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
saveTilesToSettings(newTiles); saveTilesToSettings(newTiles);
} }
/** Create a {@link QSTile} of a {@code tileSpec} type. */
@Nullable @Nullable
@Override
public QSTile createTile(String tileSpec) { public QSTile createTile(String tileSpec) {
for (int i = 0; i < mQsFactories.size(); i++) { for (int i = 0; i < mQsFactories.size(); i++) {
QSTile t = mQsFactories.get(i).createTile(tileSpec); QSTile t = mQsFactories.get(i).createTile(tileSpec);
@@ -554,11 +534,7 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
return null; return null;
} }
/** @Override
* Create a view for a tile, iterating over all possible {@link QSFactory}.
*
* @see QSFactory#createTileView
*/
public QSTileView createTileView(Context themedContext, QSTile tile, boolean collapsedView) { public QSTileView createTileView(Context themedContext, QSTile tile, boolean collapsedView) {
for (int i = 0; i < mQsFactories.size(); i++) { for (int i = 0; i < mQsFactories.size(); i++) {
QSTileView view = mQsFactories.get(i) QSTileView view = mQsFactories.get(i)
@@ -578,6 +554,7 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
* tile. * tile.
* @param userId the user to check * @param userId the user to check
*/ */
@Override
public boolean isTileAdded(ComponentName componentName, int userId) { public boolean isTileAdded(ComponentName componentName, int userId) {
return mUserFileManager return mUserFileManager
.getSharedPreferences(TILES, 0, userId) .getSharedPreferences(TILES, 0, userId)
@@ -593,6 +570,7 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
* @param userId the user for this tile * @param userId the user for this tile
* @param added {@code true} if the tile is being added, {@code false} otherwise * @param added {@code true} if the tile is being added, {@code false} otherwise
*/ */
@Override
public void setTileAdded(ComponentName componentName, int userId, boolean added) { public void setTileAdded(ComponentName componentName, int userId, boolean added) {
mUserFileManager.getSharedPreferences(TILES, 0, userId) mUserFileManager.getSharedPreferences(TILES, 0, userId)
.edit() .edit()
@@ -600,6 +578,11 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
.apply(); .apply();
} }
@Override
public List<String> getSpecs() {
return mTileSpecs;
}
protected static List<String> loadTileSpecs(Context context, String tileList) { protected static List<String> loadTileSpecs(Context context, String tileList) {
final Resources res = context.getResources(); final Resources res = context.getResources();
@@ -617,7 +600,7 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
if (tile.isEmpty()) continue; if (tile.isEmpty()) continue;
if (tile.equals("default")) { if (tile.equals("default")) {
if (!addedDefault) { if (!addedDefault) {
List<String> defaultSpecs = getDefaultSpecs(context); List<String> defaultSpecs = QSHost.getDefaultSpecs(context);
for (String spec : defaultSpecs) { for (String spec : defaultSpecs) {
if (!addedSpecs.contains(spec)) { if (!addedSpecs.contains(spec)) {
tiles.add(spec); tiles.add(spec);
@@ -650,25 +633,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
return tiles; return tiles;
} }
/**
* Returns the default QS tiles for the context.
* @param context the context to obtain the resources from
* @return a list of specs of the default tiles
*/
public static List<String> getDefaultSpecs(Context context) {
final ArrayList<String> tiles = new ArrayList<String>();
final Resources res = context.getResources();
final String defaultTileList = res.getString(R.string.quick_settings_tiles_default);
tiles.addAll(Arrays.asList(defaultTileList.split(",")));
if (Build.IS_DEBUGGABLE
&& GarbageMonitor.ADD_MEMORY_TILE_TO_DEFAULT_ON_DEBUGGABLE_BUILDS) {
tiles.add(GarbageMonitor.MemoryTile.TILE_SPEC);
}
return tiles;
}
@Override @Override
public void dump(PrintWriter pw, String[] args) { public void dump(PrintWriter pw, String[] args) {
pw.println("QSTileHost:"); pw.println("QSTileHost:");

View File

@@ -48,7 +48,7 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
private final Provider<Boolean> mUsingCollapsedLandscapeMediaProvider; private final Provider<Boolean> mUsingCollapsedLandscapeMediaProvider;
@Inject @Inject
QuickQSPanelController(QuickQSPanel view, QSTileHost qsTileHost, QuickQSPanelController(QuickQSPanel view, QSHost qsHost,
QSCustomizerController qsCustomizerController, QSCustomizerController qsCustomizerController,
@Named(QS_USING_MEDIA_PLAYER) boolean usingMediaPlayer, @Named(QS_USING_MEDIA_PLAYER) boolean usingMediaPlayer,
@Named(QUICK_QS_PANEL) MediaHost mediaHost, @Named(QUICK_QS_PANEL) MediaHost mediaHost,
@@ -57,7 +57,7 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
MetricsLogger metricsLogger, UiEventLogger uiEventLogger, QSLogger qsLogger, MetricsLogger metricsLogger, UiEventLogger uiEventLogger, QSLogger qsLogger,
DumpManager dumpManager DumpManager dumpManager
) { ) {
super(view, qsTileHost, qsCustomizerController, usingMediaPlayer, mediaHost, metricsLogger, super(view, qsHost, qsCustomizerController, usingMediaPlayer, mediaHost, metricsLogger,
uiEventLogger, qsLogger, dumpManager); uiEventLogger, qsLogger, dumpManager);
mUsingCollapsedLandscapeMediaProvider = usingCollapsedLandscapeMediaProvider; mUsingCollapsedLandscapeMediaProvider = usingCollapsedLandscapeMediaProvider;
} }

View File

@@ -40,7 +40,7 @@ import com.android.systemui.plugins.qs.QSContainerController;
import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.QSEditEvent; import com.android.systemui.qs.QSEditEvent;
import com.android.systemui.qs.QSFragment; import com.android.systemui.qs.QSFragment;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.dagger.QSScope; import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.statusbar.phone.LightBarController; import com.android.systemui.statusbar.phone.LightBarController;
import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController;
@@ -57,7 +57,7 @@ import javax.inject.Inject;
@QSScope @QSScope
public class QSCustomizerController extends ViewController<QSCustomizer> { public class QSCustomizerController extends ViewController<QSCustomizer> {
private final TileQueryHelper mTileQueryHelper; private final TileQueryHelper mTileQueryHelper;
private final QSTileHost mQsTileHost; private final QSHost mQsHost;
private final TileAdapter mTileAdapter; private final TileAdapter mTileAdapter;
private final ScreenLifecycle mScreenLifecycle; private final ScreenLifecycle mScreenLifecycle;
private final KeyguardStateController mKeyguardStateController; private final KeyguardStateController mKeyguardStateController;
@@ -104,12 +104,12 @@ public class QSCustomizerController extends ViewController<QSCustomizer> {
@Inject @Inject
protected QSCustomizerController(QSCustomizer view, TileQueryHelper tileQueryHelper, protected QSCustomizerController(QSCustomizer view, TileQueryHelper tileQueryHelper,
QSTileHost qsTileHost, TileAdapter tileAdapter, ScreenLifecycle screenLifecycle, QSHost qsHost, TileAdapter tileAdapter, ScreenLifecycle screenLifecycle,
KeyguardStateController keyguardStateController, LightBarController lightBarController, KeyguardStateController keyguardStateController, LightBarController lightBarController,
ConfigurationController configurationController, UiEventLogger uiEventLogger) { ConfigurationController configurationController, UiEventLogger uiEventLogger) {
super(view); super(view);
mTileQueryHelper = tileQueryHelper; mTileQueryHelper = tileQueryHelper;
mQsTileHost = qsTileHost; mQsHost = qsHost;
mTileAdapter = tileAdapter; mTileAdapter = tileAdapter;
mScreenLifecycle = screenLifecycle; mScreenLifecycle = screenLifecycle;
mKeyguardStateController = keyguardStateController; mKeyguardStateController = keyguardStateController;
@@ -175,7 +175,7 @@ public class QSCustomizerController extends ViewController<QSCustomizer> {
private void reset() { private void reset() {
mTileAdapter.resetTileSpecs(QSTileHost.getDefaultSpecs(getContext())); mTileAdapter.resetTileSpecs(QSHost.getDefaultSpecs(getContext()));
} }
public boolean isCustomizing() { public boolean isCustomizing() {
@@ -192,7 +192,7 @@ public class QSCustomizerController extends ViewController<QSCustomizer> {
mView.show(x, y, mTileAdapter); mView.show(x, y, mTileAdapter);
mUiEventLogger.log(QSEditEvent.QS_EDIT_OPEN); mUiEventLogger.log(QSEditEvent.QS_EDIT_OPEN);
} }
mTileQueryHelper.queryTiles(mQsTileHost); mTileQueryHelper.queryTiles(mQsHost);
mKeyguardStateController.addCallback(mKeyguardCallback); mKeyguardStateController.addCallback(mKeyguardCallback);
mView.updateNavColors(mLightBarController); mView.updateNavColors(mLightBarController);
} }
@@ -258,13 +258,13 @@ public class QSCustomizerController extends ViewController<QSCustomizer> {
private void save() { private void save() {
if (mTileQueryHelper.isFinished()) { if (mTileQueryHelper.isFinished()) {
mTileAdapter.saveSpecs(mQsTileHost); mTileAdapter.saveSpecs(mQsHost);
} }
} }
private void setTileSpecs() { private void setTileSpecs() {
List<String> specs = new ArrayList<>(); List<String> specs = new ArrayList<>();
for (QSTile tile : mQsTileHost.getTiles()) { for (QSTile tile : mQsHost.getTiles()) {
specs.add(tile.getTileSpec()); specs.add(tile.getTileSpec());
} }
mTileAdapter.setTileSpecs(specs); mTileAdapter.setTileSpecs(specs);

View File

@@ -45,7 +45,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import com.android.internal.logging.UiEventLogger; import com.android.internal.logging.UiEventLogger;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.qs.QSEditEvent; import com.android.systemui.qs.QSEditEvent;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.customize.TileAdapter.Holder; import com.android.systemui.qs.customize.TileAdapter.Holder;
import com.android.systemui.qs.customize.TileQueryHelper.TileInfo; import com.android.systemui.qs.customize.TileQueryHelper.TileInfo;
import com.android.systemui.qs.customize.TileQueryHelper.TileStateListener; import com.android.systemui.qs.customize.TileQueryHelper.TileStateListener;
@@ -91,7 +91,7 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
private ItemDecoration mDecoration; private ItemDecoration mDecoration;
private final MarginTileDecoration mMarginDecoration; private final MarginTileDecoration mMarginDecoration;
private final int mMinNumTiles; private final int mMinNumTiles;
private final QSTileHost mHost; private final QSHost mHost;
private int mEditIndex; private int mEditIndex;
private int mTileDividerIndex; private int mTileDividerIndex;
private int mFocusIndex; private int mFocusIndex;
@@ -117,7 +117,7 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
@Inject @Inject
public TileAdapter( public TileAdapter(
@QSThemedContext Context context, @QSThemedContext Context context,
QSTileHost qsHost, QSHost qsHost,
UiEventLogger uiEventLogger) { UiEventLogger uiEventLogger) {
mContext = context; mContext = context;
mHost = qsHost; mHost = qsHost;
@@ -176,7 +176,7 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
mMarginDecoration.setHalfMargin(halfMargin); mMarginDecoration.setHalfMargin(halfMargin);
} }
public void saveSpecs(QSTileHost host) { public void saveSpecs(QSHost host) {
List<String> newSpecs = new ArrayList<>(); List<String> newSpecs = new ArrayList<>();
clearAccessibilityState(); clearAccessibilityState();
for (int i = 1; i < mTiles.size() && mTiles.get(i) != null; i++) { for (int i = 1; i < mTiles.size() && mTiles.get(i) != null; i++) {

View File

@@ -38,7 +38,7 @@ import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.qs.QSTile.State; import com.android.systemui.plugins.qs.QSTile.State;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.dagger.QSScope; import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.qs.external.CustomTile; import com.android.systemui.qs.external.CustomTile;
import com.android.systemui.qs.tileimpl.QSTileImpl.DrawableIcon; import com.android.systemui.qs.tileimpl.QSTileImpl.DrawableIcon;
@@ -85,7 +85,7 @@ public class TileQueryHelper {
mListener = listener; mListener = listener;
} }
public void queryTiles(QSTileHost host) { public void queryTiles(QSHost host) {
mTiles.clear(); mTiles.clear();
mSpecs.clear(); mSpecs.clear();
mFinished = false; mFinished = false;
@@ -97,7 +97,7 @@ public class TileQueryHelper {
return mFinished; return mFinished;
} }
private void addCurrentAndStockTiles(QSTileHost host) { private void addCurrentAndStockTiles(QSHost host) {
String stock = mContext.getString(R.string.quick_settings_tiles_stock); String stock = mContext.getString(R.string.quick_settings_tiles_stock);
String current = Settings.Secure.getString(mContext.getContentResolver(), String current = Settings.Secure.getString(mContext.getContentResolver(),
Settings.Secure.QS_TILES); Settings.Secure.QS_TILES);
@@ -153,14 +153,14 @@ public class TileQueryHelper {
private class TileCollector implements QSTile.Callback { private class TileCollector implements QSTile.Callback {
private final List<TilePair> mQSTileList = new ArrayList<>(); private final List<TilePair> mQSTileList = new ArrayList<>();
private final QSTileHost mQSTileHost; private final QSHost mQSHost;
TileCollector(List<QSTile> tilesToAdd, QSTileHost host) { TileCollector(List<QSTile> tilesToAdd, QSHost host) {
for (QSTile tile: tilesToAdd) { for (QSTile tile: tilesToAdd) {
TilePair pair = new TilePair(tile); TilePair pair = new TilePair(tile);
mQSTileList.add(pair); mQSTileList.add(pair);
} }
mQSTileHost = host; mQSHost = host;
if (tilesToAdd.isEmpty()) { if (tilesToAdd.isEmpty()) {
mBgExecutor.execute(this::finished); mBgExecutor.execute(this::finished);
} }
@@ -168,7 +168,7 @@ public class TileQueryHelper {
private void finished() { private void finished() {
notifyTilesChanged(false); notifyTilesChanged(false);
addPackageTiles(mQSTileHost); addPackageTiles(mQSHost);
} }
private void startListening() { private void startListening() {
@@ -207,7 +207,7 @@ public class TileQueryHelper {
} }
} }
private void addPackageTiles(final QSTileHost host) { private void addPackageTiles(final QSHost host) {
mBgExecutor.execute(() -> { mBgExecutor.execute(() -> {
Collection<QSTile> params = host.getTiles(); Collection<QSTile> params = host.getTiles();
PackageManager pm = mContext.getPackageManager(); PackageManager pm = mContext.getPackageManager();

View File

@@ -67,7 +67,7 @@ public interface QSModule {
static AutoTileManager provideAutoTileManager( static AutoTileManager provideAutoTileManager(
Context context, Context context,
AutoAddTracker.Builder autoAddTrackerBuilder, AutoAddTracker.Builder autoAddTrackerBuilder,
QSTileHost host, QSHost host,
@Background Handler handler, @Background Handler handler,
SecureSettings secureSettings, SecureSettings secureSettings,
HotspotController hotspotController, HotspotController hotspotController,

View File

@@ -25,13 +25,13 @@ import android.os.RemoteException
import android.util.Log import android.util.Log
import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting
import com.android.internal.statusbar.IAddTileResultCallback import com.android.internal.statusbar.IAddTileResultCallback
import com.android.systemui.R
import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.qs.QSTileHost import com.android.systemui.qs.QSHost
import com.android.systemui.statusbar.CommandQueue
import com.android.systemui.statusbar.commandline.Command import com.android.systemui.statusbar.commandline.Command
import com.android.systemui.statusbar.commandline.CommandRegistry import com.android.systemui.statusbar.commandline.CommandRegistry
import com.android.systemui.statusbar.phone.SystemUIDialog import com.android.systemui.statusbar.phone.SystemUIDialog
import com.android.systemui.R
import com.android.systemui.statusbar.CommandQueue
import java.io.PrintWriter import java.io.PrintWriter
import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicBoolean
import java.util.function.Consumer import java.util.function.Consumer
@@ -40,14 +40,14 @@ import javax.inject.Inject
private const val TAG = "TileServiceRequestController" private const val TAG = "TileServiceRequestController"
/** /**
* Controller to interface between [TileRequestDialog] and [QSTileHost]. * Controller to interface between [TileRequestDialog] and [QSHost].
*/ */
class TileServiceRequestController constructor( class TileServiceRequestController constructor(
private val qsTileHost: QSTileHost, private val qsHost: QSHost,
private val commandQueue: CommandQueue, private val commandQueue: CommandQueue,
private val commandRegistry: CommandRegistry, private val commandRegistry: CommandRegistry,
private val eventLogger: TileRequestDialogEventLogger, private val eventLogger: TileRequestDialogEventLogger,
private val dialogCreator: () -> TileRequestDialog = { TileRequestDialog(qsTileHost.context) } private val dialogCreator: () -> TileRequestDialog = { TileRequestDialog(qsHost.context) }
) { ) {
companion object { companion object {
@@ -93,7 +93,7 @@ class TileServiceRequestController constructor(
} }
private fun addTile(componentName: ComponentName) { private fun addTile(componentName: ComponentName) {
qsTileHost.addTile(componentName, true) qsHost.addTile(componentName, true)
} }
@VisibleForTesting @VisibleForTesting
@@ -158,7 +158,7 @@ class TileServiceRequestController constructor(
private fun isTileAlreadyAdded(componentName: ComponentName): Boolean { private fun isTileAlreadyAdded(componentName: ComponentName): Boolean {
val spec = CustomTile.toSpec(componentName) val spec = CustomTile.toSpec(componentName)
return qsTileHost.indexOf(spec) != -1 return qsHost.indexOf(spec) != -1
} }
inner class TileServiceRequestCommand : Command { inner class TileServiceRequestCommand : Command {
@@ -194,9 +194,9 @@ class TileServiceRequestController constructor(
private val commandQueue: CommandQueue, private val commandQueue: CommandQueue,
private val commandRegistry: CommandRegistry private val commandRegistry: CommandRegistry
) { ) {
fun create(qsTileHost: QSTileHost): TileServiceRequestController { fun create(qsHost: QSHost): TileServiceRequestController {
return TileServiceRequestController( return TileServiceRequestController(
qsTileHost, qsHost,
commandQueue, commandQueue,
commandRegistry, commandRegistry,
TileRequestDialogEventLogger() TileRequestDialogEventLogger()

View File

@@ -39,7 +39,7 @@ import com.android.internal.statusbar.StatusBarIcon;
import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.phone.StatusBarIconController;
@@ -68,22 +68,24 @@ public class TileServices extends IQSService.Stub {
private final Context mContext; private final Context mContext;
private final Handler mMainHandler; private final Handler mMainHandler;
private final Provider<Handler> mHandlerProvider; private final Provider<Handler> mHandlerProvider;
private final QSTileHost mHost; private final QSHost mHost;
private final KeyguardStateController mKeyguardStateController; private final KeyguardStateController mKeyguardStateController;
private final BroadcastDispatcher mBroadcastDispatcher; private final BroadcastDispatcher mBroadcastDispatcher;
private final CommandQueue mCommandQueue; private final CommandQueue mCommandQueue;
private final UserTracker mUserTracker; private final UserTracker mUserTracker;
private final StatusBarIconController mStatusBarIconController;
private int mMaxBound = DEFAULT_MAX_BOUND; private int mMaxBound = DEFAULT_MAX_BOUND;
@Inject @Inject
public TileServices( public TileServices(
QSTileHost host, QSHost host,
@Main Provider<Handler> handlerProvider, @Main Provider<Handler> handlerProvider,
BroadcastDispatcher broadcastDispatcher, BroadcastDispatcher broadcastDispatcher,
UserTracker userTracker, UserTracker userTracker,
KeyguardStateController keyguardStateController, KeyguardStateController keyguardStateController,
CommandQueue commandQueue) { CommandQueue commandQueue,
StatusBarIconController statusBarIconController) {
mHost = host; mHost = host;
mKeyguardStateController = keyguardStateController; mKeyguardStateController = keyguardStateController;
mContext = mHost.getContext(); mContext = mHost.getContext();
@@ -92,6 +94,7 @@ public class TileServices extends IQSService.Stub {
mMainHandler = mHandlerProvider.get(); mMainHandler = mHandlerProvider.get();
mUserTracker = userTracker; mUserTracker = userTracker;
mCommandQueue = commandQueue; mCommandQueue = commandQueue;
mStatusBarIconController = statusBarIconController;
mCommandQueue.addCallback(mRequestListeningCallback); mCommandQueue.addCallback(mRequestListeningCallback);
} }
@@ -99,7 +102,7 @@ public class TileServices extends IQSService.Stub {
return mContext; return mContext;
} }
public QSTileHost getHost() { public QSHost getHost() {
return mHost; return mHost;
} }
@@ -131,8 +134,7 @@ public class TileServices extends IQSService.Stub {
mTiles.remove(tile.getComponent()); mTiles.remove(tile.getComponent());
final String slot = tile.getComponent().getClassName(); final String slot = tile.getComponent().getClassName();
// TileServices doesn't know how to add more than 1 icon per slot, so remove all // TileServices doesn't know how to add more than 1 icon per slot, so remove all
mMainHandler.post(() -> mHost.getIconController() mMainHandler.post(() -> mStatusBarIconController.removeAllIconsForSlot(slot));
.removeAllIconsForExternalSlot(slot));
} }
} }
@@ -309,7 +311,7 @@ public class TileServices extends IQSService.Stub {
mMainHandler.post(new Runnable() { mMainHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
StatusBarIconController iconController = mHost.getIconController(); StatusBarIconController iconController = mStatusBarIconController;
iconController.setIcon(componentName.getClassName(), statusIcon); iconController.setIcon(componentName.getClassName(), statusIcon);
iconController.setExternalIcon(componentName.getClassName()); iconController.setExternalIcon(componentName.getClassName());
} }

View File

@@ -31,7 +31,7 @@ import com.android.systemui.R;
import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.AutoAddTracker; import com.android.systemui.qs.AutoAddTracker;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.qs.ReduceBrightColorsController;
import com.android.systemui.qs.SettingObserver; import com.android.systemui.qs.SettingObserver;
import com.android.systemui.qs.external.CustomTile; import com.android.systemui.qs.external.CustomTile;
@@ -75,7 +75,7 @@ public class AutoTileManager implements UserAwareController {
private final String mSafetySpec; private final String mSafetySpec;
protected final Context mContext; protected final Context mContext;
protected final QSTileHost mHost; protected final QSHost mHost;
protected final Handler mHandler; protected final Handler mHandler;
protected final SecureSettings mSecureSettings; protected final SecureSettings mSecureSettings;
protected final AutoAddTracker mAutoTracker; protected final AutoAddTracker mAutoTracker;
@@ -92,7 +92,7 @@ public class AutoTileManager implements UserAwareController {
private final ArrayList<AutoAddSetting> mAutoAddSettingList = new ArrayList<>(); private final ArrayList<AutoAddSetting> mAutoAddSettingList = new ArrayList<>();
public AutoTileManager(Context context, AutoAddTracker.Builder autoAddTrackerBuilder, public AutoTileManager(Context context, AutoAddTracker.Builder autoAddTrackerBuilder,
QSTileHost host, QSHost host,
@Background Handler handler, @Background Handler handler,
SecureSettings secureSettings, SecureSettings secureSettings,
HotspotController hotspotController, HotspotController hotspotController,

View File

@@ -53,6 +53,7 @@ import com.android.systemui.camera.CameraIntents;
import com.android.systemui.dagger.qualifiers.DisplayId; import com.android.systemui.dagger.qualifiers.DisplayId;
import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.keyguard.WakefulnessLifecycle; import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.QSPanelController; import com.android.systemui.qs.QSPanelController;
import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker;
import com.android.systemui.shade.CameraLauncher; import com.android.systemui.shade.CameraLauncher;
@@ -106,6 +107,7 @@ public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callba
private final SystemBarAttributesListener mSystemBarAttributesListener; private final SystemBarAttributesListener mSystemBarAttributesListener;
private final Lazy<CameraLauncher> mCameraLauncherLazy; private final Lazy<CameraLauncher> mCameraLauncherLazy;
private final QuickSettingsController mQsController; private final QuickSettingsController mQsController;
private final QSHost mQSHost;
private static final VibrationAttributes HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES = private static final VibrationAttributes HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES =
VibrationAttributes.createForUsage(VibrationAttributes.USAGE_HARDWARE_FEEDBACK); VibrationAttributes.createForUsage(VibrationAttributes.USAGE_HARDWARE_FEEDBACK);
@@ -138,7 +140,8 @@ public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callba
@DisplayId int displayId, @DisplayId int displayId,
SystemBarAttributesListener systemBarAttributesListener, SystemBarAttributesListener systemBarAttributesListener,
Lazy<CameraLauncher> cameraLauncherLazy, Lazy<CameraLauncher> cameraLauncherLazy,
UserTracker userTracker) { UserTracker userTracker,
QSHost qsHost) {
mCentralSurfaces = centralSurfaces; mCentralSurfaces = centralSurfaces;
mQsController = quickSettingsController; mQsController = quickSettingsController;
mContext = context; mContext = context;
@@ -164,6 +167,7 @@ public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callba
mDisplayId = displayId; mDisplayId = displayId;
mCameraLauncherLazy = cameraLauncherLazy; mCameraLauncherLazy = cameraLauncherLazy;
mUserTracker = userTracker; mUserTracker = userTracker;
mQSHost = qsHost;
mVibrateOnOpening = resources.getBoolean(R.bool.config_vibrateOnIconAnimation); mVibrateOnOpening = resources.getBoolean(R.bool.config_vibrateOnIconAnimation);
mCameraLaunchGestureVibrationEffect = getCameraGestureVibrationEffect( mCameraLaunchGestureVibrationEffect = getCameraGestureVibrationEffect(
@@ -184,22 +188,17 @@ public class CentralSurfacesCommandQueueCallbacks implements CommandQueue.Callba
@Override @Override
public void addQsTile(ComponentName tile) { public void addQsTile(ComponentName tile) {
QSPanelController qsPanelController = mCentralSurfaces.getQSPanelController(); mQSHost.addTile(tile);
if (qsPanelController != null && qsPanelController.getHost() != null) {
qsPanelController.getHost().addTile(tile);
}
} }
@Override @Override
public void remQsTile(ComponentName tile) { public void remQsTile(ComponentName tile) {
QSPanelController qsPanelController = mCentralSurfaces.getQSPanelController(); mQSHost.removeTileByUser(tile);
if (qsPanelController != null && qsPanelController.getHost() != null) {
qsPanelController.getHost().removeTileByUser(tile);
}
} }
@Override @Override
public void clickTile(ComponentName tile) { public void clickTile(ComponentName tile) {
// Can't inject this because it changes with the QS fragment
QSPanelController qsPanelController = mCentralSurfaces.getQSPanelController(); QSPanelController qsPanelController = mCentralSurfaces.getQSPanelController();
if (qsPanelController != null) { if (qsPanelController != null) {
qsPanelController.clickTile(tile); qsPanelController.clickTile(tile);

View File

@@ -42,7 +42,7 @@ import com.android.systemui.R;
import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.demomode.DemoModeController; import com.android.systemui.demomode.DemoModeController;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.systemui.statusbar.phone.SystemUIDialog;
@@ -68,7 +68,7 @@ public class TunerServiceImpl extends TunerService {
// Things that use the tunable infrastructure but are now real user settings and // Things that use the tunable infrastructure but are now real user settings and
// shouldn't be reset with tuner settings. // shouldn't be reset with tuner settings.
private static final String[] RESET_EXCEPTION_LIST = new String[] { private static final String[] RESET_EXCEPTION_LIST = new String[] {
QSTileHost.TILES_SETTING, QSHost.TILES_SETTING,
Settings.Secure.DOZE_ALWAYS_ON, Settings.Secure.DOZE_ALWAYS_ON,
Settings.Secure.MEDIA_CONTROLS_RESUME, Settings.Secure.MEDIA_CONTROLS_RESUME,
Settings.Secure.MEDIA_CONTROLS_RECOMMENDATION Settings.Secure.MEDIA_CONTROLS_RECOMMENDATION

View File

@@ -71,7 +71,7 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
@Mock @Mock
private QSPanel mQSPanel; private QSPanel mQSPanel;
@Mock @Mock
private QSTileHost mQSTileHost; private QSHost mQSHost;
@Mock @Mock
private QSCustomizerController mQSCustomizerController; private QSCustomizerController mQSCustomizerController;
@Mock @Mock
@@ -105,7 +105,7 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
/** Implementation needed to ensure we have a reflectively-available class name. */ /** Implementation needed to ensure we have a reflectively-available class name. */
private class TestableQSPanelControllerBase extends QSPanelControllerBase<QSPanel> { private class TestableQSPanelControllerBase extends QSPanelControllerBase<QSPanel> {
protected TestableQSPanelControllerBase(QSPanel view, QSTileHost host, protected TestableQSPanelControllerBase(QSPanel view, QSHost host,
QSCustomizerController qsCustomizerController, MediaHost mediaHost, QSCustomizerController qsCustomizerController, MediaHost mediaHost,
MetricsLogger metricsLogger, UiEventLogger uiEventLogger, QSLogger qsLogger, MetricsLogger metricsLogger, UiEventLogger uiEventLogger, QSLogger qsLogger,
DumpManager dumpManager) { DumpManager dumpManager) {
@@ -130,8 +130,8 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
when(mQSPanel.getOrCreateTileLayout()).thenReturn(mPagedTileLayout); when(mQSPanel.getOrCreateTileLayout()).thenReturn(mPagedTileLayout);
when(mQSPanel.getTileLayout()).thenReturn(mPagedTileLayout); when(mQSPanel.getTileLayout()).thenReturn(mPagedTileLayout);
when(mQSTile.getTileSpec()).thenReturn("dnd"); when(mQSTile.getTileSpec()).thenReturn("dnd");
when(mQSTileHost.getTiles()).thenReturn(Collections.singleton(mQSTile)); when(mQSHost.getTiles()).thenReturn(Collections.singleton(mQSTile));
when(mQSTileHost.createTileView(any(), eq(mQSTile), anyBoolean())).thenReturn(mQSTileView); when(mQSHost.createTileView(any(), eq(mQSTile), anyBoolean())).thenReturn(mQSTileView);
when(mQSTileRevealControllerFactory.create(any(), any())) when(mQSTileRevealControllerFactory.create(any(), any()))
.thenReturn(mQSTileRevealController); .thenReturn(mQSTileRevealController);
when(mMediaHost.getDisappearParameters()).thenReturn(new DisappearParameters()); when(mMediaHost.getDisappearParameters()).thenReturn(new DisappearParameters());
@@ -142,7 +142,7 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
return null; return null;
}).when(mQSPanel).setListening(anyBoolean()); }).when(mQSPanel).setListening(anyBoolean());
mController = new TestableQSPanelControllerBase(mQSPanel, mQSTileHost, mController = new TestableQSPanelControllerBase(mQSPanel, mQSHost,
mQSCustomizerController, mMediaHost, mQSCustomizerController, mMediaHost,
mMetricsLogger, mUiEventLogger, mQSLogger, mDumpManager); mMetricsLogger, mUiEventLogger, mQSLogger, mDumpManager);
@@ -155,7 +155,7 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
mController.onViewDetached(); mController.onViewDetached();
QSPanelControllerBase<QSPanel> controller = new TestableQSPanelControllerBase(mQSPanel, QSPanelControllerBase<QSPanel> controller = new TestableQSPanelControllerBase(mQSPanel,
mQSTileHost, mQSCustomizerController, mMediaHost, mQSHost, mQSCustomizerController, mMediaHost,
mMetricsLogger, mUiEventLogger, mQSLogger, mDumpManager) { mMetricsLogger, mUiEventLogger, mQSLogger, mDumpManager) {
@Override @Override
protected QSTileRevealController createTileRevealController() { protected QSTileRevealController createTileRevealController() {
@@ -250,7 +250,7 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
when(mResources.getBoolean(R.bool.config_use_split_notification_shade)).thenReturn(false); when(mResources.getBoolean(R.bool.config_use_split_notification_shade)).thenReturn(false);
when(mQSPanel.getDumpableTag()).thenReturn("QSPanelLandscape"); when(mQSPanel.getDumpableTag()).thenReturn("QSPanelLandscape");
mController = new TestableQSPanelControllerBase(mQSPanel, mQSTileHost, mController = new TestableQSPanelControllerBase(mQSPanel, mQSHost,
mQSCustomizerController, mMediaHost, mQSCustomizerController, mMediaHost,
mMetricsLogger, mUiEventLogger, mQSLogger, mDumpManager); mMetricsLogger, mUiEventLogger, mQSLogger, mDumpManager);
mController.init(); mController.init();
@@ -259,7 +259,7 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
when(mResources.getBoolean(R.bool.config_use_split_notification_shade)).thenReturn(true); when(mResources.getBoolean(R.bool.config_use_split_notification_shade)).thenReturn(true);
when(mQSPanel.getDumpableTag()).thenReturn("QSPanelPortrait"); when(mQSPanel.getDumpableTag()).thenReturn("QSPanelPortrait");
mController = new TestableQSPanelControllerBase(mQSPanel, mQSTileHost, mController = new TestableQSPanelControllerBase(mQSPanel, mQSHost,
mQSCustomizerController, mMediaHost, mQSCustomizerController, mMediaHost,
mMetricsLogger, mUiEventLogger, mQSLogger, mDumpManager); mMetricsLogger, mUiEventLogger, mQSLogger, mDumpManager);
mController.init(); mController.init();
@@ -291,7 +291,7 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
@Test @Test
public void testRefreshAllTilesDoesntRefreshListeningTiles() { public void testRefreshAllTilesDoesntRefreshListeningTiles() {
when(mQSTileHost.getTiles()).thenReturn(List.of(mQSTile, mOtherTile)); when(mQSHost.getTiles()).thenReturn(List.of(mQSTile, mOtherTile));
mController.setTiles(); mController.setTiles();
when(mQSTile.isListening()).thenReturn(false); when(mQSTile.isListening()).thenReturn(false);

View File

@@ -40,7 +40,7 @@ class QSPanelControllerTest : SysuiTestCase() {
@Mock private lateinit var qsPanel: QSPanel @Mock private lateinit var qsPanel: QSPanel
@Mock private lateinit var tunerService: TunerService @Mock private lateinit var tunerService: TunerService
@Mock private lateinit var qsTileHost: QSTileHost @Mock private lateinit var qsHost: QSHost
@Mock private lateinit var qsCustomizerController: QSCustomizerController @Mock private lateinit var qsCustomizerController: QSCustomizerController
@Mock private lateinit var qsTileRevealControllerFactory: QSTileRevealController.Factory @Mock private lateinit var qsTileRevealControllerFactory: QSTileRevealController.Factory
@Mock private lateinit var dumpManager: DumpManager @Mock private lateinit var dumpManager: DumpManager
@@ -79,7 +79,7 @@ class QSPanelControllerTest : SysuiTestCase() {
controller = QSPanelController( controller = QSPanelController(
qsPanel, qsPanel,
tunerService, tunerService,
qsTileHost, qsHost,
qsCustomizerController, qsCustomizerController,
/* usingMediaPlayer= */ true, /* usingMediaPlayer= */ true,
mediaHost, mediaHost,
@@ -109,7 +109,7 @@ class QSPanelControllerTest : SysuiTestCase() {
@Test @Test
fun testSetListeningDoesntRefreshListeningTiles() { fun testSetListeningDoesntRefreshListeningTiles() {
whenever(qsTileHost.getTiles()).thenReturn(listOf(tile, otherTile)) whenever(qsHost.getTiles()).thenReturn(listOf(tile, otherTile))
controller.setTiles() controller.setTiles()
whenever(tile.isListening()).thenReturn(false) whenever(tile.isListening()).thenReturn(false)
whenever(otherTile.isListening()).thenReturn(true) whenever(otherTile.isListening()).thenReturn(true)

View File

@@ -69,7 +69,6 @@ import com.android.systemui.settings.UserFileManager;
import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.phone.AutoTileManager; import com.android.systemui.statusbar.phone.AutoTileManager;
import com.android.systemui.statusbar.phone.CentralSurfaces; import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService;
import com.android.systemui.util.FakeSharedPreferences; import com.android.systemui.util.FakeSharedPreferences;
import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.concurrency.FakeExecutor;
@@ -100,10 +99,8 @@ public class QSTileHostTest extends SysuiTestCase {
private static ComponentName CUSTOM_TILE = private static ComponentName CUSTOM_TILE =
ComponentName.unflattenFromString("TEST_PKG/.TEST_CLS"); ComponentName.unflattenFromString("TEST_PKG/.TEST_CLS");
private static final String CUSTOM_TILE_SPEC = CustomTile.toSpec(CUSTOM_TILE); private static final String CUSTOM_TILE_SPEC = CustomTile.toSpec(CUSTOM_TILE);
private static final String SETTING = QSTileHost.TILES_SETTING; private static final String SETTING = QSHost.TILES_SETTING;
@Mock
private StatusBarIconController mIconController;
@Mock @Mock
private QSFactory mDefaultFactory; private QSFactory mDefaultFactory;
@Mock @Mock
@@ -167,7 +164,7 @@ public class QSTileHostTest extends SysuiTestCase {
mSecureSettings = new FakeSettings(); mSecureSettings = new FakeSettings();
saveSetting(""); saveSetting("");
mQSTileHost = new TestQSTileHost(mContext, mIconController, mDefaultFactory, mMainExecutor, mQSTileHost = new TestQSTileHost(mContext, mDefaultFactory, mMainExecutor,
mPluginManager, mTunerService, mAutoTiles, mDumpManager, mCentralSurfaces, mPluginManager, mTunerService, mAutoTiles, mDumpManager, mCentralSurfaces,
mQSLogger, mUiEventLogger, mUserTracker, mSecureSettings, mCustomTileStatePersister, mQSLogger, mUiEventLogger, mUserTracker, mSecureSettings, mCustomTileStatePersister,
mTileServiceRequestControllerBuilder, mTileLifecycleManagerFactory, mTileServiceRequestControllerBuilder, mTileLifecycleManagerFactory,
@@ -248,44 +245,44 @@ public class QSTileHostTest extends SysuiTestCase {
public void testRemoveWifiAndCellularWithoutInternet() { public void testRemoveWifiAndCellularWithoutInternet() {
saveSetting("wifi, spec1, cell, spec2"); saveSetting("wifi, spec1, cell, spec2");
assertEquals("internet", mQSTileHost.mTileSpecs.get(0)); assertEquals("internet", mQSTileHost.getSpecs().get(0));
assertEquals("spec1", mQSTileHost.mTileSpecs.get(1)); assertEquals("spec1", mQSTileHost.getSpecs().get(1));
assertEquals("spec2", mQSTileHost.mTileSpecs.get(2)); assertEquals("spec2", mQSTileHost.getSpecs().get(2));
} }
@Test @Test
public void testRemoveWifiAndCellularWithInternet() { public void testRemoveWifiAndCellularWithInternet() {
saveSetting("wifi, spec1, cell, spec2, internet"); saveSetting("wifi, spec1, cell, spec2, internet");
assertEquals("spec1", mQSTileHost.mTileSpecs.get(0)); assertEquals("spec1", mQSTileHost.getSpecs().get(0));
assertEquals("spec2", mQSTileHost.mTileSpecs.get(1)); assertEquals("spec2", mQSTileHost.getSpecs().get(1));
assertEquals("internet", mQSTileHost.mTileSpecs.get(2)); assertEquals("internet", mQSTileHost.getSpecs().get(2));
} }
@Test @Test
public void testRemoveWifiWithoutInternet() { public void testRemoveWifiWithoutInternet() {
saveSetting("spec1, wifi, spec2"); saveSetting("spec1, wifi, spec2");
assertEquals("spec1", mQSTileHost.mTileSpecs.get(0)); assertEquals("spec1", mQSTileHost.getSpecs().get(0));
assertEquals("internet", mQSTileHost.mTileSpecs.get(1)); assertEquals("internet", mQSTileHost.getSpecs().get(1));
assertEquals("spec2", mQSTileHost.mTileSpecs.get(2)); assertEquals("spec2", mQSTileHost.getSpecs().get(2));
} }
@Test @Test
public void testRemoveCellWithInternet() { public void testRemoveCellWithInternet() {
saveSetting("spec1, spec2, cell, internet"); saveSetting("spec1, spec2, cell, internet");
assertEquals("spec1", mQSTileHost.mTileSpecs.get(0)); assertEquals("spec1", mQSTileHost.getSpecs().get(0));
assertEquals("spec2", mQSTileHost.mTileSpecs.get(1)); assertEquals("spec2", mQSTileHost.getSpecs().get(1));
assertEquals("internet", mQSTileHost.mTileSpecs.get(2)); assertEquals("internet", mQSTileHost.getSpecs().get(2));
} }
@Test @Test
public void testNoWifiNoCellularNoInternet() { public void testNoWifiNoCellularNoInternet() {
saveSetting("spec1,spec2"); saveSetting("spec1,spec2");
assertEquals("spec1", mQSTileHost.mTileSpecs.get(0)); assertEquals("spec1", mQSTileHost.getSpecs().get(0));
assertEquals("spec2", mQSTileHost.mTileSpecs.get(1)); assertEquals("spec2", mQSTileHost.getSpecs().get(1));
} }
@Test @Test
@@ -332,9 +329,9 @@ public class QSTileHostTest extends SysuiTestCase {
mQSTileHost.addTile("spec1"); mQSTileHost.addTile("spec1");
assertEquals(2, mQSTileHost.mTileSpecs.size()); assertEquals(2, mQSTileHost.getSpecs().size());
assertEquals("spec1", mQSTileHost.mTileSpecs.get(0)); assertEquals("spec1", mQSTileHost.getSpecs().get(0));
assertEquals("spec2", mQSTileHost.mTileSpecs.get(1)); assertEquals("spec2", mQSTileHost.getSpecs().get(1));
} }
@Test @Test
@@ -346,10 +343,10 @@ public class QSTileHostTest extends SysuiTestCase {
mQSTileHost.addTile("spec2", 1); mQSTileHost.addTile("spec2", 1);
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertEquals(3, mQSTileHost.mTileSpecs.size()); assertEquals(3, mQSTileHost.getSpecs().size());
assertEquals("spec1", mQSTileHost.mTileSpecs.get(0)); assertEquals("spec1", mQSTileHost.getSpecs().get(0));
assertEquals("spec2", mQSTileHost.mTileSpecs.get(1)); assertEquals("spec2", mQSTileHost.getSpecs().get(1));
assertEquals("spec3", mQSTileHost.mTileSpecs.get(2)); assertEquals("spec3", mQSTileHost.getSpecs().get(2));
} }
@Test @Test
@@ -361,10 +358,10 @@ public class QSTileHostTest extends SysuiTestCase {
mQSTileHost.addTile("spec2", 100); mQSTileHost.addTile("spec2", 100);
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertEquals(3, mQSTileHost.mTileSpecs.size()); assertEquals(3, mQSTileHost.getSpecs().size());
assertEquals("spec1", mQSTileHost.mTileSpecs.get(0)); assertEquals("spec1", mQSTileHost.getSpecs().get(0));
assertEquals("spec3", mQSTileHost.mTileSpecs.get(1)); assertEquals("spec3", mQSTileHost.getSpecs().get(1));
assertEquals("spec2", mQSTileHost.mTileSpecs.get(2)); assertEquals("spec2", mQSTileHost.getSpecs().get(2));
} }
@Test @Test
@@ -376,10 +373,10 @@ public class QSTileHostTest extends SysuiTestCase {
mQSTileHost.addTile("spec2", QSTileHost.POSITION_AT_END); mQSTileHost.addTile("spec2", QSTileHost.POSITION_AT_END);
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertEquals(3, mQSTileHost.mTileSpecs.size()); assertEquals(3, mQSTileHost.getSpecs().size());
assertEquals("spec1", mQSTileHost.mTileSpecs.get(0)); assertEquals("spec1", mQSTileHost.getSpecs().get(0));
assertEquals("spec3", mQSTileHost.mTileSpecs.get(1)); assertEquals("spec3", mQSTileHost.getSpecs().get(1));
assertEquals("spec2", mQSTileHost.mTileSpecs.get(2)); assertEquals("spec2", mQSTileHost.getSpecs().get(2));
} }
@Test @Test
@@ -389,8 +386,8 @@ public class QSTileHostTest extends SysuiTestCase {
mQSTileHost.addTile(CUSTOM_TILE, /* end */ false); mQSTileHost.addTile(CUSTOM_TILE, /* end */ false);
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertEquals(1, mQSTileHost.mTileSpecs.size()); assertEquals(1, mQSTileHost.getSpecs().size());
assertEquals(CUSTOM_TILE_SPEC, mQSTileHost.mTileSpecs.get(0)); assertEquals(CUSTOM_TILE_SPEC, mQSTileHost.getSpecs().get(0));
} }
@Test @Test
@@ -400,8 +397,8 @@ public class QSTileHostTest extends SysuiTestCase {
mQSTileHost.addTile(CUSTOM_TILE); mQSTileHost.addTile(CUSTOM_TILE);
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertEquals(2, mQSTileHost.mTileSpecs.size()); assertEquals(2, mQSTileHost.getSpecs().size());
assertEquals(CUSTOM_TILE_SPEC, mQSTileHost.mTileSpecs.get(0)); assertEquals(CUSTOM_TILE_SPEC, mQSTileHost.getSpecs().get(0));
} }
@Test @Test
@@ -411,8 +408,8 @@ public class QSTileHostTest extends SysuiTestCase {
mQSTileHost.addTile(CUSTOM_TILE, /* end */ false); mQSTileHost.addTile(CUSTOM_TILE, /* end */ false);
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertEquals(2, mQSTileHost.mTileSpecs.size()); assertEquals(2, mQSTileHost.getSpecs().size());
assertEquals(CUSTOM_TILE_SPEC, mQSTileHost.mTileSpecs.get(0)); assertEquals(CUSTOM_TILE_SPEC, mQSTileHost.getSpecs().get(0));
} }
@Test @Test
@@ -422,8 +419,8 @@ public class QSTileHostTest extends SysuiTestCase {
mQSTileHost.addTile(CUSTOM_TILE, /* end */ true); mQSTileHost.addTile(CUSTOM_TILE, /* end */ true);
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertEquals(2, mQSTileHost.mTileSpecs.size()); assertEquals(2, mQSTileHost.getSpecs().size());
assertEquals(CUSTOM_TILE_SPEC, mQSTileHost.mTileSpecs.get(1)); assertEquals(CUSTOM_TILE_SPEC, mQSTileHost.getSpecs().get(1));
} }
@Test @Test
@@ -478,7 +475,7 @@ public class QSTileHostTest extends SysuiTestCase {
mQSTileHost.removeTiles(List.of("spec1", "spec2")); mQSTileHost.removeTiles(List.of("spec1", "spec2"));
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertEquals(List.of("spec3"), mQSTileHost.mTileSpecs); assertEquals(List.of("spec3"), mQSTileHost.getSpecs());
} }
@Test @Test
@@ -488,7 +485,7 @@ public class QSTileHostTest extends SysuiTestCase {
mQSTileHost.removeTile("spec3"); mQSTileHost.removeTile("spec3");
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertEquals(List.of("spec2"), mQSTileHost.mTileSpecs); assertEquals(List.of("spec2"), mQSTileHost.getSpecs());
assertEquals("spec2", getSetting()); assertEquals("spec2", getSetting());
} }
@@ -497,10 +494,10 @@ public class QSTileHostTest extends SysuiTestCase {
saveSetting("spec1,spec2"); saveSetting("spec1,spec2");
mQSTileHost.addTile("spec3"); mQSTileHost.addTile("spec3");
assertEquals(List.of("spec1", "spec2"), mQSTileHost.mTileSpecs); assertEquals(List.of("spec1", "spec2"), mQSTileHost.getSpecs());
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertEquals(List.of("spec1", "spec2", "spec3"), mQSTileHost.mTileSpecs); assertEquals(List.of("spec1", "spec2", "spec3"), mQSTileHost.getSpecs());
} }
@Test @Test
@@ -508,10 +505,10 @@ public class QSTileHostTest extends SysuiTestCase {
saveSetting("spec1,spec2"); saveSetting("spec1,spec2");
mQSTileHost.removeTile("spec1"); mQSTileHost.removeTile("spec1");
assertEquals(List.of("spec1", "spec2"), mQSTileHost.mTileSpecs); assertEquals(List.of("spec1", "spec2"), mQSTileHost.getSpecs());
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertEquals(List.of("spec2"), mQSTileHost.mTileSpecs); assertEquals(List.of("spec2"), mQSTileHost.getSpecs());
} }
@Test @Test
@@ -519,10 +516,10 @@ public class QSTileHostTest extends SysuiTestCase {
saveSetting("spec1,spec2,spec3"); saveSetting("spec1,spec2,spec3");
mQSTileHost.removeTiles(List.of("spec3", "spec1")); mQSTileHost.removeTiles(List.of("spec3", "spec1"));
assertEquals(List.of("spec1", "spec2", "spec3"), mQSTileHost.mTileSpecs); assertEquals(List.of("spec1", "spec2", "spec3"), mQSTileHost.getSpecs());
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertEquals(List.of("spec2"), mQSTileHost.mTileSpecs); assertEquals(List.of("spec2"), mQSTileHost.getSpecs());
} }
@Test @Test
@@ -530,17 +527,17 @@ public class QSTileHostTest extends SysuiTestCase {
saveSetting("spec1," + CUSTOM_TILE_SPEC); saveSetting("spec1," + CUSTOM_TILE_SPEC);
mQSTileHost.removeTileByUser(CUSTOM_TILE); mQSTileHost.removeTileByUser(CUSTOM_TILE);
assertEquals(List.of("spec1", CUSTOM_TILE_SPEC), mQSTileHost.mTileSpecs); assertEquals(List.of("spec1", CUSTOM_TILE_SPEC), mQSTileHost.getSpecs());
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertEquals(List.of("spec1"), mQSTileHost.mTileSpecs); assertEquals(List.of("spec1"), mQSTileHost.getSpecs());
} }
@Test @Test
public void testNonValidTileNotStoredInSettings() { public void testNonValidTileNotStoredInSettings() {
saveSetting("spec1,not-valid"); saveSetting("spec1,not-valid");
assertEquals(List.of("spec1"), mQSTileHost.mTileSpecs); assertEquals(List.of("spec1"), mQSTileHost.getSpecs());
assertEquals("spec1", getSetting()); assertEquals("spec1", getSetting());
} }
@@ -548,14 +545,14 @@ public class QSTileHostTest extends SysuiTestCase {
public void testNotAvailableTileNotStoredInSettings() { public void testNotAvailableTileNotStoredInSettings() {
saveSetting("spec1,na"); saveSetting("spec1,na");
assertEquals(List.of("spec1"), mQSTileHost.mTileSpecs); assertEquals(List.of("spec1"), mQSTileHost.getSpecs());
assertEquals("spec1", getSetting()); assertEquals("spec1", getSetting());
} }
@Test @Test
public void testIsTileAdded_true() { public void testIsTileAdded_true() {
int user = mUserTracker.getUserId(); int user = mUserTracker.getUserId();
getSharedPreferenecesForUser(user) getSharedPreferencesForUser(user)
.edit() .edit()
.putBoolean(CUSTOM_TILE.flattenToString(), true) .putBoolean(CUSTOM_TILE.flattenToString(), true)
.apply(); .apply();
@@ -566,7 +563,7 @@ public class QSTileHostTest extends SysuiTestCase {
@Test @Test
public void testIsTileAdded_false() { public void testIsTileAdded_false() {
int user = mUserTracker.getUserId(); int user = mUserTracker.getUserId();
getSharedPreferenecesForUser(user) getSharedPreferencesForUser(user)
.edit() .edit()
.putBoolean(CUSTOM_TILE.flattenToString(), false) .putBoolean(CUSTOM_TILE.flattenToString(), false)
.apply(); .apply();
@@ -597,7 +594,7 @@ public class QSTileHostTest extends SysuiTestCase {
int user = mUserTracker.getUserId(); int user = mUserTracker.getUserId();
mQSTileHost.setTileAdded(CUSTOM_TILE, user, true); mQSTileHost.setTileAdded(CUSTOM_TILE, user, true);
assertTrue(getSharedPreferenecesForUser(user) assertTrue(getSharedPreferencesForUser(user)
.getBoolean(CUSTOM_TILE.flattenToString(), false)); .getBoolean(CUSTOM_TILE.flattenToString(), false));
} }
@@ -606,7 +603,7 @@ public class QSTileHostTest extends SysuiTestCase {
int user = mUserTracker.getUserId(); int user = mUserTracker.getUserId();
mQSTileHost.setTileAdded(CUSTOM_TILE, user, false); mQSTileHost.setTileAdded(CUSTOM_TILE, user, false);
assertFalse(getSharedPreferenecesForUser(user) assertFalse(getSharedPreferencesForUser(user)
.getBoolean(CUSTOM_TILE.flattenToString(), false)); .getBoolean(CUSTOM_TILE.flattenToString(), false));
} }
@@ -615,7 +612,7 @@ public class QSTileHostTest extends SysuiTestCase {
int user = mUserTracker.getUserId(); int user = mUserTracker.getUserId();
mQSTileHost.setTileAdded(CUSTOM_TILE, user, true); mQSTileHost.setTileAdded(CUSTOM_TILE, user, true);
assertFalse(getSharedPreferenecesForUser(user + 1) assertFalse(getSharedPreferencesForUser(user + 1)
.getBoolean(CUSTOM_TILE.flattenToString(), false)); .getBoolean(CUSTOM_TILE.flattenToString(), false));
} }
@@ -627,8 +624,8 @@ public class QSTileHostTest extends SysuiTestCase {
// This will be done by TileServiceManager // This will be done by TileServiceManager
mQSTileHost.setTileAdded(CUSTOM_TILE, user, true); mQSTileHost.setTileAdded(CUSTOM_TILE, user, true);
mQSTileHost.changeTilesByUser(mQSTileHost.mTileSpecs, List.of("spec1")); mQSTileHost.changeTilesByUser(mQSTileHost.getSpecs(), List.of("spec1"));
assertFalse(getSharedPreferenecesForUser(user) assertFalse(getSharedPreferencesForUser(user)
.getBoolean(CUSTOM_TILE.flattenToString(), false)); .getBoolean(CUSTOM_TILE.flattenToString(), false));
} }
@@ -642,7 +639,7 @@ public class QSTileHostTest extends SysuiTestCase {
mQSTileHost.removeTileByUser(CUSTOM_TILE); mQSTileHost.removeTileByUser(CUSTOM_TILE);
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertFalse(getSharedPreferenecesForUser(user) assertFalse(getSharedPreferencesForUser(user)
.getBoolean(CUSTOM_TILE.flattenToString(), false)); .getBoolean(CUSTOM_TILE.flattenToString(), false));
} }
@@ -656,7 +653,7 @@ public class QSTileHostTest extends SysuiTestCase {
mQSTileHost.removeTile(CUSTOM_TILE_SPEC); mQSTileHost.removeTile(CUSTOM_TILE_SPEC);
mMainExecutor.runAllReady(); mMainExecutor.runAllReady();
assertFalse(getSharedPreferenecesForUser(user) assertFalse(getSharedPreferencesForUser(user)
.getBoolean(CUSTOM_TILE.flattenToString(), false)); .getBoolean(CUSTOM_TILE.flattenToString(), false));
} }
@@ -681,12 +678,12 @@ public class QSTileHostTest extends SysuiTestCase {
assertEquals(CUSTOM_TILE.getClassName(), proto.tiles[1].getComponentName().className); assertEquals(CUSTOM_TILE.getClassName(), proto.tiles[1].getComponentName().className);
} }
private SharedPreferences getSharedPreferenecesForUser(int user) { private SharedPreferences getSharedPreferencesForUser(int user) {
return mUserFileManager.getSharedPreferences(QSTileHost.TILES, 0, user); return mUserFileManager.getSharedPreferences(QSTileHost.TILES, 0, user);
} }
private class TestQSTileHost extends QSTileHost { private class TestQSTileHost extends QSTileHost {
TestQSTileHost(Context context, StatusBarIconController iconController, TestQSTileHost(Context context,
QSFactory defaultFactory, Executor mainExecutor, QSFactory defaultFactory, Executor mainExecutor,
PluginManager pluginManager, TunerService tunerService, PluginManager pluginManager, TunerService tunerService,
Provider<AutoTileManager> autoTiles, DumpManager dumpManager, Provider<AutoTileManager> autoTiles, DumpManager dumpManager,
@@ -696,7 +693,7 @@ public class QSTileHostTest extends SysuiTestCase {
TileServiceRequestController.Builder tileServiceRequestControllerBuilder, TileServiceRequestController.Builder tileServiceRequestControllerBuilder,
TileLifecycleManager.Factory tileLifecycleManagerFactory, TileLifecycleManager.Factory tileLifecycleManagerFactory,
UserFileManager userFileManager) { UserFileManager userFileManager) {
super(context, iconController, defaultFactory, mainExecutor, pluginManager, super(context, defaultFactory, mainExecutor, pluginManager,
tunerService, autoTiles, dumpManager, Optional.of(centralSurfaces), qsLogger, tunerService, autoTiles, dumpManager, Optional.of(centralSurfaces), qsLogger,
uiEventLogger, userTracker, secureSettings, customTileStatePersister, uiEventLogger, userTracker, secureSettings, customTileStatePersister,
tileServiceRequestControllerBuilder, tileLifecycleManagerFactory, tileServiceRequestControllerBuilder, tileLifecycleManagerFactory,

View File

@@ -50,7 +50,7 @@ import org.mockito.MockitoAnnotations
class QuickQSPanelControllerTest : SysuiTestCase() { class QuickQSPanelControllerTest : SysuiTestCase() {
@Mock private lateinit var quickQSPanel: QuickQSPanel @Mock private lateinit var quickQSPanel: QuickQSPanel
@Mock private lateinit var qsTileHost: QSTileHost @Mock private lateinit var qsHost: QSHost
@Mock private lateinit var qsCustomizerController: QSCustomizerController @Mock private lateinit var qsCustomizerController: QSCustomizerController
@Mock private lateinit var mediaHost: MediaHost @Mock private lateinit var mediaHost: MediaHost
@Mock private lateinit var metricsLogger: MetricsLogger @Mock private lateinit var metricsLogger: MetricsLogger
@@ -75,12 +75,12 @@ class QuickQSPanelControllerTest : SysuiTestCase() {
whenever(quickQSPanel.isAttachedToWindow).thenReturn(true) whenever(quickQSPanel.isAttachedToWindow).thenReturn(true)
whenever(quickQSPanel.dumpableTag).thenReturn("") whenever(quickQSPanel.dumpableTag).thenReturn("")
whenever(quickQSPanel.resources).thenReturn(mContext.resources) whenever(quickQSPanel.resources).thenReturn(mContext.resources)
whenever(qsTileHost.createTileView(any(), any(), anyBoolean())).thenReturn(tileView) whenever(qsHost.createTileView(any(), any(), anyBoolean())).thenReturn(tileView)
controller = controller =
TestQuickQSPanelController( TestQuickQSPanelController(
quickQSPanel, quickQSPanel,
qsTileHost, qsHost,
qsCustomizerController, qsCustomizerController,
/* usingMediaPlayer = */ false, /* usingMediaPlayer = */ false,
mediaHost, mediaHost,
@@ -102,7 +102,7 @@ class QuickQSPanelControllerTest : SysuiTestCase() {
fun testTileSublistWithFewerTiles_noCrash() { fun testTileSublistWithFewerTiles_noCrash() {
whenever(quickQSPanel.numQuickTiles).thenReturn(3) whenever(quickQSPanel.numQuickTiles).thenReturn(3)
whenever(qsTileHost.tiles).thenReturn(listOf(tile, tile)) whenever(qsHost.tiles).thenReturn(listOf(tile, tile))
controller.setTiles() controller.setTiles()
} }
@@ -111,7 +111,7 @@ class QuickQSPanelControllerTest : SysuiTestCase() {
fun testTileSublistWithTooManyTiles() { fun testTileSublistWithTooManyTiles() {
val limit = 3 val limit = 3
whenever(quickQSPanel.numQuickTiles).thenReturn(limit) whenever(quickQSPanel.numQuickTiles).thenReturn(limit)
whenever(qsTileHost.tiles).thenReturn(listOf(tile, tile, tile, tile)) whenever(qsHost.tiles).thenReturn(listOf(tile, tile, tile, tile))
controller.setTiles() controller.setTiles()
@@ -147,7 +147,7 @@ class QuickQSPanelControllerTest : SysuiTestCase() {
class TestQuickQSPanelController( class TestQuickQSPanelController(
view: QuickQSPanel, view: QuickQSPanel,
qsTileHost: QSTileHost, qsHost: QSHost,
qsCustomizerController: QSCustomizerController, qsCustomizerController: QSCustomizerController,
usingMediaPlayer: Boolean, usingMediaPlayer: Boolean,
mediaHost: MediaHost, mediaHost: MediaHost,
@@ -159,7 +159,7 @@ class QuickQSPanelControllerTest : SysuiTestCase() {
) : ) :
QuickQSPanelController( QuickQSPanelController(
view, view,
qsTileHost, qsHost,
qsCustomizerController, qsCustomizerController,
usingMediaPlayer, usingMediaPlayer,
mediaHost, mediaHost,

View File

@@ -25,7 +25,7 @@ import androidx.test.filters.SmallTest;
import com.android.internal.logging.testing.UiEventLoggerFake; import com.android.internal.logging.testing.UiEventLoggerFake;
import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestCase;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -42,19 +42,19 @@ public class TileAdapterTest extends SysuiTestCase {
private TileAdapter mTileAdapter; private TileAdapter mTileAdapter;
@Mock @Mock
private QSTileHost mQSTileHost; private QSHost mQSHost;
@Before @Before
public void setup() throws Exception { public void setup() throws Exception {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
TestableLooper.get(this).runWithLooper(() -> mTileAdapter = TestableLooper.get(this).runWithLooper(() -> mTileAdapter =
new TileAdapter(mContext, mQSTileHost, new UiEventLoggerFake())); new TileAdapter(mContext, mQSHost, new UiEventLoggerFake()));
} }
@Test @Test
public void testResetNotifiesHost() { public void testResetNotifiesHost() {
mTileAdapter.resetTileSpecs(Collections.emptyList()); mTileAdapter.resetTileSpecs(Collections.emptyList());
verify(mQSTileHost).changeTilesByUser(any(), any()); verify(mQSHost).changeTilesByUser(any(), any());
} }
} }

View File

@@ -55,7 +55,7 @@ import com.android.systemui.R;
import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestCase;
import com.android.systemui.plugins.qs.QSIconView; import com.android.systemui.plugins.qs.QSIconView;
import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.concurrency.FakeExecutor;
import com.android.systemui.util.time.FakeSystemClock; import com.android.systemui.util.time.FakeSystemClock;
@@ -102,7 +102,7 @@ public class TileQueryHelperTest extends SysuiTestCase {
@Mock @Mock
private TileQueryHelper.TileStateListener mListener; private TileQueryHelper.TileStateListener mListener;
@Mock @Mock
private QSTileHost mQSTileHost; private QSHost mQSHost;
@Mock @Mock
private PackageManager mPackageManager; private PackageManager mPackageManager;
@Mock @Mock
@@ -131,7 +131,7 @@ public class TileQueryHelperTest extends SysuiTestCase {
return null; return null;
} }
} }
).when(mQSTileHost).createTile(anyString()); ).when(mQSHost).createTile(anyString());
FakeSystemClock clock = new FakeSystemClock(); FakeSystemClock clock = new FakeSystemClock();
mMainExecutor = new FakeExecutor(clock); mMainExecutor = new FakeExecutor(clock);
mBgExecutor = new FakeExecutor(clock); mBgExecutor = new FakeExecutor(clock);
@@ -147,7 +147,7 @@ public class TileQueryHelperTest extends SysuiTestCase {
@Test @Test
public void testIsFinished_trueAfterQuerying() { public void testIsFinished_trueAfterQuerying() {
mTileQueryHelper.queryTiles(mQSTileHost); mTileQueryHelper.queryTiles(mQSHost);
FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor); FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor);
@@ -156,7 +156,7 @@ public class TileQueryHelperTest extends SysuiTestCase {
@Test @Test
public void testQueryTiles_callsListenerTwice() { public void testQueryTiles_callsListenerTwice() {
mTileQueryHelper.queryTiles(mQSTileHost); mTileQueryHelper.queryTiles(mQSHost);
FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor); FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor);
@@ -170,7 +170,7 @@ public class TileQueryHelperTest extends SysuiTestCase {
return null; return null;
}).when(mListener).onTilesChanged(any()); }).when(mListener).onTilesChanged(any());
mTileQueryHelper.queryTiles(mQSTileHost); mTileQueryHelper.queryTiles(mQSHost);
FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor); FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor);
@@ -184,7 +184,7 @@ public class TileQueryHelperTest extends SysuiTestCase {
mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock, mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock,
STOCK_TILES); STOCK_TILES);
mTileQueryHelper.queryTiles(mQSTileHost); mTileQueryHelper.queryTiles(mQSHost);
FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor); FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor);
@@ -204,7 +204,7 @@ public class TileQueryHelperTest extends SysuiTestCase {
mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock, mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock,
STOCK_TILES); STOCK_TILES);
mTileQueryHelper.queryTiles(mQSTileHost); mTileQueryHelper.queryTiles(mQSHost);
FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor); FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor);
@@ -224,7 +224,7 @@ public class TileQueryHelperTest extends SysuiTestCase {
mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock, mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock,
STOCK_TILES); STOCK_TILES);
mTileQueryHelper.queryTiles(mQSTileHost); mTileQueryHelper.queryTiles(mQSHost);
FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor); FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor);
@@ -240,9 +240,9 @@ public class TileQueryHelperTest extends SysuiTestCase {
public void testCustomTileNotCreated() { public void testCustomTileNotCreated() {
Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.QS_TILES, Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.QS_TILES,
CUSTOM_TILE); CUSTOM_TILE);
mTileQueryHelper.queryTiles(mQSTileHost); mTileQueryHelper.queryTiles(mQSHost);
FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor); FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor);
verify(mQSTileHost, never()).createTile(CUSTOM_TILE); verify(mQSHost, never()).createTile(CUSTOM_TILE);
} }
@Test @Test
@@ -264,7 +264,7 @@ public class TileQueryHelperTest extends SysuiTestCase {
mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock, mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock,
""); "");
mTileQueryHelper.queryTiles(mQSTileHost); mTileQueryHelper.queryTiles(mQSHost);
FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor); FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor);
verify(mListener, atLeastOnce()).onTilesChanged(mCaptor.capture()); verify(mListener, atLeastOnce()).onTilesChanged(mCaptor.capture());
@@ -278,7 +278,7 @@ public class TileQueryHelperTest extends SysuiTestCase {
Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.QS_TILES, null); Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.QS_TILES, null);
mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock, mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock,
STOCK_TILES); STOCK_TILES);
mTileQueryHelper.queryTiles(mQSTileHost); mTileQueryHelper.queryTiles(mQSHost);
} }
@Test @Test
@@ -286,12 +286,12 @@ public class TileQueryHelperTest extends SysuiTestCase {
Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.QS_TILES, null); Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.QS_TILES, null);
QSTile t = mock(QSTile.class); QSTile t = mock(QSTile.class);
when(mQSTileHost.createTile("hotspot")).thenReturn(t); when(mQSHost.createTile("hotspot")).thenReturn(t);
mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock, mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock,
"hotspot"); "hotspot");
mTileQueryHelper.queryTiles(mQSTileHost); mTileQueryHelper.queryTiles(mQSHost);
FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor); FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor);
InOrder verifier = inOrder(t); InOrder verifier = inOrder(t);

View File

@@ -39,7 +39,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import androidx.test.runner.AndroidJUnit4; import androidx.test.runner.AndroidJUnit4;
import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestCase;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker;
import org.junit.After; import org.junit.After;
@@ -61,7 +61,7 @@ public class TileServiceManagerTest extends SysuiTestCase {
@Mock @Mock
private UserTracker mUserTracker; private UserTracker mUserTracker;
@Mock @Mock
private QSTileHost mQSTileHost; private QSHost mQSHost;
@Mock @Mock
private Context mMockContext; private Context mMockContext;
@@ -80,7 +80,7 @@ public class TileServiceManagerTest extends SysuiTestCase {
when(mUserTracker.getUserHandle()).thenReturn(UserHandle.SYSTEM); when(mUserTracker.getUserHandle()).thenReturn(UserHandle.SYSTEM);
when(mTileServices.getContext()).thenReturn(mMockContext); when(mTileServices.getContext()).thenReturn(mMockContext);
when(mTileServices.getHost()).thenReturn(mQSTileHost); when(mTileServices.getHost()).thenReturn(mQSHost);
when(mTileLifecycle.getUserId()).thenAnswer(invocation -> mUserTracker.getUserId()); when(mTileLifecycle.getUserId()).thenAnswer(invocation -> mUserTracker.getUserId());
when(mTileLifecycle.isActiveTile()).thenReturn(false); when(mTileLifecycle.isActiveTile()).thenReturn(false);
@@ -98,28 +98,28 @@ public class TileServiceManagerTest extends SysuiTestCase {
@Test @Test
public void testSetTileAddedIfNotAdded() { public void testSetTileAddedIfNotAdded() {
when(mQSTileHost.isTileAdded(eq(mComponentName), anyInt())).thenReturn(false); when(mQSHost.isTileAdded(eq(mComponentName), anyInt())).thenReturn(false);
mTileServiceManager.startLifecycleManagerAndAddTile(); mTileServiceManager.startLifecycleManagerAndAddTile();
verify(mQSTileHost).setTileAdded(mComponentName, mUserTracker.getUserId(), true); verify(mQSHost).setTileAdded(mComponentName, mUserTracker.getUserId(), true);
} }
@Test @Test
public void testNotSetTileAddedIfAdded() { public void testNotSetTileAddedIfAdded() {
when(mQSTileHost.isTileAdded(eq(mComponentName), anyInt())).thenReturn(true); when(mQSHost.isTileAdded(eq(mComponentName), anyInt())).thenReturn(true);
mTileServiceManager.startLifecycleManagerAndAddTile(); mTileServiceManager.startLifecycleManagerAndAddTile();
verify(mQSTileHost, never()).setTileAdded(eq(mComponentName), anyInt(), eq(true)); verify(mQSHost, never()).setTileAdded(eq(mComponentName), anyInt(), eq(true));
} }
@Test @Test
public void testSetTileAddedCorrectUser() { public void testSetTileAddedCorrectUser() {
int user = 10; int user = 10;
when(mUserTracker.getUserId()).thenReturn(user); when(mUserTracker.getUserId()).thenReturn(user);
when(mQSTileHost.isTileAdded(eq(mComponentName), anyInt())).thenReturn(false); when(mQSHost.isTileAdded(eq(mComponentName), anyInt())).thenReturn(false);
mTileServiceManager.startLifecycleManagerAndAddTile(); mTileServiceManager.startLifecycleManagerAndAddTile();
verify(mQSTileHost).setTileAdded(mComponentName, user, true); verify(mQSHost).setTileAdded(mComponentName, user, true);
} }
@Test @Test

View File

@@ -27,27 +27,27 @@ import com.android.internal.logging.InstanceId
import com.android.internal.statusbar.IAddTileResultCallback import com.android.internal.statusbar.IAddTileResultCallback
import com.android.systemui.InstanceIdSequenceFake import com.android.systemui.InstanceIdSequenceFake
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.qs.QSTileHost import com.android.systemui.qs.QSHost
import com.android.systemui.statusbar.CommandQueue import com.android.systemui.statusbar.CommandQueue
import com.android.systemui.statusbar.commandline.CommandRegistry import com.android.systemui.statusbar.commandline.CommandRegistry
import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.capture import com.android.systemui.util.mockito.capture
import com.android.systemui.util.mockito.eq import com.android.systemui.util.mockito.eq
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import java.util.function.Consumer
import org.junit.Before import org.junit.Before
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.mockito.ArgumentCaptor import org.mockito.ArgumentCaptor
import org.mockito.Mock import org.mockito.Mock
import org.mockito.Mockito.`when`
import org.mockito.Mockito.anyBoolean import org.mockito.Mockito.anyBoolean
import org.mockito.Mockito.anyInt import org.mockito.Mockito.anyInt
import org.mockito.Mockito.anyString import org.mockito.Mockito.anyString
import org.mockito.Mockito.atLeastOnce import org.mockito.Mockito.atLeastOnce
import org.mockito.Mockito.never import org.mockito.Mockito.never
import org.mockito.Mockito.verify import org.mockito.Mockito.verify
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations import org.mockito.MockitoAnnotations
import java.util.function.Consumer
@SmallTest @SmallTest
@RunWith(AndroidTestingRunner::class) @RunWith(AndroidTestingRunner::class)
@@ -62,7 +62,7 @@ class TileServiceRequestControllerTest : SysuiTestCase() {
@Mock @Mock
private lateinit var tileRequestDialog: TileRequestDialog private lateinit var tileRequestDialog: TileRequestDialog
@Mock @Mock
private lateinit var qsTileHost: QSTileHost private lateinit var qsHost: QSHost
@Mock @Mock
private lateinit var commandRegistry: CommandRegistry private lateinit var commandRegistry: CommandRegistry
@Mock @Mock
@@ -82,10 +82,10 @@ class TileServiceRequestControllerTest : SysuiTestCase() {
`when`(logger.newInstanceId()).thenReturn(instanceIdSequence.newInstanceId()) `when`(logger.newInstanceId()).thenReturn(instanceIdSequence.newInstanceId())
// Tile not present by default // Tile not present by default
`when`(qsTileHost.indexOf(anyString())).thenReturn(-1) `when`(qsHost.indexOf(anyString())).thenReturn(-1)
controller = TileServiceRequestController( controller = TileServiceRequestController(
qsTileHost, qsHost,
commandQueue, commandQueue,
commandRegistry, commandRegistry,
logger logger
@@ -107,18 +107,18 @@ class TileServiceRequestControllerTest : SysuiTestCase() {
@Test @Test
fun tileAlreadyAdded_correctResult() { fun tileAlreadyAdded_correctResult() {
`when`(qsTileHost.indexOf(CustomTile.toSpec(TEST_COMPONENT))).thenReturn(2) `when`(qsHost.indexOf(CustomTile.toSpec(TEST_COMPONENT))).thenReturn(2)
val callback = Callback() val callback = Callback()
controller.requestTileAdd(TEST_COMPONENT, TEST_APP_NAME, TEST_LABEL, icon, callback) controller.requestTileAdd(TEST_COMPONENT, TEST_APP_NAME, TEST_LABEL, icon, callback)
assertThat(callback.lastAccepted).isEqualTo(TileServiceRequestController.TILE_ALREADY_ADDED) assertThat(callback.lastAccepted).isEqualTo(TileServiceRequestController.TILE_ALREADY_ADDED)
verify(qsTileHost, never()).addTile(any(ComponentName::class.java), anyBoolean()) verify(qsHost, never()).addTile(any(ComponentName::class.java), anyBoolean())
} }
@Test @Test
fun tileAlreadyAdded_logged() { fun tileAlreadyAdded_logged() {
`when`(qsTileHost.indexOf(CustomTile.toSpec(TEST_COMPONENT))).thenReturn(2) `when`(qsHost.indexOf(CustomTile.toSpec(TEST_COMPONENT))).thenReturn(2)
controller.requestTileAdd(TEST_COMPONENT, TEST_APP_NAME, TEST_LABEL, icon) {} controller.requestTileAdd(TEST_COMPONENT, TEST_APP_NAME, TEST_LABEL, icon) {}
@@ -157,7 +157,7 @@ class TileServiceRequestControllerTest : SysuiTestCase() {
cancelListenerCaptor.value.onCancel(tileRequestDialog) cancelListenerCaptor.value.onCancel(tileRequestDialog)
assertThat(callback.lastAccepted).isEqualTo(TileServiceRequestController.DISMISSED) assertThat(callback.lastAccepted).isEqualTo(TileServiceRequestController.DISMISSED)
verify(qsTileHost, never()).addTile(any(ComponentName::class.java), anyBoolean()) verify(qsHost, never()).addTile(any(ComponentName::class.java), anyBoolean())
} }
@Test @Test
@@ -191,7 +191,7 @@ class TileServiceRequestControllerTest : SysuiTestCase() {
clickListenerCaptor.value.onClick(tileRequestDialog, DialogInterface.BUTTON_POSITIVE) clickListenerCaptor.value.onClick(tileRequestDialog, DialogInterface.BUTTON_POSITIVE)
assertThat(callback.lastAccepted).isEqualTo(TileServiceRequestController.ADD_TILE) assertThat(callback.lastAccepted).isEqualTo(TileServiceRequestController.ADD_TILE)
verify(qsTileHost).addTile(TEST_COMPONENT, /* end */ true) verify(qsHost).addTile(TEST_COMPONENT, /* end */ true)
} }
@Test @Test
@@ -225,7 +225,7 @@ class TileServiceRequestControllerTest : SysuiTestCase() {
clickListenerCaptor.value.onClick(tileRequestDialog, DialogInterface.BUTTON_NEGATIVE) clickListenerCaptor.value.onClick(tileRequestDialog, DialogInterface.BUTTON_NEGATIVE)
assertThat(callback.lastAccepted).isEqualTo(TileServiceRequestController.DONT_ADD_TILE) assertThat(callback.lastAccepted).isEqualTo(TileServiceRequestController.DONT_ADD_TILE)
verify(qsTileHost, never()).addTile(any(ComponentName::class.java), anyBoolean()) verify(qsHost, never()).addTile(any(ComponentName::class.java), anyBoolean())
} }
@Test @Test
@@ -266,7 +266,7 @@ class TileServiceRequestControllerTest : SysuiTestCase() {
@Test @Test
fun commandQueueCallback_callbackCalled() { fun commandQueueCallback_callbackCalled() {
`when`(qsTileHost.indexOf(CustomTile.toSpec(TEST_COMPONENT))).thenReturn(2) `when`(qsHost.indexOf(CustomTile.toSpec(TEST_COMPONENT))).thenReturn(2)
val captor = ArgumentCaptor.forClass(CommandQueue.Callbacks::class.java) val captor = ArgumentCaptor.forClass(CommandQueue.Callbacks::class.java)
verify(commandQueue, atLeastOnce()).addCallback(capture(captor)) verify(commandQueue, atLeastOnce()).addCallback(capture(captor))
val c = Callback() val c = Callback()

View File

@@ -30,7 +30,6 @@ import android.app.PendingIntent;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Intent; import android.content.Intent;
import android.os.Handler; import android.os.Handler;
import android.os.HandlerExecutor;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.UserHandle; import android.os.UserHandle;
import android.service.quicksettings.IQSTileService; import android.service.quicksettings.IQSTileService;
@@ -39,24 +38,13 @@ import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper; import android.testing.TestableLooper;
import android.testing.TestableLooper.RunWithLooper; import android.testing.TestableLooper.RunWithLooper;
import com.android.internal.logging.UiEventLogger;
import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestCase;
import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dump.DumpManager; import com.android.systemui.qs.QSHost;
import com.android.systemui.plugins.PluginManager;
import com.android.systemui.qs.QSTileHost;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSFactoryImpl;
import com.android.systemui.settings.UserFileManager;
import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.phone.AutoTileManager;
import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.policy.BluetoothController;
import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.util.settings.SecureSettings;
import org.junit.After; import org.junit.After;
import org.junit.Assert; import org.junit.Assert;
@@ -68,8 +56,6 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Optional;
import java.util.concurrent.Executor;
import javax.inject.Provider; import javax.inject.Provider;
@@ -92,26 +78,8 @@ public class TileServicesTest extends SysuiTestCase {
@Mock @Mock
private StatusBarIconController mStatusBarIconController; private StatusBarIconController mStatusBarIconController;
@Mock @Mock
private QSFactoryImpl mQSFactory;
@Mock
private PluginManager mPluginManager;
@Mock
private TunerService mTunerService;
@Mock
private AutoTileManager mAutoTileManager;
@Mock
private DumpManager mDumpManager;
@Mock
private CentralSurfaces mCentralSurfaces;
@Mock
private QSLogger mQSLogger;
@Mock
private UiEventLogger mUiEventLogger;
@Mock
private UserTracker mUserTracker; private UserTracker mUserTracker;
@Mock @Mock
private SecureSettings mSecureSettings;
@Mock
private TileServiceRequestController.Builder mTileServiceRequestControllerBuilder; private TileServiceRequestController.Builder mTileServiceRequestControllerBuilder;
@Mock @Mock
private TileServiceRequestController mTileServiceRequestController; private TileServiceRequestController mTileServiceRequestController;
@@ -122,12 +90,11 @@ public class TileServicesTest extends SysuiTestCase {
@Mock @Mock
private TileLifecycleManager mTileLifecycleManager; private TileLifecycleManager mTileLifecycleManager;
@Mock @Mock
private UserFileManager mUserFileManager; private QSHost mQSHost;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mDependency.injectMockDependency(BluetoothController.class);
mManagers = new ArrayList<>(); mManagers = new ArrayList<>();
mTestableLooper = TestableLooper.get(this); mTestableLooper = TestableLooper.get(this);
@@ -135,34 +102,16 @@ public class TileServicesTest extends SysuiTestCase {
.thenReturn(mTileServiceRequestController); .thenReturn(mTileServiceRequestController);
when(mTileLifecycleManagerFactory.create(any(Intent.class), any(UserHandle.class))) when(mTileLifecycleManagerFactory.create(any(Intent.class), any(UserHandle.class)))
.thenReturn(mTileLifecycleManager); .thenReturn(mTileLifecycleManager);
when(mQSHost.getContext()).thenReturn(mContext);
Provider<Handler> provider = () -> new Handler(mTestableLooper.getLooper()); Provider<Handler> provider = () -> new Handler(mTestableLooper.getLooper());
Executor executor = new HandlerExecutor(provider.get());
QSTileHost host = new QSTileHost(mContext, mTileService = new TestTileServices(mQSHost, provider, mBroadcastDispatcher,
mStatusBarIconController, mUserTracker, mKeyguardStateController, mCommandQueue, mStatusBarIconController);
mQSFactory,
executor,
mPluginManager,
mTunerService,
() -> mAutoTileManager,
mDumpManager,
Optional.of(mCentralSurfaces),
mQSLogger,
mUiEventLogger,
mUserTracker,
mSecureSettings,
mock(CustomTileStatePersister.class),
mTileServiceRequestControllerBuilder,
mTileLifecycleManagerFactory,
mUserFileManager);
mTileService = new TestTileServices(host, provider, mBroadcastDispatcher,
mUserTracker, mKeyguardStateController, mCommandQueue);
} }
@After @After
public void tearDown() throws Exception { public void tearDown() throws Exception {
mTileService.getHost().destroy();
mTileService.destroy(); mTileService.destroy();
TestableLooper.get(this).processAllMessages(); TestableLooper.get(this).processAllMessages();
} }
@@ -274,11 +223,12 @@ public class TileServicesTest extends SysuiTestCase {
} }
private class TestTileServices extends TileServices { private class TestTileServices extends TileServices {
TestTileServices(QSTileHost host, Provider<Handler> handlerProvider, TestTileServices(QSHost host, Provider<Handler> handlerProvider,
BroadcastDispatcher broadcastDispatcher, UserTracker userTracker, BroadcastDispatcher broadcastDispatcher, UserTracker userTracker,
KeyguardStateController keyguardStateController, CommandQueue commandQueue) { KeyguardStateController keyguardStateController, CommandQueue commandQueue,
StatusBarIconController statusBarIconController) {
super(host, handlerProvider, broadcastDispatcher, userTracker, keyguardStateController, super(host, handlerProvider, broadcastDispatcher, userTracker, keyguardStateController,
commandQueue); commandQueue, statusBarIconController);
} }
@Override @Override

View File

@@ -69,7 +69,6 @@ import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSEvent; import com.android.systemui.qs.QSEvent;
import com.android.systemui.qs.QSHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.QSTileHost;
import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.StatusBarState;
@@ -97,7 +96,7 @@ public class QSTileImplTest extends SysuiTestCase {
private TestableLooper mTestableLooper; private TestableLooper mTestableLooper;
private TileImpl mTile; private TileImpl mTile;
@Mock @Mock
private QSTileHost mHost; private QSHost mHost;
@Mock @Mock
private MetricsLogger mMetricsLogger; private MetricsLogger mMetricsLogger;
private final FalsingManagerFake mFalsingManager = new FalsingManagerFake(); private final FalsingManagerFake mFalsingManager = new FalsingManagerFake();

View File

@@ -17,7 +17,7 @@ import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.plugins.FalsingManager import com.android.systemui.plugins.FalsingManager
import com.android.systemui.plugins.qs.QSTile import com.android.systemui.plugins.qs.QSTile
import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.qs.QSTileHost import com.android.systemui.qs.QSHost
import com.android.systemui.qs.logging.QSLogger import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.qs.tileimpl.QSTileImpl import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.statusbar.policy.BluetoothController import com.android.systemui.statusbar.policy.BluetoothController
@@ -40,7 +40,7 @@ class BluetoothTileTest : SysuiTestCase() {
@Mock @Mock
private lateinit var qsLogger: QSLogger private lateinit var qsLogger: QSLogger
@Mock @Mock
private lateinit var qsHost: QSTileHost private lateinit var qsHost: QSHost
@Mock @Mock
private lateinit var metricsLogger: MetricsLogger private lateinit var metricsLogger: MetricsLogger
private val falsingManager = FalsingManagerFake() private val falsingManager = FalsingManagerFake()
@@ -135,7 +135,7 @@ class BluetoothTileTest : SysuiTestCase() {
} }
private class FakeBluetoothTile( private class FakeBluetoothTile(
qsTileHost: QSTileHost, qsHost: QSHost,
backgroundLooper: Looper, backgroundLooper: Looper,
mainHandler: Handler, mainHandler: Handler,
falsingManager: FalsingManager, falsingManager: FalsingManager,
@@ -145,7 +145,7 @@ class BluetoothTileTest : SysuiTestCase() {
qsLogger: QSLogger, qsLogger: QSLogger,
bluetoothController: BluetoothController bluetoothController: BluetoothController
) : BluetoothTile( ) : BluetoothTile(
qsTileHost, qsHost,
backgroundLooper, backgroundLooper,
mainHandler, mainHandler,
falsingManager, falsingManager,

View File

@@ -42,7 +42,7 @@ import com.android.systemui.animation.DialogLaunchAnimator;
import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.statusbar.connectivity.IconState; import com.android.systemui.statusbar.connectivity.IconState;
import com.android.systemui.statusbar.connectivity.NetworkController; import com.android.systemui.statusbar.connectivity.NetworkController;
@@ -78,7 +78,7 @@ public class CastTileTest extends SysuiTestCase {
@Mock @Mock
private NetworkController mNetworkController; private NetworkController mNetworkController;
@Mock @Mock
private QSTileHost mHost; private QSHost mHost;
@Mock @Mock
SignalCallback mSignalCallback; SignalCallback mSignalCallback;
@Mock @Mock

View File

@@ -37,7 +37,7 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.settings.FakeSettings; import com.android.systemui.util.settings.FakeSettings;
@@ -56,7 +56,7 @@ import org.mockito.MockitoAnnotations;
public class ColorCorrectionTileTest extends SysuiTestCase { public class ColorCorrectionTileTest extends SysuiTestCase {
@Mock @Mock
private QSTileHost mHost; private QSHost mHost;
@Mock @Mock
private MetricsLogger mMetricsLogger; private MetricsLogger mMetricsLogger;
@Mock @Mock

View File

@@ -39,7 +39,7 @@ import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker;
@@ -61,7 +61,7 @@ public class ColorInversionTileTest extends SysuiTestCase {
private static final Integer COLOR_INVERSION_ENABLED = 1; private static final Integer COLOR_INVERSION_ENABLED = 1;
@Mock @Mock
private QSTileHost mHost; private QSHost mHost;
@Mock @Mock
private MetricsLogger mMetricsLogger; private MetricsLogger mMetricsLogger;
@Mock @Mock

View File

@@ -47,7 +47,7 @@ import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker;
@@ -69,7 +69,7 @@ public class DreamTileTest extends SysuiTestCase {
@Mock @Mock
private ActivityStarter mActivityStarter; private ActivityStarter mActivityStarter;
@Mock @Mock
private QSTileHost mHost; private QSHost mHost;
@Mock @Mock
private MetricsLogger mMetricsLogger; private MetricsLogger mMetricsLogger;
@Mock @Mock

View File

@@ -13,7 +13,7 @@ import com.android.systemui.classifier.FalsingManagerFake
import com.android.systemui.plugins.ActivityStarter import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.plugins.qs.QSTile import com.android.systemui.plugins.qs.QSTile
import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.qs.QSTileHost import com.android.systemui.qs.QSHost
import com.android.systemui.qs.logging.QSLogger import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.qs.tileimpl.QSTileImpl import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.statusbar.policy.FlashlightController import com.android.systemui.statusbar.policy.FlashlightController
@@ -34,7 +34,7 @@ class FlashlightTileTest : SysuiTestCase() {
@Mock private lateinit var qsLogger: QSLogger @Mock private lateinit var qsLogger: QSLogger
@Mock private lateinit var qsHost: QSTileHost @Mock private lateinit var qsHost: QSHost
@Mock private lateinit var metricsLogger: MetricsLogger @Mock private lateinit var metricsLogger: MetricsLogger

View File

@@ -37,7 +37,7 @@ import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.statusbar.policy.DataSaverController; import com.android.systemui.statusbar.policy.DataSaverController;
@@ -60,7 +60,7 @@ public class HotspotTileTest extends SysuiTestCase {
@Rule @Rule
public MockitoRule mRule = MockitoJUnit.rule(); public MockitoRule mRule = MockitoJUnit.rule();
@Mock @Mock
private QSTileHost mHost; private QSHost mHost;
@Mock @Mock
private HotspotController mHotspotController; private HotspotController mHotspotController;
@Mock @Mock

View File

@@ -21,7 +21,6 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.os.Handler; import android.os.Handler;
import android.service.quicksettings.Tile; import android.service.quicksettings.Tile;
import android.testing.AndroidTestingRunner; import android.testing.AndroidTestingRunner;
@@ -35,7 +34,7 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.qs.tiles.dialog.InternetDialogFactory; import com.android.systemui.qs.tiles.dialog.InternetDialogFactory;
@@ -56,7 +55,7 @@ import org.mockito.MockitoAnnotations;
public class InternetTileTest extends SysuiTestCase { public class InternetTileTest extends SysuiTestCase {
@Mock @Mock
private QSTileHost mHost; private QSHost mHost;
@Mock @Mock
private NetworkController mNetworkController; private NetworkController mNetworkController;
@Mock @Mock

View File

@@ -29,7 +29,7 @@ import com.android.systemui.classifier.FalsingManagerFake
import com.android.systemui.plugins.ActivityStarter import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.plugins.qs.QSTile import com.android.systemui.plugins.qs.QSTile
import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.qs.QSTileHost import com.android.systemui.qs.QSHost
import com.android.systemui.qs.logging.QSLogger import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.qs.tileimpl.QSTileImpl import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.statusbar.policy.KeyguardStateController
@@ -52,7 +52,7 @@ class LocationTileTest : SysuiTestCase() {
@Mock @Mock
private lateinit var qsLogger: QSLogger private lateinit var qsLogger: QSLogger
@Mock @Mock
private lateinit var qsHost: QSTileHost private lateinit var qsHost: QSHost
@Mock @Mock
private lateinit var metricsLogger: MetricsLogger private lateinit var metricsLogger: MetricsLogger
private val falsingManager = FalsingManagerFake() private val falsingManager = FalsingManagerFake()

View File

@@ -36,7 +36,7 @@ import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.logging.QSLogger;
import org.junit.Before; import org.junit.Before;
@@ -60,7 +60,7 @@ public class NfcTileTest extends SysuiTestCase {
@Mock @Mock
private ActivityStarter mActivityStarter; private ActivityStarter mActivityStarter;
@Mock @Mock
private QSTileHost mHost; private QSHost mHost;
@Mock @Mock
private MetricsLogger mMetricsLogger; private MetricsLogger mMetricsLogger;
@Mock @Mock

View File

@@ -32,7 +32,7 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.settings.SecureSettings; import com.android.systemui.util.settings.SecureSettings;
@@ -53,7 +53,7 @@ public class OneHandedModeTileTest extends SysuiTestCase {
@Mock @Mock
private ActivityStarter mActivityStarter; private ActivityStarter mActivityStarter;
@Mock @Mock
private QSTileHost mHost; private QSHost mHost;
@Mock @Mock
private MetricsLogger mMetricsLogger; private MetricsLogger mMetricsLogger;
@Mock @Mock

View File

@@ -39,7 +39,7 @@ import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qrcodescanner.controller.QRCodeScannerController; import com.android.systemui.qrcodescanner.controller.QRCodeScannerController;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.qs.tileimpl.QSTileImpl;
@@ -54,7 +54,7 @@ import org.mockito.MockitoAnnotations;
@SmallTest @SmallTest
public class QRCodeScannerTileTest extends SysuiTestCase { public class QRCodeScannerTileTest extends SysuiTestCase {
@Mock @Mock
private QSTileHost mHost; private QSHost mHost;
@Mock @Mock
private MetricsLogger mMetricsLogger; private MetricsLogger mMetricsLogger;
@Mock @Mock

View File

@@ -66,7 +66,7 @@ import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.policy.KeyguardStateController;
@@ -99,7 +99,7 @@ public class QuickAccessWalletTileTest extends SysuiTestCase {
.setComponent(new ComponentName(mContext.getPackageName(), "WalletActivity")); .setComponent(new ComponentName(mContext.getPackageName(), "WalletActivity"));
@Mock @Mock
private QSTileHost mHost; private QSHost mHost;
@Mock @Mock
private MetricsLogger mMetricsLogger; private MetricsLogger mMetricsLogger;
@Mock @Mock

View File

@@ -38,7 +38,7 @@ import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.qs.ReduceBrightColorsController;
import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.qs.tileimpl.QSTileImpl;
@@ -57,7 +57,7 @@ import org.mockito.MockitoAnnotations;
@Ignore("b/269171747") @Ignore("b/269171747")
public class ReduceBrightColorsTileTest extends SysuiTestCase { public class ReduceBrightColorsTileTest extends SysuiTestCase {
@Mock @Mock
private QSTileHost mHost; private QSHost mHost;
@Mock @Mock
private MetricsLogger mMetricsLogger; private MetricsLogger mMetricsLogger;
@Mock @Mock

View File

@@ -38,7 +38,7 @@ import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.BatteryController;
@@ -71,7 +71,7 @@ public class RotationLockTileTest extends SysuiTestCase {
@Mock @Mock
private ActivityStarter mActivityStarter; private ActivityStarter mActivityStarter;
@Mock @Mock
private QSTileHost mHost; private QSHost mHost;
@Mock @Mock
private MetricsLogger mMetricsLogger; private MetricsLogger mMetricsLogger;
@Mock @Mock

View File

@@ -43,7 +43,7 @@ import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.screenrecord.RecordingController; import com.android.systemui.screenrecord.RecordingController;
@@ -65,7 +65,7 @@ public class ScreenRecordTileTest extends SysuiTestCase {
@Mock @Mock
private RecordingController mController; private RecordingController mController;
@Mock @Mock
private QSTileHost mHost; private QSHost mHost;
@Mock @Mock
private KeyguardDismissUtil mKeyguardDismissUtil; private KeyguardDismissUtil mKeyguardDismissUtil;
@Mock @Mock

View File

@@ -32,7 +32,7 @@ import com.android.systemui.classifier.FalsingManagerFake
import com.android.systemui.plugins.ActivityStarter import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.plugins.qs.QSTile import com.android.systemui.plugins.qs.QSTile
import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.qs.QSTileHost import com.android.systemui.qs.QSHost
import com.android.systemui.qs.logging.QSLogger import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.qs.tileimpl.QSTileImpl import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.BatteryController
@@ -55,7 +55,7 @@ class UiModeNightTileTest : SysuiTestCase() {
@Mock private lateinit var uiModeManager: UiModeManager @Mock private lateinit var uiModeManager: UiModeManager
@Mock private lateinit var resources: Resources @Mock private lateinit var resources: Resources
@Mock private lateinit var qsLogger: QSLogger @Mock private lateinit var qsLogger: QSLogger
@Mock private lateinit var qsHost: QSTileHost @Mock private lateinit var qsHost: QSHost
@Mock private lateinit var metricsLogger: MetricsLogger @Mock private lateinit var metricsLogger: MetricsLogger
@Mock private lateinit var statusBarStateController: StatusBarStateController @Mock private lateinit var statusBarStateController: StatusBarStateController
@Mock private lateinit var activityStarter: ActivityStarter @Mock private lateinit var activityStarter: ActivityStarter

View File

@@ -53,7 +53,7 @@ import com.android.systemui.R;
import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestCase;
import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.AutoAddTracker; import com.android.systemui.qs.AutoAddTracker;
import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.qs.ReduceBrightColorsController;
import com.android.systemui.qs.SettingObserver; import com.android.systemui.qs.SettingObserver;
import com.android.systemui.qs.external.CustomTile; import com.android.systemui.qs.external.CustomTile;
@@ -104,7 +104,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
private static final int USER = 0; private static final int USER = 0;
@Mock private QSTileHost mQsTileHost; @Mock private QSHost mQsHost;
@Mock private AutoAddTracker mAutoAddTracker; @Mock private AutoAddTracker mAutoAddTracker;
@Mock private CastController mCastController; @Mock private CastController mCastController;
@Mock private HotspotController mHotspotController; @Mock private HotspotController mHotspotController;
@@ -144,7 +144,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
R.string.safety_quick_settings_tile_class, TEST_CUSTOM_SAFETY_CLASS); R.string.safety_quick_settings_tile_class, TEST_CUSTOM_SAFETY_CLASS);
when(mAutoAddTrackerBuilder.build()).thenReturn(mAutoAddTracker); when(mAutoAddTrackerBuilder.build()).thenReturn(mAutoAddTracker);
when(mQsTileHost.getUserContext()).thenReturn(mUserContext); when(mQsHost.getUserContext()).thenReturn(mUserContext);
when(mUserContext.getUser()).thenReturn(UserHandle.of(USER)); when(mUserContext.getUser()).thenReturn(UserHandle.of(USER));
mPackageManager = Mockito.spy(mContext.getPackageManager()); mPackageManager = Mockito.spy(mContext.getPackageManager());
when(mPackageManager.getPermissionControllerPackageName()) when(mPackageManager.getPermissionControllerPackageName())
@@ -174,7 +174,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
WalletController walletController, WalletController walletController,
SafetyController safetyController, SafetyController safetyController,
@Named(RBC_AVAILABLE) boolean isReduceBrightColorsAvailable) { @Named(RBC_AVAILABLE) boolean isReduceBrightColorsAvailable) {
return new AutoTileManager(context, autoAddTrackerBuilder, mQsTileHost, return new AutoTileManager(context, autoAddTrackerBuilder, mQsHost,
Handler.createAsync(TestableLooper.get(this).getLooper()), Handler.createAsync(TestableLooper.get(this).getLooper()),
mSecureSettings, mSecureSettings,
hotspotController, hotspotController,
@@ -359,7 +359,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
return; return;
} }
mAutoTileManager.mNightDisplayCallback.onActivated(true); mAutoTileManager.mNightDisplayCallback.onActivated(true);
verify(mQsTileHost).addTile("night"); verify(mQsHost).addTile("night");
} }
@Test @Test
@@ -368,7 +368,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
return; return;
} }
mAutoTileManager.mNightDisplayCallback.onActivated(false); mAutoTileManager.mNightDisplayCallback.onActivated(false);
verify(mQsTileHost, never()).addTile("night"); verify(mQsHost, never()).addTile("night");
} }
@Test @Test
@@ -378,7 +378,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
} }
mAutoTileManager.mNightDisplayCallback.onAutoModeChanged( mAutoTileManager.mNightDisplayCallback.onAutoModeChanged(
ColorDisplayManager.AUTO_MODE_TWILIGHT); ColorDisplayManager.AUTO_MODE_TWILIGHT);
verify(mQsTileHost).addTile("night"); verify(mQsHost).addTile("night");
} }
@Test @Test
@@ -388,7 +388,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
} }
mAutoTileManager.mNightDisplayCallback.onAutoModeChanged( mAutoTileManager.mNightDisplayCallback.onAutoModeChanged(
ColorDisplayManager.AUTO_MODE_CUSTOM_TIME); ColorDisplayManager.AUTO_MODE_CUSTOM_TIME);
verify(mQsTileHost).addTile("night"); verify(mQsHost).addTile("night");
} }
@Test @Test
@@ -398,19 +398,19 @@ public class AutoTileManagerTest extends SysuiTestCase {
} }
mAutoTileManager.mNightDisplayCallback.onAutoModeChanged( mAutoTileManager.mNightDisplayCallback.onAutoModeChanged(
ColorDisplayManager.AUTO_MODE_DISABLED); ColorDisplayManager.AUTO_MODE_DISABLED);
verify(mQsTileHost, never()).addTile("night"); verify(mQsHost, never()).addTile("night");
} }
@Test @Test
public void reduceBrightColorsTileAdded_whenActivated() { public void reduceBrightColorsTileAdded_whenActivated() {
mAutoTileManager.mReduceBrightColorsCallback.onActivated(true); mAutoTileManager.mReduceBrightColorsCallback.onActivated(true);
verify(mQsTileHost).addTile("reduce_brightness"); verify(mQsHost).addTile("reduce_brightness");
} }
@Test @Test
public void reduceBrightColorsTileNotAdded_whenDeactivated() { public void reduceBrightColorsTileNotAdded_whenDeactivated() {
mAutoTileManager.mReduceBrightColorsCallback.onActivated(false); mAutoTileManager.mReduceBrightColorsCallback.onActivated(false);
verify(mQsTileHost, never()).addTile("reduce_brightness"); verify(mQsHost, never()).addTile("reduce_brightness");
} }
private static List<CastDevice> buildFakeCastDevice(boolean isCasting) { private static List<CastDevice> buildFakeCastDevice(boolean isCasting) {
@@ -423,28 +423,28 @@ public class AutoTileManagerTest extends SysuiTestCase {
public void castTileAdded_whenDeviceIsCasting() { public void castTileAdded_whenDeviceIsCasting() {
doReturn(buildFakeCastDevice(true)).when(mCastController).getCastDevices(); doReturn(buildFakeCastDevice(true)).when(mCastController).getCastDevices();
mAutoTileManager.mCastCallback.onCastDevicesChanged(); mAutoTileManager.mCastCallback.onCastDevicesChanged();
verify(mQsTileHost).addTile("cast"); verify(mQsHost).addTile("cast");
} }
@Test @Test
public void castTileNotAdded_whenDeviceIsNotCasting() { public void castTileNotAdded_whenDeviceIsNotCasting() {
doReturn(buildFakeCastDevice(false)).when(mCastController).getCastDevices(); doReturn(buildFakeCastDevice(false)).when(mCastController).getCastDevices();
mAutoTileManager.mCastCallback.onCastDevicesChanged(); mAutoTileManager.mCastCallback.onCastDevicesChanged();
verify(mQsTileHost, never()).addTile("cast"); verify(mQsHost, never()).addTile("cast");
} }
@Test @Test
public void testSettingTileAdded_onChanged() { public void testSettingTileAdded_onChanged() {
changeValue(TEST_SETTING, 1); changeValue(TEST_SETTING, 1);
verify(mAutoAddTracker).setTileAdded(TEST_SPEC); verify(mAutoAddTracker).setTileAdded(TEST_SPEC);
verify(mQsTileHost).addTile(TEST_SPEC); verify(mQsHost).addTile(TEST_SPEC);
} }
@Test @Test
public void testSettingTileAddedComponentAtEnd_onChanged() { public void testSettingTileAddedComponentAtEnd_onChanged() {
changeValue(TEST_SETTING_COMPONENT, 1); changeValue(TEST_SETTING_COMPONENT, 1);
verify(mAutoAddTracker).setTileAdded(TEST_CUSTOM_SPEC); verify(mAutoAddTracker).setTileAdded(TEST_CUSTOM_SPEC);
verify(mQsTileHost).addTile(ComponentName.unflattenFromString(TEST_COMPONENT) verify(mQsHost).addTile(ComponentName.unflattenFromString(TEST_COMPONENT)
, /* end */ true); , /* end */ true);
} }
@@ -453,14 +453,14 @@ public class AutoTileManagerTest extends SysuiTestCase {
changeValue(TEST_SETTING, 1); changeValue(TEST_SETTING, 1);
changeValue(TEST_SETTING, 2); changeValue(TEST_SETTING, 2);
verify(mAutoAddTracker).setTileAdded(TEST_SPEC); verify(mAutoAddTracker).setTileAdded(TEST_SPEC);
verify(mQsTileHost).addTile(TEST_SPEC); verify(mQsHost).addTile(TEST_SPEC);
} }
@Test @Test
public void testSettingTileNotAdded_onChangedTo0() { public void testSettingTileNotAdded_onChangedTo0() {
changeValue(TEST_SETTING, 0); changeValue(TEST_SETTING, 0);
verify(mAutoAddTracker, never()).setTileAdded(TEST_SPEC); verify(mAutoAddTracker, never()).setTileAdded(TEST_SPEC);
verify(mQsTileHost, never()).addTile(TEST_SPEC); verify(mQsHost, never()).addTile(TEST_SPEC);
} }
@Test @Test
@@ -469,27 +469,27 @@ public class AutoTileManagerTest extends SysuiTestCase {
changeValue(TEST_SETTING, 1); changeValue(TEST_SETTING, 1);
verify(mAutoAddTracker, never()).setTileAdded(TEST_SPEC); verify(mAutoAddTracker, never()).setTileAdded(TEST_SPEC);
verify(mQsTileHost, never()).addTile(TEST_SPEC); verify(mQsHost, never()).addTile(TEST_SPEC);
} }
@Test @Test
public void testSafetyTileNotAdded_ifPreviouslyAdded() { public void testSafetyTileNotAdded_ifPreviouslyAdded() {
ComponentName safetyComponent = CustomTile.getComponentFromSpec(TEST_CUSTOM_SAFETY_SPEC); ComponentName safetyComponent = CustomTile.getComponentFromSpec(TEST_CUSTOM_SAFETY_SPEC);
mAutoTileManager.init(); mAutoTileManager.init();
verify(mQsTileHost, times(1)).addTile(safetyComponent, true); verify(mQsHost, times(1)).addTile(safetyComponent, true);
when(mAutoAddTracker.isAdded(TEST_CUSTOM_SAFETY_SPEC)).thenReturn(true); when(mAutoAddTracker.isAdded(TEST_CUSTOM_SAFETY_SPEC)).thenReturn(true);
mAutoTileManager.init(); mAutoTileManager.init();
verify(mQsTileHost, times(1)).addTile(safetyComponent, true); verify(mQsHost, times(1)).addTile(safetyComponent, true);
} }
@Test @Test
public void testSafetyTileAdded_onUserChange() { public void testSafetyTileAdded_onUserChange() {
ComponentName safetyComponent = CustomTile.getComponentFromSpec(TEST_CUSTOM_SAFETY_SPEC); ComponentName safetyComponent = CustomTile.getComponentFromSpec(TEST_CUSTOM_SAFETY_SPEC);
mAutoTileManager.init(); mAutoTileManager.init();
verify(mQsTileHost, times(1)).addTile(safetyComponent, true); verify(mQsHost, times(1)).addTile(safetyComponent, true);
when(mAutoAddTracker.isAdded(TEST_CUSTOM_SAFETY_SPEC)).thenReturn(false); when(mAutoAddTracker.isAdded(TEST_CUSTOM_SAFETY_SPEC)).thenReturn(false);
mAutoTileManager.changeUser(UserHandle.of(USER + 1)); mAutoTileManager.changeUser(UserHandle.of(USER + 1));
verify(mQsTileHost, times(2)).addTile(safetyComponent, true); verify(mQsHost, times(2)).addTile(safetyComponent, true);
} }
@Test @Test
@@ -498,17 +498,17 @@ public class AutoTileManagerTest extends SysuiTestCase {
mAutoTileManager.init(); mAutoTileManager.init();
when(mAutoAddTracker.isAdded(TEST_CUSTOM_SAFETY_SPEC)).thenReturn(true); when(mAutoAddTracker.isAdded(TEST_CUSTOM_SAFETY_SPEC)).thenReturn(true);
mAutoTileManager.mSafetyCallback.onSafetyCenterEnableChanged(false); mAutoTileManager.mSafetyCallback.onSafetyCenterEnableChanged(false);
verify(mQsTileHost, times(1)).removeTile(TEST_CUSTOM_SAFETY_SPEC); verify(mQsHost, times(1)).removeTile(TEST_CUSTOM_SAFETY_SPEC);
} }
@Test @Test
public void testSafetyTileAdded_onSafetyCenterEnable() { public void testSafetyTileAdded_onSafetyCenterEnable() {
ComponentName safetyComponent = CustomTile.getComponentFromSpec(TEST_CUSTOM_SAFETY_SPEC); ComponentName safetyComponent = CustomTile.getComponentFromSpec(TEST_CUSTOM_SAFETY_SPEC);
mAutoTileManager.init(); mAutoTileManager.init();
verify(mQsTileHost, times(1)).addTile(safetyComponent, true); verify(mQsHost, times(1)).addTile(safetyComponent, true);
mAutoTileManager.mSafetyCallback.onSafetyCenterEnableChanged(false); mAutoTileManager.mSafetyCallback.onSafetyCenterEnableChanged(false);
mAutoTileManager.mSafetyCallback.onSafetyCenterEnableChanged(true); mAutoTileManager.mSafetyCallback.onSafetyCenterEnableChanged(true);
verify(mQsTileHost, times(2)).addTile(safetyComponent, true); verify(mQsHost, times(2)).addTile(safetyComponent, true);
} }
@Test @Test
@@ -525,7 +525,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
mManagedProfileCallback.onManagedProfileChanged(); mManagedProfileCallback.onManagedProfileChanged();
verify(mQsTileHost, times(1)).addTile(eq("work"), eq(2)); verify(mQsHost, times(1)).addTile(eq("work"), eq(2));
verify(mAutoAddTracker, times(1)).setTileAdded(eq("work")); verify(mAutoAddTracker, times(1)).setTileAdded(eq("work"));
} }
@@ -542,7 +542,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
mManagedProfileCallback.onManagedProfileChanged(); mManagedProfileCallback.onManagedProfileChanged();
verify(mQsTileHost, times(1)).removeTile(eq("work")); verify(mQsHost, times(1)).removeTile(eq("work"));
verify(mAutoAddTracker, times(1)).setTileRemoved(eq("work")); verify(mAutoAddTracker, times(1)).setTileRemoved(eq("work"));
} }
@@ -550,7 +550,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
public void testAddControlsTileIfNotPresent() { public void testAddControlsTileIfNotPresent() {
String spec = DEVICE_CONTROLS; String spec = DEVICE_CONTROLS;
when(mAutoAddTracker.isAdded(eq(spec))).thenReturn(false); when(mAutoAddTracker.isAdded(eq(spec))).thenReturn(false);
when(mQsTileHost.getTiles()).thenReturn(new ArrayList<>()); when(mQsHost.getTiles()).thenReturn(new ArrayList<>());
mAutoTileManager.init(); mAutoTileManager.init();
ArgumentCaptor<DeviceControlsController.Callback> captor = ArgumentCaptor<DeviceControlsController.Callback> captor =
@@ -559,7 +559,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
verify(mDeviceControlsController).setCallback(captor.capture()); verify(mDeviceControlsController).setCallback(captor.capture());
captor.getValue().onControlsUpdate(3); captor.getValue().onControlsUpdate(3);
verify(mQsTileHost).addTile(spec, 3); verify(mQsHost).addTile(spec, 3);
verify(mAutoAddTracker).setTileAdded(spec); verify(mAutoAddTracker).setTileAdded(spec);
} }
@@ -567,7 +567,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
public void testDontAddControlsTileIfPresent() { public void testDontAddControlsTileIfPresent() {
String spec = DEVICE_CONTROLS; String spec = DEVICE_CONTROLS;
when(mAutoAddTracker.isAdded(eq(spec))).thenReturn(false); when(mAutoAddTracker.isAdded(eq(spec))).thenReturn(false);
when(mQsTileHost.getTiles()).thenReturn(new ArrayList<>()); when(mQsHost.getTiles()).thenReturn(new ArrayList<>());
mAutoTileManager.init(); mAutoTileManager.init();
ArgumentCaptor<DeviceControlsController.Callback> captor = ArgumentCaptor<DeviceControlsController.Callback> captor =
@@ -576,7 +576,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
verify(mDeviceControlsController).setCallback(captor.capture()); verify(mDeviceControlsController).setCallback(captor.capture());
captor.getValue().removeControlsAutoTracker(); captor.getValue().removeControlsAutoTracker();
verify(mQsTileHost, never()).addTile(spec, 3); verify(mQsHost, never()).addTile(spec, 3);
verify(mAutoAddTracker, never()).setTileAdded(spec); verify(mAutoAddTracker, never()).setTileAdded(spec);
verify(mAutoAddTracker).setTileRemoved(spec); verify(mAutoAddTracker).setTileRemoved(spec);
} }
@@ -587,7 +587,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
when(mAutoAddTracker.isAdded(eq(spec))).thenReturn(true); when(mAutoAddTracker.isAdded(eq(spec))).thenReturn(true);
QSTile mockTile = mock(QSTile.class); QSTile mockTile = mock(QSTile.class);
when(mockTile.getTileSpec()).thenReturn(spec); when(mockTile.getTileSpec()).thenReturn(spec);
when(mQsTileHost.getTiles()).thenReturn(List.of(mockTile)); when(mQsHost.getTiles()).thenReturn(List.of(mockTile));
mAutoTileManager.init(); mAutoTileManager.init();
ArgumentCaptor<DeviceControlsController.Callback> captor = ArgumentCaptor<DeviceControlsController.Callback> captor =
@@ -596,7 +596,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
verify(mDeviceControlsController).setCallback(captor.capture()); verify(mDeviceControlsController).setCallback(captor.capture());
captor.getValue().onControlsUpdate(3); captor.getValue().onControlsUpdate(3);
verify(mQsTileHost, never()).addTile(spec, 3); verify(mQsHost, never()).addTile(spec, 3);
verify(mAutoAddTracker, never()).setTileAdded(spec); verify(mAutoAddTracker, never()).setTileAdded(spec);
} }

View File

@@ -43,6 +43,7 @@ import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestCase;
import com.android.systemui.assist.AssistManager; import com.android.systemui.assist.AssistManager;
import com.android.systemui.keyguard.WakefulnessLifecycle; import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.qs.QSHost;
import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker;
import com.android.systemui.shade.CameraLauncher; import com.android.systemui.shade.CameraLauncher;
import com.android.systemui.shade.NotificationPanelViewController; import com.android.systemui.shade.NotificationPanelViewController;
@@ -94,6 +95,7 @@ public class CentralSurfacesCommandQueueCallbacksTest extends SysuiTestCase {
@Mock private SystemBarAttributesListener mSystemBarAttributesListener; @Mock private SystemBarAttributesListener mSystemBarAttributesListener;
@Mock private Lazy<CameraLauncher> mCameraLauncherLazy; @Mock private Lazy<CameraLauncher> mCameraLauncherLazy;
@Mock private UserTracker mUserTracker; @Mock private UserTracker mUserTracker;
@Mock private QSHost mQSHost;
CentralSurfacesCommandQueueCallbacks mSbcqCallbacks; CentralSurfacesCommandQueueCallbacks mSbcqCallbacks;
@@ -128,7 +130,8 @@ public class CentralSurfacesCommandQueueCallbacksTest extends SysuiTestCase {
DEFAULT_DISPLAY, DEFAULT_DISPLAY,
mSystemBarAttributesListener, mSystemBarAttributesListener,
mCameraLauncherLazy, mCameraLauncherLazy,
mUserTracker); mUserTracker,
mQSHost);
when(mUserTracker.getUserHandle()).thenReturn( when(mUserTracker.getUserHandle()).thenReturn(
UserHandle.of(ActivityManager.getCurrentUser())); UserHandle.of(ActivityManager.getCurrentUser()));