Make DesktopModeUiEventLogger injectable
Provide the logger using @Provides in WMShellModule instead of @Inject,
and remove the InstanceIdSequence dependency since there is no provider
of that in the dagger graph and thus this logger wasn't able to be
injected as is.
Also makes a couple of styling changes to the logger class:
1) Removed hungarian notation
2) Moved event enum out of the companion object to avoid compilation
warnings
3) Converted android.util.Log to Protologs
Bug: 341319606
Test: m WMShellUnitTests
Flag: EXEMPT refactor
Change-Id: Iefe177beada997878dce961fc50cea247709c3ea
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
index 37ba63e..c11d6fa 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
@@ -82,6 +82,7 @@
import com.android.wm.shell.desktopmode.DesktopModeEventLogger;
import com.android.wm.shell.desktopmode.DesktopModeKeyGestureHandler;
import com.android.wm.shell.desktopmode.DesktopModeLoggerTransitionObserver;
+import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger;
import com.android.wm.shell.desktopmode.DesktopRepository;
import com.android.wm.shell.desktopmode.DesktopTaskChangeListener;
import com.android.wm.shell.desktopmode.DesktopTasksController;
@@ -1208,6 +1209,14 @@
mainScope);
}
+ @WMSingleton
+ @Provides
+ static DesktopModeUiEventLogger provideDesktopUiEventLogger(
+ UiEventLogger uiEventLogger
+ ) {
+ return new DesktopModeUiEventLogger(uiEventLogger);
+ }
+
//
// Drag and drop
//
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLogger.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLogger.kt
index a9d4e5f..dff56c1 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLogger.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLogger.kt
@@ -16,22 +16,20 @@
package com.android.wm.shell.desktopmode
-import android.util.Log
import com.android.internal.logging.InstanceId
import com.android.internal.logging.InstanceIdSequence
import com.android.internal.logging.UiEvent
import com.android.internal.logging.UiEventLogger
-import com.android.wm.shell.dagger.WMSingleton
-import javax.inject.Inject
+import com.android.internal.logging.UiEventLogger.UiEventEnum
+import com.android.internal.protolog.ProtoLog
+import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE
/** Log Aster UIEvents for desktop windowing mode. */
-@WMSingleton
-class DesktopModeUiEventLogger
-@Inject
-constructor(
- private val mUiEventLogger: UiEventLogger,
- private val mInstanceIdSequence: InstanceIdSequence
+class DesktopModeUiEventLogger(
+ private val uiEventLogger: UiEventLogger,
) {
+ private val instanceIdSequence = InstanceIdSequence(Integer.MAX_VALUE)
+
/**
* Logs an event for a CUI, on a particular package.
*
@@ -41,14 +39,14 @@
*/
fun log(uid: Int, packageName: String, event: DesktopUiEventEnum) {
if (packageName.isEmpty() || uid < 0) {
- Log.d(TAG, "Skip logging since package name is empty or bad uid")
+ logD("Skip logging since package name is empty or bad uid")
return
}
- mUiEventLogger.log(event, uid, packageName)
+ uiEventLogger.log(event, uid, packageName)
}
/** Retrieves a new instance id for a new interaction. */
- fun getNewInstanceId(): InstanceId = mInstanceIdSequence.newInstanceId()
+ fun getNewInstanceId(): InstanceId = instanceIdSequence.newInstanceId()
/**
* Logs an event as part of a particular CUI, on a particular package.
@@ -66,28 +64,32 @@
event: DesktopUiEventEnum
) {
if (packageName.isEmpty() || uid < 0) {
- Log.d(TAG, "Skip logging since package name is empty or bad uid")
+ logD("Skip logging since package name is empty or bad uid")
return
}
- mUiEventLogger.logWithInstanceId(event, uid, packageName, instanceId)
+ uiEventLogger.logWithInstanceId(event, uid, packageName, instanceId)
+ }
+
+ private fun logD(msg: String, vararg arguments: Any?) {
+ ProtoLog.d(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments)
+ }
+
+ /** Enums for logging desktop windowing mode UiEvents. */
+ enum class DesktopUiEventEnum(private val mId: Int) : UiEventEnum {
+
+ @UiEvent(doc = "Resize the window in desktop windowing mode by dragging the edge")
+ DESKTOP_WINDOW_EDGE_DRAG_RESIZE(1721),
+ @UiEvent(doc = "Resize the window in desktop windowing mode by dragging the corner")
+ DESKTOP_WINDOW_CORNER_DRAG_RESIZE(1722),
+ @UiEvent(doc = "Tap on the window header maximize button in desktop windowing mode")
+ DESKTOP_WINDOW_MAXIMIZE_BUTTON_TAP(1723),
+ @UiEvent(doc = "Double tap on window header to maximize it in desktop windowing mode")
+ DESKTOP_WINDOW_HEADER_DOUBLE_TAP_TO_MAXIMIZE(1724);
+
+ override fun getId(): Int = mId
}
companion object {
- /** Enums for logging desktop windowing mode UiEvents. */
- enum class DesktopUiEventEnum(private val mId: Int) : UiEventLogger.UiEventEnum {
-
- @UiEvent(doc = "Resize the window in desktop windowing mode by dragging the edge")
- DESKTOP_WINDOW_EDGE_DRAG_RESIZE(1721),
- @UiEvent(doc = "Resize the window in desktop windowing mode by dragging the corner")
- DESKTOP_WINDOW_CORNER_DRAG_RESIZE(1722),
- @UiEvent(doc = "Tap on the window header maximize button in desktop windowing mode")
- DESKTOP_WINDOW_MAXIMIZE_BUTTON_TAP(1723),
- @UiEvent(doc = "Double tap on window header to maximize it in desktop windowing mode")
- DESKTOP_WINDOW_HEADER_DOUBLE_TAP_TO_MAXIMIZE(1724);
-
- override fun getId(): Int = mId
- }
-
private const val TAG = "DesktopModeUiEventLogger"
}
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLoggerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLoggerTest.kt
index 51b291c0..a8b2811 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLoggerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLoggerTest.kt
@@ -20,10 +20,9 @@
import android.testing.AndroidTestingRunner
import androidx.test.filters.SmallTest
import com.android.internal.logging.InstanceId
-import com.android.internal.logging.InstanceIdSequence
import com.android.internal.logging.testing.UiEventLoggerFake
import com.android.wm.shell.ShellTestCase
-import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.Companion.DesktopUiEventEnum.DESKTOP_WINDOW_EDGE_DRAG_RESIZE
+import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum.DESKTOP_WINDOW_EDGE_DRAG_RESIZE
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
@@ -39,13 +38,12 @@
class DesktopModeUiEventLoggerTest : ShellTestCase() {
private lateinit var uiEventLoggerFake: UiEventLoggerFake
private lateinit var logger: DesktopModeUiEventLogger
- private val instanceIdSequence = InstanceIdSequence(/* instanceIdMax */ 1 shl 20)
@Before
fun setUp() {
uiEventLoggerFake = UiEventLoggerFake()
- logger = DesktopModeUiEventLogger(uiEventLoggerFake, instanceIdSequence)
+ logger = DesktopModeUiEventLogger(uiEventLoggerFake)
}
@Test