Skip to content

Commit

Permalink
Add Assets From QRcode (#3933)
Browse files Browse the repository at this point in the history
Add Capability to Import Geo Assets From QRcode
  • Loading branch information
Chocolate4U authored Nov 13, 2024
1 parent 44723c5 commit bbf0b05
Show file tree
Hide file tree
Showing 11 changed files with 61 additions and 4 deletions.
35 changes: 35 additions & 0 deletions V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/UserAssetActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ class UserAssetActivity : BaseActivity() {
override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) {
R.id.add_file -> showFileChooser().let { true }
R.id.add_url -> startActivity(Intent(this, UserAssetUrlActivity::class.java)).let { true }
R.id.add_qrcode -> importAssetFromQRcode().let { true }
R.id.download_file -> downloadGeoFiles().let { true }
else -> super.onOptionsItemSelected(item)
}
Expand Down Expand Up @@ -156,6 +157,40 @@ class UserAssetActivity : BaseActivity() {
null
}

private fun importAssetFromQRcode(): Boolean {
RxPermissions(this)
.request(Manifest.permission.CAMERA)
.subscribe {
if (it)
scanQRCodeForAssetURL.launch(Intent(this, ScannerActivity::class.java))
else
toast(R.string.toast_permission_denied)
}
return true
}

private val scanQRCodeForAssetURL = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
if (it.resultCode == RESULT_OK) {
importAsset(it.data?.getStringExtra("SCAN_RESULT"))
}
}

private fun importAsset(url: String?): Boolean {
try {
if (!Utils.isValidUrl(url)) {
toast(R.string.toast_invalid_url)
return false
}
// Send URL to UserAssetUrlActivity for Processing
startActivity(Intent(this, UserAssetUrlActivity::class.java)
.putExtra(UserAssetUrlActivity.ASSET_URL_QRCODE, url))
} catch (e: Exception) {
e.printStackTrace()
return false
}
return true
}

private fun downloadGeoFiles() {
val dialog = AlertDialog.Builder(this)
.setView(LayoutProgressBinding.inflate(layoutInflater).root)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ import com.v2ray.ang.util.Utils
import java.io.File

class UserAssetUrlActivity : BaseActivity() {
// Receive QRcode URL from UserAssetActivity
companion object {
const val ASSET_URL_QRCODE = "ASSET_URL_QRCODE"
}

private val binding by lazy { ActivityUserAssetUrlBinding.inflate(layoutInflater) }

var del_config: MenuItem? = null
Expand All @@ -28,10 +33,15 @@ class UserAssetUrlActivity : BaseActivity() {
title = getString(R.string.title_user_asset_add_url)

val assetItem = MmkvManager.decodeAsset(editAssetId)
if (assetItem != null) {
bindingAsset(assetItem)
} else {
clearAsset()
val assetUrlQrcode = intent.getStringExtra(ASSET_URL_QRCODE)
val assetNameQrcode = File(assetUrlQrcode.toString()).name
when {
assetItem != null -> bindingAsset(assetItem)
assetUrlQrcode != null -> {
binding.etRemarks.setText(assetNameQrcode)
binding.etUrl.setText(assetUrlQrcode)
}
else -> clearAsset()
}
}

Expand Down
4 changes: 4 additions & 0 deletions V2rayNG/app/src/main/res/menu/menu_asset.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@
android:id="@+id/add_url"
android:title="@string/menu_item_add_url"
app:showAsAction="never" />
<item
android:id="@+id/add_qrcode"
android:title="@string/menu_item_scan_qrcode"
app:showAsAction="never" />
</menu>
</item>
<item
Expand Down
1 change: 1 addition & 0 deletions V2rayNG/app/src/main/res/values-ar/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@
<string name="menu_item_add_asset">إضافة أصل</string>
<string name="menu_item_add_file">إضافة ملفات</string>
<string name="menu_item_add_url">إضافة URL</string>
<string name="menu_item_scan_qrcode">مسح رمز الاستجابة السريعة (QRcode)</string>
<string name="title_url" translatable="false">URL</string>
<string name="menu_item_download_file">تنزيل الملفات</string>
<string name="title_user_asset_add_url">إضافة عنوان URL للأصل</string>
Expand Down
1 change: 1 addition & 0 deletions V2rayNG/app/src/main/res/values-bn/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@
<string name="menu_item_add_asset">অ্যাসেট যোগ করুন</string>
<string name="menu_item_add_file">ফাইল যোগ করুন</string>
<string name="menu_item_add_url">URL যোগ করুন</string>
<string name="menu_item_scan_qrcode">QR কোড স্ক্যান করুন</string>
<string name="title_url" translatable="false">URL</string>
<string name="menu_item_download_file">ফাইল ডাউনলোড করুন</string>
<string name="title_user_asset_add_url">অ্যাসেট URL যোগ করুন</string>
Expand Down
1 change: 1 addition & 0 deletions V2rayNG/app/src/main/res/values-fa/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@
<string name="server_lab_request_host6">میزبان (SNI) (اختیاری)</string>
<string name="toast_asset_copy_failed">کپی فایل انجام نشد، لطفا از برنامه مدیریت فایل استفاده کنید</string>
<string name="menu_item_add_file">افزودن فایل ‌ها</string>
<string name="menu_item_scan_qrcode">اسکن QRcode</string>
<string name="title_url">URL</string>
<string name="menu_item_download_file">دانلود فایل‌ ها</string>
<string name="toast_action_not_allowed">این عمل ممنوع است</string>
Expand Down
1 change: 1 addition & 0 deletions V2rayNG/app/src/main/res/values-ru/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@
<string name="menu_item_add_asset">Добавить ресурс</string>
<string name="menu_item_add_file">Добавить файлы</string>
<string name="menu_item_add_url">Добавить URL</string>
<string name="menu_item_scan_qrcode">Сканирование QR-кода</string>
<string name="title_url">URL</string>
<string name="menu_item_download_file">Загрузить файлы</string>
<string name="title_user_asset_add_url">Добавить URL ресурса</string>
Expand Down
1 change: 1 addition & 0 deletions V2rayNG/app/src/main/res/values-vi/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@
<string name="server_lab_request_host6">Host (SNI) (Không bắt buộc)</string>
<string name="toast_asset_copy_failed">Không thể sao chép tệp tin, hãy dùng trình quản lý tệp!</string>
<string name="menu_item_add_file">Thêm tệp</string>
<string name="menu_item_scan_qrcode">Quét mã QR</string>
<string name="title_url">URL</string>
<string name="menu_item_download_file">Tải xuống tệp tin</string>
<string name="toast_action_not_allowed">Hành động này bị cấm!</string>
Expand Down
1 change: 1 addition & 0 deletions V2rayNG/app/src/main/res/values-zh-rCN/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@
<string name="server_lab_request_host6">Host(SNI)(可选)</string>
<string name="toast_asset_copy_failed">失败, 请使用文件管理器</string>
<string name="menu_item_add_file">添加文件</string>
<string name="menu_item_scan_qrcode">扫描 QRcode</string>
<string name="title_url">URL</string>
<string name="menu_item_download_file">下载文件</string>
<string name="toast_action_not_allowed">禁止此项操作</string>
Expand Down
1 change: 1 addition & 0 deletions V2rayNG/app/src/main/res/values-zh-rTW/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@
<string name="server_lab_request_host6">Host(SNI)(可選)</string>
<string name="toast_asset_copy_failed">失敗,請使用檔案總管</string>
<string name="menu_item_add_file">新增檔案</string>
<string name="menu_item_scan_qrcode">掃描 QRcode</string>
<string name="title_url">URL</string>
<string name="menu_item_download_file">下載檔案</string>
<string name="toast_action_not_allowed">禁止此項操作</string>
Expand Down
1 change: 1 addition & 0 deletions V2rayNG/app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@
<string name="menu_item_add_asset">Add asset</string>
<string name="menu_item_add_file">Add files</string>
<string name="menu_item_add_url">Add URL</string>
<string name="menu_item_scan_qrcode">Scan QRcode</string>
<string name="title_url">URL</string>
<string name="menu_item_download_file">Download files</string>
<string name="title_user_asset_add_url">Add asset URL</string>
Expand Down

0 comments on commit bbf0b05

Please sign in to comment.