From d78e823ce2013bffc29079a0465a88f74de42ece Mon Sep 17 00:00:00 2001 From: Mygod Date: Thu, 29 Dec 2016 16:16:56 +0800 Subject: [PATCH] Allow user to use any QR code scanner and remove unused resources --- src/main/AndroidManifest.xml | 2 -- src/main/res/layout/layout_scanner.xml | 12 ------------ src/main/res/values-ja/strings.xml | 1 - src/main/res/values-ru/strings.xml | 1 - src/main/res/values-zh-rCN/strings.xml | 2 +- src/main/res/values-zh-rTW/strings.xml | 2 +- src/main/res/values/strings.xml | 2 +- .../com/github/shadowsocks/ProfilesFragment.scala | 13 ++++++++++--- 8 files changed, 13 insertions(+), 22 deletions(-) delete mode 100644 src/main/res/layout/layout_scanner.xml diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 9cd35bea..ca53db84 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -8,8 +8,6 @@ - - - - - diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml index dc8b0c07..2ac3360a 100644 --- a/src/main/res/values-ja/strings.xml +++ b/src/main/res/values-ja/strings.xml @@ -87,7 +87,6 @@ シャドーソックスにプロファイルを追加しますか QRコードを読み取る 手動でセットアップ - QRコードを読み取るにはカメラの使用権限が必要です。 すべて diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml index 9ff27f62..1c63b9b5 100644 --- a/src/main/res/values-ru/strings.xml +++ b/src/main/res/values-ru/strings.xml @@ -108,7 +108,6 @@ Добавить этот Профиль Shadowsocks? Сканировать QR код Настройка вручную - Разрешение камеры требуется для сканирования QR код. Копировать URL Удалён diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml index e61589e9..5047b896 100644 --- a/src/main/res/values-zh-rCN/strings.xml +++ b/src/main/res/values-zh-rCN/strings.xml @@ -98,7 +98,7 @@ 为影梭添加此配置文件? 扫描二维码 手动设置 - 扫描二维码需要相机权限。 + 请安装任意兼容 ZXing 的二维码扫描应用。 全局 diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml index 0a25a95e..9d97cb2c 100644 --- a/src/main/res/values-zh-rTW/strings.xml +++ b/src/main/res/values-zh-rTW/strings.xml @@ -99,7 +99,7 @@ 為 Shadowsocks 新增此設定檔? 掃描 QR 碼 手動設定 - 掃描 QR 碼需要相機權限。 + 請安裝任何兼容 ZXing 的 QR 碼掃描應用程式。 全域 diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 5757db9b..3688f22e 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -127,7 +127,7 @@ Add this Shadowsocks Profile? Scan QR code Manual Settings - Camera permission is required for scanning QR code. + Please install any ZXing-compliant QR code scanning app. Copy URL Removed diff --git a/src/main/scala/com/github/shadowsocks/ProfilesFragment.scala b/src/main/scala/com/github/shadowsocks/ProfilesFragment.scala index 5bf0b10c..26ef47ae 100644 --- a/src/main/scala/com/github/shadowsocks/ProfilesFragment.scala +++ b/src/main/scala/com/github/shadowsocks/ProfilesFragment.scala @@ -22,7 +22,9 @@ package com.github.shadowsocks import java.util.GregorianCalendar +import android.app.Activity import android.content._ +import android.net.Uri import android.os.Bundle import android.support.v7.widget.RecyclerView.ViewHolder import android.support.v7.widget._ @@ -306,18 +308,23 @@ final class ProfilesFragment extends ToolbarFragment with Toolbar.OnMenuItemClic } override def onActivityResult(requestCode: Int, resultCode: Int, data: Intent): Unit = requestCode match { - case REQUEST_SCAN_QR_CODE => + case REQUEST_SCAN_QR_CODE => if (resultCode == Activity.RESULT_OK) { val contents = data.getStringExtra("SCAN_RESULT") if (!TextUtils.isEmpty(contents)) Parser.findAll(contents).foreach(app.profileManager.createProfile) + } case _ => super.onActivityResult(resultCode, resultCode, data) } def onMenuItemClick(item: MenuItem): Boolean = item.getItemId match { case R.id.action_scan_qr_code => - startActivityForResult(new Intent("com.google.zxing.client.android.SCAN") + try startActivityForResult(new Intent("com.google.zxing.client.android.SCAN") .addCategory(Intent.CATEGORY_DEFAULT) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_DOCUMENT), - REQUEST_SCAN_QR_CODE) + REQUEST_SCAN_QR_CODE) catch { + case _: ActivityNotFoundException => + Toast.makeText(getActivity, R.string.add_profile_scanner_not_installed, Toast.LENGTH_LONG).show() + startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=tw.com.quickmark"))) + } true case R.id.action_import => if (clipboard.hasPrimaryClip) {