SetupWizard: Fix race conditions with async callbacks

Change-Id: Ifeeec3ac74b4644bb26b9f90d0159a64b173785b
This commit is contained in:
cretin45
2015-02-23 15:58:21 -08:00
parent d7e70040b7
commit d385c7e906
4 changed files with 87 additions and 14 deletions

View File

@@ -69,6 +69,8 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks
mSetupData = (CMSetupWizardData)getLastNonConfigurationInstance();
if (mSetupData == null) {
mSetupData = new CMSetupWizardData(this);
} else {
mSetupData.setContext(this);
}
mNextButton = (Button) findViewById(R.id.next_button);
mPrevButton = (Button) findViewById(R.id.prev_button);
@@ -128,6 +130,7 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks
| View.SYSTEM_UI_FLAG_IMMERSIVE
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
super.onResume();
mSetupData.onResume();
onPageTreeChanged();
enableButtonBar(true);
}
@@ -135,6 +138,7 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks
@Override
protected void onDestroy() {
super.onDestroy();
mSetupData.onDestroy();
mSetupData.unregisterListener(this);
unregisterReceiver(mSetupData);
}
@@ -236,6 +240,11 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks
return mSetupData.getPage(key);
}
@Override
public boolean isCurrentPage(Page page) {
return mSetupData.isCurrentPage(page);
}
@Override
public void onFinish() {
animateOut();