From 5c16a872f3c4f51f6845671361356bdfac30ccb1 Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 21 Dec 2022 21:08:38 +0800 Subject: [PATCH] Update permission --- app/build.gradle | 2 +- .../tv/ui/activity/SettingActivity.java | 37 ++----------------- .../tv/ui/custom/dialog/ConfigDialog.java | 16 ++++++-- app/src/leanback/res/layout/dialog_config.xml | 15 ++++++++ app/src/main/AndroidManifest.xml | 1 - .../fongmi/android/tv/event/ServerEvent.java | 12 +----- .../com/fongmi/android/tv/server/Nano.java | 2 - .../com/fongmi/android/tv/utils/Utils.java | 28 -------------- app/src/main/res/raw/index.html | 4 +- app/src/main/res/raw/script.js | 2 +- app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + catvod/build.gradle | 2 +- drpy/build.gradle | 2 +- forcetech/build.gradle | 2 +- ijkplayer/build.gradle | 2 +- pyramid/build.gradle | 2 +- tvbus/build.gradle | 2 +- 19 files changed, 46 insertions(+), 88 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 9ba6363ee..c5cc88283 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,7 +9,7 @@ android { defaultConfig { applicationId "com.fongmi.android.tv" minSdk 21 - targetSdk 33 + targetSdk 29 versionCode 52 versionName "1.5.2" ndk { abiFilters "armeabi-v7a" } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java index 16da9acc7..a9d357e58 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java @@ -3,16 +3,7 @@ package com.fongmi.android.tv.ui.activity; import android.Manifest; import android.app.Activity; import android.content.Intent; -import android.content.pm.PackageManager; -import android.net.Uri; -import android.os.Build; -import android.os.Environment; -import android.provider.Settings; - -import androidx.activity.result.ActivityResultLauncher; -import androidx.activity.result.contract.ActivityResultContracts; -import androidx.annotation.RequiresApi; -import androidx.core.content.ContextCompat; + import androidx.viewbinding.ViewBinding; import com.fongmi.android.tv.BuildConfig; @@ -26,7 +17,6 @@ import com.fongmi.android.tv.bean.Live; import com.fongmi.android.tv.bean.Site; import com.fongmi.android.tv.databinding.ActivitySettingBinding; import com.fongmi.android.tv.event.RefreshEvent; -import com.fongmi.android.tv.event.ServerEvent; import com.fongmi.android.tv.impl.ConfigCallback; import com.fongmi.android.tv.impl.LiveCallback; import com.fongmi.android.tv.impl.SiteCallback; @@ -38,15 +28,10 @@ import com.fongmi.android.tv.ui.custom.dialog.SiteDialog; import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.Prefers; import com.fongmi.android.tv.utils.ResUtil; -import com.fongmi.android.tv.utils.Utils; import com.permissionx.guolindev.PermissionX; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; - public class SettingActivity extends BaseActivity implements ConfigCallback, SiteCallback, LiveCallback { - private final ActivityResultLauncher launcherIntent = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> loadConfig()); private ActivitySettingBinding mBinding; private Config config; @@ -100,24 +85,13 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit } private void checkPermission() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !Environment.isExternalStorageManager()) { - openSetting(); - } else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R && ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - PermissionX.init(this).permissions(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> loadConfig()); + if (config.getUrl().startsWith("file") && !PermissionX.isGranted(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) { + PermissionX.init(this).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> loadConfig()); } else { loadConfig(); } } - @RequiresApi(api = Build.VERSION_CODES.R) - private void openSetting() { - try { - launcherIntent.launch(new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION, Uri.parse("package:" + BuildConfig.APPLICATION_ID))); - } catch (Exception e) { - launcherIntent.launch(new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)); - } - } - private void loadConfig() { switch (config.getType()) { case 0: @@ -171,11 +145,6 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit } } - @Subscribe(threadMode = ThreadMode.MAIN) - public void onServerEvent(ServerEvent event) { - if (event.getType() == ServerEvent.Type.FILE) Utils.checkStoragePermission(this); - } - @Override public void setSite(Site item) { ApiConfig.get().setHome(item); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/dialog/ConfigDialog.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/dialog/ConfigDialog.java index b3fecc1ea..55a4d585e 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/dialog/ConfigDialog.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/dialog/ConfigDialog.java @@ -1,6 +1,6 @@ package com.fongmi.android.tv.ui.custom.dialog; -import android.app.Activity; +import android.Manifest; import android.content.DialogInterface; import android.view.LayoutInflater; import android.view.View; @@ -8,6 +8,7 @@ import android.view.WindowManager; import android.view.inputmethod.EditorInfo; import androidx.appcompat.app.AlertDialog; +import androidx.fragment.app.FragmentActivity; import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.ApiConfig; @@ -22,6 +23,7 @@ import com.fongmi.android.tv.utils.QRCode; import com.fongmi.android.tv.utils.ResUtil; import com.fongmi.android.tv.utils.Utils; import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.permissionx.guolindev.PermissionX; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -30,12 +32,13 @@ import org.greenrobot.eventbus.ThreadMode; public class ConfigDialog implements DialogInterface.OnDismissListener { private final DialogConfigBinding binding; + private final FragmentActivity activity; private final ConfigCallback callback; private final AlertDialog dialog; private String url; private int type; - public static ConfigDialog create(Activity activity) { + public static ConfigDialog create(FragmentActivity activity) { return new ConfigDialog(activity); } @@ -44,7 +47,8 @@ public class ConfigDialog implements DialogInterface.OnDismissListener { return this; } - public ConfigDialog(Activity activity) { + public ConfigDialog(FragmentActivity activity) { + this.activity = activity; this.callback = (ConfigCallback) activity; this.binding = DialogConfigBinding.inflate(LayoutInflater.from(activity)); this.dialog = new MaterialAlertDialogBuilder(activity).setView(binding.getRoot()).create(); @@ -75,6 +79,7 @@ public class ConfigDialog implements DialogInterface.OnDismissListener { private void initEvent() { EventBus.getDefault().register(this); + binding.storage.setOnClickListener(this::onStorage); binding.positive.setOnClickListener(this::onPositive); binding.negative.setOnClickListener(this::onNegative); binding.text.setOnEditorActionListener((textView, actionId, event) -> { @@ -96,6 +101,11 @@ public class ConfigDialog implements DialogInterface.OnDismissListener { } } + private void onStorage(View view) { + if (PermissionX.isGranted(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE)) return; + PermissionX.init(activity).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request(null); + } + private void onPositive(View view) { String text = Utils.checkClan(binding.text.getText().toString().trim()); if (text.isEmpty()) Config.delete(url, type); diff --git a/app/src/leanback/res/layout/dialog_config.xml b/app/src/leanback/res/layout/dialog_config.xml index 774a0ed70..903966919 100644 --- a/app/src/leanback/res/layout/dialog_config.xml +++ b/app/src/leanback/res/layout/dialog_config.xml @@ -48,6 +48,21 @@ android:layout_alignBottom="@+id/code" android:orientation="horizontal"> + + - = Build.VERSION_CODES.R && !Environment.isExternalStorageManager()) { - Utils.openManageFileAccess(); - } else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R && ContextCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - PermissionX.init(activity).permissions(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE).request(null); - } - } - - @RequiresApi(api = Build.VERSION_CODES.R) - public static void openManageFileAccess() { - try { - App.get().startActivity(new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION, Uri.parse("package:" + BuildConfig.APPLICATION_ID))); - } catch (Exception e) { - App.get().startActivity(new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)); - } - } } diff --git a/app/src/main/res/raw/index.html b/app/src/main/res/raw/index.html index b360e7a9c..681c4e04c 100644 --- a/app/src/main/res/raw/index.html +++ b/app/src/main/res/raw/index.html @@ -111,7 +111,7 @@
-
請開啟接口設定
+
接口設定
@@ -123,7 +123,7 @@
- +
diff --git a/app/src/main/res/raw/script.js b/app/src/main/res/raw/script.js index 39641a427..7378c42ab 100644 --- a/app/src/main/res/raw/script.js +++ b/app/src/main/res/raw/script.js @@ -74,7 +74,7 @@ function selectFile(path, canDel) { current_file = path; if (canDel) $("#delFileBtn").show(); else $("#delFileBtn").hide(); - $("#fileUrl1")[0].value = "file://" + current_file; + $("#fileUrl")[0].value = "file://" + current_file; $("#fileInfoDialog").show(); } diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index ee5bbc71d..8485b525f 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -70,6 +70,7 @@ 图片品质 图片尺寸 版本 + 权限 确定 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index b814e19d5..e433c8e28 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -70,6 +70,7 @@ 圖片品質 圖片尺寸 版本 + 權限 確定 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d013b5c80..18141b45d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -70,6 +70,7 @@ Image quality Image size Version + Permission OK diff --git a/catvod/build.gradle b/catvod/build.gradle index 000e23c84..331e142e3 100644 --- a/catvod/build.gradle +++ b/catvod/build.gradle @@ -7,6 +7,6 @@ android { defaultConfig { minSdk 21 - targetSdk 33 + targetSdk 29 } } \ No newline at end of file diff --git a/drpy/build.gradle b/drpy/build.gradle index 011cf48c2..3f506f0c0 100644 --- a/drpy/build.gradle +++ b/drpy/build.gradle @@ -7,7 +7,7 @@ android { defaultConfig { minSdk 21 - targetSdk 33 + targetSdk 29 ndk { abiFilters "armeabi-v7a" } } } diff --git a/forcetech/build.gradle b/forcetech/build.gradle index 000e23c84..331e142e3 100644 --- a/forcetech/build.gradle +++ b/forcetech/build.gradle @@ -7,6 +7,6 @@ android { defaultConfig { minSdk 21 - targetSdk 33 + targetSdk 29 } } \ No newline at end of file diff --git a/ijkplayer/build.gradle b/ijkplayer/build.gradle index 3944909da..c237a0ff8 100644 --- a/ijkplayer/build.gradle +++ b/ijkplayer/build.gradle @@ -7,7 +7,7 @@ android { defaultConfig { minSdk 21 - targetSdk 33 + targetSdk 29 } } diff --git a/pyramid/build.gradle b/pyramid/build.gradle index b34e74b11..dd69b0642 100644 --- a/pyramid/build.gradle +++ b/pyramid/build.gradle @@ -8,7 +8,7 @@ android { defaultConfig { minSdk 21 - targetSdk 33 + targetSdk 29 ndk { abiFilters "armeabi-v7a" } python { buildPython "C:/Users/FongMi.DIREK/Anaconda3/envs/py38/python.exe" diff --git a/tvbus/build.gradle b/tvbus/build.gradle index 000e23c84..331e142e3 100644 --- a/tvbus/build.gradle +++ b/tvbus/build.gradle @@ -7,6 +7,6 @@ android { defaultConfig { minSdk 21 - targetSdk 33 + targetSdk 29 } } \ No newline at end of file