OSDN Git Service

Fix ShortcutService handling of locale change during device setup.
authorpeter.zhang <peter.zhang@spreadtrum.com>
Mon, 9 Apr 2018 03:03:03 +0000 (11:03 +0800)
committeryang zhang <peter.zhang@unisoc.com>
Thu, 22 Nov 2018 01:30:43 +0000 (01:30 +0000)
On AndroidO MR1 gms pac, change language at WelcomeActivity UI of SetupWizard when first boot,
after boot completed, enter the launcher and then long press some apps's icon, the  shortcuts
show  language resource strings.

Because of ShortcutUser.mKnownLocales not initialized yet, so ShortcutService do nothing when
handling LOCALE_CHANGED broadcast.

Bug: 77759135
Test: 1. make services and do factory reset. All apps can show correct language resource strings
after changing language in WelcomActivity UI of SetupWizard.
2.run com.android.server.pm.ShortcutManagerTest[1-10]:All(1,3-10) pass except 2, the 2 failure is
no matter with this patch.

Change-Id: If235d23d3a4c50f4120674601f853081571c672e

services/core/java/com/android/server/pm/ShortcutUser.java

index 505e4ee..1fd9b69 100644 (file)
@@ -294,13 +294,14 @@ class ShortcutUser {
      */
     public void detectLocaleChange() {
         final String currentLocales = mService.injectGetLocaleTagsForUser(mUserId);
-        if (getKnownLocales().equals(currentLocales)) {
+        if (!TextUtils.isEmpty(mKnownLocales) && mKnownLocales.equals(currentLocales)) {
             return;
         }
         if (ShortcutService.DEBUG) {
-            Slog.d(TAG, "Locale changed from " + currentLocales + " to " + mKnownLocales
+            Slog.d(TAG, "Locale changed from " + mKnownLocales + " to " + currentLocales
                     + " for user " + mUserId);
         }
+
         mKnownLocales = currentLocales;
 
         forAllPackages(pkg -> {