Loading packages/SystemUI/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,7 @@ android_library { "androidx.slice_slice-view", "androidx.slice_slice-builders", "androidx.arch.core_core-runtime", "androidx.lifecycle_lifecycle-common-java8", "androidx.lifecycle_lifecycle-extensions", "androidx.dynamicanimation_dynamicanimation", "androidx-constraintlayout_constraintlayout", Loading Loading @@ -209,6 +210,7 @@ android_library { "androidx.slice_slice-view", "androidx.slice_slice-builders", "androidx.arch.core_core-runtime", "androidx.lifecycle_lifecycle-common-java8", "androidx.lifecycle_lifecycle-extensions", "androidx.dynamicanimation_dynamicanimation", "androidx-constraintlayout_constraintlayout", Loading packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayService.java +27 −1 Original line number Diff line number Diff line Loading @@ -29,9 +29,12 @@ import androidx.lifecycle.LifecycleRegistry; import androidx.lifecycle.ViewModelStore; import com.android.internal.policy.PhoneWindow; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dreams.complication.Complication; import com.android.systemui.dreams.dagger.DreamOverlayComponent; import com.android.systemui.dreams.touch.DreamOverlayTouchMonitor; import java.util.concurrent.Executor; Loading @@ -53,6 +56,7 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ // A controller for the dream overlay container view (which contains both the status bar and the // content area). private final DreamOverlayContainerViewController mDreamOverlayContainerViewController; private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; // A reference to the {@link Window} used to hold the dream overlay. private Window mWindow; Loading @@ -68,19 +72,40 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ private ViewModelStore mViewModelStore = new ViewModelStore(); private DreamOverlayTouchMonitor mDreamOverlayTouchMonitor; private final KeyguardUpdateMonitorCallback mKeyguardCallback = new KeyguardUpdateMonitorCallback() { @Override public void onShadeExpandedChanged(boolean expanded) { if (mLifecycleRegistry.getCurrentState() != Lifecycle.State.RESUMED && mLifecycleRegistry.getCurrentState() != Lifecycle.State.STARTED) { return; } mLifecycleRegistry.setCurrentState( expanded ? Lifecycle.State.STARTED : Lifecycle.State.RESUMED); } }; @Inject public DreamOverlayService( Context context, @Main Executor executor, DreamOverlayComponent.Factory dreamOverlayComponentFactory) { DreamOverlayComponent.Factory dreamOverlayComponentFactory, KeyguardUpdateMonitor keyguardUpdateMonitor) { mContext = context; mExecutor = executor; mKeyguardUpdateMonitor = keyguardUpdateMonitor; mKeyguardUpdateMonitor.registerCallback(mKeyguardCallback); final DreamOverlayComponent component = dreamOverlayComponentFactory.create(mViewModelStore, mHost); mDreamOverlayContainerViewController = component.getDreamOverlayContainerViewController(); setCurrentState(Lifecycle.State.CREATED); mLifecycleRegistry = component.getLifecycleRegistry(); mDreamOverlayTouchMonitor = component.getDreamOverlayTouchMonitor(); mDreamOverlayTouchMonitor.init(); } private void setCurrentState(Lifecycle.State state) { Loading @@ -89,6 +114,7 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ @Override public void onDestroy() { mKeyguardUpdateMonitor.registerCallback(mKeyguardCallback); setCurrentState(Lifecycle.State.DESTROYED); final WindowManager windowManager = mContext.getSystemService(WindowManager.class); windowManager.removeView(mWindow.getDecorView()); Loading packages/SystemUI/src/com/android/systemui/dreams/dagger/DreamModule.java +8 −3 Original line number Diff line number Diff line Loading @@ -16,12 +16,17 @@ package com.android.systemui.dreams.dagger; import com.android.systemui.dreams.touch.dagger.DreamTouchModule; import dagger.Module; /** * Dagger Module providing Communal-related functionality. */ @Module(subcomponents = { @Module(includes = { DreamTouchModule.class, }, subcomponents = { DreamOverlayComponent.class, }) public interface DreamModule { Loading packages/SystemUI/src/com/android/systemui/dreams/dagger/DreamOverlayComponent.java +4 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import androidx.lifecycle.ViewModelStore; import com.android.systemui.dreams.DreamOverlayContainerViewController; import com.android.systemui.dreams.complication.Complication; import com.android.systemui.dreams.complication.dagger.ComplicationModule; import com.android.systemui.dreams.touch.DreamOverlayTouchMonitor; import java.lang.annotation.Documented; import java.lang.annotation.Retention; Loading Loading @@ -64,4 +65,7 @@ public interface DreamOverlayComponent { /** Builds a {@link androidx.lifecycle.LifecycleOwner} */ LifecycleOwner getLifecycleOwner(); /** Builds a {@link DreamOverlayTouchMonitor} */ DreamOverlayTouchMonitor getDreamOverlayTouchMonitor(); } packages/SystemUI/src/com/android/systemui/dreams/dagger/DreamOverlayModule.java +17 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.os.Handler; import android.view.LayoutInflater; import android.view.ViewGroup; import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LifecycleRegistry; Loading @@ -33,6 +34,7 @@ import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dreams.DreamOverlayContainerView; import com.android.systemui.dreams.DreamOverlayStatusBarView; import com.android.systemui.dreams.touch.DreamTouchHandler; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.tuner.TunerService; Loading @@ -42,6 +44,7 @@ import javax.inject.Named; import dagger.Lazy; import dagger.Module; import dagger.Provides; import dagger.multibindings.IntoSet; /** Dagger module for {@link DreamOverlayComponent}. */ @Module Loading Loading @@ -140,4 +143,18 @@ public abstract class DreamOverlayModule { static LifecycleRegistry providesLifecycleRegistry(LifecycleOwner lifecycleOwner) { return new LifecycleRegistry(lifecycleOwner); } @Provides @DreamOverlayComponent.DreamOverlayScope static Lifecycle providesLifecycle(LifecycleOwner lifecycleOwner) { return lifecycleOwner.getLifecycle(); } // TODO: This stub should be removed once there is a {@link DreamTouchHandler} // implementation present. @Provides @IntoSet static DreamTouchHandler provideDreamTouchHandler() { return session -> { }; } } Loading
packages/SystemUI/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,7 @@ android_library { "androidx.slice_slice-view", "androidx.slice_slice-builders", "androidx.arch.core_core-runtime", "androidx.lifecycle_lifecycle-common-java8", "androidx.lifecycle_lifecycle-extensions", "androidx.dynamicanimation_dynamicanimation", "androidx-constraintlayout_constraintlayout", Loading Loading @@ -209,6 +210,7 @@ android_library { "androidx.slice_slice-view", "androidx.slice_slice-builders", "androidx.arch.core_core-runtime", "androidx.lifecycle_lifecycle-common-java8", "androidx.lifecycle_lifecycle-extensions", "androidx.dynamicanimation_dynamicanimation", "androidx-constraintlayout_constraintlayout", Loading
packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayService.java +27 −1 Original line number Diff line number Diff line Loading @@ -29,9 +29,12 @@ import androidx.lifecycle.LifecycleRegistry; import androidx.lifecycle.ViewModelStore; import com.android.internal.policy.PhoneWindow; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dreams.complication.Complication; import com.android.systemui.dreams.dagger.DreamOverlayComponent; import com.android.systemui.dreams.touch.DreamOverlayTouchMonitor; import java.util.concurrent.Executor; Loading @@ -53,6 +56,7 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ // A controller for the dream overlay container view (which contains both the status bar and the // content area). private final DreamOverlayContainerViewController mDreamOverlayContainerViewController; private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; // A reference to the {@link Window} used to hold the dream overlay. private Window mWindow; Loading @@ -68,19 +72,40 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ private ViewModelStore mViewModelStore = new ViewModelStore(); private DreamOverlayTouchMonitor mDreamOverlayTouchMonitor; private final KeyguardUpdateMonitorCallback mKeyguardCallback = new KeyguardUpdateMonitorCallback() { @Override public void onShadeExpandedChanged(boolean expanded) { if (mLifecycleRegistry.getCurrentState() != Lifecycle.State.RESUMED && mLifecycleRegistry.getCurrentState() != Lifecycle.State.STARTED) { return; } mLifecycleRegistry.setCurrentState( expanded ? Lifecycle.State.STARTED : Lifecycle.State.RESUMED); } }; @Inject public DreamOverlayService( Context context, @Main Executor executor, DreamOverlayComponent.Factory dreamOverlayComponentFactory) { DreamOverlayComponent.Factory dreamOverlayComponentFactory, KeyguardUpdateMonitor keyguardUpdateMonitor) { mContext = context; mExecutor = executor; mKeyguardUpdateMonitor = keyguardUpdateMonitor; mKeyguardUpdateMonitor.registerCallback(mKeyguardCallback); final DreamOverlayComponent component = dreamOverlayComponentFactory.create(mViewModelStore, mHost); mDreamOverlayContainerViewController = component.getDreamOverlayContainerViewController(); setCurrentState(Lifecycle.State.CREATED); mLifecycleRegistry = component.getLifecycleRegistry(); mDreamOverlayTouchMonitor = component.getDreamOverlayTouchMonitor(); mDreamOverlayTouchMonitor.init(); } private void setCurrentState(Lifecycle.State state) { Loading @@ -89,6 +114,7 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ @Override public void onDestroy() { mKeyguardUpdateMonitor.registerCallback(mKeyguardCallback); setCurrentState(Lifecycle.State.DESTROYED); final WindowManager windowManager = mContext.getSystemService(WindowManager.class); windowManager.removeView(mWindow.getDecorView()); Loading
packages/SystemUI/src/com/android/systemui/dreams/dagger/DreamModule.java +8 −3 Original line number Diff line number Diff line Loading @@ -16,12 +16,17 @@ package com.android.systemui.dreams.dagger; import com.android.systemui.dreams.touch.dagger.DreamTouchModule; import dagger.Module; /** * Dagger Module providing Communal-related functionality. */ @Module(subcomponents = { @Module(includes = { DreamTouchModule.class, }, subcomponents = { DreamOverlayComponent.class, }) public interface DreamModule { Loading
packages/SystemUI/src/com/android/systemui/dreams/dagger/DreamOverlayComponent.java +4 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import androidx.lifecycle.ViewModelStore; import com.android.systemui.dreams.DreamOverlayContainerViewController; import com.android.systemui.dreams.complication.Complication; import com.android.systemui.dreams.complication.dagger.ComplicationModule; import com.android.systemui.dreams.touch.DreamOverlayTouchMonitor; import java.lang.annotation.Documented; import java.lang.annotation.Retention; Loading Loading @@ -64,4 +65,7 @@ public interface DreamOverlayComponent { /** Builds a {@link androidx.lifecycle.LifecycleOwner} */ LifecycleOwner getLifecycleOwner(); /** Builds a {@link DreamOverlayTouchMonitor} */ DreamOverlayTouchMonitor getDreamOverlayTouchMonitor(); }
packages/SystemUI/src/com/android/systemui/dreams/dagger/DreamOverlayModule.java +17 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.os.Handler; import android.view.LayoutInflater; import android.view.ViewGroup; import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LifecycleRegistry; Loading @@ -33,6 +34,7 @@ import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dreams.DreamOverlayContainerView; import com.android.systemui.dreams.DreamOverlayStatusBarView; import com.android.systemui.dreams.touch.DreamTouchHandler; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.tuner.TunerService; Loading @@ -42,6 +44,7 @@ import javax.inject.Named; import dagger.Lazy; import dagger.Module; import dagger.Provides; import dagger.multibindings.IntoSet; /** Dagger module for {@link DreamOverlayComponent}. */ @Module Loading Loading @@ -140,4 +143,18 @@ public abstract class DreamOverlayModule { static LifecycleRegistry providesLifecycleRegistry(LifecycleOwner lifecycleOwner) { return new LifecycleRegistry(lifecycleOwner); } @Provides @DreamOverlayComponent.DreamOverlayScope static Lifecycle providesLifecycle(LifecycleOwner lifecycleOwner) { return lifecycleOwner.getLifecycle(); } // TODO: This stub should be removed once there is a {@link DreamTouchHandler} // implementation present. @Provides @IntoSet static DreamTouchHandler provideDreamTouchHandler() { return session -> { }; } }