From f05524810e4c05834e26baf35d71f5777e78a9c3 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Thu, 29 Dec 2016 13:12:31 +0800 Subject: [PATCH] Remove internal QR Scanner. #1021 Report to @Mygod if you have any question. :) --- build.sbt | 1 - src/main/AndroidManifest.xml | 7 - .../github/shadowsocks/ProfilesFragment.scala | 18 ++- .../github/shadowsocks/ScannerActivity.scala | 123 ------------------ 4 files changed, 17 insertions(+), 132 deletions(-) delete mode 100644 src/main/scala/com/github/shadowsocks/ScannerActivity.scala diff --git a/build.sbt b/build.sbt index 0c3fd856..d7b97e24 100644 --- a/build.sbt +++ b/build.sbt @@ -52,7 +52,6 @@ libraryDependencies ++= "dnsjava" % "dnsjava" % "2.1.7" :: "eu.chainfire" % "libsuperuser" % "1.0.0.201608240809" :: "com.google.zxing" % "android-integration" % "3.2.1" :: - "me.dm7.barcodescanner" % "zxing" % "1.9" :: "net.glxn.qrgen" % "android" % "2.0" :: Nil diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 69248f85..9cd35bea 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -5,7 +5,6 @@ - @@ -77,12 +76,6 @@ android:taskAffinity="" android:launchMode="singleTask"/> - - - startActivity(new Intent(getActivity, classOf[ScannerActivity])) + val integrator = new IntentIntegrator(this) + val list = new java.util.ArrayList(IntentIntegrator.TARGET_ALL_KNOWN) + list.add("tw.com.quickmark") + integrator.setTargetApplications(list) + integrator.initiateScan() true case R.id.action_import => if (clipboard.hasPrimaryClip) { diff --git a/src/main/scala/com/github/shadowsocks/ScannerActivity.scala b/src/main/scala/com/github/shadowsocks/ScannerActivity.scala deleted file mode 100644 index e31195b5..00000000 --- a/src/main/scala/com/github/shadowsocks/ScannerActivity.scala +++ /dev/null @@ -1,123 +0,0 @@ -/*******************************************************************************/ -/* */ -/* Copyright (C) 2016 by Max Lv */ -/* Copyright (C) 2016 by Mygod Studio */ -/* */ -/* This program is free software: you can redistribute it and/or modify */ -/* it under the terms of the GNU General Public License as published by */ -/* the Free Software Foundation, either version 3 of the License, or */ -/* (at your option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU General Public License for more details. */ -/* */ -/* You should have received a copy of the GNU General Public License */ -/* along with this program. If not, see . */ -/* */ -/*******************************************************************************/ - -package com.github.shadowsocks - -import android.app.TaskStackBuilder -import android.content.Intent -import android.content.pm.{PackageManager, ShortcutManager} -import android.os.{Build, Bundle} -import android.support.v4.app.ActivityCompat -import android.support.v4.content.ContextCompat -import android.support.v7.app.AppCompatActivity -import android.support.v7.widget.Toolbar -import android.text.TextUtils -import android.widget.Toast -import com.github.shadowsocks.ShadowsocksApplication.app -import com.github.shadowsocks.utils.Parser -import com.google.zxing.Result -import com.google.zxing.integration.android.IntentIntegrator -import me.dm7.barcodescanner.zxing.ZXingScannerView - -object ScannerActivity { - private final val MY_PERMISSIONS_REQUEST_CAMERA = 1 -} - -class ScannerActivity extends AppCompatActivity with ZXingScannerView.ResultHandler { - import ScannerActivity._ - - private var scannerView: ZXingScannerView = _ - - override def onRequestPermissionsResult(requestCode: Int, permissions: Array[String], - grantResults: Array[Int]) { - if (requestCode == MY_PERMISSIONS_REQUEST_CAMERA) { - // If request is cancelled, the result arrays are empty. - if (grantResults.length > 0 - && grantResults(0) == PackageManager.PERMISSION_GRANTED) { - scannerView.setResultHandler(this) - scannerView.startCamera() - } else { - Toast.makeText(this, R.string.add_profile_scanner_permission_required, Toast.LENGTH_SHORT).show() - finish() - } - } - } - - override def onCreate(state: Bundle) { - super.onCreate(state) - setContentView(R.layout.layout_scanner) - val toolbar = findViewById(R.id.toolbar).asInstanceOf[Toolbar] - toolbar.setTitle(getTitle) - toolbar.setNavigationIcon(R.drawable.ic_navigation_close) - toolbar.setNavigationOnClickListener(_ => finish()) - scannerView = findViewById(R.id.scanner).asInstanceOf[ZXingScannerView] - if (Build.VERSION.SDK_INT >= 25) getSystemService(classOf[ShortcutManager]).reportShortcutUsed("scan") - } - - override def onResume() { - super.onResume() - val integrator = new IntentIntegrator(ScannerActivity.this) - val list = new java.util.ArrayList(IntentIntegrator.TARGET_ALL_KNOWN) - list.add("tw.com.quickmark") - integrator.setTargetApplications(list) - val dialog = integrator.initiateScan() - if (dialog != null) { - val permissionCheck = ContextCompat.checkSelfPermission(this, - android.Manifest.permission.CAMERA) - if (permissionCheck == PackageManager.PERMISSION_GRANTED) { - scannerView.setResultHandler(this) // Register ourselves as a handler for scan results. - scannerView.startCamera() // Start camera on resume - } else { - ActivityCompat.requestPermissions(this, - Array(android.Manifest.permission.CAMERA), MY_PERMISSIONS_REQUEST_CAMERA) - } - } - } - - override def onPause() { - super.onPause() - scannerView.stopCamera() // Stop camera on pause - } - - override def onActivityResult(requestCode: Int, resultCode: Int, data: Intent) { - val scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data) - if (scanResult != null) { - val contents = scanResult.getContents - if (!TextUtils.isEmpty(contents)) - Parser.findAll(contents).foreach(app.profileManager.createProfile) - val intent = getParentActivityIntent - if (shouldUpRecreateTask(intent) || isTaskRoot) - TaskStackBuilder.create(this).addNextIntentWithParentStack(intent).startActivities() - else finish() - } else { - super.onActivityResult(resultCode, resultCode, data) - } - } - - override def handleResult(rawResult: Result) { - val uri = rawResult.getText - if (!TextUtils.isEmpty(uri)) - Parser.findAll(uri).foreach(app.profileManager.createProfile) - val intent = getParentActivityIntent - if (shouldUpRecreateTask(intent) || isTaskRoot) - TaskStackBuilder.create(this).addNextIntentWithParentStack(intent).startActivities() - else finish() - } -}