Transfer loggers to Kotlin (3/3)

Test: Build succeeded
Bug: 299659307
Change-Id: Ie25e5d005432b455723b4e66f827b5b937d5c27c
diff --git a/src/com/android/customization/module/logging/StatsLogUserEventLogger.java b/src/com/android/customization/module/logging/StatsLogUserEventLogger.java
deleted file mode 100644
index 8ed30ff..0000000
--- a/src/com/android/customization/module/logging/StatsLogUserEventLogger.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (C) 2019 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.customization.module.logging;
-
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__ACTION__APP_LAUNCHED;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_CROP_AND_SET_ACTION;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_DEEP_LINK;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_LAUNCHER;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_LAUNCH_ICON;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_PREFERENCE_UNSPECIFIED;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SETTINGS;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SETTINGS_SEARCH;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SUW;
-import static com.android.systemui.shared.system.SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_TIPS;
-import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SETTINGS_SEARCH;
-import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SOURCE_DEEP_LINK;
-import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SOURCE_LAUNCHER;
-import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SOURCE_SETTINGS;
-import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SOURCE_SUW;
-import static com.android.wallpaper.util.LaunchSourceUtils.LAUNCH_SOURCE_TIPS;
-import static com.android.wallpaper.util.LaunchSourceUtils.WALLPAPER_LAUNCH_SOURCE;
-
-import android.app.WallpaperManager;
-import android.content.Intent;
-import android.stats.style.StyleEnums;
-import android.text.TextUtils;
-
-import androidx.annotation.Nullable;
-
-import com.android.customization.model.color.ColorOption;
-import com.android.customization.model.grid.GridOption;
-import com.android.customization.module.SysUiStatsLogger;
-import com.android.wallpaper.module.WallpaperPreferences;
-import com.android.wallpaper.module.WallpaperStatusChecker;
-import com.android.wallpaper.module.logging.NoOpUserEventLogger;
-
-/**
- * StatsLog-backed implementation of {@link ThemesUserEventLogger}.
- */
-public class StatsLogUserEventLogger extends NoOpUserEventLogger implements ThemesUserEventLogger {
-
-    private final WallpaperPreferences mPreferences;
-    private final WallpaperStatusChecker mWallpaperStatusChecker;
-
-    public StatsLogUserEventLogger(
-            WallpaperPreferences preferences,
-            WallpaperStatusChecker wallpaperStatusChecker) {
-        mPreferences = preferences;
-        mWallpaperStatusChecker = wallpaperStatusChecker;
-    }
-
-    @Override
-    public void logAppLaunched(Intent launchSource) {
-        new SysUiStatsLogger(STYLE_UICHANGED__ACTION__APP_LAUNCHED)
-                .setLaunchedPreference(getAppLaunchSource(launchSource))
-                .log();
-    }
-
-    @Override
-    public void logActionClicked(String collectionId, int actionLabelResId) {
-        new SysUiStatsLogger(StyleEnums.WALLPAPER_EXPLORE)
-                .setWallpaperCategoryHash(getIdHashCode(collectionId))
-                .log();
-    }
-
-    @Override
-    public void logIndividualWallpaperSelected(String collectionId) {
-        new SysUiStatsLogger(StyleEnums.WALLPAPER_SELECT)
-                .setWallpaperCategoryHash(getIdHashCode(collectionId))
-                .log();
-    }
-
-    @Override
-    public void logCategorySelected(String collectionId) {
-        new SysUiStatsLogger(StyleEnums.WALLPAPER_OPEN_CATEGORY)
-                .setWallpaperCategoryHash(getIdHashCode(collectionId))
-                .log();
-    }
-
-    @Override
-    public void logSnapshot() {
-        final boolean isLockWallpaperSet = mWallpaperStatusChecker.isLockWallpaperSet();
-        final String homeCollectionId = mPreferences.getHomeWallpaperCollectionId();
-        final String homeRemoteId = mPreferences.getHomeWallpaperRemoteId();
-        final String effects = mPreferences.getHomeWallpaperEffects();
-        String homeWallpaperId = TextUtils.isEmpty(homeRemoteId)
-                ? mPreferences.getHomeWallpaperServiceName() : homeRemoteId;
-        String lockCollectionId = isLockWallpaperSet ? mPreferences.getLockWallpaperCollectionId()
-                : homeCollectionId;
-        String lockWallpaperId = isLockWallpaperSet ? mPreferences.getLockWallpaperRemoteId()
-                : homeWallpaperId;
-
-        new SysUiStatsLogger(StyleEnums.SNAPSHOT)
-                .setWallpaperCategoryHash(getIdHashCode(homeCollectionId))
-                .setWallpaperIdHash(getIdHashCode(homeWallpaperId))
-                .setLockWallpaperCategoryHash(getIdHashCode(lockCollectionId))
-                .setLockWallpaperIdHash(getIdHashCode(lockWallpaperId))
-                .setFirstLaunchDateSinceSetup(mPreferences.getFirstLaunchDateSinceSetup())
-                .setFirstWallpaperApplyDateSinceSetup(
-                        mPreferences.getFirstWallpaperApplyDateSinceSetup())
-                .setAppLaunchCount(mPreferences.getAppLaunchCount())
-                .setEffectIdHash(getIdHashCode(effects))
-                .log();
-    }
-
-    @Override
-    public void logWallpaperSet(String collectionId, @Nullable String wallpaperId,
-            @Nullable String effects) {
-        new SysUiStatsLogger(StyleEnums.WALLPAPER_APPLIED)
-                .setWallpaperCategoryHash(getIdHashCode(collectionId))
-                .setWallpaperIdHash(getIdHashCode(wallpaperId))
-                .setEffectIdHash(getIdHashCode(effects))
-                .log();
-    }
-
-    @Override
-    public void logEffectApply(String effect, @EffectStatus int status, long timeElapsedMillis,
-            int resultCode) {
-        new SysUiStatsLogger(StyleEnums.WALLPAPER_EFFECT_APPLIED)
-                .setEffectPreference(status)
-                .setEffectIdHash(getIdHashCode(effect))
-                .setTimeElapsed(timeElapsedMillis)
-                .setEffectResultCode(resultCode)
-                .log();
-    }
-
-    @Override
-    public void logEffectProbe(String effect, @EffectStatus int status) {
-        new SysUiStatsLogger(StyleEnums.WALLPAPER_EFFECT_PROBE)
-                .setEffectPreference(status)
-                .setEffectIdHash(getIdHashCode(effect))
-                .log();
-    }
-
-    @Override
-    public void logEffectForegroundDownload(String effect, @EffectStatus int status,
-            long timeElapsedMillis) {
-        new SysUiStatsLogger(StyleEnums.WALLPAPER_EFFECT_FG_DOWNLOAD)
-                .setEffectPreference(status)
-                .setEffectIdHash(getIdHashCode(effect))
-                .setTimeElapsed(timeElapsedMillis)
-                .log();
-    }
-
-    @Override
-    public void logColorApplied(int action, ColorOption colorOption) {
-        new SysUiStatsLogger(action)
-                .setColorPreference(colorOption.getIndex())
-                .setColorVariant(colorOption.getStyle().ordinal() + 1)
-                .log();
-    }
-
-    @Override
-    public void logGridSelected(GridOption grid) {
-        new SysUiStatsLogger(StyleEnums.PICKER_SELECT)
-                .setLauncherGrid(grid.cols)
-                .log();
-    }
-
-    @Override
-    public void logGridApplied(GridOption grid) {
-        new SysUiStatsLogger(StyleEnums.PICKER_APPLIED)
-                .setLauncherGrid(grid.cols)
-                .log();
-    }
-
-    private int getAppLaunchSource(Intent launchSource) {
-        if (launchSource.hasExtra(WALLPAPER_LAUNCH_SOURCE)) {
-            switch (launchSource.getStringExtra(WALLPAPER_LAUNCH_SOURCE)) {
-                case LAUNCH_SOURCE_LAUNCHER:
-                    return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_LAUNCHER;
-                case LAUNCH_SOURCE_SETTINGS:
-                    return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SETTINGS;
-                case LAUNCH_SOURCE_SUW:
-                    return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SUW;
-                case LAUNCH_SOURCE_TIPS:
-                    return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_TIPS;
-                case LAUNCH_SOURCE_DEEP_LINK:
-                    return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_DEEP_LINK;
-                default:
-                    return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_PREFERENCE_UNSPECIFIED;
-            }
-        } else if (launchSource.hasExtra(LAUNCH_SETTINGS_SEARCH)) {
-            return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SETTINGS_SEARCH;
-        } else if (launchSource.getAction() != null && launchSource.getAction().equals(
-                WallpaperManager.ACTION_CROP_AND_SET_WALLPAPER)) {
-            return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_CROP_AND_SET_ACTION;
-        } else if (launchSource.getCategories() != null
-                && launchSource.getCategories().contains(Intent.CATEGORY_LAUNCHER)) {
-            return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_LAUNCH_ICON;
-        } else {
-            return STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_PREFERENCE_UNSPECIFIED;
-        }
-    }
-
-    private int getIdHashCode(String id) {
-        return id != null ? id.hashCode() : 0;
-    }
-}
diff --git a/src/com/android/customization/module/logging/StatsLogUserEventLogger.kt b/src/com/android/customization/module/logging/StatsLogUserEventLogger.kt
new file mode 100644
index 0000000..68250a4
--- /dev/null
+++ b/src/com/android/customization/module/logging/StatsLogUserEventLogger.kt
@@ -0,0 +1,183 @@
+/*
+ * Copyright (C) 2019 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.customization.module.logging
+
+import android.app.WallpaperManager
+import android.content.Intent
+import android.stats.style.StyleEnums
+import android.text.TextUtils
+import com.android.customization.model.color.ColorOption
+import com.android.customization.model.grid.GridOption
+import com.android.customization.module.SysUiStatsLogger
+import com.android.systemui.shared.system.SysUiStatsLog
+import com.android.wallpaper.module.WallpaperPreferences
+import com.android.wallpaper.module.WallpaperStatusChecker
+import com.android.wallpaper.module.logging.NoOpUserEventLogger
+import com.android.wallpaper.module.logging.UserEventLogger.Companion.EffectStatus
+import com.android.wallpaper.util.LaunchSourceUtils
+
+/** StatsLog-backed implementation of [ThemesUserEventLogger]. */
+class StatsLogUserEventLogger(
+    private val preferences: WallpaperPreferences,
+    private val wallpaperStatusChecker: WallpaperStatusChecker
+) : NoOpUserEventLogger(), ThemesUserEventLogger {
+
+    override fun logAppLaunched(launchSource: Intent) {
+        SysUiStatsLogger(SysUiStatsLog.STYLE_UICHANGED__ACTION__APP_LAUNCHED)
+            .setLaunchedPreference(getAppLaunchSource(launchSource))
+            .log()
+    }
+
+    override fun logActionClicked(collectionId: String, actionLabelResId: Int) {
+        SysUiStatsLogger(StyleEnums.WALLPAPER_EXPLORE)
+            .setWallpaperCategoryHash(getIdHashCode(collectionId))
+            .log()
+    }
+
+    override fun logIndividualWallpaperSelected(collectionId: String) {
+        SysUiStatsLogger(StyleEnums.WALLPAPER_SELECT)
+            .setWallpaperCategoryHash(getIdHashCode(collectionId))
+            .log()
+    }
+
+    override fun logCategorySelected(collectionId: String) {
+        SysUiStatsLogger(StyleEnums.WALLPAPER_OPEN_CATEGORY)
+            .setWallpaperCategoryHash(getIdHashCode(collectionId))
+            .log()
+    }
+
+    override fun logSnapshot() {
+        val isLockWallpaperSet = wallpaperStatusChecker.isLockWallpaperSet()
+        val homeCollectionId = preferences.homeWallpaperCollectionId
+        val homeRemoteId = preferences.homeWallpaperRemoteId
+        val effects = preferences.homeWallpaperEffects
+        val homeWallpaperId =
+            if (TextUtils.isEmpty(homeRemoteId)) preferences.homeWallpaperServiceName
+            else homeRemoteId
+        val lockCollectionId =
+            if (isLockWallpaperSet) preferences.lockWallpaperCollectionId else homeCollectionId
+        val lockWallpaperId =
+            if (isLockWallpaperSet) preferences.lockWallpaperRemoteId else homeWallpaperId
+        SysUiStatsLogger(StyleEnums.SNAPSHOT)
+            .setWallpaperCategoryHash(getIdHashCode(homeCollectionId))
+            .setWallpaperIdHash(getIdHashCode(homeWallpaperId))
+            .setLockWallpaperCategoryHash(getIdHashCode(lockCollectionId))
+            .setLockWallpaperIdHash(getIdHashCode(lockWallpaperId))
+            .setFirstLaunchDateSinceSetup(preferences.firstLaunchDateSinceSetup)
+            .setFirstWallpaperApplyDateSinceSetup(preferences.firstWallpaperApplyDateSinceSetup)
+            .setAppLaunchCount(preferences.appLaunchCount)
+            .setEffectIdHash(getIdHashCode(effects))
+            .log()
+    }
+
+    override fun logWallpaperSet(
+        collectionId: String?,
+        wallpaperId: String?,
+        effects: String?,
+    ) {
+        SysUiStatsLogger(StyleEnums.WALLPAPER_APPLIED)
+            .setWallpaperCategoryHash(getIdHashCode(collectionId))
+            .setWallpaperIdHash(getIdHashCode(wallpaperId))
+            .setEffectIdHash(getIdHashCode(effects))
+            .log()
+    }
+
+    override fun logEffectApply(
+        effect: String,
+        @EffectStatus status: Int,
+        timeElapsedMillis: Long,
+        resultCode: Int
+    ) {
+        SysUiStatsLogger(StyleEnums.WALLPAPER_EFFECT_APPLIED)
+            .setEffectPreference(status)
+            .setEffectIdHash(getIdHashCode(effect))
+            .setTimeElapsed(timeElapsedMillis)
+            .setEffectResultCode(resultCode)
+            .log()
+    }
+
+    override fun logEffectProbe(effect: String, @EffectStatus status: Int) {
+        SysUiStatsLogger(StyleEnums.WALLPAPER_EFFECT_PROBE)
+            .setEffectPreference(status)
+            .setEffectIdHash(getIdHashCode(effect))
+            .log()
+    }
+
+    override fun logEffectForegroundDownload(
+        effect: String,
+        @EffectStatus status: Int,
+        timeElapsedMillis: Long
+    ) {
+        SysUiStatsLogger(StyleEnums.WALLPAPER_EFFECT_FG_DOWNLOAD)
+            .setEffectPreference(status)
+            .setEffectIdHash(getIdHashCode(effect))
+            .setTimeElapsed(timeElapsedMillis)
+            .log()
+    }
+
+    override fun logColorApplied(action: Int, colorOption: ColorOption) {
+        SysUiStatsLogger(action)
+            .setColorPreference(colorOption.index)
+            .setColorVariant(colorOption.style.ordinal + 1)
+            .log()
+    }
+
+    override fun logGridSelected(grid: GridOption) {
+        SysUiStatsLogger(StyleEnums.PICKER_SELECT).setLauncherGrid(grid.cols).log()
+    }
+
+    override fun logGridApplied(grid: GridOption) {
+        SysUiStatsLogger(StyleEnums.PICKER_APPLIED).setLauncherGrid(grid.cols).log()
+    }
+
+    private fun getAppLaunchSource(launchSource: Intent): Int {
+        return if (launchSource.hasExtra(LaunchSourceUtils.WALLPAPER_LAUNCH_SOURCE)) {
+            when (launchSource.getStringExtra(LaunchSourceUtils.WALLPAPER_LAUNCH_SOURCE)) {
+                LaunchSourceUtils.LAUNCH_SOURCE_LAUNCHER ->
+                    SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_LAUNCHER
+                LaunchSourceUtils.LAUNCH_SOURCE_SETTINGS ->
+                    SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SETTINGS
+                LaunchSourceUtils.LAUNCH_SOURCE_SUW ->
+                    SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SUW
+                LaunchSourceUtils.LAUNCH_SOURCE_TIPS ->
+                    SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_TIPS
+                LaunchSourceUtils.LAUNCH_SOURCE_DEEP_LINK ->
+                    SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_DEEP_LINK
+                else ->
+                    SysUiStatsLog
+                        .STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_PREFERENCE_UNSPECIFIED
+            }
+        } else if (launchSource.hasExtra(LaunchSourceUtils.LAUNCH_SETTINGS_SEARCH)) {
+            SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_SETTINGS_SEARCH
+        } else if (
+            launchSource.action != null &&
+                launchSource.action == WallpaperManager.ACTION_CROP_AND_SET_WALLPAPER
+        ) {
+            SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_CROP_AND_SET_ACTION
+        } else if (
+            launchSource.categories != null &&
+                launchSource.categories.contains(Intent.CATEGORY_LAUNCHER)
+        ) {
+            SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_LAUNCH_ICON
+        } else {
+            SysUiStatsLog.STYLE_UICHANGED__LAUNCHED_PREFERENCE__LAUNCHED_PREFERENCE_UNSPECIFIED
+        }
+    }
+
+    private fun getIdHashCode(id: String?): Int {
+        return id?.hashCode() ?: 0
+    }
+}
diff --git a/src/com/android/customization/module/logging/ThemesUserEventLogger.java b/src/com/android/customization/module/logging/ThemesUserEventLogger.java
deleted file mode 100644
index cc16d09..0000000
--- a/src/com/android/customization/module/logging/ThemesUserEventLogger.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2019 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.customization.module.logging;
-
-import com.android.customization.model.color.ColorOption;
-import com.android.customization.model.grid.GridOption;
-import com.android.wallpaper.module.logging.UserEventLogger;
-
-/**
- * Extension of {@link UserEventLogger} that adds ThemePicker specific events.
- */
-public interface ThemesUserEventLogger extends UserEventLogger {
-
-    /**
-     * Logs the color usage while color is applied.
-     *
-     * @param action color applied action.
-     * @param colorOption applied color option.
-     */
-    void logColorApplied(int action, ColorOption colorOption);
-
-    /** */
-    void logGridSelected(GridOption grid);
-
-    /** */
-    void logGridApplied(GridOption grid);
-
-}
diff --git a/src/com/android/customization/module/logging/ThemesUserEventLogger.kt b/src/com/android/customization/module/logging/ThemesUserEventLogger.kt
new file mode 100644
index 0000000..c7cd01e
--- /dev/null
+++ b/src/com/android/customization/module/logging/ThemesUserEventLogger.kt
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2019 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.customization.module.logging
+
+import com.android.customization.model.color.ColorOption
+import com.android.customization.model.grid.GridOption
+import com.android.wallpaper.module.logging.UserEventLogger
+
+/** Extension of [UserEventLogger] that adds ThemePicker specific events. */
+interface ThemesUserEventLogger : UserEventLogger {
+    /**
+     * Logs the color usage while color is applied.
+     *
+     * @param action color applied action.
+     * @param colorOption applied color option.
+     */
+    fun logColorApplied(action: Int, colorOption: ColorOption)
+
+    /**  */
+    fun logGridSelected(grid: GridOption)
+
+    /**  */
+    fun logGridApplied(grid: GridOption)
+}
diff --git a/tests/common/src/com/android/customization/testing/TestThemesUserEventLogger.java b/tests/common/src/com/android/customization/testing/TestThemesUserEventLogger.java
deleted file mode 100644
index 01bb91d..0000000
--- a/tests/common/src/com/android/customization/testing/TestThemesUserEventLogger.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2019 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.customization.testing;
-
-import com.android.customization.model.color.ColorOption;
-import com.android.customization.model.grid.GridOption;
-import com.android.customization.module.logging.ThemesUserEventLogger;
-import com.android.wallpaper.testing.TestUserEventLogger;
-
-/**
- * Test implementation of {@link ThemesUserEventLogger}.
- */
-public class TestThemesUserEventLogger extends TestUserEventLogger
-        implements ThemesUserEventLogger {
-    @Override
-    public void logColorApplied(int action, ColorOption colorOption) {
-        // Do nothing.
-    }
-
-    @Override
-    public void logGridSelected(GridOption grid) {
-        // Do nothing.
-    }
-
-    @Override
-    public void logGridApplied(GridOption grid) {
-        // Do nothing.
-    }
-}
diff --git a/tests/common/src/com/android/customization/testing/TestThemesUserEventLogger.kt b/tests/common/src/com/android/customization/testing/TestThemesUserEventLogger.kt
new file mode 100644
index 0000000..a264d2d
--- /dev/null
+++ b/tests/common/src/com/android/customization/testing/TestThemesUserEventLogger.kt
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2019 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.customization.testing
+
+import com.android.customization.model.color.ColorOption
+import com.android.customization.model.grid.GridOption
+import com.android.customization.module.logging.ThemesUserEventLogger
+import com.android.wallpaper.testing.TestUserEventLogger
+
+/** Test implementation of [ThemesUserEventLogger]. */
+class TestThemesUserEventLogger : TestUserEventLogger(), ThemesUserEventLogger {
+
+    override fun logColorApplied(action: Int, colorOption: ColorOption) {}
+
+    override fun logGridSelected(grid: GridOption) {}
+
+    override fun logGridApplied(grid: GridOption) {}
+}