diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/util/FileChooserUtil.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/helper/FileChooserHelper.kt similarity index 89% rename from V2rayNG/app/src/main/java/com/v2ray/ang/util/FileChooserUtil.kt rename to V2rayNG/app/src/main/java/com/v2ray/ang/helper/FileChooserHelper.kt index 0819264a2..700330c55 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/util/FileChooserUtil.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/helper/FileChooserHelper.kt @@ -1,5 +1,6 @@ -package com.v2ray.ang.util +package com.v2ray.ang.helper +import android.content.ActivityNotFoundException import android.content.Intent import android.net.Uri import android.util.Log @@ -13,7 +14,7 @@ import com.v2ray.ang.extension.toast /** * Helper for choosing files using ACTION_GET_CONTENT intent. * -*/ + */ class FileChooserHelper(private val activity: AppCompatActivity) { private var fileChooserCallback: ((Uri?) -> Unit)? = null @@ -50,16 +51,11 @@ class FileChooserHelper(private val activity: AppCompatActivity) { fileChooserLauncher.launch( Intent.createChooser(intent, activity.getString(R.string.title_file_chooser)) ) - } catch (ex: android.content.ActivityNotFoundException) { + } catch (ex: ActivityNotFoundException) { Log.e(AppConfig.TAG, "File chooser activity not found", ex) activity.toast(R.string.toast_require_file_manager) fileChooserCallback?.invoke(null) fileChooserCallback = null } } -} - -/** - * Extension function to create a FileChooserHelper instance. - */ -fun AppCompatActivity.fileChooserHelper() = FileChooserHelper(this) +} \ No newline at end of file diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/util/PermissionUtil.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/helper/PermissionHelper.kt similarity index 90% rename from V2rayNG/app/src/main/java/com/v2ray/ang/util/PermissionUtil.kt rename to V2rayNG/app/src/main/java/com/v2ray/ang/helper/PermissionHelper.kt index eebf21880..aa500ec41 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/util/PermissionUtil.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/helper/PermissionHelper.kt @@ -1,4 +1,4 @@ -package com.v2ray.ang.util +package com.v2ray.ang.helper import android.content.pm.PackageManager import androidx.activity.result.ActivityResultLauncher @@ -12,7 +12,7 @@ import com.v2ray.ang.extension.toast /** * Helper for requesting permissions. */ -class PermissionRequester(private val activity: AppCompatActivity) { +class PermissionHelper(private val activity: AppCompatActivity) { private var permissionCallback: ((Boolean) -> Unit)? = null private val permissionLauncher: ActivityResultLauncher = @@ -43,6 +43,4 @@ class PermissionRequester(private val activity: AppCompatActivity) { permissionLauncher.launch(permission) } } -} - -fun AppCompatActivity.permissionRequester() = PermissionRequester(this) \ No newline at end of file +} \ No newline at end of file diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/BackupActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/BackupActivity.kt index 9277cdbd6..f6e40b80e 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/BackupActivity.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/BackupActivity.kt @@ -154,9 +154,8 @@ class BackupActivity : BaseActivity() { } private fun showFileChooser() { - launchFileChooser("*/*") { uri -> + launchFileChooser { uri -> if (uri == null) { - toastError(R.string.toast_failure) return@launchFileChooser } try { diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/BaseActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/BaseActivity.kt index 919183fd3..3fd2cae50 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/BaseActivity.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/BaseActivity.kt @@ -21,9 +21,9 @@ import com.v2ray.ang.handler.SettingsManager import com.v2ray.ang.helper.CustomDividerItemDecoration import com.v2ray.ang.util.MyContextWrapper import com.v2ray.ang.dto.PermissionType +import com.v2ray.ang.helper.FileChooserHelper +import com.v2ray.ang.helper.PermissionHelper import com.v2ray.ang.util.Utils -import com.v2ray.ang.util.fileChooserHelper -import com.v2ray.ang.util.permissionRequester /** @@ -40,11 +40,14 @@ import com.v2ray.ang.util.permissionRequester abstract class BaseActivity : AppCompatActivity() { // Progress indicator that sits at the bottom of the toolbar private var progressBar: LinearProgressIndicator? = null - private val permissionRequester = permissionRequester() - private val fileChooser = fileChooserHelper() + private lateinit var fileChooser : FileChooserHelper + private lateinit var permissionRequester : PermissionHelper override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + fileChooser = FileChooserHelper(this) + permissionRequester = PermissionHelper(this) + supportActionBar?.setDisplayHomeAsUpEnabled(true) if (!Utils.getDarkModeStatus(this)) { WindowCompat.getInsetsController(window, window.decorView).apply { diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainActivity.kt index f24edabe0..acc0b1ce5 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainActivity.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainActivity.kt @@ -544,9 +544,8 @@ class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedList * show file chooser */ private fun showFileChooser() { - launchFileChooser("*/*") { uri -> + launchFileChooser { uri -> if (uri == null) { - toastError(R.string.toast_failure) return@launchFileChooser } diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/ScannerActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/ScannerActivity.kt index a08c55246..698c73f3e 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/ScannerActivity.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/ScannerActivity.kt @@ -85,7 +85,6 @@ class ScannerActivity : BaseActivity() { private fun showFileChooser() { launchFileChooser("image/*") { uri -> if (uri == null) { - toastError(R.string.toast_failure) return@launchFileChooser } try { diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/UserAssetActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/UserAssetActivity.kt index ece6fba11..8dd19d192 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/UserAssetActivity.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/UserAssetActivity.kt @@ -97,9 +97,8 @@ class UserAssetActivity : BaseActivity() { } private fun showFileChooser2() { - launchFileChooser("*/*") { uri -> + launchFileChooser { uri -> if (uri == null) { - toastError(R.string.toast_failure) return@launchFileChooser }