Loading packages/SystemUI/src/com/android/systemui/qs/QSHost.java +0 −2 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ import android.content.Context; import com.android.internal.logging.InstanceId; import com.android.internal.logging.UiEventLogger; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.qs.external.TileServices; import java.util.Collection; Loading @@ -35,7 +34,6 @@ public interface QSHost { Collection<QSTile> getTiles(); void addCallback(Callback callback); void removeCallback(Callback callback); TileServices getTileServices(); void removeTile(String tileSpec); void removeTiles(Collection<String> specs); void unmarkTileAsAutoAdded(String tileSpec); Loading packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java +6 −15 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import android.os.Looper; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings.Secure; import android.service.quicksettings.Tile; import android.text.TextUtils; import android.util.ArraySet; import android.util.Log; Loading @@ -50,7 +49,6 @@ import com.android.systemui.qs.external.CustomTileStatePersister; import com.android.systemui.qs.external.TileLifecycleManager; import com.android.systemui.qs.external.TileServiceKey; import com.android.systemui.qs.external.TileServiceRequestController; import com.android.systemui.qs.external.TileServices; import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.settings.UserTracker; import com.android.systemui.shared.plugins.PluginManager; Loading Loading @@ -89,7 +87,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D private final Context mContext; private final LinkedHashMap<String, QSTile> mTiles = new LinkedHashMap<>(); protected final ArrayList<String> mTileSpecs = new ArrayList<>(); private final TileServices mServices; private final TunerService mTunerService; private final PluginManager mPluginManager; private final DumpManager mDumpManager; Loading @@ -111,6 +108,7 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D private SecureSettings mSecureSettings; private final TileServiceRequestController mTileServiceRequestController; private TileLifecycleManager.Factory mTileLifeCycleManagerFactory; @Inject public QSTileHost(Context context, Loading @@ -129,7 +127,8 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D UserTracker userTracker, SecureSettings secureSettings, CustomTileStatePersister customTileStatePersister, TileServiceRequestController.Builder tileServiceRequestControllerBuilder TileServiceRequestController.Builder tileServiceRequestControllerBuilder, TileLifecycleManager.Factory tileLifecycleManagerFactory ) { mIconController = iconController; mContext = context; Loading @@ -141,9 +140,9 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D mUiEventLogger = uiEventLogger; mBroadcastDispatcher = broadcastDispatcher; mTileServiceRequestController = tileServiceRequestControllerBuilder.create(this); mTileLifeCycleManagerFactory = tileLifecycleManagerFactory; mInstanceIdSequence = new InstanceIdSequence(MAX_QS_INSTANCE_ID); mServices = new TileServices(this, bgLooper, mBroadcastDispatcher, userTracker); mStatusBarOptional = statusBarOptional; mQsFactories.add(defaultFactory); Loading Loading @@ -177,7 +176,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D mTiles.values().forEach(tile -> tile.destroy()); mAutoTiles.destroy(); mTunerService.removeTunable(this); mServices.destroy(); mPluginManager.removePluginListener(this); mDumpManager.unregisterDumpable(TAG); mTileServiceRequestController.destroy(); Loading Loading @@ -257,11 +255,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D return mCurrentUser; } @Override public TileServices getTileServices() { return mServices; } public int indexOf(String spec) { return mTileSpecs.indexOf(spec); } Loading Loading @@ -460,10 +453,8 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D if (!newTiles.contains(tileSpec)) { ComponentName component = CustomTile.getComponentFromSpec(tileSpec); Intent intent = new Intent().setComponent(component); TileLifecycleManager lifecycleManager = new TileLifecycleManager(new Handler(), mContext, mServices, new Tile(), intent, new UserHandle(mCurrentUser), mBroadcastDispatcher); TileLifecycleManager lifecycleManager = mTileLifeCycleManagerFactory.create( intent, new UserHandle(mCurrentUser)); lifecycleManager.onStopListening(); lifecycleManager.onTileRemoved(); mCustomTileStatePersister.removeState(new TileServiceKey(component, mCurrentUser)); Loading packages/SystemUI/src/com/android/systemui/qs/dagger/QSModule.java +2 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import com.android.systemui.qs.AutoAddTracker; import com.android.systemui.qs.QSHost; import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.qs.external.QSExternalModule; import com.android.systemui.statusbar.phone.AutoTileManager; import com.android.systemui.statusbar.phone.ManagedProfileController; import com.android.systemui.statusbar.policy.CastController; Loading @@ -47,7 +48,7 @@ import dagger.Provides; * Module for QS dependencies */ @Module(subcomponents = {QSFragmentComponent.class}, includes = {MediaModule.class, QSFlagsModule.class}) includes = {MediaModule.class, QSExternalModule.class, QSFlagsModule.class}) public interface QSModule { @Provides Loading packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java +13 −7 Original line number Diff line number Diff line Loading @@ -51,7 +51,6 @@ import androidx.annotation.WorkerThread; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.systemui.Dependency; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.plugins.ActivityStarter; Loading Loading @@ -103,6 +102,7 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener private final TileServiceKey mKey; private final AtomicBoolean mInitialDefaultIconFetched = new AtomicBoolean(false); private final TileServices mTileServices; private CustomTile( QSHost host, Loading @@ -115,10 +115,12 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener QSLogger qsLogger, String action, Context userContext, CustomTileStatePersister customTileStatePersister CustomTileStatePersister customTileStatePersister, TileServices tileServices ) { super(host, backgroundLooper, mainHandler, falsingManager, metricsLogger, statusBarStateController, activityStarter, qsLogger); mTileServices = tileServices; mWindowManager = WindowManagerGlobal.getWindowManagerService(); mComponent = ComponentName.unflattenFromString(action); mTile = new Tile(); Loading @@ -126,7 +128,7 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener mUser = mUserContext.getUserId(); mKey = new TileServiceKey(mComponent, mUser); mServiceManager = host.getTileServices().getTileWrapper(this); mServiceManager = tileServices.getTileWrapper(this); mService = mServiceManager.getTileService(); mCustomTileStatePersister = customTileStatePersister; } Loading Loading @@ -349,7 +351,7 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener } catch (RemoteException e) { } } mHost.getTileServices().freeService(this, mServiceManager); mTileServices.freeService(this, mServiceManager); } @Override Loading Loading @@ -473,7 +475,7 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener } public void startUnlockAndRun() { Dependency.get(ActivityStarter.class).postQSRunnableDismissingKeyguard(() -> { mActivityStarter.postQSRunnableDismissingKeyguard(() -> { try { mService.onUnlockComplete(); } catch (RemoteException e) { Loading Loading @@ -529,6 +531,7 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener final ActivityStarter mActivityStarter; final QSLogger mQSLogger; final CustomTileStatePersister mCustomTileStatePersister; private TileServices mTileServices; Context mUserContext; String mSpec = ""; Loading @@ -543,7 +546,8 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener StatusBarStateController statusBarStateController, ActivityStarter activityStarter, QSLogger qsLogger, CustomTileStatePersister customTileStatePersister CustomTileStatePersister customTileStatePersister, TileServices tileServices ) { mQSHostLazy = hostLazy; mBackgroundLooper = backgroundLooper; Loading @@ -554,6 +558,7 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener mActivityStarter = activityStarter; mQSLogger = qsLogger; mCustomTileStatePersister = customTileStatePersister; mTileServices = tileServices; } Builder setSpec(@NonNull String spec) { Loading Loading @@ -583,7 +588,8 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener mQSLogger, action, mUserContext, mCustomTileStatePersister mCustomTileStatePersister, mTileServices ); } } Loading packages/SystemUI/src/com/android/systemui/qs/external/PackageManagerAdapter.java +3 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import android.content.pm.PackageManager; import android.content.pm.ServiceInfo; import android.os.RemoteException; import javax.inject.Inject; // Adapter that wraps calls to PackageManager or IPackageManager for {@link TileLifecycleManager}. // TODO: This is very much an intermediate step to allow for PackageManager mocking and should be // abstracted into something more useful for other tests in systemui. Loading @@ -37,6 +39,7 @@ public class PackageManagerAdapter { // Uses the PackageManager for the provided context. // When necessary, uses the IPackagemanger in AppGlobals. @Inject public PackageManagerAdapter(Context context) { mPackageManager = context.getPackageManager(); mIPackageManager = AppGlobals.getPackageManager(); Loading Loading
packages/SystemUI/src/com/android/systemui/qs/QSHost.java +0 −2 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ import android.content.Context; import com.android.internal.logging.InstanceId; import com.android.internal.logging.UiEventLogger; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.qs.external.TileServices; import java.util.Collection; Loading @@ -35,7 +34,6 @@ public interface QSHost { Collection<QSTile> getTiles(); void addCallback(Callback callback); void removeCallback(Callback callback); TileServices getTileServices(); void removeTile(String tileSpec); void removeTiles(Collection<String> specs); void unmarkTileAsAutoAdded(String tileSpec); Loading
packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java +6 −15 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import android.os.Looper; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings.Secure; import android.service.quicksettings.Tile; import android.text.TextUtils; import android.util.ArraySet; import android.util.Log; Loading @@ -50,7 +49,6 @@ import com.android.systemui.qs.external.CustomTileStatePersister; import com.android.systemui.qs.external.TileLifecycleManager; import com.android.systemui.qs.external.TileServiceKey; import com.android.systemui.qs.external.TileServiceRequestController; import com.android.systemui.qs.external.TileServices; import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.settings.UserTracker; import com.android.systemui.shared.plugins.PluginManager; Loading Loading @@ -89,7 +87,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D private final Context mContext; private final LinkedHashMap<String, QSTile> mTiles = new LinkedHashMap<>(); protected final ArrayList<String> mTileSpecs = new ArrayList<>(); private final TileServices mServices; private final TunerService mTunerService; private final PluginManager mPluginManager; private final DumpManager mDumpManager; Loading @@ -111,6 +108,7 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D private SecureSettings mSecureSettings; private final TileServiceRequestController mTileServiceRequestController; private TileLifecycleManager.Factory mTileLifeCycleManagerFactory; @Inject public QSTileHost(Context context, Loading @@ -129,7 +127,8 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D UserTracker userTracker, SecureSettings secureSettings, CustomTileStatePersister customTileStatePersister, TileServiceRequestController.Builder tileServiceRequestControllerBuilder TileServiceRequestController.Builder tileServiceRequestControllerBuilder, TileLifecycleManager.Factory tileLifecycleManagerFactory ) { mIconController = iconController; mContext = context; Loading @@ -141,9 +140,9 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D mUiEventLogger = uiEventLogger; mBroadcastDispatcher = broadcastDispatcher; mTileServiceRequestController = tileServiceRequestControllerBuilder.create(this); mTileLifeCycleManagerFactory = tileLifecycleManagerFactory; mInstanceIdSequence = new InstanceIdSequence(MAX_QS_INSTANCE_ID); mServices = new TileServices(this, bgLooper, mBroadcastDispatcher, userTracker); mStatusBarOptional = statusBarOptional; mQsFactories.add(defaultFactory); Loading Loading @@ -177,7 +176,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D mTiles.values().forEach(tile -> tile.destroy()); mAutoTiles.destroy(); mTunerService.removeTunable(this); mServices.destroy(); mPluginManager.removePluginListener(this); mDumpManager.unregisterDumpable(TAG); mTileServiceRequestController.destroy(); Loading Loading @@ -257,11 +255,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D return mCurrentUser; } @Override public TileServices getTileServices() { return mServices; } public int indexOf(String spec) { return mTileSpecs.indexOf(spec); } Loading Loading @@ -460,10 +453,8 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D if (!newTiles.contains(tileSpec)) { ComponentName component = CustomTile.getComponentFromSpec(tileSpec); Intent intent = new Intent().setComponent(component); TileLifecycleManager lifecycleManager = new TileLifecycleManager(new Handler(), mContext, mServices, new Tile(), intent, new UserHandle(mCurrentUser), mBroadcastDispatcher); TileLifecycleManager lifecycleManager = mTileLifeCycleManagerFactory.create( intent, new UserHandle(mCurrentUser)); lifecycleManager.onStopListening(); lifecycleManager.onTileRemoved(); mCustomTileStatePersister.removeState(new TileServiceKey(component, mCurrentUser)); Loading
packages/SystemUI/src/com/android/systemui/qs/dagger/QSModule.java +2 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import com.android.systemui.qs.AutoAddTracker; import com.android.systemui.qs.QSHost; import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.qs.external.QSExternalModule; import com.android.systemui.statusbar.phone.AutoTileManager; import com.android.systemui.statusbar.phone.ManagedProfileController; import com.android.systemui.statusbar.policy.CastController; Loading @@ -47,7 +48,7 @@ import dagger.Provides; * Module for QS dependencies */ @Module(subcomponents = {QSFragmentComponent.class}, includes = {MediaModule.class, QSFlagsModule.class}) includes = {MediaModule.class, QSExternalModule.class, QSFlagsModule.class}) public interface QSModule { @Provides Loading
packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java +13 −7 Original line number Diff line number Diff line Loading @@ -51,7 +51,6 @@ import androidx.annotation.WorkerThread; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.systemui.Dependency; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.plugins.ActivityStarter; Loading Loading @@ -103,6 +102,7 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener private final TileServiceKey mKey; private final AtomicBoolean mInitialDefaultIconFetched = new AtomicBoolean(false); private final TileServices mTileServices; private CustomTile( QSHost host, Loading @@ -115,10 +115,12 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener QSLogger qsLogger, String action, Context userContext, CustomTileStatePersister customTileStatePersister CustomTileStatePersister customTileStatePersister, TileServices tileServices ) { super(host, backgroundLooper, mainHandler, falsingManager, metricsLogger, statusBarStateController, activityStarter, qsLogger); mTileServices = tileServices; mWindowManager = WindowManagerGlobal.getWindowManagerService(); mComponent = ComponentName.unflattenFromString(action); mTile = new Tile(); Loading @@ -126,7 +128,7 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener mUser = mUserContext.getUserId(); mKey = new TileServiceKey(mComponent, mUser); mServiceManager = host.getTileServices().getTileWrapper(this); mServiceManager = tileServices.getTileWrapper(this); mService = mServiceManager.getTileService(); mCustomTileStatePersister = customTileStatePersister; } Loading Loading @@ -349,7 +351,7 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener } catch (RemoteException e) { } } mHost.getTileServices().freeService(this, mServiceManager); mTileServices.freeService(this, mServiceManager); } @Override Loading Loading @@ -473,7 +475,7 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener } public void startUnlockAndRun() { Dependency.get(ActivityStarter.class).postQSRunnableDismissingKeyguard(() -> { mActivityStarter.postQSRunnableDismissingKeyguard(() -> { try { mService.onUnlockComplete(); } catch (RemoteException e) { Loading Loading @@ -529,6 +531,7 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener final ActivityStarter mActivityStarter; final QSLogger mQSLogger; final CustomTileStatePersister mCustomTileStatePersister; private TileServices mTileServices; Context mUserContext; String mSpec = ""; Loading @@ -543,7 +546,8 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener StatusBarStateController statusBarStateController, ActivityStarter activityStarter, QSLogger qsLogger, CustomTileStatePersister customTileStatePersister CustomTileStatePersister customTileStatePersister, TileServices tileServices ) { mQSHostLazy = hostLazy; mBackgroundLooper = backgroundLooper; Loading @@ -554,6 +558,7 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener mActivityStarter = activityStarter; mQSLogger = qsLogger; mCustomTileStatePersister = customTileStatePersister; mTileServices = tileServices; } Builder setSpec(@NonNull String spec) { Loading Loading @@ -583,7 +588,8 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener mQSLogger, action, mUserContext, mCustomTileStatePersister mCustomTileStatePersister, mTileServices ); } } Loading
packages/SystemUI/src/com/android/systemui/qs/external/PackageManagerAdapter.java +3 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ import android.content.pm.PackageManager; import android.content.pm.ServiceInfo; import android.os.RemoteException; import javax.inject.Inject; // Adapter that wraps calls to PackageManager or IPackageManager for {@link TileLifecycleManager}. // TODO: This is very much an intermediate step to allow for PackageManager mocking and should be // abstracted into something more useful for other tests in systemui. Loading @@ -37,6 +39,7 @@ public class PackageManagerAdapter { // Uses the PackageManager for the provided context. // When necessary, uses the IPackagemanger in AppGlobals. @Inject public PackageManagerAdapter(Context context) { mPackageManager = context.getPackageManager(); mIPackageManager = AppGlobals.getPackageManager(); Loading