Run dream logic only for current user process.
This changelist updates dream-related components to only run in the process associated with the current user. Test: manual (exercised in upstream CLs) Fixes: 261420432 Change-Id: I856fc348bb2c606bc15f2bc42a2d743f4994de0b
This commit is contained in:
@@ -16,19 +16,23 @@
|
|||||||
|
|
||||||
package com.android.systemui.dreams;
|
package com.android.systemui.dreams;
|
||||||
|
|
||||||
|
import static com.android.systemui.dreams.dagger.DreamModule.DREAM_PRETEXT_MONITOR;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.systemui.CoreStartable;
|
import com.android.systemui.CoreStartable;
|
||||||
import com.android.systemui.dreams.callbacks.DreamStatusBarStateCallback;
|
import com.android.systemui.dreams.callbacks.DreamStatusBarStateCallback;
|
||||||
import com.android.systemui.dreams.conditions.DreamCondition;
|
import com.android.systemui.dreams.conditions.DreamCondition;
|
||||||
import com.android.systemui.shared.condition.Monitor;
|
import com.android.systemui.shared.condition.Monitor;
|
||||||
|
import com.android.systemui.util.condition.ConditionalCoreStartable;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Named;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link CoreStartable} to retain a monitor for tracking dreaming.
|
* 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";
|
private static final String TAG = "DreamMonitor";
|
||||||
|
|
||||||
// We retain a reference to the monitor so it is not garbage-collected.
|
// We retain a reference to the monitor so it is not garbage-collected.
|
||||||
@@ -39,14 +43,17 @@ public class DreamMonitor implements CoreStartable {
|
|||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public DreamMonitor(Monitor monitor, DreamCondition dreamCondition,
|
public DreamMonitor(Monitor monitor, DreamCondition dreamCondition,
|
||||||
|
@Named(DREAM_PRETEXT_MONITOR) Monitor pretextMonitor,
|
||||||
DreamStatusBarStateCallback callback) {
|
DreamStatusBarStateCallback callback) {
|
||||||
|
super(pretextMonitor);
|
||||||
mConditionMonitor = monitor;
|
mConditionMonitor = monitor;
|
||||||
mDreamCondition = dreamCondition;
|
mDreamCondition = dreamCondition;
|
||||||
mCallback = callback;
|
mCallback = callback;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
protected void onStart() {
|
||||||
if (Log.isLoggable(TAG, Log.DEBUG)) {
|
if (Log.isLoggable(TAG, Log.DEBUG)) {
|
||||||
Log.d(TAG, "started");
|
Log.d(TAG, "started");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package com.android.systemui.dreams;
|
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_OVERLAY_SERVICE_COMPONENT;
|
||||||
|
import static com.android.systemui.dreams.dagger.DreamModule.DREAM_PRETEXT_MONITOR;
|
||||||
|
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
@@ -33,8 +34,9 @@ import android.service.dreams.DreamService;
|
|||||||
import android.service.dreams.IDreamManager;
|
import android.service.dreams.IDreamManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.systemui.CoreStartable;
|
|
||||||
import com.android.systemui.dagger.qualifiers.Main;
|
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.Inject;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
@@ -43,7 +45,7 @@ import javax.inject.Named;
|
|||||||
* {@link DreamOverlayRegistrant} is responsible for telling system server that SystemUI should be
|
* {@link DreamOverlayRegistrant} is responsible for telling system server that SystemUI should be
|
||||||
* the designated dream overlay component.
|
* the designated dream overlay component.
|
||||||
*/
|
*/
|
||||||
public class DreamOverlayRegistrant implements CoreStartable {
|
public class DreamOverlayRegistrant extends ConditionalCoreStartable {
|
||||||
private static final String TAG = "DreamOverlayRegistrant";
|
private static final String TAG = "DreamOverlayRegistrant";
|
||||||
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||||
private final IDreamManager mDreamManager;
|
private final IDreamManager mDreamManager;
|
||||||
@@ -102,7 +104,9 @@ public class DreamOverlayRegistrant implements CoreStartable {
|
|||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public DreamOverlayRegistrant(Context context, @Main Resources resources,
|
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;
|
mContext = context;
|
||||||
mResources = resources;
|
mResources = resources;
|
||||||
mDreamManager = IDreamManager.Stub.asInterface(
|
mDreamManager = IDreamManager.Stub.asInterface(
|
||||||
@@ -111,7 +115,7 @@ public class DreamOverlayRegistrant implements CoreStartable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
protected void onStart() {
|
||||||
final IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_CHANGED);
|
final IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_CHANGED);
|
||||||
filter.addDataScheme("package");
|
filter.addDataScheme("package");
|
||||||
filter.addDataSchemeSpecificPart(mOverlayServiceComponent.getPackageName(),
|
filter.addDataSchemeSpecificPart(mOverlayServiceComponent.getPackageName(),
|
||||||
|
|||||||
@@ -16,27 +16,31 @@
|
|||||||
|
|
||||||
package com.android.systemui.dreams.complication;
|
package com.android.systemui.dreams.complication;
|
||||||
|
|
||||||
|
import static com.android.systemui.dreams.dagger.DreamModule.DREAM_PRETEXT_MONITOR;
|
||||||
|
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
import com.android.settingslib.dream.DreamBackend;
|
import com.android.settingslib.dream.DreamBackend;
|
||||||
import com.android.systemui.CoreStartable;
|
|
||||||
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.dreams.DreamOverlayStateController;
|
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 com.android.systemui.util.settings.SecureSettings;
|
||||||
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Named;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link ComplicationTypesUpdater} observes the state of available complication types set by the
|
* {@link ComplicationTypesUpdater} observes the state of available complication types set by the
|
||||||
* user, and pushes updates to {@link DreamOverlayStateController}.
|
* user, and pushes updates to {@link DreamOverlayStateController}.
|
||||||
*/
|
*/
|
||||||
@SysUISingleton
|
@SysUISingleton
|
||||||
public class ComplicationTypesUpdater implements CoreStartable {
|
public class ComplicationTypesUpdater extends ConditionalCoreStartable {
|
||||||
private final DreamBackend mDreamBackend;
|
private final DreamBackend mDreamBackend;
|
||||||
private final Executor mExecutor;
|
private final Executor mExecutor;
|
||||||
private final SecureSettings mSecureSettings;
|
private final SecureSettings mSecureSettings;
|
||||||
@@ -48,7 +52,9 @@ public class ComplicationTypesUpdater implements CoreStartable {
|
|||||||
DreamBackend dreamBackend,
|
DreamBackend dreamBackend,
|
||||||
@Main Executor executor,
|
@Main Executor executor,
|
||||||
SecureSettings secureSettings,
|
SecureSettings secureSettings,
|
||||||
DreamOverlayStateController dreamOverlayStateController) {
|
DreamOverlayStateController dreamOverlayStateController,
|
||||||
|
@Named(DREAM_PRETEXT_MONITOR) Monitor monitor) {
|
||||||
|
super(monitor);
|
||||||
mDreamBackend = dreamBackend;
|
mDreamBackend = dreamBackend;
|
||||||
mExecutor = executor;
|
mExecutor = executor;
|
||||||
mSecureSettings = secureSettings;
|
mSecureSettings = secureSettings;
|
||||||
@@ -56,7 +62,7 @@ public class ComplicationTypesUpdater implements CoreStartable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
public void onStart() {
|
||||||
final ContentObserver settingsObserver = new ContentObserver(null /*handler*/) {
|
final ContentObserver settingsObserver = new ContentObserver(null /*handler*/) {
|
||||||
@Override
|
@Override
|
||||||
public void onChange(boolean selfChange) {
|
public void onChange(boolean selfChange) {
|
||||||
|
|||||||
@@ -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.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.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 android.view.View;
|
||||||
|
|
||||||
import com.android.systemui.CoreStartable;
|
import com.android.systemui.CoreStartable;
|
||||||
import com.android.systemui.dreams.DreamOverlayStateController;
|
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.Inject;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
@@ -60,7 +63,7 @@ public class DreamClockTimeComplication implements Complication {
|
|||||||
* {@link CoreStartable} responsible for registering {@link DreamClockTimeComplication} with
|
* {@link CoreStartable} responsible for registering {@link DreamClockTimeComplication} with
|
||||||
* SystemUI.
|
* SystemUI.
|
||||||
*/
|
*/
|
||||||
public static class Registrant implements CoreStartable {
|
public static class Registrant extends ConditionalCoreStartable {
|
||||||
private final DreamOverlayStateController mDreamOverlayStateController;
|
private final DreamOverlayStateController mDreamOverlayStateController;
|
||||||
private final DreamClockTimeComplication mComplication;
|
private final DreamClockTimeComplication mComplication;
|
||||||
|
|
||||||
@@ -70,13 +73,15 @@ public class DreamClockTimeComplication implements Complication {
|
|||||||
@Inject
|
@Inject
|
||||||
public Registrant(
|
public Registrant(
|
||||||
DreamOverlayStateController dreamOverlayStateController,
|
DreamOverlayStateController dreamOverlayStateController,
|
||||||
DreamClockTimeComplication dreamClockTimeComplication) {
|
DreamClockTimeComplication dreamClockTimeComplication,
|
||||||
|
@Named(DREAM_PRETEXT_MONITOR) Monitor monitor) {
|
||||||
|
super(monitor);
|
||||||
mDreamOverlayStateController = dreamOverlayStateController;
|
mDreamOverlayStateController = dreamOverlayStateController;
|
||||||
mComplication = dreamClockTimeComplication;
|
mComplication = dreamClockTimeComplication;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
public void onStart() {
|
||||||
mDreamOverlayStateController.addComplication(mComplication);
|
mDreamOverlayStateController.addComplication(mComplication);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.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.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.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.Context;
|
||||||
import android.content.Intent;
|
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.DreamOverlayStateController;
|
||||||
import com.android.systemui.dreams.complication.dagger.DreamHomeControlsComplicationComponent;
|
import com.android.systemui.dreams.complication.dagger.DreamHomeControlsComplicationComponent;
|
||||||
import com.android.systemui.plugins.ActivityStarter;
|
import com.android.systemui.plugins.ActivityStarter;
|
||||||
|
import com.android.systemui.shared.condition.Monitor;
|
||||||
import com.android.systemui.util.ViewController;
|
import com.android.systemui.util.ViewController;
|
||||||
|
import com.android.systemui.util.condition.ConditionalCoreStartable;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -75,7 +78,7 @@ public class DreamHomeControlsComplication implements Complication {
|
|||||||
/**
|
/**
|
||||||
* {@link CoreStartable} for registering the complication with SystemUI on startup.
|
* {@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 DreamHomeControlsComplication mComplication;
|
||||||
private final DreamOverlayStateController mDreamOverlayStateController;
|
private final DreamOverlayStateController mDreamOverlayStateController;
|
||||||
private final ControlsComponent mControlsComponent;
|
private final ControlsComponent mControlsComponent;
|
||||||
@@ -105,14 +108,16 @@ public class DreamHomeControlsComplication implements Complication {
|
|||||||
@Inject
|
@Inject
|
||||||
public Registrant(DreamHomeControlsComplication complication,
|
public Registrant(DreamHomeControlsComplication complication,
|
||||||
DreamOverlayStateController dreamOverlayStateController,
|
DreamOverlayStateController dreamOverlayStateController,
|
||||||
ControlsComponent controlsComponent) {
|
ControlsComponent controlsComponent,
|
||||||
|
@Named(DREAM_PRETEXT_MONITOR) Monitor monitor) {
|
||||||
|
super(monitor);
|
||||||
mComplication = complication;
|
mComplication = complication;
|
||||||
mControlsComponent = controlsComponent;
|
mControlsComponent = controlsComponent;
|
||||||
mDreamOverlayStateController = dreamOverlayStateController;
|
mDreamOverlayStateController = dreamOverlayStateController;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
public void onStart() {
|
||||||
mControlsComponent.getControlsListingController().ifPresent(
|
mControlsComponent.getControlsListingController().ifPresent(
|
||||||
c -> c.addCallback(mControlsCallback));
|
c -> c.addCallback(mControlsCallback));
|
||||||
mDreamOverlayStateController.addCallback(mOverlayStateCallback);
|
mDreamOverlayStateController.addCallback(mOverlayStateCallback);
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package com.android.systemui.dreams.complication;
|
package com.android.systemui.dreams.complication;
|
||||||
|
|
||||||
import static com.android.systemui.dreams.complication.dagger.RegisteredComplicationsModule.DREAM_SMARTSPACE_LAYOUT_PARAMS;
|
import static com.android.systemui.dreams.complication.dagger.RegisteredComplicationsModule.DREAM_SMARTSPACE_LAYOUT_PARAMS;
|
||||||
|
import static com.android.systemui.dreams.dagger.DreamModule.DREAM_PRETEXT_MONITOR;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
@@ -28,6 +29,8 @@ import com.android.systemui.CoreStartable;
|
|||||||
import com.android.systemui.dreams.DreamOverlayStateController;
|
import com.android.systemui.dreams.DreamOverlayStateController;
|
||||||
import com.android.systemui.dreams.smartspace.DreamSmartspaceController;
|
import com.android.systemui.dreams.smartspace.DreamSmartspaceController;
|
||||||
import com.android.systemui.plugins.BcSmartspaceDataPlugin;
|
import com.android.systemui.plugins.BcSmartspaceDataPlugin;
|
||||||
|
import com.android.systemui.shared.condition.Monitor;
|
||||||
|
import com.android.systemui.util.condition.ConditionalCoreStartable;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -61,7 +64,7 @@ public class SmartSpaceComplication implements Complication {
|
|||||||
* {@link CoreStartable} responsbile for registering {@link SmartSpaceComplication} with
|
* {@link CoreStartable} responsbile for registering {@link SmartSpaceComplication} with
|
||||||
* SystemUI.
|
* SystemUI.
|
||||||
*/
|
*/
|
||||||
public static class Registrant implements CoreStartable {
|
public static class Registrant extends ConditionalCoreStartable {
|
||||||
private final DreamSmartspaceController mSmartSpaceController;
|
private final DreamSmartspaceController mSmartSpaceController;
|
||||||
private final DreamOverlayStateController mDreamOverlayStateController;
|
private final DreamOverlayStateController mDreamOverlayStateController;
|
||||||
private final SmartSpaceComplication mComplication;
|
private final SmartSpaceComplication mComplication;
|
||||||
@@ -81,14 +84,16 @@ public class SmartSpaceComplication implements Complication {
|
|||||||
public Registrant(
|
public Registrant(
|
||||||
DreamOverlayStateController dreamOverlayStateController,
|
DreamOverlayStateController dreamOverlayStateController,
|
||||||
SmartSpaceComplication smartSpaceComplication,
|
SmartSpaceComplication smartSpaceComplication,
|
||||||
DreamSmartspaceController smartSpaceController) {
|
DreamSmartspaceController smartSpaceController,
|
||||||
|
@Named(DREAM_PRETEXT_MONITOR) Monitor monitor) {
|
||||||
|
super(monitor);
|
||||||
mDreamOverlayStateController = dreamOverlayStateController;
|
mDreamOverlayStateController = dreamOverlayStateController;
|
||||||
mComplication = smartSpaceComplication;
|
mComplication = smartSpaceComplication;
|
||||||
mSmartSpaceController = smartSpaceController;
|
mSmartSpaceController = smartSpaceController;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
public void onStart() {
|
||||||
mDreamOverlayStateController.addCallback(new DreamOverlayStateController.Callback() {
|
mDreamOverlayStateController.addCallback(new DreamOverlayStateController.Callback() {
|
||||||
@Override
|
@Override
|
||||||
public void onStateChanged() {
|
public void onStateChanged() {
|
||||||
|
|||||||
@@ -30,11 +30,18 @@ import com.android.systemui.dreams.DreamOverlayService;
|
|||||||
import com.android.systemui.dreams.complication.dagger.RegisteredComplicationsModule;
|
import com.android.systemui.dreams.complication.dagger.RegisteredComplicationsModule;
|
||||||
import com.android.systemui.dreams.dreamcomplication.dagger.ComplicationComponent;
|
import com.android.systemui.dreams.dreamcomplication.dagger.ComplicationComponent;
|
||||||
import com.android.systemui.dreams.touch.scrim.dagger.ScrimModule;
|
import com.android.systemui.dreams.touch.scrim.dagger.ScrimModule;
|
||||||
|
import com.android.systemui.process.condition.UserProcessCondition;
|
||||||
|
import com.android.systemui.shared.condition.Condition;
|
||||||
|
import com.android.systemui.shared.condition.Monitor;
|
||||||
|
|
||||||
|
import dagger.Binds;
|
||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
|
import dagger.multibindings.IntoSet;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
|
|
||||||
@@ -57,6 +64,8 @@ public interface DreamModule {
|
|||||||
String DREAM_OVERLAY_ENABLED = "dream_overlay_enabled";
|
String DREAM_OVERLAY_ENABLED = "dream_overlay_enabled";
|
||||||
|
|
||||||
String DREAM_SUPPORTED = "dream_supported";
|
String DREAM_SUPPORTED = "dream_supported";
|
||||||
|
String DREAM_PRETEXT_CONDITIONS = "dream_pretext_conditions";
|
||||||
|
String DREAM_PRETEXT_MONITOR = "dream_prtext_monitor";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides the dream component
|
* Provides the dream component
|
||||||
@@ -115,4 +124,19 @@ public interface DreamModule {
|
|||||||
static boolean providesDreamSupported(@Main Resources resources) {
|
static boolean providesDreamSupported(@Main Resources resources) {
|
||||||
return resources.getBoolean(com.android.internal.R.bool.config_dreamsSupported);
|
return resources.getBoolean(com.android.internal.R.bool.config_dreamsSupported);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** */
|
||||||
|
@Binds
|
||||||
|
@IntoSet
|
||||||
|
@Named(DREAM_PRETEXT_CONDITIONS)
|
||||||
|
Condition bindsUserProcessCondition(UserProcessCondition condition);
|
||||||
|
|
||||||
|
/** */
|
||||||
|
@Provides
|
||||||
|
@Named(DREAM_PRETEXT_MONITOR)
|
||||||
|
static Monitor providesDockerPretextMonitor(
|
||||||
|
@Main Executor executor,
|
||||||
|
@Named(DREAM_PRETEXT_CONDITIONS) Set<Condition> pretextConditions) {
|
||||||
|
return new Monitor(executor, pretextConditions);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,11 +16,16 @@
|
|||||||
|
|
||||||
package com.android.systemui.process;
|
package com.android.systemui.process;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A simple wrapper that provides access to process-related details. This facilitates testing by
|
* A simple wrapper that provides access to process-related details. This facilitates testing by
|
||||||
* providing a mockable target around these details.
|
* providing a mockable target around these details.
|
||||||
*/
|
*/
|
||||||
public class ProcessWrapper {
|
public class ProcessWrapper {
|
||||||
|
@Inject
|
||||||
|
public ProcessWrapper() {}
|
||||||
|
|
||||||
public int getUserHandleIdentifier() {
|
public int getUserHandleIdentifier() {
|
||||||
return android.os.Process.myUserHandle().getIdentifier();
|
return android.os.Process.myUserHandle().getIdentifier();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import androidx.test.filters.SmallTest;
|
|||||||
import com.android.settingslib.dream.DreamBackend;
|
import com.android.settingslib.dream.DreamBackend;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
import com.android.systemui.dreams.DreamOverlayStateController;
|
import com.android.systemui.dreams.DreamOverlayStateController;
|
||||||
|
import com.android.systemui.shared.condition.Monitor;
|
||||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||||
import com.android.systemui.util.settings.SecureSettings;
|
import com.android.systemui.util.settings.SecureSettings;
|
||||||
import com.android.systemui.util.time.FakeSystemClock;
|
import com.android.systemui.util.time.FakeSystemClock;
|
||||||
@@ -66,13 +67,16 @@ public class ComplicationTypesUpdaterTest extends SysuiTestCase {
|
|||||||
|
|
||||||
private ComplicationTypesUpdater mController;
|
private ComplicationTypesUpdater mController;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private Monitor mMonitor;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
when(mDreamBackend.getEnabledComplications()).thenReturn(new HashSet<>());
|
when(mDreamBackend.getEnabledComplications()).thenReturn(new HashSet<>());
|
||||||
|
|
||||||
mController = new ComplicationTypesUpdater(mDreamBackend, mExecutor,
|
mController = new ComplicationTypesUpdater(mDreamBackend, mExecutor,
|
||||||
mSecureSettings, mDreamOverlayStateController);
|
mSecureSettings, mDreamOverlayStateController, mMonitor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import androidx.test.filters.SmallTest;
|
|||||||
|
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
import com.android.systemui.dreams.DreamOverlayStateController;
|
import com.android.systemui.dreams.DreamOverlayStateController;
|
||||||
|
import com.android.systemui.shared.condition.Monitor;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -69,6 +70,9 @@ public class DreamClockTimeComplicationTest extends SysuiTestCase {
|
|||||||
@Mock
|
@Mock
|
||||||
private ComplicationLayoutParams mLayoutParams;
|
private ComplicationLayoutParams mLayoutParams;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private Monitor mMonitor;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
@@ -83,7 +87,8 @@ public class DreamClockTimeComplicationTest extends SysuiTestCase {
|
|||||||
final DreamClockTimeComplication.Registrant registrant =
|
final DreamClockTimeComplication.Registrant registrant =
|
||||||
new DreamClockTimeComplication.Registrant(
|
new DreamClockTimeComplication.Registrant(
|
||||||
mDreamOverlayStateController,
|
mDreamOverlayStateController,
|
||||||
mComplication);
|
mComplication,
|
||||||
|
mMonitor);
|
||||||
registrant.start();
|
registrant.start();
|
||||||
verify(mDreamOverlayStateController).addComplication(eq(mComplication));
|
verify(mDreamOverlayStateController).addComplication(eq(mComplication));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ import com.android.systemui.controls.management.ControlsListingController;
|
|||||||
import com.android.systemui.dreams.DreamOverlayStateController;
|
import com.android.systemui.dreams.DreamOverlayStateController;
|
||||||
import com.android.systemui.dreams.complication.dagger.DreamHomeControlsComplicationComponent;
|
import com.android.systemui.dreams.complication.dagger.DreamHomeControlsComplicationComponent;
|
||||||
import com.android.systemui.plugins.ActivityStarter;
|
import com.android.systemui.plugins.ActivityStarter;
|
||||||
|
import com.android.systemui.shared.condition.Monitor;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -101,6 +102,9 @@ public class DreamHomeControlsComplicationTest extends SysuiTestCase {
|
|||||||
@Captor
|
@Captor
|
||||||
private ArgumentCaptor<DreamOverlayStateController.Callback> mStateCallbackCaptor;
|
private ArgumentCaptor<DreamOverlayStateController.Callback> mStateCallbackCaptor;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private Monitor mMonitor;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
@@ -126,7 +130,7 @@ public class DreamHomeControlsComplicationTest extends SysuiTestCase {
|
|||||||
public void complicationAvailability_serviceNotAvailable_noFavorites_doNotAddComplication() {
|
public void complicationAvailability_serviceNotAvailable_noFavorites_doNotAddComplication() {
|
||||||
final DreamHomeControlsComplication.Registrant registrant =
|
final DreamHomeControlsComplication.Registrant registrant =
|
||||||
new DreamHomeControlsComplication.Registrant(mComplication,
|
new DreamHomeControlsComplication.Registrant(mComplication,
|
||||||
mDreamOverlayStateController, mControlsComponent);
|
mDreamOverlayStateController, mControlsComponent, mMonitor);
|
||||||
registrant.start();
|
registrant.start();
|
||||||
|
|
||||||
setHaveFavorites(false);
|
setHaveFavorites(false);
|
||||||
@@ -139,7 +143,7 @@ public class DreamHomeControlsComplicationTest extends SysuiTestCase {
|
|||||||
public void complicationAvailability_serviceAvailable_noFavorites_doNotAddComplication() {
|
public void complicationAvailability_serviceAvailable_noFavorites_doNotAddComplication() {
|
||||||
final DreamHomeControlsComplication.Registrant registrant =
|
final DreamHomeControlsComplication.Registrant registrant =
|
||||||
new DreamHomeControlsComplication.Registrant(mComplication,
|
new DreamHomeControlsComplication.Registrant(mComplication,
|
||||||
mDreamOverlayStateController, mControlsComponent);
|
mDreamOverlayStateController, mControlsComponent, mMonitor);
|
||||||
registrant.start();
|
registrant.start();
|
||||||
|
|
||||||
setHaveFavorites(false);
|
setHaveFavorites(false);
|
||||||
@@ -152,7 +156,7 @@ public class DreamHomeControlsComplicationTest extends SysuiTestCase {
|
|||||||
public void complicationAvailability_serviceAvailable_noFavorites_panel_addComplication() {
|
public void complicationAvailability_serviceAvailable_noFavorites_panel_addComplication() {
|
||||||
final DreamHomeControlsComplication.Registrant registrant =
|
final DreamHomeControlsComplication.Registrant registrant =
|
||||||
new DreamHomeControlsComplication.Registrant(mComplication,
|
new DreamHomeControlsComplication.Registrant(mComplication,
|
||||||
mDreamOverlayStateController, mControlsComponent);
|
mDreamOverlayStateController, mControlsComponent, mMonitor);
|
||||||
registrant.start();
|
registrant.start();
|
||||||
|
|
||||||
setHaveFavorites(false);
|
setHaveFavorites(false);
|
||||||
@@ -165,7 +169,7 @@ public class DreamHomeControlsComplicationTest extends SysuiTestCase {
|
|||||||
public void complicationAvailability_serviceNotAvailable_haveFavorites_doNotAddComplication() {
|
public void complicationAvailability_serviceNotAvailable_haveFavorites_doNotAddComplication() {
|
||||||
final DreamHomeControlsComplication.Registrant registrant =
|
final DreamHomeControlsComplication.Registrant registrant =
|
||||||
new DreamHomeControlsComplication.Registrant(mComplication,
|
new DreamHomeControlsComplication.Registrant(mComplication,
|
||||||
mDreamOverlayStateController, mControlsComponent);
|
mDreamOverlayStateController, mControlsComponent, mMonitor);
|
||||||
registrant.start();
|
registrant.start();
|
||||||
|
|
||||||
setHaveFavorites(true);
|
setHaveFavorites(true);
|
||||||
@@ -178,7 +182,7 @@ public class DreamHomeControlsComplicationTest extends SysuiTestCase {
|
|||||||
public void complicationAvailability_serviceAvailable_haveFavorites_addComplication() {
|
public void complicationAvailability_serviceAvailable_haveFavorites_addComplication() {
|
||||||
final DreamHomeControlsComplication.Registrant registrant =
|
final DreamHomeControlsComplication.Registrant registrant =
|
||||||
new DreamHomeControlsComplication.Registrant(mComplication,
|
new DreamHomeControlsComplication.Registrant(mComplication,
|
||||||
mDreamOverlayStateController, mControlsComponent);
|
mDreamOverlayStateController, mControlsComponent, mMonitor);
|
||||||
registrant.start();
|
registrant.start();
|
||||||
|
|
||||||
setHaveFavorites(true);
|
setHaveFavorites(true);
|
||||||
@@ -191,7 +195,7 @@ public class DreamHomeControlsComplicationTest extends SysuiTestCase {
|
|||||||
public void complicationAvailability_checkAvailabilityWhenDreamOverlayBecomesActive() {
|
public void complicationAvailability_checkAvailabilityWhenDreamOverlayBecomesActive() {
|
||||||
final DreamHomeControlsComplication.Registrant registrant =
|
final DreamHomeControlsComplication.Registrant registrant =
|
||||||
new DreamHomeControlsComplication.Registrant(mComplication,
|
new DreamHomeControlsComplication.Registrant(mComplication,
|
||||||
mDreamOverlayStateController, mControlsComponent);
|
mDreamOverlayStateController, mControlsComponent, mMonitor);
|
||||||
registrant.start();
|
registrant.start();
|
||||||
|
|
||||||
setServiceAvailable(true);
|
setServiceAvailable(true);
|
||||||
|
|||||||
@@ -33,6 +33,8 @@ import com.android.systemui.SysuiTestCase;
|
|||||||
import com.android.systemui.dreams.DreamOverlayStateController;
|
import com.android.systemui.dreams.DreamOverlayStateController;
|
||||||
import com.android.systemui.dreams.smartspace.DreamSmartspaceController;
|
import com.android.systemui.dreams.smartspace.DreamSmartspaceController;
|
||||||
import com.android.systemui.plugins.BcSmartspaceDataPlugin;
|
import com.android.systemui.plugins.BcSmartspaceDataPlugin;
|
||||||
|
import com.android.systemui.shared.condition.Condition;
|
||||||
|
import com.android.systemui.shared.condition.Monitor;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -43,6 +45,8 @@ import org.mockito.Mockito;
|
|||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
@SmallTest
|
@SmallTest
|
||||||
@RunWith(AndroidTestingRunner.class)
|
@RunWith(AndroidTestingRunner.class)
|
||||||
@@ -60,6 +64,11 @@ public class SmartSpaceComplicationTest extends SysuiTestCase {
|
|||||||
@Mock
|
@Mock
|
||||||
private View mBcSmartspaceView;
|
private View mBcSmartspaceView;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private Monitor mMonitor;
|
||||||
|
|
||||||
|
private final Set<Condition> mPreconditions = new HashSet<>();
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
@@ -79,7 +88,8 @@ public class SmartSpaceComplicationTest extends SysuiTestCase {
|
|||||||
return new SmartSpaceComplication.Registrant(
|
return new SmartSpaceComplication.Registrant(
|
||||||
mDreamOverlayStateController,
|
mDreamOverlayStateController,
|
||||||
mComplication,
|
mComplication,
|
||||||
mSmartspaceController);
|
mSmartspaceController,
|
||||||
|
mMonitor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user