From 362d622e7eae2d33714757970ec203e0469ffd76 Mon Sep 17 00:00:00 2001 From: Zim Date: Wed, 27 Jan 2021 13:41:05 +0000 Subject: [PATCH] Setup AnrController for StorageManagerService If transcoding is enabled, the StorageManagerService configures an AnrController to allow delaying the ANR dialog when apps are transcoding. In later cl, the actual delay will be delegated to the ExternalStorageService (MediaProvider). Test: Manual Bug: 170486601 Change-Id: Iafefba6a24cca1da7a73c5364f34893bf1868bea --- .../com/android/server/StorageManagerService.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index 7d6515600c2a0..1ad0176d3c5bf 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -890,7 +890,7 @@ class StorageManagerService extends IStorageManager.Stub ZramWriteback.scheduleZramWriteback(mContext); } - updateTranscodeEnabled(); + configureTranscoding(); } /** @@ -922,7 +922,7 @@ class StorageManagerService extends IStorageManager.Stub } } - private void updateTranscodeEnabled() { + private void configureTranscoding() { // See MediaProvider TranscodeHelper#getBooleanProperty for more information boolean transcodeEnabled = false; boolean defaultValue = true; @@ -935,6 +935,15 @@ class StorageManagerService extends IStorageManager.Stub "transcode_enabled", defaultValue); } SystemProperties.set("sys.fuse.transcode_enabled", String.valueOf(transcodeEnabled)); + + if (transcodeEnabled) { + LocalServices.getService(ActivityManagerInternal.class) + .registerAnrController((packageName, uid) -> { + // TODO: Retrieve delay from ExternalStorageService that can check + // transcoding status + return SystemProperties.getInt("sys.fuse.transcode_anr_delay_ms", 0); + }); + } } /**