1 /* 2 * Copyright (C) 2022 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.systemui.media.taptotransfer.sender 18 19 import android.util.Log 20 import com.android.internal.logging.InstanceId 21 import com.android.internal.logging.UiEvent 22 import com.android.internal.logging.UiEventLogger 23 import com.android.systemui.dagger.SysUISingleton 24 import javax.inject.Inject 25 26 /** A class for analytics logging for the media tap-to-transfer chip on the sender device. */ 27 @SysUISingleton 28 class MediaTttSenderUiEventLogger @Inject constructor(private val logger: UiEventLogger) { 29 /** Logs that the sender chip has changed states. */ 30 fun logSenderStateChange(chipState: ChipStateSender, instanceId: InstanceId) { 31 logger.log(chipState.uiEvent, instanceId) 32 } 33 34 /** 35 * Logs that the undo button was clicked. 36 * 37 * @param undoUiEvent the uiEvent specific to which undo button was clicked. 38 */ 39 fun logUndoClicked(undoUiEvent: UiEventLogger.UiEventEnum, instanceId: InstanceId) { 40 val isUndoEvent = 41 undoUiEvent == 42 MediaTttSenderUiEvents.MEDIA_TTT_SENDER_UNDO_TRANSFER_TO_RECEIVER_CLICKED || 43 undoUiEvent == 44 MediaTttSenderUiEvents.MEDIA_TTT_SENDER_UNDO_TRANSFER_TO_THIS_DEVICE_CLICKED 45 if (!isUndoEvent) { 46 Log.w( 47 MediaTttSenderUiEventLogger::class.simpleName!!, 48 "Must pass an undo-specific UiEvent." 49 ) 50 return 51 } 52 logger.log(undoUiEvent, instanceId) 53 } 54 } 55 56 enum class MediaTttSenderUiEvents(val metricId: Int) : UiEventLogger.UiEventEnum { 57 @UiEvent(doc = "The undo button on the media ttt chip on the sender device was clicked " + 58 "to undo the transfer to the receiver device") 59 MEDIA_TTT_SENDER_UNDO_TRANSFER_TO_RECEIVER_CLICKED(971), 60 @UiEvent(doc = "The undo button on the media ttt chip on the sender device was clicked " + 61 "to undo the transfer back to this device") 62 MEDIA_TTT_SENDER_UNDO_TRANSFER_TO_THIS_DEVICE_CLICKED(972), 63 64 @UiEvent(doc = "See android.app.StatusBarManager.MEDIA_TRANSFER_SENDER_* docs") 65 MEDIA_TTT_SENDER_ALMOST_CLOSE_TO_START_CAST(973), 66 @UiEvent(doc = "See android.app.StatusBarManager.MEDIA_TRANSFER_SENDER_* docs") 67 MEDIA_TTT_SENDER_ALMOST_CLOSE_TO_END_CAST(974), 68 @UiEvent(doc = "See android.app.StatusBarManager.MEDIA_TRANSFER_SENDER_* docs") 69 MEDIA_TTT_SENDER_TRANSFER_TO_RECEIVER_TRIGGERED(975), 70 @UiEvent(doc = "See android.app.StatusBarManager.MEDIA_TRANSFER_SENDER_* docs") 71 MEDIA_TTT_SENDER_TRANSFER_TO_THIS_DEVICE_TRIGGERED(976), 72 @UiEvent(doc = "See android.app.StatusBarManager.MEDIA_TRANSFER_SENDER_* docs") 73 MEDIA_TTT_SENDER_TRANSFER_TO_RECEIVER_SUCCEEDED(977), 74 @UiEvent(doc = "See android.app.StatusBarManager.MEDIA_TRANSFER_SENDER_* docs") 75 MEDIA_TTT_SENDER_TRANSFER_TO_THIS_DEVICE_SUCCEEDED(978), 76 @UiEvent(doc = "See android.app.StatusBarManager.MEDIA_TRANSFER_SENDER_* docs") 77 MEDIA_TTT_SENDER_TRANSFER_TO_RECEIVER_FAILED(979), 78 @UiEvent(doc = "See android.app.StatusBarManager.MEDIA_TRANSFER_SENDER_* docs") 79 MEDIA_TTT_SENDER_TRANSFER_TO_THIS_DEVICE_FAILED(980), 80 @UiEvent(doc = "See android.app.StatusBarManager.MEDIA_TRANSFER_SENDER_* docs") 81 MEDIA_TTT_SENDER_FAR_FROM_RECEIVER(981); 82 83 override fun getId() = metricId 84 } 85