diff options
author | Christian Schneppe <christian@pix-art.de> | 2017-12-16 23:14:00 +0100 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2017-12-16 23:14:00 +0100 |
commit | be337e0a8e0223d56a20052136b1e774f366b22c (patch) | |
tree | 919c26b40235f3947bb3090642bff0ac4f2705fa /src/main/java/de/pixart/messenger/ui/UriHandlerActivity.java | |
parent | 37762ab5caec9aab35c3a3aeb79bc099535b2466 (diff) |
StartConversationActivity: Scan QR codes via UriHandlerActivity
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/UriHandlerActivity.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/UriHandlerActivity.java b/src/main/java/de/pixart/messenger/ui/UriHandlerActivity.java index 43d2d6db7..e43e1ccd7 100644 --- a/src/main/java/de/pixart/messenger/ui/UriHandlerActivity.java +++ b/src/main/java/de/pixart/messenger/ui/UriHandlerActivity.java @@ -4,11 +4,17 @@ import android.app.Activity; import android.content.Intent; import android.net.Uri; +import com.google.zxing.integration.android.IntentIntegrator; +import com.google.zxing.integration.android.IntentResult; + +import java.util.Arrays; + import de.pixart.messenger.persistance.DatabaseBackend; import de.pixart.messenger.utils.XmppUri; import de.pixart.messenger.xmpp.jid.Jid; public class UriHandlerActivity extends Activity { + public static final String ACTION_SCAN_QR_CODE = "scan_qr_code"; @Override public void onStart() { @@ -66,8 +72,28 @@ public class UriHandlerActivity extends Activity { case Intent.ACTION_VIEW: case Intent.ACTION_SENDTO: handleUri(data.getData()); + break; + case ACTION_SCAN_QR_CODE: + new IntentIntegrator(this).initiateScan(Arrays.asList("AZTEC", "QR_CODE")); + return; + } + + finish(); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent intent) { + if ((requestCode & 0xFFFF) == IntentIntegrator.REQUEST_CODE) { + IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, + intent); + + if (scanResult != null && scanResult.getFormatName() != null) { + String data = scanResult.getContents(); + handleUri(Uri.parse(data)); + } } finish(); + super.onActivityResult(requestCode, requestCode, intent); } }
\ No newline at end of file |