Merge "Remove WebSettings from BrowserSettings in destroy"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 23bc975..0c2e6b3 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -66,7 +66,7 @@
android:label="@string/application_name"
android:launchMode="singleTask"
android:alwaysRetainTaskState="true"
- android:configChanges="orientation|keyboardHidden|keyboard|screenSize"
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
android:theme="@style/BrowserTheme"
android:windowSoftInputMode="adjustResize" >
<intent-filter>
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 923dfed..0b49aff 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -604,6 +604,8 @@
protected void onConfgurationChanged(Configuration config) {
mConfigChanged = true;
+ // update the menu in case of a locale change
+ mActivity.invalidateOptionsMenu();
if (mPageDialogsHandler != null) {
mPageDialogsHandler.onConfigurationChanged(config);
}
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 837ca47..acccb31 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -1548,6 +1548,7 @@
mMainView.setPictureListener(this);
}
if (restore && (mSavedState != null)) {
+ restoreUserAgent();
WebBackForwardList restoredState
= mMainView.restoreState(mSavedState);
if (restoredState == null || restoredState.getSize() == 0) {
@@ -2010,10 +2011,7 @@
mId = b.getLong(ID);
mAppId = b.getString(APPID);
mCloseOnBack = b.getBoolean(CLOSEFLAG);
- if (b.getBoolean(USERAGENT)
- != mSettings.hasDesktopUseragent(getWebView())) {
- mSettings.toggleDesktopUseragent(getWebView());
- }
+ restoreUserAgent();
String url = b.getString(CURRURL);
String title = b.getString(CURRTITLE);
boolean incognito = b.getBoolean(INCOGNITO);
@@ -2026,6 +2024,16 @@
}
}
+ private void restoreUserAgent() {
+ if (mMainView == null || mSavedState == null) {
+ return;
+ }
+ if (mSavedState.getBoolean(USERAGENT)
+ != mSettings.hasDesktopUseragent(mMainView)) {
+ mSettings.toggleDesktopUseragent(mMainView);
+ }
+ }
+
public void updateBookmarkedStatus() {
mDataController.queryBookmarkStatus(getUrl(), mIsBookmarkCallback);
}