import android.text.TextUtils;
import com.android.settings.R;
-import com.android.settings.core.PreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.AbstractPreferenceController;
import libcore.util.Objects;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_THEME;
-public class ThemePreferenceController extends PreferenceController implements
- Preference.OnPreferenceChangeListener {
+public class ThemePreferenceController extends AbstractPreferenceController implements
+ PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
private static final String KEY_THEME = "theme";
pref.setEntries(labels);
pref.setEntryValues(pkgs);
String theme = getCurrentTheme();
- if (TextUtils.isEmpty(theme)) {
- theme = mContext.getString(R.string.default_theme);
- pref.setSummary(theme);
+ CharSequence themeLabel = null;
+
+ for (int i = 0; i < pkgs.length; i++) {
+ if (TextUtils.equals(pkgs[i], theme)) {
+ themeLabel = labels[i];
+ break;
+ }
}
- pref.setSummary(theme);
+
+ if (TextUtils.isEmpty(themeLabel)) {
+ themeLabel = mContext.getString(R.string.default_theme);
+ }
+
+ pref.setSummary(themeLabel);
pref.setValue(theme);
}
private boolean isChangeableOverlay(String packageName) {
try {
PackageInfo pi = mPackageManager.getPackageInfo(packageName, 0);
- return pi != null && !pi.isStaticOverlay;
+ return pi != null && (pi.overlayFlags & PackageInfo.FLAG_OVERLAY_STATIC) == 0;
} catch (PackageManager.NameNotFoundException e) {
return false;
}
UserHandle.myUserId());
for (int i = 0, size = infos.size(); i < size; i++) {
if (infos.get(i).isEnabled() &&
- isChangeableOverlay(infos.get(i).packageName)) {
+ isChangeableOverlay(infos.get(i).packageName)) {
return infos.get(i).packageName;
}
}