Check if OpenKeychain is installed

This commit is contained in:
M66B 2020-06-19 20:44:19 +02:00
parent 55a3c3cbb7
commit e242938e2c
2 changed files with 14 additions and 1 deletions

View File

@ -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;
}

View File

@ -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) {