| /* |
| * Copyright (C) 2022 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.systemui.statusbar.phone |
| |
| import android.util.DisplayMetrics |
| import android.view.View |
| import com.android.internal.logging.nano.MetricsProto.MetricsEvent |
| import com.android.systemui.log.LogBuffer |
| import com.android.systemui.log.LogLevel |
| import com.android.systemui.log.dagger.LSShadeTransitionLog |
| import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow |
| import com.android.systemui.statusbar.notification.row.ExpandableView |
| import javax.inject.Inject |
| |
| private const val TAG = "LockscreenShadeTransitionController" |
| |
| class LSShadeTransitionLogger @Inject constructor( |
| @LSShadeTransitionLog private val buffer: LogBuffer, |
| private val lockscreenGestureLogger: LockscreenGestureLogger, |
| private val displayMetrics: DisplayMetrics |
| ) { |
| fun logUnSuccessfulDragDown(startingChild: View?) { |
| val entry = (startingChild as? ExpandableNotificationRow)?.entry |
| buffer.log(TAG, LogLevel.INFO, { |
| str1 = entry?.key ?: "no entry" |
| }, { |
| "Tried to drag down but can't drag down on $str1" |
| }) |
| } |
| |
| fun logDragDownAborted() { |
| buffer.log(TAG, LogLevel.INFO, {}, { |
| "The drag down was reset" |
| }) |
| } |
| |
| fun logDragDownStarted(startingChild: ExpandableView?) { |
| val entry = (startingChild as? ExpandableNotificationRow)?.entry |
| buffer.log(TAG, LogLevel.INFO, { |
| str1 = entry?.key ?: "no entry" |
| }, { |
| "The drag down has started on $str1" |
| }) |
| } |
| |
| fun logDraggedDownLockDownShade(startingChild: View?) { |
| val entry = (startingChild as? ExpandableNotificationRow)?.entry |
| buffer.log(TAG, LogLevel.INFO, { |
| str1 = entry?.key ?: "no entry" |
| }, { |
| "Dragged down in locked down shade on $str1" |
| }) |
| } |
| |
| fun logDraggedDown(startingChild: View?, dragLengthY: Int) { |
| val entry = (startingChild as? ExpandableNotificationRow)?.entry |
| buffer.log(TAG, LogLevel.INFO, { |
| str1 = entry?.key ?: "no entry" |
| }, { |
| "Drag down succeeded on $str1" |
| }) |
| // Do logging to event log not just our own buffer |
| lockscreenGestureLogger.write( |
| MetricsEvent.ACTION_LS_SHADE, |
| (dragLengthY / displayMetrics.density).toInt(), |
| 0 /* velocityDp */) |
| lockscreenGestureLogger.log( |
| LockscreenGestureLogger.LockscreenUiEvent.LOCKSCREEN_PULL_SHADE_OPEN) |
| } |
| |
| fun logDefaultGoToFullShadeAnimation(delay: Long) { |
| buffer.log(TAG, LogLevel.DEBUG, { |
| long1 = delay |
| }, { |
| "Default animation started to full shade with delay $long1" |
| }) |
| } |
| |
| fun logTryGoToLockedShade(keyguard: Boolean) { |
| buffer.log(TAG, LogLevel.INFO, { |
| bool1 = keyguard |
| }, { |
| "Trying to go to locked shade " + if (bool1) "from keyguard" else "not from keyguard" |
| }) |
| } |
| |
| fun logShadeDisabledOnGoToLockedShade() { |
| buffer.log(TAG, LogLevel.WARNING, {}, { |
| "The shade was disabled when trying to go to the locked shade" |
| }) |
| } |
| |
| fun logShowBouncerOnGoToLockedShade() { |
| buffer.log(TAG, LogLevel.INFO, {}, { |
| "Showing bouncer when trying to go to the locked shade" |
| }) |
| } |
| |
| fun logGoingToLockedShade(customAnimationHandler: Boolean) { |
| buffer.log(TAG, LogLevel.INFO, { |
| bool1 = customAnimationHandler |
| }, { |
| "Going to locked shade " + if (customAnimationHandler) "with" else "without" + |
| " a custom handler" |
| }) |
| } |
| |
| fun logOnHideKeyguard() { |
| buffer.log(TAG, LogLevel.INFO, {}, { |
| "Notified that the keyguard is being hidden" |
| }) |
| } |
| |
| fun logPulseExpansionStarted() { |
| buffer.log(TAG, LogLevel.INFO, {}, { |
| "Pulse Expansion has started" |
| }) |
| } |
| |
| fun logPulseExpansionFinished(cancelled: Boolean) { |
| if (cancelled) { |
| buffer.log(TAG, LogLevel.INFO, {}, { |
| "Pulse Expansion is requested to cancel" |
| }) |
| } else { |
| buffer.log(TAG, LogLevel.INFO, {}, { |
| "Pulse Expansion is requested to finish" |
| }) |
| } |
| } |
| |
| fun logDragDownAnimation(target: Float) { |
| buffer.log(TAG, LogLevel.DEBUG, { |
| double1 = target.toDouble() |
| }, { |
| "Drag down amount animating to " + double1 |
| }) |
| } |
| |
| fun logAnimationCancelled(isPulse: Boolean) { |
| if (isPulse) { |
| buffer.log(TAG, LogLevel.DEBUG, {}, { |
| "Pulse animation cancelled" |
| }) |
| } else { |
| buffer.log(TAG, LogLevel.DEBUG, {}, { |
| "drag down animation cancelled" |
| }) |
| } |
| } |
| |
| fun logDragDownAmountResetWhenFullyCollapsed() { |
| buffer.log(TAG, LogLevel.WARNING, {}, { |
| "Drag down amount stuck and reset after shade was fully collapsed" |
| }) |
| } |
| |
| fun logPulseHeightNotResetWhenFullyCollapsed() { |
| buffer.log(TAG, LogLevel.WARNING, {}, { |
| "Pulse height stuck and reset after shade was fully collapsed" |
| }) |
| } |
| |
| fun logGoingToLockedShadeAborted() { |
| buffer.log(TAG, LogLevel.INFO, {}, { |
| "Going to the Locked Shade has been aborted" |
| }) |
| } |
| } |