aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-02-01 22:51:07 +0100
committerDominik Schürmann <dominik@dominikschuermann.de>2014-02-01 22:51:07 +0100
commit1b0b76135244a0f0dcaac5a282ace85e65925756 (patch)
tree548b130f0e95873cccb7d60ceefe351bab1ff840 /OpenPGP-Keychain
parent20af0d3b2e3d9a0d44750828c41fc72881468fe3 (diff)
downloadopen-keychain-1b0b76135244a0f0dcaac5a282ace85e65925756.tar.gz
open-keychain-1b0b76135244a0f0dcaac5a282ace85e65925756.tar.bz2
open-keychain-1b0b76135244a0f0dcaac5a282ace85e65925756.zip
Fix scanning of fingerprint qr code, whole qr code scanning still broken
Diffstat (limited to 'OpenPGP-Keychain')
-rw-r--r--OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java44
-rw-r--r--OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java9
-rw-r--r--OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java9
3 files changed, 34 insertions, 28 deletions
diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
index bf534012f..52883749e 100644
--- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
+++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
@@ -121,39 +121,30 @@ public class ImportKeysActivity extends DrawerActivity implements OnNavigationLi
extras = new Bundle();
}
- /**
- * Android Standard Actions
- */
if (Intent.ACTION_VIEW.equals(action)) {
// Android's Action when opening file associated to Keychain (see AndroidManifest.xml)
// override action to delegate it to Keychain's ACTION_IMPORT_KEY
action = ACTION_IMPORT_KEY;
}
- /**
- * Scanning a fingerprint directly with Barcode Scanner
- */
if (scheme != null && scheme.toLowerCase(Locale.ENGLISH).equals(Constants.FINGERPRINT_SCHEME)) {
+ /* Scanning a fingerprint directly with Barcode Scanner */
getSupportActionBar().setSelectedNavigationItem(0);
loadFragment(ImportKeysQrCodeFragment.class, null, mNavigationStrings[0]);
loadFromFingerprintUri(dataUri);
- }
-
- /**
- * Keychain's own Actions
- */
- if (ACTION_IMPORT_KEY.equals(action)) {
+ } else if (ACTION_IMPORT_KEY.equals(action)) {
+ /* Keychain's own Actions */
getSupportActionBar().setSelectedNavigationItem(1);
loadFragment(ImportKeysFileFragment.class, null, mNavigationStrings[1]);
if (dataUri != null) {
// directly load data
- startListFragment(savedInstanceState, null, dataUri);
+ startListFragment(savedInstanceState, null, dataUri, null);
} else if (extras.containsKey(EXTRA_KEY_BYTES)) {
byte[] importData = intent.getByteArrayExtra(EXTRA_KEY_BYTES);
// directly load data
- startListFragment(savedInstanceState, importData, null);
+ startListFragment(savedInstanceState, importData, null, null);
}
} else if (ACTION_IMPORT_KEY_FROM_KEYSERVER.equals(action)) {
String query = null;
@@ -179,9 +170,11 @@ public class ImportKeysActivity extends DrawerActivity implements OnNavigationLi
Bundle args = new Bundle();
args.putString(ImportKeysServerFragment.ARG_QUERY, query);
loadFragment(ImportKeysServerFragment.class, args, mNavigationStrings[0]);
+
+ startListFragment(savedInstanceState, null, null, query);
} else {
// Other actions
- startListFragment(savedInstanceState, null, null);
+ startListFragment(savedInstanceState, null, null, null);
if (ACTION_IMPORT_KEY_FROM_FILE.equals(action)) {
getSupportActionBar().setSelectedNavigationItem(1);
@@ -197,7 +190,7 @@ public class ImportKeysActivity extends DrawerActivity implements OnNavigationLi
}
}
- private void startListFragment(Bundle savedInstanceState, byte[] bytes, Uri dataUri) {
+ private void startListFragment(Bundle savedInstanceState, byte[] bytes, Uri dataUri, String serverQuery) {
// Check that the activity is using the layout version with
// the fragment_container FrameLayout
if (findViewById(R.id.import_keys_list_container) != null) {
@@ -210,7 +203,7 @@ public class ImportKeysActivity extends DrawerActivity implements OnNavigationLi
}
// Create an instance of the fragment
- mListFragment = ImportKeysListFragment.newInstance(bytes, dataUri, null);
+ mListFragment = ImportKeysListFragment.newInstance(bytes, dataUri, serverQuery);
// Add the fragment to the 'fragment_container' FrameLayout
// NOTE: We use commitAllowingStateLoss() to prevent weird crashes!
@@ -270,14 +263,19 @@ public class ImportKeysActivity extends DrawerActivity implements OnNavigationLi
return;
}
- Intent queryIntent = new Intent(this, ImportKeysActivity.class);
- queryIntent.setAction(ImportKeysActivity.ACTION_IMPORT_KEY_FROM_KEYSERVER);
- queryIntent.putExtra(ImportKeysActivity.EXTRA_FINGERPRINT, fingerprint);
- startActivity(queryIntent);
+ String query = "0x" + fingerprint;
+
+ // search directly
+ getSupportActionBar().setSelectedNavigationItem(0);
+ Bundle args = new Bundle();
+ args.putString(ImportKeysServerFragment.ARG_QUERY, query);
+ loadFragment(ImportKeysServerFragment.class, args, mNavigationStrings[0]);
+
+ startListFragment(null, null, null, query);
}
- public void loadCallback(byte[] importData, Uri dataUri, String serverQuery, String keyserver) {
- mListFragment.loadNew(importData, dataUri, serverQuery, keyserver);
+ public void loadCallback(byte[] importData, Uri dataUri, String serverQuery, String keyServer) {
+ mListFragment.loadNew(importData, dataUri, serverQuery, keyServer);
}
// private void importAndSignOld(final long keyId, final String expectedFingerprint) {
diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java
index ea9f507db..3006b0820 100644
--- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java
+++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java
@@ -26,6 +26,7 @@ import java.util.List;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
+import org.sufficientlysecure.keychain.helper.Preferences;
import org.sufficientlysecure.keychain.ui.adapter.ImportKeysAdapter;
import org.sufficientlysecure.keychain.ui.adapter.ImportKeysListEntry;
import org.sufficientlysecure.keychain.ui.adapter.ImportKeysListLoader;
@@ -122,6 +123,10 @@ public class ImportKeysListFragment extends SherlockListFragment implements
mKeyBytes = getArguments().getByteArray(ARG_BYTES);
mServerQuery = getArguments().getString(ARG_SERVER_QUERY);
+ // TODO: this is used when scanning QR Code. Currently it simply uses key server nr 0
+ mKeyServer = Preferences.getPreferences(getActivity())
+ .getKeyServers()[0];
+
if (mDataUri != null || mKeyBytes != null) {
// Start out with a progress indicator.
setListShown(false);
@@ -155,8 +160,8 @@ public class ImportKeysListFragment extends SherlockListFragment implements
mAdapter.notifyDataSetChanged();
}
- public void loadNew(byte[] importData, Uri dataUri, String serverQuery, String keyServer) {
- mKeyBytes = importData;
+ public void loadNew(byte[] keyBytes, Uri dataUri, String serverQuery, String keyServer) {
+ mKeyBytes = keyBytes;
mDataUri = dataUri;
mServerQuery = serverQuery;
mKeyServer = keyServer;
diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java
index da0033083..2e0956d8b 100644
--- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java
+++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java
@@ -17,8 +17,10 @@
package org.sufficientlysecure.keychain.ui;
+import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.helper.Preferences;
+import org.sufficientlysecure.keychain.util.Log;
import android.content.Context;
import android.os.Bundle;
@@ -124,10 +126,10 @@ public class ImportKeysServerFragment extends Fragment {
mImportActivity = (ImportKeysActivity) getActivity();
- // if query has been set on instantiation, search immediately!
+ // set displayed values
if (getArguments() != null && getArguments().containsKey(ARG_QUERY)) {
String query = getArguments().getString(ARG_QUERY);
- mQueryEditText.setText(query);
+ mQueryEditText.setText(query, TextView.BufferType.EDITABLE);
String keyServer = null;
if (getArguments().containsKey(ARG_KEY_SERVER)) {
@@ -138,7 +140,8 @@ public class ImportKeysServerFragment extends Fragment {
keyServer = (String) mServerSpinner.getSelectedItem();
}
- search(query, keyServer);
+ Log.d(Constants.TAG, "query: " + query);
+ Log.d(Constants.TAG, "keyServer: " + keyServer);
}
}