From a537a7fc0a0ca339e53936f49e49088eddd8762d Mon Sep 17 00:00:00 2001 From: Max Lv Date: Mon, 27 Jun 2016 15:54:22 +0800 Subject: [PATCH] Integrate a Barcode Scanner --- build.sbt | 4 ++-- project/plugins.sbt | 2 +- src/main/AndroidManifest.xml | 10 ++++++++++ .../shadowsocks/ProfileManagerActivity.scala | 19 ++++++++++--------- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/build.sbt b/build.sbt index f09a917b..1cceb2e5 100644 --- a/build.sbt +++ b/build.sbt @@ -30,7 +30,6 @@ libraryDependencies ++= Seq( "dnsjava" % "dnsjava" % "2.1.7", "com.github.kevinsawicki" % "http-request" % "6.0", "eu.chainfire" % "libsuperuser" % "1.0.0.201602271131", - "com.google.zxing" % "android-integration" % "3.2.1", "net.glxn.qrgen" % "android" % "2.0", "com.google.android.gms" % "play-services-base" % "9.0.2", "com.google.android.gms" % "play-services-ads" % "9.0.2", @@ -42,7 +41,8 @@ libraryDependencies ++= Seq( "com.j256.ormlite" % "ormlite-core" % "4.48", "com.j256.ormlite" % "ormlite-android" % "4.48", "com.twofortyfouram" % "android-plugin-api-for-locale" % "1.0.2", - "com.github.clans" % "fab" % "1.6.4" + "com.github.clans" % "fab" % "1.6.4", + "me.dm7.barcodescanner" % "zxing" % "1.8.4" ) proguardVersion in Android := "5.2.1" diff --git a/project/plugins.sbt b/project/plugins.sbt index dd637030..cbd39814 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,3 +1,3 @@ -addSbtPlugin("org.scala-android" % "sbt-android" % "1.6.4") +addSbtPlugin("org.scala-android" % "sbt-android" % "1.6.5") addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.1.10") diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index b95b5d23..24a8a124 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -7,6 +7,7 @@ + @@ -83,10 +85,18 @@ + + menu.toggle(false) - val integrator = new IntentIntegrator(ProfileManagerActivity.this) - val list = new java.util.ArrayList(IntentIntegrator.TARGET_ALL_KNOWN) - list.add("tw.com.quickmark") - integrator.setTargetApplications(list) - integrator.initiateScan() + val intent = new Intent(this, classOf[ScannerActivity]) + startActivityForResult(intent, REQUEST_QRCODE) case R.id.fab_nfc_add => menu.toggle(true) val dialog = new AlertDialog.Builder(ProfileManagerActivity.this) @@ -371,9 +373,8 @@ final class ProfileManagerActivity extends AppCompatActivity with OnMenuItemClic } override def onActivityResult(requestCode: Int, resultCode: Int, data: Intent) { - val scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data) - if (scanResult != null) { - val contents = scanResult.getContents + if (requestCode == REQUEST_QRCODE && resultCode == Activity.RESULT_OK) { + val contents = data.getStringExtra("uri") if (!TextUtils.isEmpty(contents)) Parser.findAll(contents).foreach(app.profileManager.createProfile) }