aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui
diff options
context:
space:
mode:
authorNikita Mikhailov <nikita.s.mikhailov@gmail.com>2016-04-15 00:13:33 +0600
committerNikita Mikhailov <nikita.s.mikhailov@gmail.com>2016-04-15 01:54:09 +0600
commit263799ec965669ab027db6b1ad62a26fd6af3bac (patch)
tree22597cb0cc153940eb4d1a160ea433db1a28da8b /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui
parent784bf2322cc37befb4857f0c440f889d43f89a48 (diff)
downloadopen-keychain-263799ec965669ab027db6b1ad62a26fd6af3bac.tar.gz
open-keychain-263799ec965669ab027db6b1ad62a26fd6af3bac.tar.bz2
open-keychain-263799ec965669ab027db6b1ad62a26fd6af3bac.zip
OTG: Fix connection issues
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseSecurityTokenNfcActivity.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseSecurityTokenNfcActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseSecurityTokenNfcActivity.java
index 4aaf2aba0..dbb234977 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseSecurityTokenNfcActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseSecurityTokenNfcActivity.java
@@ -22,8 +22,11 @@
package org.sufficientlysecure.keychain.ui.base;
import android.app.Activity;
+import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.hardware.usb.UsbDevice;
+import android.hardware.usb.UsbManager;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.nfc.TagLostException;
@@ -142,12 +145,13 @@ public abstract class BaseSecurityTokenNfcActivity extends BaseActivity
securityTokenDiscovered(new NfcTransport(tag));
}
- public void usbDeviceDiscovered(final UsbTransport transport) {
+ public void usbDeviceDiscovered(final UsbDevice usbDevice) {
// Actual USB operations are executed in doInBackground to not block the UI thread
if (!mTagHandlingEnabled)
return;
- securityTokenDiscovered(transport);
+ UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
+ securityTokenDiscovered(new UsbTransport(usbDevice, usbManager));
}
public void securityTokenDiscovered(final Transport transport) {
@@ -401,7 +405,8 @@ public abstract class BaseSecurityTokenNfcActivity extends BaseActivity
protected void handleSmartcard(Transport transport) throws IOException {
// Don't reconnect if device was already connected
- if (!(mSecurityTokenHelper.isConnected()
+ if (!(mSecurityTokenHelper.isPersistentConnectionAllowed()
+ && mSecurityTokenHelper.isConnected()
&& mSecurityTokenHelper.getTransport().equals(transport))) {
mSecurityTokenHelper.setTransport(transport);
mSecurityTokenHelper.connectToDevice();
@@ -477,7 +482,7 @@ public abstract class BaseSecurityTokenNfcActivity extends BaseActivity
* Run smartcard routines if last used token is connected and supports
* persistent connections
*/
- protected void checkDeviceConnection() {
+ public void checkDeviceConnection() {
mUsbDispatcher.rescanDevices();
}
}