Check if OpenKeychain is installed

pull/182/head
M66B 4 years ago
parent 55a3c3cbb7
commit e242938e2c

@ -3377,7 +3377,7 @@ public class FragmentCompose extends FragmentBase {
// Encryption
if (ref.ui_encrypt != null && !EntityMessage.ENCRYPT_NONE.equals(ref.ui_encrypt)) {
if (ActivityBilling.isPro(context))
if (ActivityBilling.isPro(context) && Helper.isOpenKeychainInstalled(context))
data.draft.ui_encrypt = ref.ui_encrypt;
}

@ -92,6 +92,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import org.jetbrains.annotations.NotNull;
import org.openintents.openpgp.util.OpenPgpApi;
import java.io.ByteArrayOutputStream;
import java.io.File;
@ -408,6 +409,18 @@ public class Helper {
return (biometrics || !TextUtils.isEmpty(pin));
}
static boolean isOpenKeychainInstalled(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String provider = prefs.getString("openpgp_provider", "org.sufficientlysecure.keychain");
PackageManager pm = context.getPackageManager();
Intent intent = new Intent(OpenPgpApi.SERVICE_INTENT_2);
intent.setPackage(provider);
List<ResolveInfo> ris = pm.queryIntentServices(intent, 0);
return (ris.size() > 0);
}
// View
static Intent getChooser(Context context, Intent intent) {

Loading…
Cancel
Save