summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVivek Sekhar <vsekhar@codeaurora.org>2015-12-15 17:39:21 -0800
committerjrizzoli <joey@cyanogenmoditalia.it>2016-01-11 22:03:23 +0100
commit2b31026b6a6067cdebd37e9a3e66b602d54c1e34 (patch)
tree9b4625ec47d5630ab03ed4756ff389b7ba4b6119
parent56fc4195f8d9647e8b23a23fbb08c26f31bbf970 (diff)
downloadandroid_packages_apps_Gello-2b31026b6a6067cdebd37e9a3e66b602d54c1e34.tar.gz
android_packages_apps_Gello-2b31026b6a6067cdebd37e9a3e66b602d54c1e34.tar.bz2
android_packages_apps_Gello-2b31026b6a6067cdebd37e9a3e66b602d54c1e34.zip
Fix fragment lifecyle in legal credit screen
WebView was being created everytime onCreateView was called on LegalPreviewFragment. The Webiew was never destroyed which would cause a leak.Fixed to create LegalPreviewFragment only once for the activity. Change-Id: I34361171192d3e262a08929c066443c09dbed8ef
-rw-r--r--src/com/android/browser/preferences/LegalPreviewActivity.java22
-rw-r--r--src/com/android/browser/preferences/LegalPreviewFragment.java11
2 files changed, 23 insertions, 10 deletions
diff --git a/src/com/android/browser/preferences/LegalPreviewActivity.java b/src/com/android/browser/preferences/LegalPreviewActivity.java
index eeaf5589..4ca9d638 100644
--- a/src/com/android/browser/preferences/LegalPreviewActivity.java
+++ b/src/com/android/browser/preferences/LegalPreviewActivity.java
@@ -53,16 +53,22 @@ public class LegalPreviewActivity extends FragmentActivity {
bar.setTitle(R.string.swe_open_source_licenses);
bar.setDisplayHomeAsUpEnabled(true);
}
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- mLegalPreviewFragment = new LegalPreviewFragment();
- Bundle args = new Bundle();
- args.putString(URL_INTENT_EXTRA, getIntent().getExtras()
+ if (savedInstanceState == null) {
+ FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
+ mLegalPreviewFragment = new LegalPreviewFragment();
+ Bundle args = new Bundle();
+ args.putString(URL_INTENT_EXTRA, getIntent().getExtras()
.getString(URL_INTENT_EXTRA));
- mLegalPreviewFragment.setArguments(args);
- fragmentTransaction.add(R.id.license_layout, mLegalPreviewFragment,
+ mLegalPreviewFragment.setArguments(args);
+ fragmentTransaction.add(R.id.license_layout, mLegalPreviewFragment,
"LegalPreviewFragmentTag");
- fragmentTransaction.addToBackStack(null);
- fragmentTransaction.commit();
+ fragmentTransaction.addToBackStack(null);
+ fragmentTransaction.commit();
+ } else {
+ mLegalPreviewFragment =
+ (LegalPreviewFragment) getFragmentManager().findFragmentByTag(
+ "LegalPreviewFragmentTag");
+ }
}
private boolean back() {
diff --git a/src/com/android/browser/preferences/LegalPreviewFragment.java b/src/com/android/browser/preferences/LegalPreviewFragment.java
index ec60e10c..515236b6 100644
--- a/src/com/android/browser/preferences/LegalPreviewFragment.java
+++ b/src/com/android/browser/preferences/LegalPreviewFragment.java
@@ -51,6 +51,7 @@ public class LegalPreviewFragment extends Fragment {
super.onCreate(savedInstanceState);
Bundle args = getArguments();
mUrl = args.getString(LegalPreviewActivity.URL_INTENT_EXTRA);
+ mWebView = new WebView(getActivity());
}
@Override
@@ -61,16 +62,22 @@ public class LegalPreviewFragment extends Fragment {
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT,
FrameLayout.LayoutParams.MATCH_PARENT);
- mWebView = new WebView(getActivity());
contentContainer.addView(mWebView.getView(), params);
return contentContainer;
}
@Override
+ public void onDestroy() {
+ super.onDestroy();
+ mWebView.destroy();
+ mWebView = null;
+ }
+
+ @Override
public void onActivityCreated(Bundle b) {
super.onActivityCreated(b);
if (mWebView == null) return;
- mWebView.loadUrl(mUrl);
+ mWebView.loadUrl(mUrl);
}
public boolean onBackPressed() {