diff options
author | Bijan Amirzada <bijana@codeaurora.org> | 2014-05-06 14:18:54 -0700 |
---|---|---|
committer | WebTech Code Review <code-review@localhost> | 2014-05-14 14:06:55 -0700 |
commit | e75909d7f96ab75c64be108f48a9bcc0934ae070 (patch) | |
tree | 37e80713db92de7b004ab832fe7dd343c33cba4e /src/com/android/browser/BrowserSettings.java | |
parent | cc4bc5e7d0725fc7812da90bf48d6621aedc595a (diff) | |
download | android_packages_apps_Gello-e75909d7f96ab75c64be108f48a9bcc0934ae070.tar.gz android_packages_apps_Gello-e75909d7f96ab75c64be108f48a9bcc0934ae070.tar.bz2 android_packages_apps_Gello-e75909d7f96ab75c64be108f48a9bcc0934ae070.zip |
Changes to conform to new overlay format
- Added new overlay resources and checks for new resource values
- Removed all references to carrier specific lookups and
converted them to overlay implementations instead.
- Removed old resources from assets directory
Change-Id: I5143b499ffb6f1e08d1f9c846eec94300de87561
Diffstat (limited to 'src/com/android/browser/BrowserSettings.java')
-rw-r--r-- | src/com/android/browser/BrowserSettings.java | 123 |
1 files changed, 35 insertions, 88 deletions
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java index 0e4fba68..02811678 100644 --- a/src/com/android/browser/BrowserSettings.java +++ b/src/com/android/browser/BrowserSettings.java @@ -21,15 +21,14 @@ import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; -import android.content.res.AssetManager; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Build; import android.preference.PreferenceManager; import android.provider.Browser; import android.provider.Settings; +import android.text.TextUtils; import android.util.DisplayMetrics; -import android.util.Log; import android.webkit.WebIconDatabase; import android.webkit.WebStorage; import android.webkit.WebViewDatabase; @@ -41,7 +40,6 @@ import com.android.browser.reflect.ReflectHelper; import com.android.browser.search.SearchEngine; import com.android.browser.search.SearchEngines; -import java.io.InputStream; import java.lang.ref.WeakReference; import java.util.Iterator; import java.util.LinkedList; @@ -135,9 +133,6 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener, private static String sFactoryResetUrl; - // add for carrier feature - private static Context sResPackageCtx; - public static void initialize(final Context context) { sInstance = new BrowserSettings(context); } @@ -152,15 +147,6 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener, mAutofillHandler = new AutofillHandler(mContext); mManagedSettings = new LinkedList<WeakReference<WebSettings>>(); mCustomUserAgents = new WeakHashMap<WebSettings, String>(); - - // add for carrier feature - try { - sResPackageCtx = context.createPackageContext( - "com.android.browser.res", - Context.CONTEXT_IGNORE_SECURITY); - } catch (Exception e) { - Log.e("Res_Update", "Create Res Apk Failed"); - } BackgroundHandler.execute(mSetup); } @@ -245,64 +231,12 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener, } // add for carrier homepage feature - String browserRes = mContext.getResources().getString(R.string.config_carrier_resource); - if ("cu".equals(browserRes) || "cmcc".equals(browserRes)) { - int resID = sResPackageCtx.getResources().getIdentifier( - "homepage_base", "string", "com.android.browser.res"); - sFactoryResetUrl = sResPackageCtx.getResources().getString(resID); - } else if ("ct".equals(browserRes)) { - int resID = sResPackageCtx.getResources().getIdentifier( - "homepage_base", "string", "com.android.browser.res"); - sFactoryResetUrl = sResPackageCtx.getResources().getString(resID); - - int pathID = sResPackageCtx.getResources().getIdentifier( - "homepage_path", "string", "com.android.browser.res"); - String path = sResPackageCtx.getResources().getString(pathID); - Locale locale = Locale.getDefault(); - path = path.replace("%y", locale.getLanguage().toLowerCase()); - path = path.replace("%z", '_'+locale.getCountry().toLowerCase()); - boolean useCountry = true; - boolean useLanguage = true; - InputStream is = null; - AssetManager am = mContext.getAssets(); - try { - is = am.open(path); - } catch (Exception ignored) { - useCountry = false; - path = sResPackageCtx.getResources().getString(pathID); - path = path.replace("%y", locale.getLanguage().toLowerCase()); - path = path.replace("%z", ""); - try { - is = am.open(path); - } catch (Exception ignoredlanguage) { - useLanguage = false; - } - } finally { - if (is != null) { - try { - is.close(); - } catch (Exception ignored) {} - } - } - - if (!useCountry && !useLanguage) { - sFactoryResetUrl = sFactoryResetUrl.replace("%y%z", "en"); - } else { - sFactoryResetUrl = sFactoryResetUrl.replace("%y", - locale.getLanguage().toLowerCase()); - sFactoryResetUrl = sFactoryResetUrl.replace("%z", useCountry ? - '_' + locale.getCountry().toLowerCase() : ""); - } - } else { - sFactoryResetUrl = mContext.getResources().getString(R.string.homepage_base); - } + sFactoryResetUrl = mContext.getResources().getString(R.string.homepage_base); if (!mPrefs.contains(PREF_DEFAULT_TEXT_ENCODING)) { - if (!"default".equals(browserRes)) { - mPrefs.edit().putString(PREF_DEFAULT_TEXT_ENCODING, - "UTF-8").apply(); - } + mPrefs.edit().putString(PREF_DEFAULT_TEXT_ENCODING, "UTF-8").apply(); } + if (sFactoryResetUrl.indexOf("{CID}") != -1) { sFactoryResetUrl = sFactoryResetUrl.replace("{CID}", BrowserProvider.getClientId(mContext.getContentResolver())); @@ -347,23 +281,7 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener, settings.setSavePassword(rememberPasswords()); settings.setSaveFormData(saveFormdata()); settings.setUseWideViewPort(isWideViewport()); - - // add for carrier useragent feature - String ua = null; - Object objUserAgentHandler = ReflectHelper.newObject( - "com.qrd.useragent.UserAgentHandler", null, null); - Object[] params = {mContext}; - Class[] type = new Class[] {Context.class}; - ua = (String) ReflectHelper.invokeMethod(objUserAgentHandler,"getUAString", - type, params); - if (ua == null) - ua = mCustomUserAgents.get(settings); - - if (ua != null){ - settings.setUserAgentString(ua); - } else { - settings.setUserAgentString(USER_AGENTS[getUserAgent()]); - } + setUserAgent(settings); WebSettings settingsClassic = (WebSettings) settings; settingsClassic.setHardwareAccelSkiaEnabled(isSkiaHardwareAccelerated()); @@ -388,6 +306,35 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener, settingsClassic.setLinkPrefetchEnabled(mLinkPrefetchAllowed); } + private void setUserAgent(WebSettings settings){ + String ua = mContext.getResources().getString(R.string.def_useragent); + + if (!TextUtils.isEmpty(ua)) + ua = constructUserAgent(ua); + + if (TextUtils.isEmpty(ua)) + ua = mCustomUserAgents.get(settings); + + if (!TextUtils.isEmpty(ua)){ + settings.setUserAgentString(ua); + } else { + settings.setUserAgentString(USER_AGENTS[getUserAgent()]); + } + } + + private String constructUserAgent(String userAgent) { + try { + userAgent = userAgent.replaceAll("<%build_model>", Build.MODEL); + userAgent = userAgent.replaceAll("<%build_version>", Build.VERSION.RELEASE); + userAgent = userAgent.replaceAll("<%build_id>", Build.ID); + userAgent = userAgent.replaceAll("<%language>", Locale.getDefault().getLanguage()); + userAgent = userAgent.replaceAll("<%country>", Locale.getDefault().getCountry()); + return userAgent; + } catch (Exception ex) { + return null; + } + } + /** * Syncs all the settings that have no UI * These cannot change, so we only need to set them once per WebSettings @@ -687,7 +634,7 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener, WebSettings settings = view.getSettings(); if (mCustomUserAgents.get(settings) != null) { mCustomUserAgents.remove(settings); - settings.setUserAgentString(USER_AGENTS[getUserAgent()]); + setUserAgent(settings); } else { mCustomUserAgents.put(settings, DESKTOP_USERAGENT); settings.setUserAgentString(DESKTOP_USERAGENT); |