aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2016-03-02 15:12:14 +0100
committerVincent Breitmoser <valodim@mugenguild.com>2016-03-02 15:12:14 +0100
commitc7761d09cbd5a148d16760afeddefb89ee469364 (patch)
tree06e96e97703fc26aded60df422e562ce71d30167
parent2e69952326a034bb9f1bdba4573adc9af9be3c2b (diff)
downloadopen-keychain-c7761d09cbd5a148d16760afeddefb89ee469364.tar.gz
open-keychain-c7761d09cbd5a148d16760afeddefb89ee469364.tar.bz2
open-keychain-c7761d09cbd5a148d16760afeddefb89ee469364.zip
handle openpgp4fpr intent filter as import rather than certify (see #1661)
-rw-r--r--OpenKeychain/src/main/AndroidManifest.xml32
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java5
2 files changed, 21 insertions, 16 deletions
diff --git a/OpenKeychain/src/main/AndroidManifest.xml b/OpenKeychain/src/main/AndroidManifest.xml
index ee21c19ba..771f1b2e9 100644
--- a/OpenKeychain/src/main/AndroidManifest.xml
+++ b/OpenKeychain/src/main/AndroidManifest.xml
@@ -503,21 +503,6 @@
android:theme="@style/Theme.Keychain.Transparent"
android:windowSoftInputMode="stateHidden">
- <!-- VIEW with fingerprint scheme:
- Handle URIs with fingerprints when scanning directly from Barcode Scanner -->
- <intent-filter android:label="@string/intent_import_key">
- <action android:name="android.intent.action.VIEW" />
-
- <category android:name="android.intent.category.BROWSABLE" />
- <category android:name="android.intent.category.DEFAULT" />
-
- <!-- Android's scheme matcher is case-sensitive, so include most likely variations -->
- <data android:scheme="openpgp4fpr" />
- <data android:scheme="OPENPGP4FPR" />
- <data android:scheme="OpenPGP4FPR" />
- <data android:scheme="OpenPGP4Fpr" />
- <data android:scheme="OpenPGP4fpr" />
- </intent-filter>
<!-- IMPORT_KEY without mimeType to allow import with extras Bundle -->
<intent-filter android:label="@string/intent_import_key">
<action android:name="org.sufficientlysecure.keychain.action.IMPORT_KEY_FROM_QR_CODE" />
@@ -730,6 +715,23 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
+
+ <!-- VIEW with fingerprint scheme:
+ Handle URIs with fingerprints when scanning directly from Barcode Scanner -->
+ <intent-filter android:label="@string/intent_import_key">
+ <action android:name="android.intent.action.VIEW" />
+
+ <category android:name="android.intent.category.BROWSABLE" />
+ <category android:name="android.intent.category.DEFAULT" />
+
+ <!-- Android's scheme matcher is case-sensitive, so include most likely variations -->
+ <data android:scheme="openpgp4fpr" />
+ <data android:scheme="OPENPGP4FPR" />
+ <data android:scheme="OpenPGP4FPR" />
+ <data android:scheme="OpenPGP4Fpr" />
+ <data android:scheme="OpenPGP4fpr" />
+ </intent-filter>
+
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ui.MainActivity" />
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
index f67c6a724..72e42eec3 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
@@ -131,8 +131,11 @@ public class ImportKeysActivity extends BaseActivity
if (Intent.ACTION_VIEW.equals(action)) {
if (FacebookKeyserver.isFacebookHost(dataUri)) {
action = ACTION_IMPORT_KEY_FROM_FACEBOOK;
- } else if ("http".equals(scheme) || "https".equals(scheme)) {
+ } else if ("http".equalsIgnoreCase(scheme) || "https".equalsIgnoreCase(scheme)) {
action = ACTION_SEARCH_KEYSERVER_FROM_URL;
+ } else if ("openpgp4fpr".equalsIgnoreCase(scheme)) {
+ action = ACTION_IMPORT_KEY_FROM_KEYSERVER;
+ extras.putString(EXTRA_FINGERPRINT, dataUri.getSchemeSpecificPart());
} else {
// Android's Action when opening file associated to Keychain (see AndroidManifest.xml)
// delegate action to ACTION_IMPORT_KEY