Allow state loss on dismissal of progress dialogs, fixes #217

This commit is contained in:
Dominik Schürmann 2014-01-31 18:16:06 +01:00
parent d8a91f15df
commit 34d791c9bd
2 changed files with 28 additions and 24 deletions

View File

@ -69,12 +69,12 @@ public class KeychainIntentServiceHandler extends Handler {
switch (message.arg1) { switch (message.arg1) {
case MESSAGE_OKAY: case MESSAGE_OKAY:
mProgressDialogFragment.dismiss(); mProgressDialogFragment.dismissAllowingStateLoss();
break; break;
case MESSAGE_EXCEPTION: case MESSAGE_EXCEPTION:
mProgressDialogFragment.dismiss(); mProgressDialogFragment.dismissAllowingStateLoss();
// show error from service // show error from service
if (data.containsKey(DATA_ERROR)) { if (data.containsKey(DATA_ERROR)) {

View File

@ -326,6 +326,22 @@ public class SectionView extends LinearLayout implements OnClickListener, Editor
.BytesToPGPKeyRing(data .BytesToPGPKeyRing(data
.getByteArray(KeychainIntentService.RESULT_NEW_KEY)); .getByteArray(KeychainIntentService.RESULT_NEW_KEY));
addGeneratedKeyToView(newKeyRing);
}
};
};
// Create a new Messenger for the communication back
Messenger messenger = new Messenger(saveHandler);
intent.putExtra(KeychainIntentService.EXTRA_MESSENGER, messenger);
mGeneratingDialog.show(mActivity.getSupportFragmentManager(), "dialog");
// start service with intent
mActivity.startService(intent);
}
private void addGeneratedKeyToView(PGPSecretKeyRing newKeyRing) {
boolean isMasterKey = (mEditors.getChildCount() == 0); boolean isMasterKey = (mEditors.getChildCount() == 0);
// take only the key from this ring // take only the key from this ring
@ -349,16 +365,4 @@ public class SectionView extends LinearLayout implements OnClickListener, Editor
mEditors.addView(view); mEditors.addView(view);
SectionView.this.updateEditorsVisible(); SectionView.this.updateEditorsVisible();
} }
};
};
// Create a new Messenger for the communication back
Messenger messenger = new Messenger(saveHandler);
intent.putExtra(KeychainIntentService.EXTRA_MESSENGER, messenger);
mGeneratingDialog.show(mActivity.getSupportFragmentManager(), "dialog");
// start service with intent
mActivity.startService(intent);
}
} }