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

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

Merge changes I81879e60,Ief02e781

* changes:
  Move Complication logic out of DreamOverlay.
  Do not specify root view in TouchInsetManager.
parents a942c6c9 1a33563d
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -45,7 +45,10 @@ import com.android.systemui.dreams.complication.Complication;
import com.android.systemui.dreams.complication.dagger.ComplicationComponent;
import com.android.systemui.dreams.dagger.DreamOverlayComponent;
import com.android.systemui.dreams.touch.DreamOverlayTouchMonitor;
import com.android.systemui.touch.TouchInsetManager;

import java.util.Arrays;
import java.util.HashSet;
import java.util.concurrent.Executor;

import javax.inject.Inject;
@@ -84,6 +87,9 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ

    private final ComplicationComponent mComplicationComponent;

    private final com.android.systemui.dreams.dreamcomplication.dagger.ComplicationComponent
            mDreamComplicationComponent;

    private final DreamOverlayComponent mDreamOverlayComponent;

    private final DreamOverlayLifecycleOwner mLifecycleOwner;
@@ -135,10 +141,13 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ
            DreamOverlayLifecycleOwner lifecycleOwner,
            WindowManager windowManager,
            ComplicationComponent.Factory complicationComponentFactory,
            com.android.systemui.dreams.dreamcomplication.dagger.ComplicationComponent.Factory
                    dreamComplicationComponentFactory,
            DreamOverlayComponent.Factory dreamOverlayComponentFactory,
            DreamOverlayStateController stateController,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
            UiEventLogger uiEventLogger,
            TouchInsetManager touchInsetManager,
            @Nullable @Named(LowLightDreamModule.LOW_LIGHT_DREAM_COMPONENT)
                    ComponentName lowLightDreamComponent) {
        mContext = context;
@@ -154,9 +163,14 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ
        final Complication.Host host =
                () -> mExecutor.execute(DreamOverlayService.this::requestExit);

        mComplicationComponent = complicationComponentFactory.create();
        mDreamOverlayComponent =
                dreamOverlayComponentFactory.create(lifecycleOwner, viewModelStore, host, null);
        mComplicationComponent = complicationComponentFactory.create(lifecycleOwner, host,
                viewModelStore, touchInsetManager);
        mDreamComplicationComponent = dreamComplicationComponentFactory.create(
                mComplicationComponent.getVisibilityController(), touchInsetManager);
        mDreamOverlayComponent = dreamOverlayComponentFactory.create(lifecycleOwner,
                mComplicationComponent.getComplicationHostViewController(), touchInsetManager,
                new HashSet<>(Arrays.asList(
                        mDreamComplicationComponent.getHideComplicationTouchHandler())));
        mLifecycleOwner = lifecycleOwner;
        mLifecycleRegistry = mLifecycleOwner.getRegistry();

+2 −2
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ import androidx.constraintlayout.widget.Constraints;

import com.android.systemui.R;
import com.android.systemui.dreams.complication.ComplicationLayoutParams.Position;
import com.android.systemui.dreams.dagger.DreamOverlayComponent;
import com.android.systemui.dreams.complication.dagger.ComplicationModule;
import com.android.systemui.statusbar.CrossFadeHelper;
import com.android.systemui.touch.TouchInsetManager;

@@ -50,7 +50,7 @@ import javax.inject.Named;
 * their layout parameters and attributes. The management of this set is done by
 * {@link ComplicationHostViewController}.
 */
@DreamOverlayComponent.DreamOverlayScope
@ComplicationModule.ComplicationScope
public class ComplicationLayoutEngine implements Complication.VisibilityController {
    public static final String TAG = "ComplicationLayoutEng";

+19 −2
Original line number Diff line number Diff line
package com.android.systemui.dreams.complication.dagger

import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.ViewModelStore
import com.android.systemui.dreams.complication.Complication
import com.android.systemui.dreams.complication.ComplicationHostViewController
import com.android.systemui.dreams.complication.ComplicationLayoutEngine
import com.android.systemui.touch.TouchInsetManager
import dagger.BindsInstance
import dagger.Subcomponent

@Subcomponent
@Subcomponent(modules = [ComplicationModule::class])
@ComplicationModule.ComplicationScope
interface ComplicationComponent {
    /** Factory for generating [ComplicationComponent]. */
    @Subcomponent.Factory
    interface Factory {
        fun create(): ComplicationComponent
        fun create(
            @BindsInstance lifecycleOwner: LifecycleOwner,
            @BindsInstance host: Complication.Host,
            @BindsInstance viewModelStore: ViewModelStore,
            @BindsInstance touchInsetManager: TouchInsetManager
        ): ComplicationComponent
    }

    fun getComplicationHostViewController(): ComplicationHostViewController

    fun getVisibilityController(): ComplicationLayoutEngine
}
+3 −9
Original line number Diff line number Diff line
@@ -24,13 +24,12 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import com.android.internal.util.Preconditions;
import com.android.systemui.R;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dreams.dagger.DreamOverlayComponent;

import javax.inject.Named;

import dagger.Module;
import dagger.Provides;

import javax.inject.Named;

/**
 * Module for providing a scoped host view.
 */
@@ -49,7 +48,7 @@ public abstract class ComplicationHostViewModule {
     */
    @Provides
    @Named(SCOPED_COMPLICATIONS_LAYOUT)
    @DreamOverlayComponent.DreamOverlayScope
    @ComplicationModule.ComplicationScope
    static ConstraintLayout providesComplicationHostView(
            LayoutInflater layoutInflater) {
        return Preconditions.checkNotNull((ConstraintLayout)
@@ -60,7 +59,6 @@ public abstract class ComplicationHostViewModule {

    @Provides
    @Named(COMPLICATION_MARGIN_DEFAULT)
    @DreamOverlayComponent.DreamOverlayScope
    static int providesComplicationPadding(@Main Resources resources) {
        return resources.getDimensionPixelSize(R.dimen.dream_overlay_complication_margin);
    }
@@ -70,7 +68,6 @@ public abstract class ComplicationHostViewModule {
     */
    @Provides
    @Named(COMPLICATIONS_FADE_OUT_DURATION)
    @DreamOverlayComponent.DreamOverlayScope
    static int providesComplicationsFadeOutDuration(@Main Resources resources) {
        return resources.getInteger(R.integer.complicationFadeOutMs);
    }
@@ -80,7 +77,6 @@ public abstract class ComplicationHostViewModule {
     */
    @Provides
    @Named(COMPLICATIONS_FADE_OUT_DELAY)
    @DreamOverlayComponent.DreamOverlayScope
    static int providesComplicationsFadeOutDelay(@Main Resources resources) {
        return resources.getInteger(R.integer.complicationFadeOutDelayMs);
    }
@@ -90,7 +86,6 @@ public abstract class ComplicationHostViewModule {
     */
    @Provides
    @Named(COMPLICATIONS_FADE_IN_DURATION)
    @DreamOverlayComponent.DreamOverlayScope
    static int providesComplicationsFadeInDuration(@Main Resources resources) {
        return resources.getInteger(R.integer.complicationFadeInMs);
    }
@@ -100,7 +95,6 @@ public abstract class ComplicationHostViewModule {
     */
    @Provides
    @Named(COMPLICATIONS_RESTORE_TIMEOUT)
    @DreamOverlayComponent.DreamOverlayScope
    static int providesComplicationsRestoreTimeout(@Main Resources resources) {
        return resources.getInteger(R.integer.complicationRestoreMs);
    }
+13 −4
Original line number Diff line number Diff line
@@ -24,16 +24,16 @@ import androidx.lifecycle.ViewModelStore;
import com.android.systemui.dreams.complication.Complication;
import com.android.systemui.dreams.complication.ComplicationCollectionViewModel;
import com.android.systemui.dreams.complication.ComplicationLayoutEngine;
import com.android.systemui.touch.TouchInsetManager;

import dagger.Module;
import dagger.Provides;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;

import javax.inject.Named;
import javax.inject.Scope;

import dagger.Module;
import dagger.Provides;

/**
 * Module for housing components related to rendering complications.
 */
@@ -73,4 +73,13 @@ public interface ComplicationModule {
            ComplicationLayoutEngine engine) {
        return engine;
    }

    /**
     * Provides a new touch inset session instance for complication logic.
     */
    @Provides
    static TouchInsetManager.TouchInsetSession providesTouchInsetSession(
            TouchInsetManager manager) {
        return manager.createSession();
    }
}
Loading