diff options
| author | 2024-11-19 23:58:05 +0000 | |
|---|---|---|
| committer | 2024-11-19 23:58:05 +0000 | |
| commit | 9563acf6dba6224f6275f0ff7bfa3ecb494ed16b (patch) | |
| tree | 8fc7041cf599c9ce72504496447c9a9d7c403dc0 | |
| parent | 2ad2f9085bcbff4790b13bf32da8c7d49d7eedbf (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
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 |