summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/accounts
diff options
context:
space:
mode:
authord34d <clark@cyngn.com>2016-02-03 14:16:46 -0800
committerClark Scheff <clark@cyngn.com>2016-02-05 09:29:18 -0800
commit3403e4891a3f50be5c32e837c1f12a7f7b8ee5ef (patch)
treed79dfd63bdcd46c2c183b737b023690271c649b1 /src/com/android/settings/accounts
parent1f31bd847e3871b0e4571db01ffa77be0700b15e (diff)
downloadpackages_apps_Settings-3403e4891a3f50be5c32e837c1f12a7f7b8ee5ef.zip
packages_apps_Settings-3403e4891a3f50be5c32e837c1f12a7f7b8ee5ef.tar.gz
packages_apps_Settings-3403e4891a3f50be5c32e837c1f12a7f7b8ee5ef.tar.bz2
Use settings' theme when inflating account prefs
When inflating account specific preferences, the settings style is set so the inflated preferences have the same style. If a different theme, than the rest of the system, is set for Settings it is possible for the inflated preference to try and reference a theme specific item which won't be part of that apps resources, resulting in an InflateException. To avoid this we attach the themed resources that are applied to settings to the newly created package context so that those resources can be properly resolved. Change-Id: I0cf0430db379b146fe80ce3173f050e5b120bbbb TICKET: OPO-437
Diffstat (limited to 'src/com/android/settings/accounts')
-rw-r--r--src/com/android/settings/accounts/AccountPreferenceBase.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/com/android/settings/accounts/AccountPreferenceBase.java b/src/com/android/settings/accounts/AccountPreferenceBase.java
index a34be22..ec5c65b 100644
--- a/src/com/android/settings/accounts/AccountPreferenceBase.java
+++ b/src/com/android/settings/accounts/AccountPreferenceBase.java
@@ -25,6 +25,7 @@ import android.content.SyncStatusObserver;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.content.res.Resources.Theme;
+import android.content.res.ThemeConfig;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
@@ -151,8 +152,13 @@ abstract class AccountPreferenceBase extends SettingsPreferenceFragment
// correct text colors. Control colors will still be wrong,
// but there's not much we can do about it since we can't
// reference local color resources.
+ final ThemeConfig themeConfig = getActivity().getResources()
+ .getConfiguration().themeConfig;
+ final String themePkgName = themeConfig != null
+ ? themeConfig.getOverlayPkgNameForApp(getActivity().getPackageName())
+ : null;
final Context targetCtx = getActivity().createPackageContextAsUser(
- desc.packageName, 0, mUserHandle);
+ desc.packageName, themePkgName, 0, mUserHandle);
final Theme baseTheme = getResources().newTheme();
baseTheme.applyStyle(com.android.settings.R.style.Theme_SettingsBase, true);
final Context themedCtx = new ContextThemeWrapper(targetCtx, 0);