Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d5cf4cf7 authored by Dave Mankoff's avatar Dave Mankoff
Browse files

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
parent 8ffc40aa
Loading
Loading
Loading
Loading
+34 −52
Original line number Diff line number Diff line
@@ -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));
    }
}
+0 −2
Original line number Diff line number Diff line
@@ -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);
+0 −3
Original line number Diff line number Diff line
@@ -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
+2 −0
Original line number Diff line number Diff line
@@ -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);