From ebcabd9c07355eb1111fd7a7a780545ae02880a4 Mon Sep 17 00:00:00 2001 From: Tsung-Mao Fang Date: Tue, 6 Apr 2021 18:27:06 +0800 Subject: [PATCH] Fix ANR on ShorcutManager#getPinnedShortcuts By design, ShorcutManager#getPinnedShortcuts is meant to called on a work thread. Fix: 183785618 Test: Switch the user profile, and function works properly. Change-Id: I87b8d3f57123ff12f83f95fc7f053b8840028ebe --- src/com/android/settings/SettingsInitialize.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/SettingsInitialize.java b/src/com/android/settings/SettingsInitialize.java index 515703358e5..cd949deca92 100644 --- a/src/com/android/settings/SettingsInitialize.java +++ b/src/com/android/settings/SettingsInitialize.java @@ -39,6 +39,7 @@ import android.util.Log; import androidx.annotation.VisibleForTesting; import com.android.settings.Settings.CreateShortcutActivity; +import com.android.settingslib.utils.ThreadUtils; import java.util.ArrayList; import java.util.List; @@ -62,7 +63,7 @@ public class SettingsInitialize extends BroadcastReceiver { final PackageManager pm = context.getPackageManager(); managedProfileSetup(context, pm, broadcast, userInfo); webviewSettingSetup(context, pm, userInfo); - refreshExistingShortcuts(context); + ThreadUtils.postOnBackgroundThread(() -> refreshExistingShortcuts(context)); } private void managedProfileSetup(Context context, final PackageManager pm, Intent broadcast, @@ -142,5 +143,4 @@ public class SettingsInitialize extends BroadcastReceiver { } shortcutManager.updateShortcuts(updates); } - }