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

Commit b200ac2c authored by Bryce Lee's avatar Bryce Lee Committed by Android (Google) Code Review
Browse files

Merge changes from topic "261420432" into tm-qpr-dev

* changes:
  Introduce SelfExecutingMonitor for tests.
  Run dream logic only for current user process.
  Always have ConditionalCoreStartable subscribe to monitor.
parents cae3b6f7 71bf33c6
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -16,19 +16,23 @@

package com.android.systemui.dreams;

import static com.android.systemui.dreams.dagger.DreamModule.DREAM_PRETEXT_MONITOR;

import android.util.Log;

import com.android.systemui.CoreStartable;
import com.android.systemui.dreams.callbacks.DreamStatusBarStateCallback;
import com.android.systemui.dreams.conditions.DreamCondition;
import com.android.systemui.shared.condition.Monitor;
import com.android.systemui.util.condition.ConditionalCoreStartable;

import javax.inject.Inject;
import javax.inject.Named;

/**
 * A {@link CoreStartable} to retain a monitor for tracking dreaming.
 */
public class DreamMonitor implements CoreStartable {
public class DreamMonitor extends ConditionalCoreStartable {
    private static final String TAG = "DreamMonitor";

    // We retain a reference to the monitor so it is not garbage-collected.
@@ -39,14 +43,17 @@ public class DreamMonitor implements CoreStartable {

    @Inject
    public DreamMonitor(Monitor monitor, DreamCondition dreamCondition,
            @Named(DREAM_PRETEXT_MONITOR) Monitor pretextMonitor,
            DreamStatusBarStateCallback callback) {
        super(pretextMonitor);
        mConditionMonitor = monitor;
        mDreamCondition = dreamCondition;
        mCallback = callback;

    }

    @Override
    public void start() {
    protected void onStart() {
        if (Log.isLoggable(TAG, Log.DEBUG)) {
            Log.d(TAG, "started");
        }
+8 −4
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.dreams;

import static com.android.systemui.dreams.dagger.DreamModule.DREAM_OVERLAY_SERVICE_COMPONENT;
import static com.android.systemui.dreams.dagger.DreamModule.DREAM_PRETEXT_MONITOR;

import android.content.BroadcastReceiver;
import android.content.ComponentName;
@@ -33,8 +34,9 @@ import android.service.dreams.DreamService;
import android.service.dreams.IDreamManager;
import android.util.Log;

import com.android.systemui.CoreStartable;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.shared.condition.Monitor;
import com.android.systemui.util.condition.ConditionalCoreStartable;

import javax.inject.Inject;
import javax.inject.Named;
@@ -43,7 +45,7 @@ import javax.inject.Named;
 * {@link DreamOverlayRegistrant} is responsible for telling system server that SystemUI should be
 * the designated dream overlay component.
 */
public class DreamOverlayRegistrant implements CoreStartable {
public class DreamOverlayRegistrant extends ConditionalCoreStartable {
    private static final String TAG = "DreamOverlayRegistrant";
    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
    private final IDreamManager mDreamManager;
@@ -102,7 +104,9 @@ public class DreamOverlayRegistrant implements CoreStartable {

    @Inject
    public DreamOverlayRegistrant(Context context, @Main Resources resources,
            @Named(DREAM_OVERLAY_SERVICE_COMPONENT) ComponentName dreamOverlayServiceComponent) {
            @Named(DREAM_OVERLAY_SERVICE_COMPONENT) ComponentName dreamOverlayServiceComponent,
            @Named(DREAM_PRETEXT_MONITOR) Monitor monitor) {
        super(monitor);
        mContext = context;
        mResources = resources;
        mDreamManager = IDreamManager.Stub.asInterface(
@@ -111,7 +115,7 @@ public class DreamOverlayRegistrant implements CoreStartable {
    }

    @Override
    public void start() {
    protected void onStart() {
        final IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_CHANGED);
        filter.addDataScheme("package");
        filter.addDataSchemeSpecificPart(mOverlayServiceComponent.getPackageName(),
+10 −4
Original line number Diff line number Diff line
@@ -16,27 +16,31 @@

package com.android.systemui.dreams.complication;

import static com.android.systemui.dreams.dagger.DreamModule.DREAM_PRETEXT_MONITOR;

import android.database.ContentObserver;
import android.os.UserHandle;
import android.provider.Settings;

import com.android.settingslib.dream.DreamBackend;
import com.android.systemui.CoreStartable;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dreams.DreamOverlayStateController;
import com.android.systemui.shared.condition.Monitor;
import com.android.systemui.util.condition.ConditionalCoreStartable;
import com.android.systemui.util.settings.SecureSettings;

import java.util.concurrent.Executor;

import javax.inject.Inject;
import javax.inject.Named;

/**
 * {@link ComplicationTypesUpdater} observes the state of available complication types set by the
 * user, and pushes updates to {@link DreamOverlayStateController}.
 */
@SysUISingleton
public class ComplicationTypesUpdater implements CoreStartable {
public class ComplicationTypesUpdater extends ConditionalCoreStartable {
    private final DreamBackend mDreamBackend;
    private final Executor mExecutor;
    private final SecureSettings mSecureSettings;
@@ -48,7 +52,9 @@ public class ComplicationTypesUpdater implements CoreStartable {
            DreamBackend dreamBackend,
            @Main Executor executor,
            SecureSettings secureSettings,
            DreamOverlayStateController dreamOverlayStateController) {
            DreamOverlayStateController dreamOverlayStateController,
            @Named(DREAM_PRETEXT_MONITOR) Monitor monitor) {
        super(monitor);
        mDreamBackend = dreamBackend;
        mExecutor = executor;
        mSecureSettings = secureSettings;
@@ -56,7 +62,7 @@ public class ComplicationTypesUpdater implements CoreStartable {
    }

    @Override
    public void start() {
    public void onStart() {
        final ContentObserver settingsObserver = new ContentObserver(null /*handler*/) {
            @Override
            public void onChange(boolean selfChange) {
+8 −3
Original line number Diff line number Diff line
@@ -18,11 +18,14 @@ package com.android.systemui.dreams.complication;

import static com.android.systemui.dreams.complication.dagger.DreamClockTimeComplicationModule.DREAM_CLOCK_TIME_COMPLICATION_VIEW;
import static com.android.systemui.dreams.complication.dagger.RegisteredComplicationsModule.DREAM_CLOCK_TIME_COMPLICATION_LAYOUT_PARAMS;
import static com.android.systemui.dreams.dagger.DreamModule.DREAM_PRETEXT_MONITOR;

import android.view.View;

import com.android.systemui.CoreStartable;
import com.android.systemui.dreams.DreamOverlayStateController;
import com.android.systemui.shared.condition.Monitor;
import com.android.systemui.util.condition.ConditionalCoreStartable;

import javax.inject.Inject;
import javax.inject.Named;
@@ -60,7 +63,7 @@ public class DreamClockTimeComplication implements Complication {
     * {@link CoreStartable} responsible for registering {@link DreamClockTimeComplication} with
     * SystemUI.
     */
    public static class Registrant implements CoreStartable {
    public static class Registrant extends ConditionalCoreStartable {
        private final DreamOverlayStateController mDreamOverlayStateController;
        private final DreamClockTimeComplication mComplication;

@@ -70,13 +73,15 @@ public class DreamClockTimeComplication implements Complication {
        @Inject
        public Registrant(
                DreamOverlayStateController dreamOverlayStateController,
                DreamClockTimeComplication dreamClockTimeComplication) {
                DreamClockTimeComplication dreamClockTimeComplication,
                @Named(DREAM_PRETEXT_MONITOR) Monitor monitor) {
            super(monitor);
            mDreamOverlayStateController = dreamOverlayStateController;
            mComplication = dreamClockTimeComplication;
        }

        @Override
        public void start() {
        public void onStart() {
            mDreamOverlayStateController.addComplication(mComplication);
        }
    }
+8 −3
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static com.android.systemui.controls.dagger.ControlsComponent.Visibility.
import static com.android.systemui.controls.dagger.ControlsComponent.Visibility.UNAVAILABLE;
import static com.android.systemui.dreams.complication.dagger.DreamHomeControlsComplicationComponent.DreamHomeControlsModule.DREAM_HOME_CONTROLS_CHIP_VIEW;
import static com.android.systemui.dreams.complication.dagger.RegisteredComplicationsModule.DREAM_HOME_CONTROLS_CHIP_LAYOUT_PARAMS;
import static com.android.systemui.dreams.dagger.DreamModule.DREAM_PRETEXT_MONITOR;

import android.content.Context;
import android.content.Intent;
@@ -42,7 +43,9 @@ import com.android.systemui.controls.ui.ControlsUiController;
import com.android.systemui.dreams.DreamOverlayStateController;
import com.android.systemui.dreams.complication.dagger.DreamHomeControlsComplicationComponent;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.shared.condition.Monitor;
import com.android.systemui.util.ViewController;
import com.android.systemui.util.condition.ConditionalCoreStartable;

import java.util.List;

@@ -75,7 +78,7 @@ public class DreamHomeControlsComplication implements Complication {
    /**
     * {@link CoreStartable} for registering the complication with SystemUI on startup.
     */
    public static class Registrant implements CoreStartable {
    public static class Registrant extends ConditionalCoreStartable {
        private final DreamHomeControlsComplication mComplication;
        private final DreamOverlayStateController mDreamOverlayStateController;
        private final ControlsComponent mControlsComponent;
@@ -105,14 +108,16 @@ public class DreamHomeControlsComplication implements Complication {
        @Inject
        public Registrant(DreamHomeControlsComplication complication,
                DreamOverlayStateController dreamOverlayStateController,
                ControlsComponent controlsComponent) {
                ControlsComponent controlsComponent,
                @Named(DREAM_PRETEXT_MONITOR) Monitor monitor) {
            super(monitor);
            mComplication = complication;
            mControlsComponent = controlsComponent;
            mDreamOverlayStateController = dreamOverlayStateController;
        }

        @Override
        public void start() {
        public void onStart() {
            mControlsComponent.getControlsListingController().ifPresent(
                    c -> c.addCallback(mControlsCallback));
            mDreamOverlayStateController.addCallback(mOverlayStateCallback);
Loading