summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jorge Gil <jorgegil@google.com> 2024-11-19 23:58:05 +0000
committer Jorge Gil <jorgegil@google.com> 2024-11-19 23:58:05 +0000
commit9563acf6dba6224f6275f0ff7bfa3ecb494ed16b (patch)
tree8fc7041cf599c9ce72504496447c9a9d7c403dc0
parent2ad2f9085bcbff4790b13bf32da8c7d49d7eedbf (diff)
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
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java9
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLogger.kt56
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLoggerTest.kt6
3 files changed, 40 insertions, 31 deletions
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 37ba63e9e0a9..c11d6faca782 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.DesktopModeDragAndDropTransitionHandler;
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 @@ public abstract class WMShellModule {
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 a9d4e5f3216e..dff56c13e03a 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 @@ constructor(
*/
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 @@ constructor(
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)
}
- companion object {
- /** Enums for logging desktop windowing mode UiEvents. */
- enum class DesktopUiEventEnum(private val mId: Int) : UiEventLogger.UiEventEnum {
+ private fun logD(msg: String, vararg arguments: Any?) {
+ ProtoLog.d(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments)
+ }
- @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);
+ /** Enums for logging desktop windowing mode UiEvents. */
+ enum class DesktopUiEventEnum(private val mId: Int) : UiEventEnum {
- override fun getId(): Int = mId
- }
+ @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 {
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 51b291c0b7a4..a8b2811e46be 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 @@ package com.android.wm.shell.desktopmode
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 @@ import org.junit.runner.RunWith
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