summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcretin45 <cretin45@gmail.com>2015-04-09 10:43:41 -0700
committercretin45 <cretin45@gmail.com>2015-04-09 10:43:41 -0700
commit62b79e38809699edf47f8a4fad16fdf706ceaa5e (patch)
tree885137e2161bc5d9166a705c8d552a64b8cd1264
parent0fde3a04cc62396b524aadb6a1a30f573a4b1b38 (diff)
downloadandroid_packages_apps_SetupWizard-62b79e38809699edf47f8a4fad16fdf706ceaa5e.tar.gz
android_packages_apps_SetupWizard-62b79e38809699edf47f8a4fad16fdf706ceaa5e.tar.bz2
android_packages_apps_SetupWizard-62b79e38809699edf47f8a4fad16fdf706ceaa5e.zip
SetupWizard: Ensure page object isn't null if FM destroyed
Change-Id: Ia794e7656587ca803d02418d3d84d4df5027cd00
-rw-r--r--src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java b/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java
index 93b349ca..b0df4408 100644
--- a/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java
+++ b/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java
@@ -43,11 +43,6 @@ public abstract class SetupPageFragment extends Fragment {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
- Bundle args = getArguments();
- mKey = args.getString(Page.KEY_PAGE_ARGUMENT);
- if (mKey == null) {
- throw new IllegalArgumentException("No KEY_PAGE_ARGUMENT given");
- }
SetupStats.addEvent(SetupStats.Categories.PAGE_LOAD, SetupStats.Action.PAGE_LOADED,
mKey, String.valueOf(System.currentTimeMillis()));
}
@@ -65,6 +60,11 @@ public abstract class SetupPageFragment extends Fragment {
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
+ Bundle args = getArguments();
+ mKey = args.getString(Page.KEY_PAGE_ARGUMENT);
+ if (mKey == null) {
+ throw new IllegalArgumentException("No KEY_PAGE_ARGUMENT given");
+ }
if (!(activity instanceof SetupDataCallbacks)) {
throw new ClassCastException("Activity implement SetupDataCallbacks");
}
@@ -90,6 +90,11 @@ public abstract class SetupPageFragment extends Fragment {
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ // On low mem devices, this fragment might get destroyed by
+ // fragment manager while we are in another activity.
+ if (mPage == null) {
+ mPage = mCallbacks.getPage(mKey);
+ }
mPage.onActivityResult(requestCode, resultCode, data);
}