|
@ -367,6 +367,14 @@ public class FragmentCompose extends FragmentEx { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void onResume() { |
|
|
|
|
|
super.onResume(); |
|
|
|
|
|
|
|
|
|
|
|
if (!pgpService.isBound()) |
|
|
|
|
|
pgpService.bindToService(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void onPause() { |
|
|
public void onPause() { |
|
|
if (autosave) |
|
|
if (autosave) |
|
@ -488,30 +496,42 @@ public class FragmentCompose extends FragmentEx { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void onEncrypt() { |
|
|
private void onEncrypt() { |
|
|
if (Helper.isPro(getContext())) |
|
|
|
|
|
try { |
|
|
|
|
|
String to = etTo.getText().toString(); |
|
|
|
|
|
InternetAddress ato[] = (TextUtils.isEmpty(to) ? new InternetAddress[0] : InternetAddress.parse(to)); |
|
|
|
|
|
if (ato.length == 0) |
|
|
|
|
|
throw new IllegalArgumentException(getString(R.string.title_to_missing)); |
|
|
|
|
|
|
|
|
|
|
|
String[] tos = new String[ato.length]; |
|
|
|
|
|
for (int i = 0; i < ato.length; i++) |
|
|
|
|
|
tos[i] = ato[i].getAddress(); |
|
|
|
|
|
|
|
|
|
|
|
Intent data = new Intent(); |
|
|
|
|
|
data.setAction(OpenPgpApi.ACTION_SIGN_AND_ENCRYPT); |
|
|
|
|
|
data.putExtra(OpenPgpApi.EXTRA_USER_IDS, tos); |
|
|
|
|
|
data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true); |
|
|
|
|
|
|
|
|
|
|
|
encrypt(data); |
|
|
|
|
|
} catch (Throwable ex) { |
|
|
|
|
|
if (ex instanceof IllegalArgumentException) |
|
|
|
|
|
Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show(); |
|
|
|
|
|
else |
|
|
|
|
|
Helper.unexpectedError(getContext(), ex); |
|
|
|
|
|
|
|
|
if (Helper.isPro(getContext())) { |
|
|
|
|
|
if (pgpService.isBound()) |
|
|
|
|
|
try { |
|
|
|
|
|
String to = etTo.getText().toString(); |
|
|
|
|
|
InternetAddress ato[] = (TextUtils.isEmpty(to) ? new InternetAddress[0] : InternetAddress.parse(to)); |
|
|
|
|
|
if (ato.length == 0) |
|
|
|
|
|
throw new IllegalArgumentException(getString(R.string.title_to_missing)); |
|
|
|
|
|
|
|
|
|
|
|
String[] tos = new String[ato.length]; |
|
|
|
|
|
for (int i = 0; i < ato.length; i++) |
|
|
|
|
|
tos[i] = ato[i].getAddress(); |
|
|
|
|
|
|
|
|
|
|
|
Intent data = new Intent(); |
|
|
|
|
|
data.setAction(OpenPgpApi.ACTION_SIGN_AND_ENCRYPT); |
|
|
|
|
|
data.putExtra(OpenPgpApi.EXTRA_USER_IDS, tos); |
|
|
|
|
|
data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true); |
|
|
|
|
|
|
|
|
|
|
|
encrypt(data); |
|
|
|
|
|
} catch (Throwable ex) { |
|
|
|
|
|
if (ex instanceof IllegalArgumentException) |
|
|
|
|
|
Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show(); |
|
|
|
|
|
else |
|
|
|
|
|
Helper.unexpectedError(getContext(), ex); |
|
|
|
|
|
} |
|
|
|
|
|
else { |
|
|
|
|
|
Snackbar snackbar = Snackbar.make(view, R.string.title_no_openpgp, Snackbar.LENGTH_LONG); |
|
|
|
|
|
if (Helper.getIntentOpenKeychain().resolveActivity(getContext().getPackageManager()) != null) |
|
|
|
|
|
snackbar.setAction(R.string.title_fix, new View.OnClickListener() { |
|
|
|
|
|
@Override |
|
|
|
|
|
public void onClick(View v) { |
|
|
|
|
|
startActivity(Helper.getIntentOpenKeychain()); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
snackbar.show(); |
|
|
} |
|
|
} |
|
|
else { |
|
|
|
|
|
|
|
|
} else { |
|
|
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); |
|
|
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); |
|
|
fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro"); |
|
|
fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro"); |
|
|
fragmentTransaction.commit(); |
|
|
fragmentTransaction.commit(); |
|
@ -530,9 +550,6 @@ public class FragmentCompose extends FragmentEx { |
|
|
long id = args.getLong("id"); |
|
|
long id = args.getLong("id"); |
|
|
Intent data = args.getParcelable("data"); |
|
|
Intent data = args.getParcelable("data"); |
|
|
|
|
|
|
|
|
if (!pgpService.isBound()) |
|
|
|
|
|
throw new IllegalArgumentException(getString(R.string.title_no_openpgp)); |
|
|
|
|
|
|
|
|
|
|
|
DB db = DB.getInstance(context); |
|
|
DB db = DB.getInstance(context); |
|
|
|
|
|
|
|
|
// Get attachments |
|
|
// Get attachments |
|
|