Made encryption a pro feature

This commit is contained in:
M66B 2018-10-29 11:31:45 +00:00
parent 90fb39f43e
commit 293ba7ebe6
3 changed files with 46 additions and 23 deletions

View File

@ -23,11 +23,13 @@ import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.MenuItem;
import java.util.ArrayList; import java.util.ArrayList;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction; import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.Lifecycle;
public class ActivityCompose extends ActivityBilling implements FragmentManager.OnBackStackChangedListener { public class ActivityCompose extends ActivityBilling implements FragmentManager.OnBackStackChangedListener {
static final int REQUEST_CONTACT_TO = 1; static final int REQUEST_CONTACT_TO = 1;
@ -125,4 +127,16 @@ public class ActivityCompose extends ActivityBilling implements FragmentManager.
if (getSupportFragmentManager().getBackStackEntryCount() == 0) if (getSupportFragmentManager().getBackStackEntryCount() == 0)
finish(); finish();
} }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED))
getSupportFragmentManager().popBackStack();
return true;
default:
return false;
}
}
} }

View File

@ -898,12 +898,15 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
} }
private void onDecrypt(Intent intent) { private void onDecrypt(Intent intent) {
Intent data = new Intent(); if (Helper.isPro(this)) {
data.setAction(OpenPgpApi.ACTION_DECRYPT_VERIFY); Intent data = new Intent();
data.putExtra(OpenPgpApi.EXTRA_USER_IDS, new String[]{intent.getStringExtra("to")}); data.setAction(OpenPgpApi.ACTION_DECRYPT_VERIFY);
data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true); data.putExtra(OpenPgpApi.EXTRA_USER_IDS, new String[]{intent.getStringExtra("to")});
data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true);
decrypt(data, intent.getLongExtra("id", -1)); decrypt(data, intent.getLongExtra("id", -1));
} else
onShowPro(intent);
} }
private void onShowPro(Intent intent) { private void onShowPro(Intent intent) {

View File

@ -488,27 +488,33 @@ public class FragmentCompose extends FragmentEx {
} }
private void onEncrypt() { private void onEncrypt() {
try { if (Helper.isPro(getContext()))
String to = etTo.getText().toString(); try {
InternetAddress ato[] = (TextUtils.isEmpty(to) ? new InternetAddress[0] : InternetAddress.parse(to)); String to = etTo.getText().toString();
if (ato.length == 0) InternetAddress ato[] = (TextUtils.isEmpty(to) ? new InternetAddress[0] : InternetAddress.parse(to));
throw new IllegalArgumentException(getString(R.string.title_to_missing)); if (ato.length == 0)
throw new IllegalArgumentException(getString(R.string.title_to_missing));
String[] tos = new String[ato.length]; String[] tos = new String[ato.length];
for (int i = 0; i < ato.length; i++) for (int i = 0; i < ato.length; i++)
tos[i] = ato[i].getAddress(); tos[i] = ato[i].getAddress();
Intent data = new Intent(); Intent data = new Intent();
data.setAction(OpenPgpApi.ACTION_SIGN_AND_ENCRYPT); data.setAction(OpenPgpApi.ACTION_SIGN_AND_ENCRYPT);
data.putExtra(OpenPgpApi.EXTRA_USER_IDS, tos); data.putExtra(OpenPgpApi.EXTRA_USER_IDS, tos);
data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true); data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true);
encrypt(data); encrypt(data);
} catch (Throwable ex) { } catch (Throwable ex) {
if (ex instanceof IllegalArgumentException) if (ex instanceof IllegalArgumentException)
Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show(); Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show();
else else
Helper.unexpectedError(getContext(), ex); Helper.unexpectedError(getContext(), ex);
}
else {
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro");
fragmentTransaction.commit();
} }
} }