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

Commit 79079b80 authored by Nicolo' Mazzucato's avatar Nicolo' Mazzucato
Browse files

Provide @Main decorated context for the default display

This creates a binding for the default context using the @Main annotation.

As we're now using several different types of context in sysui (e.g. a shade window specific one), classes that are aware they need the context only for the default display should be annotating it directly with @Main.

This also ensures consistency as we're using @Main for several other classes.

No injections of undecorated context will be forbidden with a linter eventually (and is already forbidden in shade related packages as of today with ShadeDisplayAwareContextChecker)

Bug: 362719719
Bug: 374267505
Test: presubmits
Flag: com.android.systemui.shade_window_goes_around
Change-Id: I3b0c1bc1659a2285c5ca55dd10ed8d2d2d0b7abe
parent 869a4eda
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -21,7 +21,6 @@ import com.android.systemui.common.ui.data.repository.ConfigurationRepository
import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractor
import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractor
import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractorImpl
import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractorImpl
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.statusbar.policy.ConfigurationController
import dagger.Binds
import dagger.Binds
@@ -54,7 +53,7 @@ interface ConfigurationModule {
        fun provideGlobalConfigurationState(
        fun provideGlobalConfigurationState(
            configStateFactory: ConfigurationStateImpl.Factory,
            configStateFactory: ConfigurationStateImpl.Factory,
            configurationController: ConfigurationController,
            configurationController: ConfigurationController,
            @Application context: Context,
            @Main context: Context,
        ): ConfigurationState {
        ): ConfigurationState {
            return configStateFactory.create(context, configurationController)
            return configStateFactory.create(context, configurationController)
        }
        }
+8 −0
Original line number Original line Diff line number Diff line
@@ -708,6 +708,14 @@ public class FrameworkServicesModule {
        return context.getSystemService(WindowManager.class);
        return context.getSystemService(WindowManager.class);
    }
    }


    /** A window manager working for the default display only. */
    @Provides
    @Singleton
    @Main
    static WindowManager provideMainWindowManager(WindowManager windowManager) {
        return windowManager;
    }

    @Provides
    @Provides
    @Singleton
    @Singleton
    static ViewCaptureAwareWindowManager provideViewCaptureAwareWindowManager(
    static ViewCaptureAwareWindowManager provideViewCaptureAwareWindowManager(
+8 −0
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@ import android.util.DisplayMetrics;
import android.view.Display;
import android.view.Display;


import com.android.systemui.dagger.qualifiers.Application;
import com.android.systemui.dagger.qualifiers.Application;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.plugins.PluginsModule;
import com.android.systemui.plugins.PluginsModule;
import com.android.systemui.unfold.UnfoldTransitionModule;
import com.android.systemui.unfold.UnfoldTransitionModule;
import com.android.systemui.util.concurrency.GlobalConcurrencyModule;
import com.android.systemui.util.concurrency.GlobalConcurrencyModule;
@@ -62,6 +63,13 @@ public class GlobalModule {
        return context.getApplicationContext();
        return context.getApplicationContext();
    }
    }


    /** Provides the default content with the main annotation. */
    @Provides
    @Main
    public Context provideMainContext(Context context) {
        return context;
    }

    /**
    /**
     * @deprecated Deprecdated because {@link Display#getMetrics} is deprecated.
     * @deprecated Deprecdated because {@link Display#getMetrics} is deprecated.
     */
     */
+2 −4
Original line number Original line Diff line number Diff line
@@ -24,7 +24,6 @@ import com.android.app.tracing.coroutines.launchTraced as launch
import com.android.settingslib.Utils
import com.android.settingslib.Utils
import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractor
import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractor
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.keyboard.docking.domain.interactor.KeyboardDockingIndicationInteractor
import com.android.systemui.keyboard.docking.domain.interactor.KeyboardDockingIndicationInteractor
@@ -38,9 +37,8 @@ import kotlinx.coroutines.flow.asStateFlow
class KeyboardDockingIndicationViewModel
class KeyboardDockingIndicationViewModel
@Inject
@Inject
constructor(
constructor(
    // TODO b/374267505 - Annotate this.
    @SuppressLint("ShadeDisplayAwareContextChecker") @Main private val windowManager: WindowManager,
    @SuppressLint("ShadeDisplayAwareContextChecker") private val windowManager: WindowManager,
    @SuppressLint("ShadeDisplayAwareContextChecker") @Main private val context: Context,
    @Application private val context: Context,
    keyboardDockingIndicationInteractor: KeyboardDockingIndicationInteractor,
    keyboardDockingIndicationInteractor: KeyboardDockingIndicationInteractor,
    @SuppressLint("ShadeDisplayAwareContextChecker") @Main configurationInteractor: ConfigurationInteractor,
    @SuppressLint("ShadeDisplayAwareContextChecker") @Main configurationInteractor: ConfigurationInteractor,
    @Background private val backgroundScope: CoroutineScope,
    @Background private val backgroundScope: CoroutineScope,