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

Commit a950a6f9 authored by Hawkwood Glazier's avatar Hawkwood Glazier Committed by Automerger Merge Worker
Browse files

Merge "Complete Initialization of ClockRegistry in singleton provider" into...

Merge "Complete Initialization of ClockRegistry in singleton provider" into tm-qpr-dev am: ebbbe431 am: cbcf778a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20258272



Change-Id: Id0e42611d2fbedc15bc444e524b2fed5ed575f93
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 1bb75fd0 cbcf778a
Loading
Loading
Loading
Loading
+16 −12
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ import android.database.ContentObserver
import android.graphics.drawable.Drawable
import android.net.Uri
import android.os.Handler
import android.os.UserHandle
import android.provider.Settings
import android.util.Log
import com.android.internal.annotations.Keep
@@ -39,15 +38,15 @@ open class ClockRegistry(
    val context: Context,
    val pluginManager: PluginManager,
    val handler: Handler,
    defaultClockProvider: ClockProvider
    val isEnabled: Boolean,
    userHandle: Int,
    defaultClockProvider: ClockProvider,
) {
    // Usually this would be a typealias, but a SAM provides better java interop
    fun interface ClockChangeListener {
        fun onClockChanged()
    }

    var isEnabled: Boolean = false

    private val gson = Gson()
    private val availableClocks = mutableMapOf<ClockId, ClockInfo>()
    private val clockChangeListeners = mutableListOf<ClockChangeListener>()
@@ -97,15 +96,20 @@ open class ClockRegistry(
            )
        }

        pluginManager.addPluginListener(pluginListener, ClockProviderPlugin::class.java,
            true /* allowMultiple */)
        if (isEnabled) {
            pluginManager.addPluginListener(
                pluginListener,
                ClockProviderPlugin::class.java,
                /*allowMultiple=*/ true
            )
            context.contentResolver.registerContentObserver(
                Settings.Secure.getUriFor(Settings.Secure.LOCK_SCREEN_CUSTOM_CLOCK_FACE),
            false,
                /*notifyForDescendants=*/ false,
                settingObserver,
            UserHandle.USER_ALL
                userHandle
            )
        }
    }

    private fun connectClocks(provider: ClockProvider) {
        val currentId = currentClockId
+1 −5
Original line number Diff line number Diff line
@@ -37,8 +37,6 @@ import com.android.systemui.Dumpable;
import com.android.systemui.R;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.Flags;
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
import com.android.systemui.plugins.ClockAnimations;
import com.android.systemui.plugins.ClockController;
@@ -120,8 +118,7 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
            SecureSettings secureSettings,
            @Main Executor uiExecutor,
            DumpManager dumpManager,
            ClockEventController clockEventController,
            FeatureFlags featureFlags) {
            ClockEventController clockEventController) {
        super(keyguardClockSwitch);
        mStatusBarStateController = statusBarStateController;
        mClockRegistry = clockRegistry;
@@ -134,7 +131,6 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
        mDumpManager = dumpManager;
        mClockEventController = clockEventController;

        mClockRegistry.setEnabled(featureFlags.isEnabled(Flags.LOCKSCREEN_CUSTOM_CLOCKS));
        mClockChangedListener = () -> {
            setClock(mClockRegistry.createCurrentClock());
        };
+12 −2
Original line number Diff line number Diff line
@@ -18,10 +18,13 @@ package com.android.keyguard.dagger;

import android.content.Context;
import android.os.Handler;
import android.os.UserHandle;

import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Application;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.Flags;
import com.android.systemui.shared.clocks.ClockRegistry;
import com.android.systemui.shared.clocks.DefaultClockProvider;
import com.android.systemui.shared.plugins.PluginManager;
@@ -39,7 +42,14 @@ public abstract class ClockRegistryModule {
            @Application Context context,
            PluginManager pluginManager,
            @Main Handler handler,
            DefaultClockProvider defaultClockProvider) {
        return new ClockRegistry(context, pluginManager, handler, defaultClockProvider);
            DefaultClockProvider defaultClockProvider,
            FeatureFlags featureFlags) {
        return new ClockRegistry(
                context,
                pluginManager,
                handler,
                featureFlags.isEnabled(Flags.LOCKSCREEN_CUSTOM_CLOCKS),
                UserHandle.USER_ALL,
                defaultClockProvider);
    }
}
+1 −5
Original line number Diff line number Diff line
@@ -44,7 +44,6 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
import com.android.systemui.plugins.ClockAnimations;
import com.android.systemui.plugins.ClockController;
@@ -105,8 +104,6 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase {
    private FrameLayout mLargeClockFrame;
    @Mock
    private SecureSettings mSecureSettings;
    @Mock
    private FeatureFlags mFeatureFlags;

    private final View mFakeSmartspaceView = new View(mContext);

@@ -143,8 +140,7 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase {
                mSecureSettings,
                mExecutor,
                mDumpManager,
                mClockEventController,
                mFeatureFlags
                mClockEventController
        );

        when(mStatusBarStateController.getState()).thenReturn(StatusBarState.SHADE);
+4 −2
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ import android.content.ContentResolver
import android.content.Context
import android.graphics.drawable.Drawable
import android.os.Handler
import android.os.UserHandle
import android.testing.AndroidTestingRunner
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
@@ -104,13 +105,14 @@ class ClockRegistryTest : SysuiTestCase() {
            mockContext,
            mockPluginManager,
            mockHandler,
            fakeDefaultProvider
            isEnabled = true,
            userHandle = UserHandle.USER_ALL,
            defaultClockProvider = fakeDefaultProvider
        ) {
            override var currentClockId: ClockId
                get() = settingValue
                set(value) { settingValue = value }
        }
        registry.isEnabled = true

        verify(mockPluginManager)
            .addPluginListener(captor.capture(), eq(ClockProviderPlugin::class.java), eq(true))