Loading src/com/android/settings/Settings.java +5 −2 Original line number Diff line number Diff line Loading @@ -516,9 +516,11 @@ public class Settings extends PreferenceActivity */ @Override public void onBuildHeaders(List<Header> headers) { if (!onIsHidingHeaders()) { loadHeadersFromResource(R.xml.settings_headers, headers); updateHeaderList(headers); } } private void updateHeaderList(List<Header> target) { final boolean showDev = mDevelopmentPreferences.getBoolean( Loading Loading @@ -655,6 +657,7 @@ public class Settings extends PreferenceActivity } } accountHeaders.add(accHeader); mAuthenticatorHelper.preloadDrawableForType(this, accountType); } // Sort by label Loading src/com/android/settings/accounts/AuthenticatorHelper.java +18 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.util.Log; import java.util.ArrayList; Loading @@ -45,6 +46,16 @@ public class AuthenticatorHelper { return mEnabledAccountTypes.toArray(new String[mEnabledAccountTypes.size()]); } public void preloadDrawableForType(final Context context, final String accountType) { new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { getDrawableForType(context, accountType); return null; } }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (Void[]) null); } /** * Gets an icon associated with a particular account type. If none found, return null. * @param accountType the type of account Loading @@ -52,15 +63,19 @@ public class AuthenticatorHelper { */ public Drawable getDrawableForType(Context context, final String accountType) { Drawable icon = null; synchronized (mAccTypeIconCache) { if (mAccTypeIconCache.containsKey(accountType)) { return mAccTypeIconCache.get(accountType); } } if (mTypeToAuthDescription.containsKey(accountType)) { try { AuthenticatorDescription desc = mTypeToAuthDescription.get(accountType); Context authContext = context.createPackageContext(desc.packageName, 0); icon = authContext.getResources().getDrawable(desc.iconId); synchronized (mAccTypeIconCache) { mAccTypeIconCache.put(accountType, icon); } } catch (PackageManager.NameNotFoundException e) { } catch (Resources.NotFoundException e) { } Loading Loading
src/com/android/settings/Settings.java +5 −2 Original line number Diff line number Diff line Loading @@ -516,9 +516,11 @@ public class Settings extends PreferenceActivity */ @Override public void onBuildHeaders(List<Header> headers) { if (!onIsHidingHeaders()) { loadHeadersFromResource(R.xml.settings_headers, headers); updateHeaderList(headers); } } private void updateHeaderList(List<Header> target) { final boolean showDev = mDevelopmentPreferences.getBoolean( Loading Loading @@ -655,6 +657,7 @@ public class Settings extends PreferenceActivity } } accountHeaders.add(accHeader); mAuthenticatorHelper.preloadDrawableForType(this, accountType); } // Sort by label Loading
src/com/android/settings/accounts/AuthenticatorHelper.java +18 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.util.Log; import java.util.ArrayList; Loading @@ -45,6 +46,16 @@ public class AuthenticatorHelper { return mEnabledAccountTypes.toArray(new String[mEnabledAccountTypes.size()]); } public void preloadDrawableForType(final Context context, final String accountType) { new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { getDrawableForType(context, accountType); return null; } }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (Void[]) null); } /** * Gets an icon associated with a particular account type. If none found, return null. * @param accountType the type of account Loading @@ -52,15 +63,19 @@ public class AuthenticatorHelper { */ public Drawable getDrawableForType(Context context, final String accountType) { Drawable icon = null; synchronized (mAccTypeIconCache) { if (mAccTypeIconCache.containsKey(accountType)) { return mAccTypeIconCache.get(accountType); } } if (mTypeToAuthDescription.containsKey(accountType)) { try { AuthenticatorDescription desc = mTypeToAuthDescription.get(accountType); Context authContext = context.createPackageContext(desc.packageName, 0); icon = authContext.getResources().getDrawable(desc.iconId); synchronized (mAccTypeIconCache) { mAccTypeIconCache.put(accountType, icon); } } catch (PackageManager.NameNotFoundException e) { } catch (Resources.NotFoundException e) { } Loading