This commit is contained in:
MohitMali 2022-04-01 17:49:43 +05:30
parent c18fc0749f
commit 4064856803
4 changed files with 28 additions and 11 deletions

View File

@ -6,7 +6,8 @@
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" /> tools:ignore="ScopedStorage" />
<queries> <queries>
@ -22,6 +23,7 @@
android:allowBackup="true" android:allowBackup="true"
android:extractNativeLibs="false" android:extractNativeLibs="false"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:requestLegacyExternalStorage="true"
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:supportsRtl="true"
tools:targetApi="m"> tools:targetApi="m">
@ -32,7 +34,8 @@
android:label="@string/app_name" android:label="@string/app_name"
android:launchMode="singleTop" android:launchMode="singleTop"
android:theme="@style/KiwixTheme.Launcher" android:theme="@style/KiwixTheme.Launcher"
android:windowSoftInputMode="adjustPan"> android:windowSoftInputMode="adjustPan"
android:exported="true">
<meta-data <meta-data
android:name="android.app.shortcuts" android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" /> android:resource="@xml/shortcuts" />
@ -145,7 +148,8 @@
<service android:name=".webserver.wifi_hotspot.HotspotService" /> <service android:name=".webserver.wifi_hotspot.HotspotService" />
<receiver android:name=".main.KiwixSearchWidget"> <receiver android:name=".main.KiwixSearchWidget"
android:exported="false">
<meta-data <meta-data
android:name="android.appwidget.provider" android:name="android.appwidget.provider"
android:resource="@xml/kiwix_widget_provider_info" /> android:resource="@xml/kiwix_widget_provider_info" />

View File

@ -214,6 +214,7 @@ class LocalLibraryFragment : BaseFragment() {
// We already have permission!! // We already have permission!!
requestFileSystemCheck() requestFileSystemCheck()
} else { } else {
sharedPreferenceUtil.manageExternalFilesPermissionDialog = false
if (sharedPreferenceUtil.manageExternalFilesPermissionDialog) { if (sharedPreferenceUtil.manageExternalFilesPermissionDialog) {
// We should only ask for first time, If the users wants to revoke settings // We should only ask for first time, If the users wants to revoke settings
// then they can directly toggle this feature from settings screen // then they can directly toggle this feature from settings screen

View File

@ -18,16 +18,16 @@
package org.kiwix.kiwixmobile.settings package org.kiwix.kiwixmobile.settings
import android.Manifest
import android.content.pm.PackageManager
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.Environment
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.fragment.app.FragmentActivity
import androidx.preference.Preference import androidx.preference.Preference
import androidx.preference.PreferenceCategory import androidx.preference.PreferenceCategory
import org.kiwix.kiwixmobile.R import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.core.navigateToSettings
import org.kiwix.kiwixmobile.core.settings.CorePrefsFragment import org.kiwix.kiwixmobile.core.settings.CorePrefsFragment
import org.kiwix.kiwixmobile.core.utils.REQUEST_STORAGE_PERMISSION
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil.Companion.PREF_STORAGE import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil.Companion.PREF_STORAGE
@ -54,15 +54,26 @@ class KiwixPrefsFragment : CorePrefsFragment() {
val permissionPref = findPreference<Preference>(PREF_MANAGE_EXTERNAL_STORAGE_PERMISSION) val permissionPref = findPreference<Preference>(PREF_MANAGE_EXTERNAL_STORAGE_PERMISSION)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
showPermissionPreference() showPermissionPreference()
val externalStorageManager = Environment.isExternalStorageManager()
if (externalStorageManager) { val isPermission = ContextCompat.checkSelfPermission(
requireActivity(),
Manifest.permission.READ_EXTERNAL_STORAGE
) == PackageManager.PERMISSION_GRANTED
if (isPermission) {
permissionPref!!.setSummary(org.kiwix.kiwixmobile.core.R.string.allowed) permissionPref!!.setSummary(org.kiwix.kiwixmobile.core.R.string.allowed)
} else { } else {
permissionPref!!.setSummary(org.kiwix.kiwixmobile.core.R.string.not_allowed) permissionPref!!.setSummary(org.kiwix.kiwixmobile.core.R.string.not_allowed)
} }
permissionPref.onPreferenceClickListener = permissionPref.onPreferenceClickListener =
Preference.OnPreferenceClickListener { Preference.OnPreferenceClickListener {
activity?.let(FragmentActivity::navigateToSettings) if (!isPermission) {
requestPermissions(
arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),
REQUEST_STORAGE_PERMISSION
)
}
// activity?.let(FragmentActivity::navigateToSettings)
true true
} }
} }

View File

@ -18,6 +18,7 @@
package org.kiwix.kiwixmobile.core.main package org.kiwix.kiwixmobile.core.main
import android.Manifest import android.Manifest
import android.annotation.SuppressLint
import android.app.Dialog import android.app.Dialog
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
@ -25,7 +26,6 @@ import android.content.pm.PackageManager
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.Environment
import android.util.Log import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.MenuItem import android.view.MenuItem
@ -346,6 +346,7 @@ class AddNoteDialog : DialogFragment() {
enableDeleteNoteMenuItem() enableDeleteNoteMenuItem()
} }
@SuppressLint("QueryPermissionsNeeded")
private fun shareNote() { private fun shareNote() {
/* The note text file corresponding to the currently open article, given at: /* The note text file corresponding to the currently open article, given at:
@ -399,7 +400,7 @@ class AddNoteDialog : DialogFragment() {
companion object { companion object {
@JvmField val NOTES_DIRECTORY = @JvmField val NOTES_DIRECTORY =
Environment.getExternalStorageDirectory().toString() + "/Kiwix/Notes/" instance.getExternalFilesDir("").toString() + "/Kiwix/Notes/"
const val TAG = "AddNoteDialog" const val TAG = "AddNoteDialog"
} }
} }