1 package com.android.systemui.qs
2 
3 import com.android.systemui.log.dagger.QSFragmentDisableLog
4 import com.android.systemui.log.LogBuffer
5 import com.android.systemui.log.core.LogLevel
6 import com.android.systemui.statusbar.disableflags.DisableFlagsLogger
7 import javax.inject.Inject
8 
9 /** A helper class for logging disable flag changes made in [QSFragment]. */
10 class QSFragmentDisableFlagsLogger @Inject constructor(
11     @QSFragmentDisableLog private val buffer: LogBuffer,
12     private val disableFlagsLogger: DisableFlagsLogger
13 ) {
14 
15     /**
16      * Logs a string representing the new state received by [QSFragment] and any modifications that
17      * were made to the flags locally.
18      *
19      * @param new see [DisableFlagsLogger.getDisableFlagsString]
20      * @param newAfterLocalModification see [DisableFlagsLogger.getDisableFlagsString]
21      */
22     fun logDisableFlagChange(
23         new: DisableFlagsLogger.DisableState,
24         newAfterLocalModification: DisableFlagsLogger.DisableState
25     ) {
26         buffer.log(
27             TAG,
28             LogLevel.INFO,
29             {
30                 int1 = new.disable1
31                 int2 = new.disable2
32                 long1 = newAfterLocalModification.disable1.toLong()
33                 long2 = newAfterLocalModification.disable2.toLong()
34             },
35             {
36                 disableFlagsLogger.getDisableFlagsString(
37                     new = DisableFlagsLogger.DisableState(int1, int2),
38                     newAfterLocalModification =
39                         DisableFlagsLogger.DisableState(long1.toInt(), long2.toInt())
40                 )
41             }
42         )
43     }
44 }
45 
46 private const val TAG = "QSFragmentDisableFlagsLog"
47