Remove all Dependency.get(ActivityStarterDelegate.class) calls.
It was only called in StatusBar so that StatusBar could pass itself in. Instead, inject StatusBar directly (as an Optional). If we ever want a different implementation, we can handle that in the future, but right now, StatusBar was the only one ever set. Bug: 141882822 Test: atest SystemUITests Change-Id: Ia23b8f678ea2ac0eb4e8114f700bf703f48740e7
This commit is contained in:
@@ -19,117 +19,99 @@ import android.content.Intent;
|
||||
import android.view.View;
|
||||
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import dagger.Lazy;
|
||||
|
||||
/**
|
||||
* Single common instance of ActivityStarter that can be gotten and referenced from anywhere, but
|
||||
* delegates to an actual implementation such as StatusBar, assuming it exists.
|
||||
* delegates to an actual implementation (StatusBar).
|
||||
*/
|
||||
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
|
||||
@Singleton
|
||||
public class ActivityStarterDelegate implements ActivityStarter {
|
||||
|
||||
private ActivityStarter mActualStarter;
|
||||
private Optional<Lazy<StatusBar>> mActualStarter;
|
||||
|
||||
@Inject
|
||||
public ActivityStarterDelegate() {
|
||||
public ActivityStarterDelegate(Optional<Lazy<StatusBar>> statusBar) {
|
||||
mActualStarter = statusBar;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startPendingIntentDismissingKeyguard(PendingIntent intent) {
|
||||
if (mActualStarter == null) {
|
||||
return;
|
||||
}
|
||||
mActualStarter.startPendingIntentDismissingKeyguard(intent);
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().startPendingIntentDismissingKeyguard(intent));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startPendingIntentDismissingKeyguard(PendingIntent intent,
|
||||
Runnable intentSentCallback) {
|
||||
if (mActualStarter == null) {
|
||||
return;
|
||||
}
|
||||
mActualStarter.startPendingIntentDismissingKeyguard(intent, intentSentCallback);
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().startPendingIntentDismissingKeyguard(intent,
|
||||
intentSentCallback));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startPendingIntentDismissingKeyguard(PendingIntent intent,
|
||||
Runnable intentSentCallback, View associatedView) {
|
||||
if (mActualStarter == null) {
|
||||
return;
|
||||
}
|
||||
mActualStarter.startPendingIntentDismissingKeyguard(intent, intentSentCallback,
|
||||
associatedView);
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().startPendingIntentDismissingKeyguard(intent,
|
||||
intentSentCallback, associatedView));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startActivity(Intent intent, boolean onlyProvisioned, boolean dismissShade,
|
||||
int flags) {
|
||||
if (mActualStarter == null) {
|
||||
return;
|
||||
}
|
||||
mActualStarter.startActivity(intent, onlyProvisioned, dismissShade, flags);
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().startActivity(intent, onlyProvisioned, dismissShade,
|
||||
flags));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startActivity(Intent intent, boolean dismissShade) {
|
||||
if (mActualStarter == null) {
|
||||
return;
|
||||
}
|
||||
mActualStarter.startActivity(intent, dismissShade);
|
||||
mActualStarter.ifPresent(starter -> starter.get().startActivity(intent, dismissShade));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startActivity(Intent intent, boolean onlyProvisioned, boolean dismissShade) {
|
||||
if (mActualStarter == null) {
|
||||
return;
|
||||
}
|
||||
mActualStarter.startActivity(intent, onlyProvisioned, dismissShade);
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().startActivity(intent, onlyProvisioned, dismissShade));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startActivity(Intent intent, boolean dismissShade, Callback callback) {
|
||||
if (mActualStarter == null) {
|
||||
return;
|
||||
}
|
||||
mActualStarter.startActivity(intent, dismissShade, callback);
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().startActivity(intent, dismissShade, callback));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postStartActivityDismissingKeyguard(Intent intent, int delay) {
|
||||
if (mActualStarter == null) {
|
||||
return;
|
||||
}
|
||||
mActualStarter.postStartActivityDismissingKeyguard(intent, delay);
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().postStartActivityDismissingKeyguard(intent, delay));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postStartActivityDismissingKeyguard(PendingIntent intent) {
|
||||
if (mActualStarter == null) {
|
||||
return;
|
||||
}
|
||||
mActualStarter.postStartActivityDismissingKeyguard(intent);
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().postStartActivityDismissingKeyguard(intent));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postQSRunnableDismissingKeyguard(Runnable runnable) {
|
||||
if (mActualStarter == null) {
|
||||
return;
|
||||
}
|
||||
mActualStarter.postQSRunnableDismissingKeyguard(runnable);
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().postQSRunnableDismissingKeyguard(runnable));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dismissKeyguardThenExecute(OnDismissAction action, Runnable cancel,
|
||||
boolean afterKeyguardGone) {
|
||||
if (mActualStarter == null) {
|
||||
return;
|
||||
}
|
||||
mActualStarter.dismissKeyguardThenExecute(action, cancel, afterKeyguardGone);
|
||||
}
|
||||
|
||||
public void setActivityStarterImpl(ActivityStarter starter) {
|
||||
mActualStarter = starter;
|
||||
mActualStarter.ifPresent(starter -> starter.get().dismissKeyguardThenExecute(action, cancel,
|
||||
afterKeyguardGone));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -210,7 +210,6 @@ public class Dependency {
|
||||
private final ArrayMap<Object, LazyDependencyCreator> mProviders = new ArrayMap<>();
|
||||
|
||||
@Inject Lazy<ActivityStarter> mActivityStarter;
|
||||
@Inject Lazy<ActivityStarterDelegate> mActivityStarterDelegate;
|
||||
@Inject Lazy<BroadcastDispatcher> mBroadcastDispatcher;
|
||||
@Inject Lazy<AsyncSensorManager> mAsyncSensorManager;
|
||||
@Inject Lazy<BluetoothController> mBluetoothController;
|
||||
@@ -341,7 +340,6 @@ public class Dependency {
|
||||
mProviders.put(MAIN_LOOPER, mMainLooper::get);
|
||||
mProviders.put(MAIN_HANDLER, mMainHandler::get);
|
||||
mProviders.put(ActivityStarter.class, mActivityStarter::get);
|
||||
mProviders.put(ActivityStarterDelegate.class, mActivityStarterDelegate::get);
|
||||
mProviders.put(BroadcastDispatcher.class, mBroadcastDispatcher::get);
|
||||
|
||||
mProviders.put(AsyncSensorManager.class, mAsyncSensorManager::get);
|
||||
|
||||
@@ -124,7 +124,6 @@ import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
import com.android.keyguard.KeyguardUpdateMonitorCallback;
|
||||
import com.android.keyguard.ViewMediatorCallback;
|
||||
import com.android.systemui.ActivityIntentHelper;
|
||||
import com.android.systemui.ActivityStarterDelegate;
|
||||
import com.android.systemui.AutoReinflateContainer;
|
||||
import com.android.systemui.DejankUtils;
|
||||
import com.android.systemui.DemoMode;
|
||||
@@ -898,8 +897,6 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
mStatusBarWindowViewController,
|
||||
mNotificationPanel, mAmbientIndicationContainer);
|
||||
|
||||
Dependency.get(ActivityStarterDelegate.class).setActivityStarterImpl(this);
|
||||
|
||||
mConfigurationController.addCallback(this);
|
||||
|
||||
// set the initial view visibility
|
||||
|
||||
@@ -47,6 +47,7 @@ import androidx.test.filters.SmallTest;
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.plugins.qs.QSTile;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.qs.QSHost;
|
||||
@@ -83,6 +84,7 @@ public class QSTileImplTest extends SysuiTestCase {
|
||||
String spec = "spec";
|
||||
mTestableLooper = TestableLooper.get(this);
|
||||
mDependency.injectTestDependency(Dependency.BG_LOOPER, mTestableLooper.getLooper());
|
||||
mDependency.injectMockDependency(ActivityStarter.class);
|
||||
mMetricsLogger = mDependency.injectMockDependency(MetricsLogger.class);
|
||||
mStatusBarStateController =
|
||||
mDependency.injectMockDependency(StatusBarStateController.class);
|
||||
|
||||
Reference in New Issue
Block a user