|
|
|
@ -1975,8 +1975,27 @@ public class FragmentCompose extends FragmentBase {
|
|
|
|
|
private void onMenuEncrypt() {
|
|
|
|
|
EntityIdentity identity = (EntityIdentity) spIdentity.getSelectedItem();
|
|
|
|
|
if (identity == null || identity.encrypt == 0) {
|
|
|
|
|
if (EntityMessage.ENCRYPT_NONE.equals(encrypt) || encrypt == null)
|
|
|
|
|
encrypt = EntityMessage.PGP_SIGNENCRYPT;
|
|
|
|
|
else if (EntityMessage.PGP_SIGNENCRYPT.equals(encrypt))
|
|
|
|
|
encrypt = EntityMessage.PGP_SIGNONLY;
|
|
|
|
|
else
|
|
|
|
|
encrypt = EntityMessage.ENCRYPT_NONE;
|
|
|
|
|
} else {
|
|
|
|
|
if (EntityMessage.ENCRYPT_NONE.equals(encrypt) || encrypt == null)
|
|
|
|
|
encrypt = EntityMessage.SMIME_SIGNENCRYPT;
|
|
|
|
|
else if (EntityMessage.SMIME_SIGNENCRYPT.equals(encrypt))
|
|
|
|
|
encrypt = EntityMessage.SMIME_SIGNONLY;
|
|
|
|
|
else
|
|
|
|
|
encrypt = EntityMessage.ENCRYPT_NONE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
final Context context = getContext();
|
|
|
|
|
if (!Helper.isOpenKeychainInstalled(context)) {
|
|
|
|
|
if ((EntityMessage.PGP_SIGNONLY.equals(encrypt) ||
|
|
|
|
|
EntityMessage.PGP_SIGNENCRYPT.equals(encrypt))
|
|
|
|
|
&& !Helper.isOpenKeychainInstalled(context)) {
|
|
|
|
|
encrypt = EntityMessage.ENCRYPT_NONE;
|
|
|
|
|
|
|
|
|
|
new AlertDialog.Builder(context)
|
|
|
|
|
.setIcon(R.drawable.twotone_lock_24)
|
|
|
|
|
.setTitle(R.string.title_no_openpgp)
|
|
|
|
@ -1988,23 +2007,32 @@ public class FragmentCompose extends FragmentBase {
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.setNegativeButton(android.R.string.cancel, null)
|
|
|
|
|
.show();
|
|
|
|
|
return;
|
|
|
|
|
.setNeutralButton(R.string.title_reset, new DialogInterface.OnClickListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
|
|
new SimpleTask<Void>() {
|
|
|
|
|
@Override
|
|
|
|
|
protected Void onExecute(Context context, Bundle args) throws Throwable {
|
|
|
|
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
|
|
|
|
prefs.edit()
|
|
|
|
|
.remove("sign_default")
|
|
|
|
|
.remove("encrypt_default")
|
|
|
|
|
.apply();
|
|
|
|
|
|
|
|
|
|
DB db = DB.getInstance(context);
|
|
|
|
|
db.identity().resetIdentityPGP();
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (EntityMessage.ENCRYPT_NONE.equals(encrypt) || encrypt == null)
|
|
|
|
|
encrypt = EntityMessage.PGP_SIGNENCRYPT;
|
|
|
|
|
else if (EntityMessage.PGP_SIGNENCRYPT.equals(encrypt))
|
|
|
|
|
encrypt = EntityMessage.PGP_SIGNONLY;
|
|
|
|
|
else
|
|
|
|
|
encrypt = EntityMessage.ENCRYPT_NONE;
|
|
|
|
|
} else {
|
|
|
|
|
if (EntityMessage.ENCRYPT_NONE.equals(encrypt) || encrypt == null)
|
|
|
|
|
encrypt = EntityMessage.SMIME_SIGNENCRYPT;
|
|
|
|
|
else if (EntityMessage.SMIME_SIGNENCRYPT.equals(encrypt))
|
|
|
|
|
encrypt = EntityMessage.SMIME_SIGNONLY;
|
|
|
|
|
else
|
|
|
|
|
encrypt = EntityMessage.ENCRYPT_NONE;
|
|
|
|
|
@Override
|
|
|
|
|
protected void onException(Bundle args, Throwable ex) {
|
|
|
|
|
Log.unexpectedError(getParentFragmentManager(), ex);
|
|
|
|
|
}
|
|
|
|
|
}.execute(FragmentCompose.this, new Bundle(), "encrypt: fix");
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.show();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
invalidateOptionsMenu();
|
|
|
|
|