[Panlingual] Improve UI can not show on at first.

- Settings take much time to get the info of app launcher entry. User
    may not see the panlingual UI at first after boot to home.
  - Does small refactor to somewhere.

Bug: 218416193
Test: local
Test: atest pass
Change-Id: Ibfb91f0bb8d8ff54cadd041250b3cff252dbe591
(cherry picked from commit cae20ce2f7)
Merged-In: Ibfb91f0bb8d8ff54cadd041250b3cff252dbe591
This commit is contained in:
tom hsu
2022-02-15 18:55:49 +08:00
committed by Tom Hsu
parent 657ad4c091
commit ea9e627c1c
5 changed files with 78 additions and 47 deletions

View File

@@ -17,19 +17,29 @@
package com.android.settings.applications.appinfo;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.util.FeatureFlagUtils;
import androidx.annotation.VisibleForTesting;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.applications.AppLocaleUtil;
import java.util.List;
/**
* A controller to update current locale information of application.
*/
public class AppLocalePreferenceController extends AppInfoPreferenceControllerBase {
private static final String TAG = AppLocalePreferenceController.class.getSimpleName();
private final List<ResolveInfo> mListInfos;
public AppLocalePreferenceController(Context context, String key) {
super(context, key);
mListInfos = context.getPackageManager().queryIntentActivities(
AppLocaleUtil.LAUNCHER_ENTRY_INTENT, PackageManager.GET_META_DATA);
}
@Override
@@ -49,7 +59,9 @@ public class AppLocalePreferenceController extends AppInfoPreferenceControllerBa
return AppLocaleDetails.getSummary(mContext, mParent.getAppEntry().info.packageName);
}
@VisibleForTesting
boolean canDisplayLocaleUi() {
return AppLocaleUtil.canDisplayLocaleUi(mContext, mParent.getAppEntry());
return AppLocaleUtil
.canDisplayLocaleUi(mContext, mParent.getAppEntry().info.packageName, mListInfos);
}
}