Loading packages/SystemUI/src/com/android/systemui/qs/FgsManagerController.kt +62 −41 Original line number Diff line number Diff line Loading @@ -53,8 +53,8 @@ import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.dump.DumpManager import com.android.systemui.shared.system.SysUiStatsLog import com.android.systemui.settings.UserTracker import com.android.systemui.shared.system.SysUiStatsLog import com.android.systemui.statusbar.phone.SystemUIDialog import com.android.systemui.util.DeviceConfigProxy import com.android.systemui.util.indentIfPossible Loading Loading @@ -153,17 +153,23 @@ class FgsManagerController @Inject constructor( currentProfileIds.addAll(userTracker.userProfiles.map { it.id }) deviceConfigProxy.addOnPropertiesChangedListener(NAMESPACE_SYSTEMUI, backgroundExecutor) { deviceConfigProxy.addOnPropertiesChangedListener( NAMESPACE_SYSTEMUI, backgroundExecutor ) { isAvailable = it.getBoolean(TASK_MANAGER_ENABLED, isAvailable) showFooterDot = it.getBoolean(TASK_MANAGER_SHOW_FOOTER_DOT, showFooterDot) } isAvailable = deviceConfigProxy.getBoolean(NAMESPACE_SYSTEMUI, TASK_MANAGER_ENABLED, DEFAULT_TASK_MANAGER_ENABLED) showFooterDot = deviceConfigProxy.getBoolean(NAMESPACE_SYSTEMUI, TASK_MANAGER_SHOW_FOOTER_DOT, DEFAULT_TASK_MANAGER_SHOW_FOOTER_DOT) isAvailable = deviceConfigProxy.getBoolean( NAMESPACE_SYSTEMUI, TASK_MANAGER_ENABLED, DEFAULT_TASK_MANAGER_ENABLED ) showFooterDot = deviceConfigProxy.getBoolean( NAMESPACE_SYSTEMUI, TASK_MANAGER_SHOW_FOOTER_DOT, DEFAULT_TASK_MANAGER_SHOW_FOOTER_DOT ) dumpManager.registerDumpable(this) Loading @@ -177,7 +183,8 @@ class FgsManagerController @Inject constructor( }, IntentFilter(Intent.ACTION_SHOW_FOREGROUND_SERVICE_MANAGER), executor = mainExecutor, flags = Context.RECEIVER_NOT_EXPORTED) flags = Context.RECEIVER_NOT_EXPORTED ) initialized = true } Loading @@ -196,7 +203,9 @@ class FgsManagerController @Inject constructor( .addToken(token) } else { if (runningServiceTokens[userPackageKey]?.also { it.removeToken(token) }?.isEmpty() == true) { it.removeToken(token) }?.isEmpty() == true ) { runningServiceTokens.remove(userPackageKey) } } Loading Loading @@ -328,11 +337,14 @@ class FgsManagerController @Inject constructor( addedPackages.forEach { val ai = packageManager.getApplicationInfoAsUser(it.packageName, 0, it.userId) runningApps[it] = RunningApp(it.userId, it.packageName, runningApps[it] = RunningApp( it.userId, it.packageName, runningServiceTokens[it]!!.startTime, it.uiControl, packageManager.getApplicationLabel(ai), packageManager.getUserBadgedIcon( packageManager.getApplicationIcon(ai), UserHandle.of(it.userId))) packageManager.getApplicationIcon(ai), UserHandle.of(it.userId) ) ) logEvent(stopped = false, it.packageName, it.userId, runningApps[it]!!.timeStarted) } Loading Loading @@ -366,8 +378,10 @@ class FgsManagerController @Inject constructor( } backgroundExecutor.execute { val uid = packageManager.getPackageUidAsUser(packageName, userId) SysUiStatsLog.write(SysUiStatsLog.TASK_MANAGER_EVENT_REPORTED, uid, event, timeLogged - timeStarted) SysUiStatsLog.write( SysUiStatsLog.TASK_MANAGER_EVENT_REPORTED, uid, event, timeLogged - timeStarted ) } } Loading @@ -378,8 +392,10 @@ class FgsManagerController @Inject constructor( private var data: List<RunningApp> = listOf() override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AppItemViewHolder { return AppItemViewHolder(LayoutInflater.from(parent.context) .inflate(R.layout.fgs_manager_app_item, parent, false)) return AppItemViewHolder( LayoutInflater.from(parent.context) .inflate(R.layout.fgs_manager_app_item, parent, false) ) } override fun onBindViewHolder(holder: AppItemViewHolder, position: Int) { Loading @@ -392,7 +408,8 @@ class FgsManagerController @Inject constructor( appLabelView.text = runningApp.appLabel durationView.text = DateUtils.formatDuration( max(systemClock.elapsedRealtime() - runningApp.timeStarted, 60000), DateUtils.LENGTH_MEDIUM) DateUtils.LENGTH_MEDIUM ) stopButton.setOnClickListener { stopButton.setText(R.string.fgs_manager_app_item_stop_button_stopped_label) stopPackage(runningApp.userId, runningApp.packageName, runningApp.timeStarted) Loading Loading @@ -522,8 +539,10 @@ class FgsManagerController @Inject constructor( fun dump(pw: PrintWriter) { pw.println("StartTimeAndTokens: [") pw.indentIfPossible { pw.println("startTime=$startTime (time running =" + " ${systemClock.elapsedRealtime() - startTime}ms)") pw.println( "startTime=$startTime (time running =" + " ${systemClock.elapsedRealtime() - startTime}ms)" ) pw.println("tokens: [") pw.indentIfPossible { for (token in tokens) { Loading Loading @@ -571,8 +590,10 @@ class FgsManagerController @Inject constructor( pw.indentIfPossible { pw.println("userId=$userId") pw.println("packageName=$packageName") pw.println("timeStarted=$timeStarted (time since start =" + " ${systemClock.elapsedRealtime() - timeStarted}ms)") pw.println( "timeStarted=$timeStarted (time since start =" + " ${systemClock.elapsedRealtime() - timeStarted}ms)" ) pw.println("uiControl=$uiControl") pw.println("appLabel=$appLabel") pw.println("icon=$icon") Loading Loading
packages/SystemUI/src/com/android/systemui/qs/FgsManagerController.kt +62 −41 Original line number Diff line number Diff line Loading @@ -53,8 +53,8 @@ import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.dump.DumpManager import com.android.systemui.shared.system.SysUiStatsLog import com.android.systemui.settings.UserTracker import com.android.systemui.shared.system.SysUiStatsLog import com.android.systemui.statusbar.phone.SystemUIDialog import com.android.systemui.util.DeviceConfigProxy import com.android.systemui.util.indentIfPossible Loading Loading @@ -153,17 +153,23 @@ class FgsManagerController @Inject constructor( currentProfileIds.addAll(userTracker.userProfiles.map { it.id }) deviceConfigProxy.addOnPropertiesChangedListener(NAMESPACE_SYSTEMUI, backgroundExecutor) { deviceConfigProxy.addOnPropertiesChangedListener( NAMESPACE_SYSTEMUI, backgroundExecutor ) { isAvailable = it.getBoolean(TASK_MANAGER_ENABLED, isAvailable) showFooterDot = it.getBoolean(TASK_MANAGER_SHOW_FOOTER_DOT, showFooterDot) } isAvailable = deviceConfigProxy.getBoolean(NAMESPACE_SYSTEMUI, TASK_MANAGER_ENABLED, DEFAULT_TASK_MANAGER_ENABLED) showFooterDot = deviceConfigProxy.getBoolean(NAMESPACE_SYSTEMUI, TASK_MANAGER_SHOW_FOOTER_DOT, DEFAULT_TASK_MANAGER_SHOW_FOOTER_DOT) isAvailable = deviceConfigProxy.getBoolean( NAMESPACE_SYSTEMUI, TASK_MANAGER_ENABLED, DEFAULT_TASK_MANAGER_ENABLED ) showFooterDot = deviceConfigProxy.getBoolean( NAMESPACE_SYSTEMUI, TASK_MANAGER_SHOW_FOOTER_DOT, DEFAULT_TASK_MANAGER_SHOW_FOOTER_DOT ) dumpManager.registerDumpable(this) Loading @@ -177,7 +183,8 @@ class FgsManagerController @Inject constructor( }, IntentFilter(Intent.ACTION_SHOW_FOREGROUND_SERVICE_MANAGER), executor = mainExecutor, flags = Context.RECEIVER_NOT_EXPORTED) flags = Context.RECEIVER_NOT_EXPORTED ) initialized = true } Loading @@ -196,7 +203,9 @@ class FgsManagerController @Inject constructor( .addToken(token) } else { if (runningServiceTokens[userPackageKey]?.also { it.removeToken(token) }?.isEmpty() == true) { it.removeToken(token) }?.isEmpty() == true ) { runningServiceTokens.remove(userPackageKey) } } Loading Loading @@ -328,11 +337,14 @@ class FgsManagerController @Inject constructor( addedPackages.forEach { val ai = packageManager.getApplicationInfoAsUser(it.packageName, 0, it.userId) runningApps[it] = RunningApp(it.userId, it.packageName, runningApps[it] = RunningApp( it.userId, it.packageName, runningServiceTokens[it]!!.startTime, it.uiControl, packageManager.getApplicationLabel(ai), packageManager.getUserBadgedIcon( packageManager.getApplicationIcon(ai), UserHandle.of(it.userId))) packageManager.getApplicationIcon(ai), UserHandle.of(it.userId) ) ) logEvent(stopped = false, it.packageName, it.userId, runningApps[it]!!.timeStarted) } Loading Loading @@ -366,8 +378,10 @@ class FgsManagerController @Inject constructor( } backgroundExecutor.execute { val uid = packageManager.getPackageUidAsUser(packageName, userId) SysUiStatsLog.write(SysUiStatsLog.TASK_MANAGER_EVENT_REPORTED, uid, event, timeLogged - timeStarted) SysUiStatsLog.write( SysUiStatsLog.TASK_MANAGER_EVENT_REPORTED, uid, event, timeLogged - timeStarted ) } } Loading @@ -378,8 +392,10 @@ class FgsManagerController @Inject constructor( private var data: List<RunningApp> = listOf() override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AppItemViewHolder { return AppItemViewHolder(LayoutInflater.from(parent.context) .inflate(R.layout.fgs_manager_app_item, parent, false)) return AppItemViewHolder( LayoutInflater.from(parent.context) .inflate(R.layout.fgs_manager_app_item, parent, false) ) } override fun onBindViewHolder(holder: AppItemViewHolder, position: Int) { Loading @@ -392,7 +408,8 @@ class FgsManagerController @Inject constructor( appLabelView.text = runningApp.appLabel durationView.text = DateUtils.formatDuration( max(systemClock.elapsedRealtime() - runningApp.timeStarted, 60000), DateUtils.LENGTH_MEDIUM) DateUtils.LENGTH_MEDIUM ) stopButton.setOnClickListener { stopButton.setText(R.string.fgs_manager_app_item_stop_button_stopped_label) stopPackage(runningApp.userId, runningApp.packageName, runningApp.timeStarted) Loading Loading @@ -522,8 +539,10 @@ class FgsManagerController @Inject constructor( fun dump(pw: PrintWriter) { pw.println("StartTimeAndTokens: [") pw.indentIfPossible { pw.println("startTime=$startTime (time running =" + " ${systemClock.elapsedRealtime() - startTime}ms)") pw.println( "startTime=$startTime (time running =" + " ${systemClock.elapsedRealtime() - startTime}ms)" ) pw.println("tokens: [") pw.indentIfPossible { for (token in tokens) { Loading Loading @@ -571,8 +590,10 @@ class FgsManagerController @Inject constructor( pw.indentIfPossible { pw.println("userId=$userId") pw.println("packageName=$packageName") pw.println("timeStarted=$timeStarted (time since start =" + " ${systemClock.elapsedRealtime() - timeStarted}ms)") pw.println( "timeStarted=$timeStarted (time since start =" + " ${systemClock.elapsedRealtime() - timeStarted}ms)" ) pw.println("uiControl=$uiControl") pw.println("appLabel=$appLabel") pw.println("icon=$icon") Loading