Commit d78e823c authored by Mygod's avatar Mygod

Allow user to use any QR code scanner and remove unused resources

parent 8e46be59
...@@ -8,8 +8,6 @@ ...@@ -8,8 +8,6 @@
<uses-feature android:name="android.hardware.touchscreen" <uses-feature android:name="android.hardware.touchscreen"
android:required="false"/> android:required="false"/>
<uses-feature android:name="android.hardware.camera"
android:required="false"/>
<uses-feature android:name="android.hardware.nfc" <uses-feature android:name="android.hardware.nfc"
android:required="false"/> android:required="false"/>
<uses-feature android:name="android.software.leanback" <uses-feature android:name="android.software.leanback"
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/toolbar_light_dark" />
<me.dm7.barcodescanner.zxing.ZXingScannerView android:id="@+id/scanner"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
...@@ -87,7 +87,6 @@ ...@@ -87,7 +87,6 @@
<string name="add_profile_dialog">シャドーソックスにプロファイルを追加しますか</string> <string name="add_profile_dialog">シャドーソックスにプロファイルを追加しますか</string>
<string name="add_profile_methods_scan_qr_code">QRコードを読み取る</string> <string name="add_profile_methods_scan_qr_code">QRコードを読み取る</string>
<string name="add_profile_methods_manual_settings">手動でセットアップ</string> <string name="add_profile_methods_manual_settings">手動でセットアップ</string>
<string name="add_profile_scanner_permission_required">QRコードを読み取るにはカメラの使用権限が必要です。</string>
<string-array name="route_entry"> <string-array name="route_entry">
<item>すべて</item> <item>すべて</item>
......
...@@ -108,7 +108,6 @@ ...@@ -108,7 +108,6 @@
<string name="add_profile_dialog">Добавить этот Профиль Shadowsocks?</string> <string name="add_profile_dialog">Добавить этот Профиль Shadowsocks?</string>
<string name="add_profile_methods_scan_qr_code">Сканировать QR код</string> <string name="add_profile_methods_scan_qr_code">Сканировать QR код</string>
<string name="add_profile_methods_manual_settings">Настройка вручную</string> <string name="add_profile_methods_manual_settings">Настройка вручную</string>
<string name="add_profile_scanner_permission_required">Разрешение камеры требуется для сканирования QR код.</string>
<string name="copy_url">Копировать URL</string> <string name="copy_url">Копировать URL</string>
<plurals name="removed"> <plurals name="removed">
<item quantity="one">Удалён</item> <item quantity="one">Удалён</item>
......
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
<string name="add_profile_dialog">为影梭添加此配置文件?</string> <string name="add_profile_dialog">为影梭添加此配置文件?</string>
<string name="add_profile_methods_scan_qr_code">扫描二维码</string> <string name="add_profile_methods_scan_qr_code">扫描二维码</string>
<string name="add_profile_methods_manual_settings">手动设置</string> <string name="add_profile_methods_manual_settings">手动设置</string>
<string name="add_profile_scanner_permission_required">扫描二维码需要相机权限</string> <string name="add_profile_scanner_not_installed">请安装任意兼容 ZXing 的二维码扫描应用</string>
<string-array name="route_entry"> <string-array name="route_entry">
<item>全局</item> <item>全局</item>
......
...@@ -99,7 +99,7 @@ ...@@ -99,7 +99,7 @@
<string name="add_profile_dialog">為 Shadowsocks 新增此設定檔?</string> <string name="add_profile_dialog">為 Shadowsocks 新增此設定檔?</string>
<string name="add_profile_methods_scan_qr_code">掃描 QR 碼</string> <string name="add_profile_methods_scan_qr_code">掃描 QR 碼</string>
<string name="add_profile_methods_manual_settings">手動設定</string> <string name="add_profile_methods_manual_settings">手動設定</string>
<string name="add_profile_scanner_permission_required">掃描 QR 碼需要相機權限</string> <string name="add_profile_scanner_not_installed">請安裝任何兼容 ZXing 的 QR 碼掃描應用程式</string>
<string-array name="route_entry"> <string-array name="route_entry">
<item>全域</item> <item>全域</item>
......
...@@ -127,7 +127,7 @@ ...@@ -127,7 +127,7 @@
<string name="add_profile_dialog">Add this Shadowsocks Profile?</string> <string name="add_profile_dialog">Add this Shadowsocks Profile?</string>
<string name="add_profile_methods_scan_qr_code">Scan QR code</string> <string name="add_profile_methods_scan_qr_code">Scan QR code</string>
<string name="add_profile_methods_manual_settings">Manual Settings</string> <string name="add_profile_methods_manual_settings">Manual Settings</string>
<string name="add_profile_scanner_permission_required">Camera permission is required for scanning QR code.</string> <string name="add_profile_scanner_not_installed">Please install any ZXing-compliant QR code scanning app.</string>
<string name="copy_url">Copy URL</string> <string name="copy_url">Copy URL</string>
<plurals name="removed"> <plurals name="removed">
<item quantity="one">Removed</item> <item quantity="one">Removed</item>
......
...@@ -22,7 +22,9 @@ package com.github.shadowsocks ...@@ -22,7 +22,9 @@ package com.github.shadowsocks
import java.util.GregorianCalendar import java.util.GregorianCalendar
import android.app.Activity
import android.content._ import android.content._
import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.support.v7.widget.RecyclerView.ViewHolder import android.support.v7.widget.RecyclerView.ViewHolder
import android.support.v7.widget._ import android.support.v7.widget._
...@@ -306,18 +308,23 @@ final class ProfilesFragment extends ToolbarFragment with Toolbar.OnMenuItemClic ...@@ -306,18 +308,23 @@ final class ProfilesFragment extends ToolbarFragment with Toolbar.OnMenuItemClic
} }
override def onActivityResult(requestCode: Int, resultCode: Int, data: Intent): Unit = requestCode match { 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") val contents = data.getStringExtra("SCAN_RESULT")
if (!TextUtils.isEmpty(contents)) Parser.findAll(contents).foreach(app.profileManager.createProfile) if (!TextUtils.isEmpty(contents)) Parser.findAll(contents).foreach(app.profileManager.createProfile)
}
case _ => super.onActivityResult(resultCode, resultCode, data) case _ => super.onActivityResult(resultCode, resultCode, data)
} }
def onMenuItemClick(item: MenuItem): Boolean = item.getItemId match { def onMenuItemClick(item: MenuItem): Boolean = item.getItemId match {
case R.id.action_scan_qr_code => 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) .addCategory(Intent.CATEGORY_DEFAULT)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_DOCUMENT), .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 true
case R.id.action_import => case R.id.action_import =>
if (clipboard.hasPrimaryClip) { if (clipboard.hasPrimaryClip) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment