Added PGP key import button

pull/207/head
M66B 3 years ago
parent 6c4fed8a91
commit 76255b8996

@ -163,6 +163,7 @@ android {
buildConfigField "String", "GPA_URI", localProperties.getProperty("gpa.uri", "\"\"")
buildConfigField "String", "INFO_URI", localProperties.getProperty("info.uri", "\"\"")
buildConfigField "String", "DEV_DOMAIN", localProperties.getProperty("dev.domain", "\"\"")
buildConfigField "String", "FDROID", "\"https://f-droid.org/packages/%s/\""
}
fdroid {
dimension "all"
@ -179,6 +180,7 @@ android {
buildConfigField "String", "GPA_URI", "\"\""
buildConfigField "String", "INFO_URI", "\"\""
buildConfigField "String", "DEV_DOMAIN", "\"\""
buildConfigField "String", "FDROID", "\"https://f-droid.org/packages/%s/\""
}
play {
dimension "all"
@ -196,6 +198,7 @@ android {
buildConfigField "String", "GPA_URI", "\"\""
buildConfigField "String", "INFO_URI", "\"\""
buildConfigField "String", "DEV_DOMAIN", "\"\""
buildConfigField "String", "FDROID", "\"\""
}
amazon {
dimension "all"
@ -213,6 +216,7 @@ android {
buildConfigField "String", "GPA_URI", "\"\""
buildConfigField "String", "INFO_URI", "\"\""
buildConfigField "String", "DEV_DOMAIN", "\"\""
buildConfigField "String", "FDROID", "\"\""
}
}

@ -94,6 +94,7 @@ public class FragmentOptionsEncryption extends FragmentBase
private SwitchCompat swAutocrypt;
private SwitchCompat swAutocryptMutual;
private SwitchCompat swEncryptSubject;
private Button btnImportPgp;
private Spinner spSignAlgoSmime;
private Spinner spEncryptAlgoSmime;
@ -142,6 +143,7 @@ public class FragmentOptionsEncryption extends FragmentBase
swAutocrypt = view.findViewById(R.id.swAutocrypt);
swAutocryptMutual = view.findViewById(R.id.swAutocryptMutual);
swEncryptSubject = view.findViewById(R.id.swEncryptSubject);
btnImportPgp = view.findViewById(R.id.btnImportPgp);
spSignAlgoSmime = view.findViewById(R.id.spSignAlgoSmime);
spEncryptAlgoSmime = view.findViewById(R.id.spEncryptAlgoSmime);
@ -287,6 +289,24 @@ public class FragmentOptionsEncryption extends FragmentBase
}
});
btnImportPgp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String provider = prefs.getString("openpgp_provider", Helper.PGP_OPENKEYCHAIN_PACKAGE);
PackageManager pm = v.getContext().getPackageManager();
Intent intent = pm.getLaunchIntentForPackage(provider);
if (intent == null)
if (TextUtils.isEmpty(BuildConfig.FDROID))
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + provider));
else
intent = new Intent(Intent.ACTION_VIEW, Uri.parse(String.format(BuildConfig.FDROID, provider)));
else
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
v.getContext().startActivity(intent);
}
});
// S/MIME
spSignAlgoSmime.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@ -585,7 +605,7 @@ public class FragmentOptionsEncryption extends FragmentBase
swAutoDecrypt.setChecked(prefs.getBoolean("auto_decrypt", false));
swAutoUndoDecrypt.setChecked(prefs.getBoolean("auto_undecrypt", false));
String provider = prefs.getString("openpgp_provider", "org.sufficientlysecure.keychain");
String provider = prefs.getString("openpgp_provider", Helper.PGP_OPENKEYCHAIN_PACKAGE);
spOpenPgp.setTag(provider);
for (int pos = 0; pos < openPgpProvider.size(); pos++)
if (provider.equals(openPgpProvider.get(pos))) {

@ -175,6 +175,7 @@ public class Helper {
static final int AUTOLOCK_GRACE = 7; // seconds
static final long PIN_FAILURE_DELAY = 3; // seconds
static final String PGP_OPENKEYCHAIN_PACKAGE = "org.sufficientlysecure.keychain";
static final String PGP_BEGIN_MESSAGE = "-----BEGIN PGP MESSAGE-----";
static final String PGP_END_MESSAGE = "-----END PGP MESSAGE-----";
@ -535,7 +536,7 @@ public class Helper {
static String getOpenKeychainPackage(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
return prefs.getString("openpgp_provider", "org.sufficientlysecure.keychain");
return prefs.getString("openpgp_provider", Helper.PGP_OPENKEYCHAIN_PACKAGE);
}
static boolean isOpenKeychainInstalled(Context context) {

@ -243,6 +243,18 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swAutocryptMutual"
app:switchPadding="12dp" />
<Button
android:id="@+id/btnImportPgp"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:drawableEnd="@drawable/twotone_add_24"
android:drawablePadding="6dp"
android:text="@string/title_advanced_import_pgp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swEncryptSubject" />
</eu.faircode.email.ConstraintLayoutEx>
</androidx.cardview.widget.CardView>

@ -670,10 +670,13 @@
<string name="title_advanced_encrypt_default">Encrypt by default</string>
<string name="title_advanced_auto_decrypt">Automatically decrypt messages</string>
<string name="title_advanced_auto_undo_decrypt">Undo decryption on closing conversation</string>
<string name="title_advanced_openpgp">OpenPGP provider</string>
<string name="title_advanced_autocrypt">Use Autocrypt</string>
<string name="title_advanced_autocrypt_mutual">Autocrypt mutual mode</string>
<string name="title_advanced_encrypt_subject">Encrypt subject</string>
<string name="title_advanced_import_pgp">Import key</string>
<string name="title_advanced_sign_algo">Signature algorithm</string>
<string name="title_advanced_encrypt_algo">Encryption algorithm</string>
<string name="title_advanced_remark_algo">
@ -689,6 +692,7 @@
This will open to the Android security settings.
Keys and certificates can generally be found under Advanced - Encryption and credentials.
</string>
<string name="title_advanced_aes_key_size" translatable="false">Max AES key size: %1$s</string>
<string name="title_advanced_power_menu">Add actions to the Android power menu</string>

Loading…
Cancel
Save