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