diff --git a/packages/SystemUI/src/com/android/keyguard/clock/ClockManager.java b/packages/SystemUI/src/com/android/keyguard/clock/ClockManager.java index 294c725af481e..8ad5c7b90882c 100644 --- a/packages/SystemUI/src/com/android/keyguard/clock/ClockManager.java +++ b/packages/SystemUI/src/com/android/keyguard/clock/ClockManager.java @@ -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 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); } diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java index 6bb4fb5ef94a0..47ad0c17c4146 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java @@ -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; diff --git a/packages/SystemUI/tests/src/com/android/keyguard/clock/ClockManagerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/clock/ClockManagerTest.java index 36265d485e2cc..46b1833c2d6ce 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/clock/ClockManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/clock/ClockManagerTest.java @@ -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);