Merge "Refactor DreamLogger with Logger" into udc-qpr-dev
This commit is contained in:
@@ -16,15 +16,52 @@
|
|||||||
|
|
||||||
package com.android.systemui.dreams
|
package com.android.systemui.dreams
|
||||||
|
|
||||||
import com.android.systemui.log.LogBuffer
|
import com.android.systemui.log.core.Logger
|
||||||
import com.android.systemui.log.core.LogLevel
|
import com.android.systemui.log.core.MessageBuffer
|
||||||
import com.android.systemui.log.dagger.DreamLog
|
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
/** Logs dream-related stuff to a {@link LogBuffer}. */
|
/** Logs dream-related stuff to a {@link LogBuffer}. */
|
||||||
class DreamLogger @Inject constructor(@DreamLog private val buffer: LogBuffer) {
|
class DreamLogger(buffer: MessageBuffer, tag: String) : Logger(buffer, tag) {
|
||||||
/** Logs a debug message to the buffer. */
|
fun logDreamOverlayEnabled(enabled: Boolean) =
|
||||||
fun d(tag: String, message: String) {
|
d({ "Dream overlay enabled: $bool1" }) { bool1 = enabled }
|
||||||
buffer.log(tag, LogLevel.DEBUG, { str1 = message }, { message })
|
|
||||||
}
|
fun logIgnoreAddComplication(reason: String, complication: String) =
|
||||||
|
d({ "Ignore adding complication, reason: $str1, complication: $str2" }) {
|
||||||
|
str1 = reason
|
||||||
|
str2 = complication
|
||||||
|
}
|
||||||
|
|
||||||
|
fun logIgnoreRemoveComplication(reason: String, complication: String) =
|
||||||
|
d({ "Ignore removing complication, reason: $str1, complication: $str2" }) {
|
||||||
|
str1 = reason
|
||||||
|
str2 = complication
|
||||||
|
}
|
||||||
|
|
||||||
|
fun logAddComplication(complication: String) =
|
||||||
|
d({ "Add dream complication: $str1" }) { str1 = complication }
|
||||||
|
|
||||||
|
fun logRemoveComplication(complication: String) =
|
||||||
|
d({ "Remove dream complication: $str1" }) { str1 = complication }
|
||||||
|
|
||||||
|
fun logOverlayActive(active: Boolean) = d({ "Dream overlay active: $bool1" }) { bool1 = active }
|
||||||
|
|
||||||
|
fun logLowLightActive(active: Boolean) =
|
||||||
|
d({ "Low light mode active: $bool1" }) { bool1 = active }
|
||||||
|
|
||||||
|
fun logHasAssistantAttention(hasAttention: Boolean) =
|
||||||
|
d({ "Dream overlay has Assistant attention: $bool1" }) { bool1 = hasAttention }
|
||||||
|
|
||||||
|
fun logStatusBarVisible(visible: Boolean) =
|
||||||
|
d({ "Dream overlay status bar visible: $bool1" }) { bool1 = visible }
|
||||||
|
|
||||||
|
fun logAvailableComplicationTypes(types: Int) =
|
||||||
|
d({ "Available complication types: $int1" }) { int1 = types }
|
||||||
|
|
||||||
|
fun logShouldShowComplications(showComplications: Boolean) =
|
||||||
|
d({ "Dream overlay should show complications: $bool1" }) { bool1 = showComplications }
|
||||||
|
|
||||||
|
fun logShowOrHideStatusBarItem(show: Boolean, type: String) =
|
||||||
|
d({ "${if (bool1) "Showing" else "Hiding"} dream status bar item: $int1" }) {
|
||||||
|
bool1 = show
|
||||||
|
str1 = type
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,9 @@ import com.android.systemui.complication.ComplicationLayoutParams.Position
|
|||||||
import com.android.systemui.dreams.dagger.DreamOverlayModule
|
import com.android.systemui.dreams.dagger.DreamOverlayModule
|
||||||
import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel
|
import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel
|
||||||
import com.android.systemui.lifecycle.repeatWhenAttached
|
import com.android.systemui.lifecycle.repeatWhenAttached
|
||||||
|
import com.android.systemui.log.LogBuffer
|
||||||
|
import com.android.systemui.log.core.Logger
|
||||||
|
import com.android.systemui.log.dagger.DreamLog
|
||||||
import com.android.systemui.statusbar.BlurUtils
|
import com.android.systemui.statusbar.BlurUtils
|
||||||
import com.android.systemui.statusbar.CrossFadeHelper
|
import com.android.systemui.statusbar.CrossFadeHelper
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController
|
import com.android.systemui.statusbar.policy.ConfigurationController
|
||||||
@@ -65,12 +68,14 @@ constructor(
|
|||||||
private val mDreamInTranslationYDistance: Int,
|
private val mDreamInTranslationYDistance: Int,
|
||||||
@Named(DreamOverlayModule.DREAM_IN_TRANSLATION_Y_DURATION)
|
@Named(DreamOverlayModule.DREAM_IN_TRANSLATION_Y_DURATION)
|
||||||
private val mDreamInTranslationYDurationMs: Long,
|
private val mDreamInTranslationYDurationMs: Long,
|
||||||
private val mLogger: DreamLogger,
|
@DreamLog logBuffer: LogBuffer,
|
||||||
) {
|
) {
|
||||||
companion object {
|
companion object {
|
||||||
private const val TAG = "DreamOverlayAnimationsController"
|
private const val TAG = "DreamOverlayAnimationsController"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val logger = Logger(logBuffer, TAG)
|
||||||
|
|
||||||
private var mAnimator: Animator? = null
|
private var mAnimator: Animator? = null
|
||||||
private lateinit var view: View
|
private lateinit var view: View
|
||||||
|
|
||||||
@@ -179,11 +184,11 @@ constructor(
|
|||||||
doOnEnd {
|
doOnEnd {
|
||||||
mAnimator = null
|
mAnimator = null
|
||||||
mOverlayStateController.setEntryAnimationsFinished(true)
|
mOverlayStateController.setEntryAnimationsFinished(true)
|
||||||
mLogger.d(TAG, "Dream overlay entry animations finished.")
|
logger.d("Dream overlay entry animations finished.")
|
||||||
}
|
}
|
||||||
doOnCancel { mLogger.d(TAG, "Dream overlay entry animations canceled.") }
|
doOnCancel { logger.d("Dream overlay entry animations canceled.") }
|
||||||
start()
|
start()
|
||||||
mLogger.d(TAG, "Dream overlay entry animations started.")
|
logger.d("Dream overlay entry animations started.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -242,11 +247,11 @@ constructor(
|
|||||||
doOnEnd {
|
doOnEnd {
|
||||||
mAnimator = null
|
mAnimator = null
|
||||||
mOverlayStateController.setExitAnimationsRunning(false)
|
mOverlayStateController.setExitAnimationsRunning(false)
|
||||||
mLogger.d(TAG, "Dream overlay exit animations finished.")
|
logger.d("Dream overlay exit animations finished.")
|
||||||
}
|
}
|
||||||
doOnCancel { mLogger.d(TAG, "Dream overlay exit animations canceled.") }
|
doOnCancel { logger.d("Dream overlay exit animations canceled.") }
|
||||||
start()
|
start()
|
||||||
mLogger.d(TAG, "Dream overlay exit animations started.")
|
logger.d("Dream overlay exit animations started.")
|
||||||
}
|
}
|
||||||
mOverlayStateController.setExitAnimationsRunning(true)
|
mOverlayStateController.setExitAnimationsRunning(true)
|
||||||
return mAnimator as AnimatorSet
|
return mAnimator as AnimatorSet
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ import com.android.systemui.dagger.SysUISingleton;
|
|||||||
import com.android.systemui.dagger.qualifiers.Main;
|
import com.android.systemui.dagger.qualifiers.Main;
|
||||||
import com.android.systemui.flags.FeatureFlags;
|
import com.android.systemui.flags.FeatureFlags;
|
||||||
import com.android.systemui.flags.Flags;
|
import com.android.systemui.flags.Flags;
|
||||||
|
import com.android.systemui.log.LogBuffer;
|
||||||
|
import com.android.systemui.log.dagger.DreamLog;
|
||||||
import com.android.systemui.statusbar.policy.CallbackController;
|
import com.android.systemui.statusbar.policy.CallbackController;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -115,10 +117,10 @@ public class DreamOverlayStateController implements
|
|||||||
public DreamOverlayStateController(@Main Executor executor,
|
public DreamOverlayStateController(@Main Executor executor,
|
||||||
@Named(DREAM_OVERLAY_ENABLED) boolean overlayEnabled,
|
@Named(DREAM_OVERLAY_ENABLED) boolean overlayEnabled,
|
||||||
FeatureFlags featureFlags,
|
FeatureFlags featureFlags,
|
||||||
DreamLogger dreamLogger) {
|
@DreamLog LogBuffer logBuffer) {
|
||||||
mExecutor = executor;
|
mExecutor = executor;
|
||||||
mOverlayEnabled = overlayEnabled;
|
mOverlayEnabled = overlayEnabled;
|
||||||
mLogger = dreamLogger;
|
mLogger = new DreamLogger(logBuffer, TAG);
|
||||||
mFeatureFlags = featureFlags;
|
mFeatureFlags = featureFlags;
|
||||||
if (mFeatureFlags.isEnabled(Flags.ALWAYS_SHOW_HOME_CONTROLS_ON_DREAMS)) {
|
if (mFeatureFlags.isEnabled(Flags.ALWAYS_SHOW_HOME_CONTROLS_ON_DREAMS)) {
|
||||||
mSupportedTypes = Complication.COMPLICATION_TYPE_NONE
|
mSupportedTypes = Complication.COMPLICATION_TYPE_NONE
|
||||||
@@ -126,7 +128,7 @@ public class DreamOverlayStateController implements
|
|||||||
} else {
|
} else {
|
||||||
mSupportedTypes = Complication.COMPLICATION_TYPE_NONE;
|
mSupportedTypes = Complication.COMPLICATION_TYPE_NONE;
|
||||||
}
|
}
|
||||||
mLogger.d(TAG, "Dream overlay enabled: " + mOverlayEnabled);
|
mLogger.logDreamOverlayEnabled(mOverlayEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -134,14 +136,13 @@ public class DreamOverlayStateController implements
|
|||||||
*/
|
*/
|
||||||
public void addComplication(Complication complication) {
|
public void addComplication(Complication complication) {
|
||||||
if (!mOverlayEnabled) {
|
if (!mOverlayEnabled) {
|
||||||
mLogger.d(TAG,
|
mLogger.logIgnoreAddComplication("overlay disabled", complication.toString());
|
||||||
"Ignoring adding complication due to overlay disabled: " + complication);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mExecutor.execute(() -> {
|
mExecutor.execute(() -> {
|
||||||
if (mComplications.add(complication)) {
|
if (mComplications.add(complication)) {
|
||||||
mLogger.d(TAG, "Added dream complication: " + complication);
|
mLogger.logAddComplication(complication.toString());
|
||||||
mCallbacks.stream().forEach(callback -> callback.onComplicationsChanged());
|
mCallbacks.stream().forEach(callback -> callback.onComplicationsChanged());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -152,14 +153,13 @@ public class DreamOverlayStateController implements
|
|||||||
*/
|
*/
|
||||||
public void removeComplication(Complication complication) {
|
public void removeComplication(Complication complication) {
|
||||||
if (!mOverlayEnabled) {
|
if (!mOverlayEnabled) {
|
||||||
mLogger.d(TAG,
|
mLogger.logIgnoreRemoveComplication("overlay disabled", complication.toString());
|
||||||
"Ignoring removing complication due to overlay disabled: " + complication);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mExecutor.execute(() -> {
|
mExecutor.execute(() -> {
|
||||||
if (mComplications.remove(complication)) {
|
if (mComplications.remove(complication)) {
|
||||||
mLogger.d(TAG, "Removed dream complication: " + complication);
|
mLogger.logRemoveComplication(complication.toString());
|
||||||
mCallbacks.stream().forEach(callback -> callback.onComplicationsChanged());
|
mCallbacks.stream().forEach(callback -> callback.onComplicationsChanged());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -305,7 +305,7 @@ public class DreamOverlayStateController implements
|
|||||||
* @param active {@code true} if overlay is active, {@code false} otherwise.
|
* @param active {@code true} if overlay is active, {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
public void setOverlayActive(boolean active) {
|
public void setOverlayActive(boolean active) {
|
||||||
mLogger.d(TAG, "Dream overlay active: " + active);
|
mLogger.logOverlayActive(active);
|
||||||
modifyState(active ? OP_SET_STATE : OP_CLEAR_STATE, STATE_DREAM_OVERLAY_ACTIVE);
|
modifyState(active ? OP_SET_STATE : OP_CLEAR_STATE, STATE_DREAM_OVERLAY_ACTIVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -314,7 +314,7 @@ public class DreamOverlayStateController implements
|
|||||||
* @param active {@code true} if low light mode is active, {@code false} otherwise.
|
* @param active {@code true} if low light mode is active, {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
public void setLowLightActive(boolean active) {
|
public void setLowLightActive(boolean active) {
|
||||||
mLogger.d(TAG, "Low light mode active: " + active);
|
mLogger.logLowLightActive(active);
|
||||||
|
|
||||||
if (isLowLightActive() && !active) {
|
if (isLowLightActive() && !active) {
|
||||||
// Notify that we're exiting low light only on the transition from active to not active.
|
// Notify that we're exiting low light only on the transition from active to not active.
|
||||||
@@ -346,7 +346,7 @@ public class DreamOverlayStateController implements
|
|||||||
* @param hasAttention {@code true} if has the user's attention, {@code false} otherwise.
|
* @param hasAttention {@code true} if has the user's attention, {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
public void setHasAssistantAttention(boolean hasAttention) {
|
public void setHasAssistantAttention(boolean hasAttention) {
|
||||||
mLogger.d(TAG, "Dream overlay has Assistant attention: " + hasAttention);
|
mLogger.logHasAssistantAttention(hasAttention);
|
||||||
modifyState(hasAttention ? OP_SET_STATE : OP_CLEAR_STATE, STATE_HAS_ASSISTANT_ATTENTION);
|
modifyState(hasAttention ? OP_SET_STATE : OP_CLEAR_STATE, STATE_HAS_ASSISTANT_ATTENTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -355,7 +355,7 @@ public class DreamOverlayStateController implements
|
|||||||
* @param visible {@code true} if the status bar is visible, {@code false} otherwise.
|
* @param visible {@code true} if the status bar is visible, {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
public void setDreamOverlayStatusBarVisible(boolean visible) {
|
public void setDreamOverlayStatusBarVisible(boolean visible) {
|
||||||
mLogger.d(TAG, "Dream overlay status bar visible: " + visible);
|
mLogger.logStatusBarVisible(visible);
|
||||||
modifyState(
|
modifyState(
|
||||||
visible ? OP_SET_STATE : OP_CLEAR_STATE, STATE_DREAM_OVERLAY_STATUS_BAR_VISIBLE);
|
visible ? OP_SET_STATE : OP_CLEAR_STATE, STATE_DREAM_OVERLAY_STATUS_BAR_VISIBLE);
|
||||||
}
|
}
|
||||||
@@ -373,7 +373,7 @@ public class DreamOverlayStateController implements
|
|||||||
*/
|
*/
|
||||||
public void setAvailableComplicationTypes(@Complication.ComplicationType int types) {
|
public void setAvailableComplicationTypes(@Complication.ComplicationType int types) {
|
||||||
mExecutor.execute(() -> {
|
mExecutor.execute(() -> {
|
||||||
mLogger.d(TAG, "Available complication types: " + types);
|
mLogger.logAvailableComplicationTypes(types);
|
||||||
mAvailableComplicationTypes = types;
|
mAvailableComplicationTypes = types;
|
||||||
mCallbacks.forEach(Callback::onAvailableComplicationTypesChanged);
|
mCallbacks.forEach(Callback::onAvailableComplicationTypesChanged);
|
||||||
});
|
});
|
||||||
@@ -391,7 +391,7 @@ public class DreamOverlayStateController implements
|
|||||||
*/
|
*/
|
||||||
public void setShouldShowComplications(boolean shouldShowComplications) {
|
public void setShouldShowComplications(boolean shouldShowComplications) {
|
||||||
mExecutor.execute(() -> {
|
mExecutor.execute(() -> {
|
||||||
mLogger.d(TAG, "Should show complications: " + shouldShowComplications);
|
mLogger.logShouldShowComplications(shouldShowComplications);
|
||||||
mShouldShowComplications = shouldShowComplications;
|
mShouldShowComplications = shouldShowComplications;
|
||||||
mCallbacks.forEach(Callback::onAvailableComplicationTypesChanged);
|
mCallbacks.forEach(Callback::onAvailableComplicationTypesChanged);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ import com.android.systemui.R;
|
|||||||
import com.android.systemui.dagger.qualifiers.Main;
|
import com.android.systemui.dagger.qualifiers.Main;
|
||||||
import com.android.systemui.dreams.DreamOverlayStatusBarItemsProvider.StatusBarItem;
|
import com.android.systemui.dreams.DreamOverlayStatusBarItemsProvider.StatusBarItem;
|
||||||
import com.android.systemui.dreams.dagger.DreamOverlayComponent;
|
import com.android.systemui.dreams.dagger.DreamOverlayComponent;
|
||||||
|
import com.android.systemui.log.LogBuffer;
|
||||||
|
import com.android.systemui.log.dagger.DreamLog;
|
||||||
import com.android.systemui.settings.UserTracker;
|
import com.android.systemui.settings.UserTracker;
|
||||||
import com.android.systemui.statusbar.CrossFadeHelper;
|
import com.android.systemui.statusbar.CrossFadeHelper;
|
||||||
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController;
|
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController;
|
||||||
@@ -161,7 +163,7 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve
|
|||||||
DreamOverlayStatusBarItemsProvider statusBarItemsProvider,
|
DreamOverlayStatusBarItemsProvider statusBarItemsProvider,
|
||||||
DreamOverlayStateController dreamOverlayStateController,
|
DreamOverlayStateController dreamOverlayStateController,
|
||||||
UserTracker userTracker,
|
UserTracker userTracker,
|
||||||
DreamLogger dreamLogger) {
|
@DreamLog LogBuffer logBuffer) {
|
||||||
super(view);
|
super(view);
|
||||||
mResources = resources;
|
mResources = resources;
|
||||||
mMainExecutor = mainExecutor;
|
mMainExecutor = mainExecutor;
|
||||||
@@ -177,7 +179,7 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve
|
|||||||
mZenModeController = zenModeController;
|
mZenModeController = zenModeController;
|
||||||
mDreamOverlayStateController = dreamOverlayStateController;
|
mDreamOverlayStateController = dreamOverlayStateController;
|
||||||
mUserTracker = userTracker;
|
mUserTracker = userTracker;
|
||||||
mLogger = dreamLogger;
|
mLogger = new DreamLogger(logBuffer, TAG);
|
||||||
|
|
||||||
// Register to receive show/hide updates for the system status bar. Our custom status bar
|
// Register to receive show/hide updates for the system status bar. Our custom status bar
|
||||||
// needs to hide when the system status bar is showing to ovoid overlapping status bars.
|
// needs to hide when the system status bar is showing to ovoid overlapping status bars.
|
||||||
@@ -346,8 +348,8 @@ public class DreamOverlayStatusBarViewController extends ViewController<DreamOve
|
|||||||
@Nullable String contentDescription) {
|
@Nullable String contentDescription) {
|
||||||
mMainExecutor.execute(() -> {
|
mMainExecutor.execute(() -> {
|
||||||
if (mIsAttached) {
|
if (mIsAttached) {
|
||||||
mLogger.d(TAG, (show ? "Showing" : "Hiding") + " dream status bar item: "
|
mLogger.logShowOrHideStatusBarItem(
|
||||||
+ DreamOverlayStatusBarView.getLoggableStatusIconType(iconType));
|
show, DreamOverlayStatusBarView.getLoggableStatusIconType(iconType));
|
||||||
mView.showIcon(iconType, show, contentDescription);
|
mView.showIcon(iconType, show, contentDescription);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -28,10 +28,10 @@ import androidx.lifecycle.Observer;
|
|||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
import com.android.systemui.dreams.DreamLogger;
|
|
||||||
import com.android.systemui.dreams.DreamOverlayStateController;
|
import com.android.systemui.dreams.DreamOverlayStateController;
|
||||||
import com.android.systemui.flags.FakeFeatureFlags;
|
import com.android.systemui.flags.FakeFeatureFlags;
|
||||||
import com.android.systemui.flags.Flags;
|
import com.android.systemui.flags.Flags;
|
||||||
|
import com.android.systemui.log.core.FakeLogBuffer;
|
||||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||||
import com.android.systemui.util.time.FakeSystemClock;
|
import com.android.systemui.util.time.FakeSystemClock;
|
||||||
|
|
||||||
@@ -57,8 +57,6 @@ public class ComplicationCollectionLiveDataTest extends SysuiTestCase {
|
|||||||
private FakeFeatureFlags mFeatureFlags;
|
private FakeFeatureFlags mFeatureFlags;
|
||||||
@Mock
|
@Mock
|
||||||
private Observer mObserver;
|
private Observer mObserver;
|
||||||
@Mock
|
|
||||||
private DreamLogger mLogger;
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
@@ -70,7 +68,7 @@ public class ComplicationCollectionLiveDataTest extends SysuiTestCase {
|
|||||||
mExecutor,
|
mExecutor,
|
||||||
/* overlayEnabled= */ true,
|
/* overlayEnabled= */ true,
|
||||||
mFeatureFlags,
|
mFeatureFlags,
|
||||||
mLogger);
|
FakeLogBuffer.Factory.Companion.create());
|
||||||
mLiveData = new ComplicationCollectionLiveData(mStateController);
|
mLiveData = new ComplicationCollectionLiveData(mStateController);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import androidx.test.filters.SmallTest
|
|||||||
import com.android.systemui.SysuiTestCase
|
import com.android.systemui.SysuiTestCase
|
||||||
import com.android.systemui.complication.ComplicationHostViewController
|
import com.android.systemui.complication.ComplicationHostViewController
|
||||||
import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel
|
import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel
|
||||||
|
import com.android.systemui.log.core.FakeLogBuffer
|
||||||
import com.android.systemui.statusbar.BlurUtils
|
import com.android.systemui.statusbar.BlurUtils
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController
|
import com.android.systemui.statusbar.policy.ConfigurationController
|
||||||
import com.android.systemui.util.mockito.argumentCaptor
|
import com.android.systemui.util.mockito.argumentCaptor
|
||||||
@@ -47,7 +48,7 @@ class DreamOverlayAnimationsControllerTest : SysuiTestCase() {
|
|||||||
@Mock private lateinit var stateController: DreamOverlayStateController
|
@Mock private lateinit var stateController: DreamOverlayStateController
|
||||||
@Mock private lateinit var configController: ConfigurationController
|
@Mock private lateinit var configController: ConfigurationController
|
||||||
@Mock private lateinit var transitionViewModel: DreamingToLockscreenTransitionViewModel
|
@Mock private lateinit var transitionViewModel: DreamingToLockscreenTransitionViewModel
|
||||||
@Mock private lateinit var logger: DreamLogger
|
private val logBuffer = FakeLogBuffer.Factory.create()
|
||||||
private lateinit var controller: DreamOverlayAnimationsController
|
private lateinit var controller: DreamOverlayAnimationsController
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
@@ -66,7 +67,7 @@ class DreamOverlayAnimationsControllerTest : SysuiTestCase() {
|
|||||||
DREAM_IN_COMPLICATIONS_ANIMATION_DURATION,
|
DREAM_IN_COMPLICATIONS_ANIMATION_DURATION,
|
||||||
DREAM_IN_TRANSLATION_Y_DISTANCE,
|
DREAM_IN_TRANSLATION_Y_DISTANCE,
|
||||||
DREAM_IN_TRANSLATION_Y_DURATION,
|
DREAM_IN_TRANSLATION_Y_DURATION,
|
||||||
logger
|
logBuffer
|
||||||
)
|
)
|
||||||
|
|
||||||
val mockView: View = mock()
|
val mockView: View = mock()
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ import com.android.systemui.SysuiTestCase;
|
|||||||
import com.android.systemui.complication.Complication;
|
import com.android.systemui.complication.Complication;
|
||||||
import com.android.systemui.flags.FeatureFlags;
|
import com.android.systemui.flags.FeatureFlags;
|
||||||
import com.android.systemui.flags.Flags;
|
import com.android.systemui.flags.Flags;
|
||||||
|
import com.android.systemui.log.LogBuffer;
|
||||||
|
import com.android.systemui.log.core.FakeLogBuffer;
|
||||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||||
import com.android.systemui.util.time.FakeSystemClock;
|
import com.android.systemui.util.time.FakeSystemClock;
|
||||||
|
|
||||||
@@ -58,8 +60,7 @@ public class DreamOverlayStateControllerTest extends SysuiTestCase {
|
|||||||
@Mock
|
@Mock
|
||||||
private FeatureFlags mFeatureFlags;
|
private FeatureFlags mFeatureFlags;
|
||||||
|
|
||||||
@Mock
|
private final LogBuffer mLogBuffer = FakeLogBuffer.Factory.Companion.create();
|
||||||
private DreamLogger mLogger;
|
|
||||||
|
|
||||||
final FakeExecutor mExecutor = new FakeExecutor(new FakeSystemClock());
|
final FakeExecutor mExecutor = new FakeExecutor(new FakeSystemClock());
|
||||||
|
|
||||||
@@ -408,6 +409,11 @@ public class DreamOverlayStateControllerTest extends SysuiTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private DreamOverlayStateController getDreamOverlayStateController(boolean overlayEnabled) {
|
private DreamOverlayStateController getDreamOverlayStateController(boolean overlayEnabled) {
|
||||||
return new DreamOverlayStateController(mExecutor, overlayEnabled, mFeatureFlags, mLogger);
|
return new DreamOverlayStateController(
|
||||||
|
mExecutor,
|
||||||
|
overlayEnabled,
|
||||||
|
mFeatureFlags,
|
||||||
|
mLogBuffer
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ import androidx.test.filters.SmallTest;
|
|||||||
|
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
|
import com.android.systemui.log.LogBuffer;
|
||||||
|
import com.android.systemui.log.core.FakeLogBuffer;
|
||||||
import com.android.systemui.settings.UserTracker;
|
import com.android.systemui.settings.UserTracker;
|
||||||
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController;
|
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController;
|
||||||
import com.android.systemui.statusbar.policy.NextAlarmController;
|
import com.android.systemui.statusbar.policy.NextAlarmController;
|
||||||
@@ -113,8 +115,8 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase {
|
|||||||
DreamOverlayStateController mDreamOverlayStateController;
|
DreamOverlayStateController mDreamOverlayStateController;
|
||||||
@Mock
|
@Mock
|
||||||
UserTracker mUserTracker;
|
UserTracker mUserTracker;
|
||||||
@Mock
|
|
||||||
DreamLogger mLogger;
|
LogBuffer mLogBuffer = FakeLogBuffer.Factory.Companion.create();
|
||||||
|
|
||||||
@Captor
|
@Captor
|
||||||
private ArgumentCaptor<DreamOverlayStateController.Callback> mCallbackCaptor;
|
private ArgumentCaptor<DreamOverlayStateController.Callback> mCallbackCaptor;
|
||||||
@@ -149,7 +151,7 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase {
|
|||||||
mDreamOverlayStatusBarItemsProvider,
|
mDreamOverlayStatusBarItemsProvider,
|
||||||
mDreamOverlayStateController,
|
mDreamOverlayStateController,
|
||||||
mUserTracker,
|
mUserTracker,
|
||||||
mLogger);
|
mLogBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -293,7 +295,7 @@ public class DreamOverlayStatusBarViewControllerTest extends SysuiTestCase {
|
|||||||
mDreamOverlayStatusBarItemsProvider,
|
mDreamOverlayStatusBarItemsProvider,
|
||||||
mDreamOverlayStateController,
|
mDreamOverlayStateController,
|
||||||
mUserTracker,
|
mUserTracker,
|
||||||
mLogger);
|
mLogBuffer);
|
||||||
controller.onViewAttached();
|
controller.onViewAttached();
|
||||||
verify(mView, never()).showIcon(
|
verify(mView, never()).showIcon(
|
||||||
eq(DreamOverlayStatusBarView.STATUS_ICON_NOTIFICATIONS), eq(true), any());
|
eq(DreamOverlayStatusBarView.STATUS_ICON_NOTIFICATIONS), eq(true), any());
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2023 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.systemui.log.core
|
||||||
|
|
||||||
|
import com.android.systemui.log.LogBuffer
|
||||||
|
import com.android.systemui.log.LogMessageImpl
|
||||||
|
import com.android.systemui.util.mockito.any
|
||||||
|
import com.android.systemui.util.mockito.mock
|
||||||
|
import com.android.systemui.util.mockito.nullable
|
||||||
|
import com.android.systemui.util.mockito.whenever
|
||||||
|
import org.mockito.Mockito.anyString
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A fake [LogBuffer] used for testing that obtains a real [LogMessage] to prevent a
|
||||||
|
* [NullPointerException].
|
||||||
|
*/
|
||||||
|
class FakeLogBuffer private constructor() {
|
||||||
|
class Factory private constructor() {
|
||||||
|
companion object {
|
||||||
|
fun create(): LogBuffer {
|
||||||
|
val logBuffer = mock<LogBuffer>()
|
||||||
|
whenever(
|
||||||
|
logBuffer.obtain(
|
||||||
|
tag = anyString(),
|
||||||
|
level = any(),
|
||||||
|
messagePrinter = any(),
|
||||||
|
exception = nullable(),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.thenReturn(LogMessageImpl.Factory.create())
|
||||||
|
return logBuffer
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user