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

Commit 3f4650ce authored by Robert Snoeberger's avatar Robert Snoeberger
Browse files

Can't use dagger to inject DockManager.

The DockManager hasn't been initialized yet.

Fixes: 129268296
Test: Placed on dock
Change-Id: I6c83b79b202de337e0ab408a6215d71662d89205
parent 4d7990f4
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import android.view.ViewGroup;
import androidx.annotation.VisibleForTesting;

import com.android.internal.colorextraction.ColorExtractor;
import com.android.systemui.SysUiServiceProvider;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.dock.DockManager;
import com.android.systemui.dock.DockManager.DockEventListener;
@@ -72,6 +73,7 @@ public final class ClockManager {
    private final Map<String, ClockPlugin> mClocks = new ArrayMap<>();
    @Nullable private ClockPlugin mCurrentClock;

    private final Context mContext;
    private final ContentResolver mContentResolver;
    private final SettingsWrapper mSettingsWrapper;
    private final Handler mMainHandler = new Handler(Looper.getMainLooper());
@@ -117,7 +119,7 @@ public final class ClockManager {
                    reload();
                }
            };
    @Nullable private final DockManager mDockManager;
    @Nullable private DockManager mDockManager;
    /**
     * When docked, the DOCKED_CLOCK_FACE setting will be checked for the custom clock face
     * to show.
@@ -132,18 +134,16 @@ public final class ClockManager {

    @Inject
    public ClockManager(Context context, InjectionInflationController injectionInflater,
            PluginManager pluginManager, @Nullable DockManager dockManager,
            SysuiColorExtractor colorExtractor) {
        this(context, injectionInflater, pluginManager, dockManager, colorExtractor,
            PluginManager pluginManager, SysuiColorExtractor colorExtractor) {
        this(context, injectionInflater, pluginManager, colorExtractor,
                context.getContentResolver(), new SettingsWrapper(context.getContentResolver()));
    }

    ClockManager(Context context, InjectionInflationController injectionInflater,
            PluginManager pluginManager, @Nullable DockManager dockManager,
            SysuiColorExtractor colorExtractor, ContentResolver contentResolver,
            SettingsWrapper settingsWrapper) {
            PluginManager pluginManager, SysuiColorExtractor colorExtractor,
            ContentResolver contentResolver, SettingsWrapper settingsWrapper) {
        mContext = context;
        mPluginManager = pluginManager;
        mDockManager = dockManager;
        mColorExtractor = colorExtractor;
        mContentResolver = contentResolver;
        mSettingsWrapper = settingsWrapper;
@@ -323,6 +323,9 @@ public final class ClockManager {
        mContentResolver.registerContentObserver(
                Settings.Secure.getUriFor(Settings.Secure.DOCKED_CLOCK_FACE),
                false, mContentObserver);
        if (mDockManager == null) {
            mDockManager = SysUiServiceProvider.getComponent(mContext, DockManager.class);
        }
        if (mDockManager != null) {
            mDockManager.addListener(mDockEventListener);
        }
+0 −11
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@ import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.ViewMediatorCallback;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.classifier.FalsingManager;
import com.android.systemui.dock.DockManager;
import com.android.systemui.fragments.FragmentService;
import com.android.systemui.keyguard.DismissCallbackRegistry;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
@@ -220,16 +219,6 @@ public class SystemUIFactory {
        return SysUiServiceProvider.getComponent(context, StatusBar.class);
    }

    /**
     * Provides DockManager.
     */
    @Singleton
    @Provides
    @Nullable
    public DockManager providesDockManager(Context context) {
        return SysUiServiceProvider.getComponent(context, DockManager.class);
    }

    @Module
    protected static class ContextHolder {
        private Context mContext;
+3 −1
Original line number Diff line number Diff line
@@ -67,8 +67,10 @@ public final class ClockManagerTest extends SysuiTestCase {
        when(mMockInjectionInflationController.injectable(any())).thenReturn(inflater);

        mFakeDockManager = new DockManagerFake();
        getContext().putComponent(DockManager.class, mFakeDockManager);

        mClockManager = new ClockManager(getContext(), mMockInjectionInflationController,
                mMockPluginManager, mFakeDockManager, mMockColorExtractor, mMockContentResolver,
                mMockPluginManager, mMockColorExtractor, mMockContentResolver,
                mMockSettingsWrapper);

        mClockManager.addOnClockChangedListener(mMockListener);