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) {
case MESSAGE_OKAY:
mProgressDialogFragment.dismiss();
mProgressDialogFragment.dismissAllowingStateLoss();
break;
case MESSAGE_EXCEPTION:
mProgressDialogFragment.dismiss();
mProgressDialogFragment.dismissAllowingStateLoss();
// show error from service
if (data.containsKey(DATA_ERROR)) {

View File

@ -326,28 +326,7 @@ public class SectionView extends LinearLayout implements OnClickListener, Editor
.BytesToPGPKeyRing(data
.getByteArray(KeychainIntentService.RESULT_NEW_KEY));
boolean isMasterKey = (mEditors.getChildCount() == 0);
// take only the key from this ring
PGPSecretKey newKey = null;
@SuppressWarnings("unchecked")
Iterator<PGPSecretKey> it = newKeyRing.getSecretKeys();
if (isMasterKey) {
newKey = it.next();
} else {
// first one is the master key
it.next();
newKey = it.next();
}
// add view with new key
KeyEditor view = (KeyEditor) mInflater.inflate(R.layout.edit_key_key_item,
mEditors, false);
view.setEditorListener(SectionView.this);
view.setValue(newKey, isMasterKey, -1);
mEditors.addView(view);
SectionView.this.updateEditorsVisible();
addGeneratedKeyToView(newKeyRing);
}
};
};
@ -361,4 +340,29 @@ public class SectionView extends LinearLayout implements OnClickListener, Editor
// start service with intent
mActivity.startService(intent);
}
private void addGeneratedKeyToView(PGPSecretKeyRing newKeyRing) {
boolean isMasterKey = (mEditors.getChildCount() == 0);
// take only the key from this ring
PGPSecretKey newKey = null;
@SuppressWarnings("unchecked")
Iterator<PGPSecretKey> it = newKeyRing.getSecretKeys();
if (isMasterKey) {
newKey = it.next();
} else {
// first one is the master key
it.next();
newKey = it.next();
}
// add view with new key
KeyEditor view = (KeyEditor) mInflater.inflate(R.layout.edit_key_key_item,
mEditors, false);
view.setEditorListener(SectionView.this);
view.setValue(newKey, isMasterKey, -1);
mEditors.addView(view);
SectionView.this.updateEditorsVisible();
}
}