From 224c22a5ff86a3f2dfe4dc6dc70a72c68c485b9c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Denis=20=C3=87erri?=
<64997243+deniscerri@users.noreply.github.com>
Date: Tue, 7 Mar 2023 13:12:07 +0100
Subject: [PATCH] Added preference to acess all files permission
---
.idea/assetWizardSettings.xml | 4 ++--
.../ui/more/settings/SettingsFragment.kt | 23 +++++++++++++++++++
.../main/res/drawable/ic_access_folder.xml | 5 ++++
app/src/main/res/values/strings.xml | 2 ++
app/src/main/res/xml/root_preferences.xml | 8 +++++++
5 files changed, 40 insertions(+), 2 deletions(-)
create mode 100644 app/src/main/res/drawable/ic_access_folder.xml
diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml
index 2bf15814..cce47b52 100644
--- a/.idea/assetWizardSettings.xml
+++ b/.idea/assetWizardSettings.xml
@@ -320,7 +320,7 @@
@@ -330,7 +330,7 @@
diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/settings/SettingsFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/settings/SettingsFragment.kt
index ceafed0d..717f410f 100644
--- a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/settings/SettingsFragment.kt
+++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/settings/SettingsFragment.kt
@@ -1,14 +1,20 @@
package com.deniscerri.ytdlnis.ui.more.settings
+import android.Manifest
import android.app.Activity
import android.content.Intent
+import android.content.pm.PackageManager
import android.content.res.Configuration
+import android.net.Uri
import android.os.Build
import android.os.Bundle
+import android.os.Environment
+import android.provider.Settings
import android.util.Log
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatDelegate
+import androidx.core.app.ActivityCompat
import androidx.core.os.LocaleListCompat
import androidx.preference.*
import com.deniscerri.ytdlnis.BuildConfig
@@ -22,6 +28,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
private var musicPath: Preference? = null
private var videoPath: Preference? = null
private var commandPath: Preference? = null
+ private var accessAllFiles : Preference? = null
private var incognito: SwitchPreferenceCompat? = null
private var preferredDownloadType : ListPreference? = null
private var downloadCard: SwitchPreferenceCompat? = null
@@ -64,6 +71,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
musicPath = findPreference("music_path")
videoPath = findPreference("video_path")
commandPath = findPreference("command_path")
+ accessAllFiles = findPreference("access_all_files")
incognito = findPreference("incognito")
preferredDownloadType = findPreference("preferred_download_type")
downloadCard = findPreference("download_card")
@@ -112,6 +120,12 @@ class SettingsFragment : PreferenceFragmentCompat() {
if (preferences.getString("command_path", "")!!.isEmpty()) {
editor.putString("command_path", getString(R.string.command_path))
}
+
+ if((Build.VERSION.SDK_INT >= 30 && Environment.isExternalStorageManager()) ||
+ Build.VERSION.SDK_INT < 30) {
+ accessAllFiles!!.isVisible = false
+ }
+
editor.putBoolean("incognito", incognito!!.isChecked)
editor.putString("preferred_download_type", preferredDownloadType!!.value)
editor.putBoolean("download_card", downloadCard!!.isChecked)
@@ -182,6 +196,15 @@ class SettingsFragment : PreferenceFragmentCompat() {
commandPathResultLauncher.launch(intent)
true
}
+ accessAllFiles!!.onPreferenceClickListener =
+ Preference.OnPreferenceClickListener {
+ val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
+ val uri = Uri.parse("package:" + requireContext().packageName)
+ intent.data = uri
+ startActivity(intent)
+ true
+ }
+
incognito!!.onPreferenceChangeListener =
Preference.OnPreferenceChangeListener { _: Preference?, newValue: Any ->
val enable = newValue as Boolean
diff --git a/app/src/main/res/drawable/ic_access_folder.xml b/app/src/main/res/drawable/ic_access_folder.xml
new file mode 100644
index 00000000..01b3ed57
--- /dev/null
+++ b/app/src/main/res/drawable/ic_access_folder.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e8560e48..a2cb7cc1 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -206,4 +206,6 @@
Select
Selected
All items selected
+ Allow access to all directories
+ Let the app download on directories that are restricted by default
\ No newline at end of file
diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml
index 547108f0..b79e75d5 100644
--- a/app/src/main/res/xml/root_preferences.xml
+++ b/app/src/main/res/xml/root_preferences.xml
@@ -10,6 +10,8 @@
app:title="@string/language" />
+
+
+
+