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

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

Merge changes I581f480a,I041d4505

* changes:
  Complication Dagger Component introduction.
  Allow injecting DreamTouchHandlers into DreamOverlayComponent.
parents d1c07481 879f1bf4
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import com.android.systemui.controls.dagger.ControlsModule;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.demomode.dagger.DemoModeModule;
import com.android.systemui.doze.dagger.DozeComponent;
import com.android.systemui.dreams.complication.dagger.ComplicationComponent;
import com.android.systemui.dreams.dagger.DreamModule;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags;
@@ -163,6 +164,7 @@ import dagger.Provides;
        },
        subcomponents = {
            CentralSurfacesComponent.class,
            ComplicationComponent.class,
            NavigationBarComponent.class,
            NotificationRowComponent.class,
            DozeComponent.class,
+7 −1
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ 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.complication.dagger.ComplicationComponent;
import com.android.systemui.dreams.dagger.DreamOverlayComponent;
import com.android.systemui.dreams.touch.DreamOverlayTouchMonitor;

@@ -80,6 +81,8 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ
    // True if the service has been destroyed.
    private boolean mDestroyed = false;

    private final ComplicationComponent mComplicationComponent;

    private final DreamOverlayComponent mDreamOverlayComponent;

    private final LifecycleRegistry mLifecycleRegistry;
@@ -128,6 +131,7 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ
            Context context,
            @Main Executor executor,
            WindowManager windowManager,
            ComplicationComponent.Factory complicationComponentFactory,
            DreamOverlayComponent.Factory dreamOverlayComponentFactory,
            DreamOverlayStateController stateController,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
@@ -146,7 +150,9 @@ public class DreamOverlayService extends android.service.dreams.DreamOverlayServ
        final ViewModelStore viewModelStore = new ViewModelStore();
        final Complication.Host host =
                () -> mExecutor.execute(DreamOverlayService.this::requestExit);
        mDreamOverlayComponent = dreamOverlayComponentFactory.create(viewModelStore, host);

        mComplicationComponent = complicationComponentFactory.create();
        mDreamOverlayComponent = dreamOverlayComponentFactory.create(viewModelStore, host, null);
        mLifecycleRegistry = mDreamOverlayComponent.getLifecycleRegistry();

        mExecutor.execute(() -> setCurrentStateLocked(Lifecycle.State.CREATED));
+12 −0
Original line number Diff line number Diff line
package com.android.systemui.dreams.complication.dagger

import dagger.Subcomponent

@Subcomponent
interface ComplicationComponent {
    /** Factory for generating [ComplicationComponent]. */
    @Subcomponent.Factory
    interface Factory {
        fun create(): ComplicationComponent
    }
}
+13 −4
Original line number Diff line number Diff line
@@ -16,8 +16,12 @@

package com.android.systemui.dreams.dagger;

import static com.android.systemui.dreams.dagger.DreamOverlayModule.DREAM_TOUCH_HANDLERS;

import static java.lang.annotation.RetentionPolicy.RUNTIME;

import android.annotation.Nullable;

import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.LifecycleRegistry;
import androidx.lifecycle.ViewModelStore;
@@ -26,16 +30,19 @@ 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 com.android.systemui.dreams.touch.DreamTouchHandler;
import com.android.systemui.dreams.touch.dagger.DreamTouchModule;

import dagger.BindsInstance;
import dagger.Subcomponent;

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

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

import dagger.BindsInstance;
import dagger.Subcomponent;

/**
 * Dagger subcomponent for {@link DreamOverlayModule}.
 */
@@ -50,7 +57,9 @@ public interface DreamOverlayComponent {
    @Subcomponent.Factory
    interface Factory {
        DreamOverlayComponent create(@BindsInstance ViewModelStore store,
                @BindsInstance Complication.Host host);
                @BindsInstance Complication.Host host,
                @BindsInstance @Named(DREAM_TOUCH_HANDLERS) @Nullable
                        Set<DreamTouchHandler> dreamTouchHandlers);
    }

    /** Scope annotation for singleton items within the {@link DreamOverlayComponent}. */
+17 −4
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.dreams.dagger;

import android.annotation.Nullable;
import android.content.res.Resources;
import android.view.LayoutInflater;
import android.view.ViewGroup;
@@ -29,19 +30,24 @@ import com.android.systemui.R;
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.touch.TouchInsetManager;

import java.util.concurrent.Executor;

import javax.inject.Named;

import dagger.Lazy;
import dagger.Module;
import dagger.Provides;
import dagger.multibindings.ElementsIntoSet;

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

import javax.inject.Named;

/** Dagger module for {@link DreamOverlayComponent}. */
@Module
public abstract class DreamOverlayModule {
    public static final String DREAM_TOUCH_HANDLERS = "dream_touch_handlers";
    public static final String DREAM_OVERLAY_CONTENT_VIEW = "dream_overlay_content_view";
    public static final String MAX_BURN_IN_OFFSET = "max_burn_in_offset";
    public static final String BURN_IN_PROTECTION_UPDATE_INTERVAL =
@@ -261,4 +267,11 @@ public abstract class DreamOverlayModule {
    static Lifecycle providesLifecycle(LifecycleOwner lifecycleOwner) {
        return lifecycleOwner.getLifecycle();
    }

    @Provides
    @ElementsIntoSet
    static Set<DreamTouchHandler> providesDreamTouchHandlers(
            @Named(DREAM_TOUCH_HANDLERS) @Nullable Set<DreamTouchHandler> touchHandlers) {
        return touchHandlers != null ? touchHandlers : new HashSet<>();
    }
}
Loading