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.keyguard.logging
18  
19  import com.android.systemui.dagger.SysUISingleton
20  import com.android.systemui.keyguard.shared.model.ActiveUnlockModel
21  import com.android.systemui.keyguard.shared.model.TrustManagedModel
22  import com.android.systemui.keyguard.shared.model.TrustModel
23  import com.android.systemui.log.LogBuffer
24  import com.android.systemui.log.core.LogLevel
25  import com.android.systemui.log.core.LogLevel.DEBUG
26  import com.android.systemui.log.dagger.KeyguardUpdateMonitorLog
27  import javax.inject.Inject
28  
29  /** Logging helper for trust repository. */
30  @SysUISingleton
31  class TrustRepositoryLogger
32  @Inject
33  constructor(
34      @KeyguardUpdateMonitorLog private val logBuffer: LogBuffer,
35  ) {
36      fun onTrustChanged(
37          enabled: Boolean,
38          newlyUnlocked: Boolean,
39          userId: Int,
40          flags: Int,
41          trustGrantedMessages: List<String>?
42      ) {
43          logBuffer.log(
44              TAG,
45              DEBUG,
46              {
47                  bool1 = enabled
48                  bool2 = newlyUnlocked
49                  int1 = userId
50                  int2 = flags
51                  str1 = trustGrantedMessages?.joinToString()
52              },
53              {
54                  "onTrustChanged enabled: $bool1, newlyUnlocked: $bool2, " +
55                      "userId: $int1, flags: $int2, grantMessages: $str1"
56              }
57          )
58      }
59  
60      fun trustListenerRegistered() {
61          logBuffer.log(TAG, LogLevel.VERBOSE, "TrustRepository#registerTrustListener")
62      }
63  
64      fun trustListenerUnregistered() {
65          logBuffer.log(TAG, LogLevel.VERBOSE, "TrustRepository#unregisterTrustListener")
66      }
67  
68      fun trustModelEmitted(value: TrustModel) {
69          logBuffer.log(
70              TAG,
71              DEBUG,
72              {
73                  int1 = value.userId
74                  bool1 = value.isTrusted
75              },
76              { "trustModel emitted: userId: $int1 isTrusted: $bool1" }
77          )
78      }
79  
80      fun activeUnlockModelEmitted(value: ActiveUnlockModel) {
81          logBuffer.log(
82              TAG,
83              LogLevel.DEBUG,
84              {
85                  int1 = value.userId
86                  bool1 = value.isRunning
87              },
88              { "activeUnlockModel emitted: userId: $int1 isRunning: $bool1" }
89          )
90      }
91  
92      fun isCurrentUserTrusted(isCurrentUserTrusted: Boolean) {
93          logBuffer.log(
94              TAG,
95              DEBUG,
96              { bool1 = isCurrentUserTrusted },
97              { "isCurrentUserTrusted emitted: $bool1" }
98          )
99      }
100  
101      fun isCurrentUserActiveUnlockRunning(isCurrentUserActiveUnlockRunning: Boolean) {
102          logBuffer.log(
103              TAG,
104              LogLevel.DEBUG,
105              { bool1 = isCurrentUserActiveUnlockRunning },
106              { "isCurrentUserActiveUnlockRunning emitted: $bool1" }
107          )
108      }
109  
110      fun isCurrentUserTrustManaged(isTrustManaged: Boolean) {
111          logBuffer.log(TAG, DEBUG, { bool1 = isTrustManaged }, { "isTrustManaged emitted: $bool1" })
112      }
113  
114      fun onTrustManagedChanged(trustManaged: Boolean, userId: Int) {
115          logBuffer.log(
116              TAG,
117              DEBUG,
118              {
119                  bool1 = trustManaged
120                  int1 = userId
121              },
122              { "onTrustManagedChanged isTrustManaged: $bool1 for user: $int1" }
123          )
124      }
125  
126      fun trustManagedModelEmitted(it: TrustManagedModel) {
127          logBuffer.log(
128              TAG,
129              DEBUG,
130              {
131                  bool1 = it.isTrustManaged
132                  int1 = it.userId
133              },
134              { "trustManagedModel emitted: userId: $int1, isTrustManaged: $bool1" }
135          )
136      }
137  
138      companion object {
139          const val TAG = "TrustRepositoryLog"
140      }
141  }
142