1 /* 2 * Copyright (C) 2023 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.statusbar.notification 18 19 import com.android.systemui.dagger.SysUISingleton 20 import com.android.systemui.log.LogBuffer 21 import com.android.systemui.log.core.LogLevel.DEBUG 22 import com.android.systemui.log.dagger.NotificationRemoteInputLog 23 import javax.inject.Inject 24 25 /** Logger class for [RemoteInputController]. */ 26 @SysUISingleton 27 class RemoteInputControllerLogger 28 @Inject 29 constructor(@NotificationRemoteInputLog private val logBuffer: LogBuffer) { 30 31 /** logs addRemoteInput invocation of [RemoteInputController] */ 32 fun logAddRemoteInput( 33 entryKey: String, 34 isRemoteInputAlreadyActive: Boolean, 35 isRemoteInputFound: Boolean 36 ) = 37 logBuffer.log( 38 TAG, 39 DEBUG, 40 { 41 str1 = entryKey 42 bool1 = isRemoteInputAlreadyActive 43 bool2 = isRemoteInputFound 44 }, 45 { "addRemoteInput entry: $str1, isAlreadyActive: $bool1, isFound:$bool2" } 46 ) 47 48 /** logs removeRemoteInput invocation of [RemoteInputController] */ 49 @JvmOverloads 50 fun logRemoveRemoteInput( 51 entryKey: String, 52 remoteEditImeVisible: Boolean, 53 remoteEditImeAnimatingAway: Boolean, 54 isRemoteInputActive: Boolean? = null 55 ) = 56 logBuffer.log( 57 TAG, 58 DEBUG, 59 { 60 str1 = entryKey 61 bool1 = remoteEditImeVisible 62 bool2 = remoteEditImeAnimatingAway 63 str2 = isRemoteInputActive?.toString() ?: "N/A" 64 }, 65 { 66 "removeRemoteInput entry: $str1, remoteEditImeVisible: $bool1" + 67 ", remoteEditImeAnimatingAway: $bool2, isActive: $str2" 68 } 69 ) 70 71 private companion object { 72 private const val TAG = "RemoteInputControllerLog" 73 } 74 } 75