mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-10 16:02:05 -04:00
Remove READ/WRITE permission from playstore build variant
This commit is contained in:
parent
766e997df8
commit
07a73de55f
@ -57,12 +57,12 @@ import org.kiwix.kiwixmobile.core.base.BaseFragment
|
|||||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.popNavigationBackstack
|
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.popNavigationBackstack
|
||||||
import org.kiwix.kiwixmobile.core.extensions.toast
|
import org.kiwix.kiwixmobile.core.extensions.toast
|
||||||
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.core.utils.dialog.AlertDialogShower
|
import org.kiwix.kiwixmobile.core.utils.dialog.AlertDialogShower
|
||||||
import org.kiwix.kiwixmobile.core.utils.dialog.KiwixDialog
|
import org.kiwix.kiwixmobile.core.utils.dialog.KiwixDialog
|
||||||
import org.kiwix.kiwixmobile.localFileTransfer.WifiDirectManager.Companion.getDeviceStatus
|
import org.kiwix.kiwixmobile.localFileTransfer.WifiDirectManager.Companion.getDeviceStatus
|
||||||
import org.kiwix.kiwixmobile.localFileTransfer.adapter.WifiP2pDelegate
|
import org.kiwix.kiwixmobile.localFileTransfer.adapter.WifiP2pDelegate
|
||||||
import org.kiwix.kiwixmobile.localFileTransfer.adapter.WifiPeerListAdapter
|
import org.kiwix.kiwixmobile.localFileTransfer.adapter.WifiPeerListAdapter
|
||||||
import java.util.ArrayList
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -94,6 +94,9 @@ class LocalFileTransferFragment :
|
|||||||
@Inject
|
@Inject
|
||||||
lateinit var locationManager: LocationManager
|
lateinit var locationManager: LocationManager
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
lateinit var sharedPreferenceUtil: SharedPreferenceUtil
|
||||||
|
|
||||||
private var fileListAdapter: FileListAdapter? = null
|
private var fileListAdapter: FileListAdapter? = null
|
||||||
private var wifiPeerListAdapter: WifiPeerListAdapter? = null
|
private var wifiPeerListAdapter: WifiPeerListAdapter? = null
|
||||||
|
|
||||||
@ -243,6 +246,7 @@ class LocalFileTransferFragment :
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun checkExternalStorageWritePermission(): Boolean { // To access and store the zims
|
private fun checkExternalStorageWritePermission(): Boolean { // To access and store the zims
|
||||||
|
if (!sharedPreferenceUtil.isPlayStoreBuildWithAndroid11OrAbove()) {
|
||||||
return permissionIsGranted(WRITE_EXTERNAL_STORAGE).also { permissionGranted ->
|
return permissionIsGranted(WRITE_EXTERNAL_STORAGE).also { permissionGranted ->
|
||||||
if (!permissionGranted) {
|
if (!permissionGranted) {
|
||||||
if (shouldShowRationale(WRITE_EXTERNAL_STORAGE)) {
|
if (shouldShowRationale(WRITE_EXTERNAL_STORAGE)) {
|
||||||
@ -256,6 +260,8 @@ class LocalFileTransferFragment :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
private fun shouldShowRationale(writeExternalStorage: String) =
|
private fun shouldShowRationale(writeExternalStorage: String) =
|
||||||
ActivityCompat.shouldShowRequestPermissionRationale(requireActivity(), writeExternalStorage)
|
ActivityCompat.shouldShowRequestPermissionRationale(requireActivity(), writeExternalStorage)
|
||||||
|
@ -240,6 +240,7 @@ class LocalLibraryFragment : BaseFragment() {
|
|||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
|
if (!sharedPreferenceUtil.isPlayStoreBuildWithAndroid11OrAbove())
|
||||||
checkPermissions()
|
checkPermissions()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -350,6 +350,7 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun checkExternalStorageWritePermission(): Boolean {
|
private fun checkExternalStorageWritePermission(): Boolean {
|
||||||
|
if (!sharedPreferenceUtil.isPlayStoreBuildWithAndroid11OrAbove()) {
|
||||||
return hasPermission(WRITE_EXTERNAL_STORAGE).also { permissionGranted ->
|
return hasPermission(WRITE_EXTERNAL_STORAGE).also { permissionGranted ->
|
||||||
if (!permissionGranted) {
|
if (!permissionGranted) {
|
||||||
if (shouldShowRationale(WRITE_EXTERNAL_STORAGE)) {
|
if (shouldShowRationale(WRITE_EXTERNAL_STORAGE)) {
|
||||||
@ -366,6 +367,8 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
private fun openAppSettings() {
|
private fun openAppSettings() {
|
||||||
val uri: Uri = Uri.fromParts("package", requireActivity().packageName, null)
|
val uri: Uri = Uri.fromParts("package", requireActivity().packageName, null)
|
||||||
@ -397,6 +400,7 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions {
|
|||||||
permissions[0] == Manifest.permission.WRITE_EXTERNAL_STORAGE
|
permissions[0] == Manifest.permission.WRITE_EXTERNAL_STORAGE
|
||||||
) {
|
) {
|
||||||
if (grantResults[0] != PERMISSION_GRANTED) {
|
if (grantResults[0] != PERMISSION_GRANTED) {
|
||||||
|
if (!sharedPreferenceUtil.isPlayStoreBuildWithAndroid11OrAbove())
|
||||||
checkExternalStorageWritePermission()
|
checkExternalStorageWritePermission()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -272,7 +272,8 @@ class AddNoteDialog : DialogFragment() {
|
|||||||
if (ContextCompat.checkSelfPermission(
|
if (ContextCompat.checkSelfPermission(
|
||||||
requireContext(),
|
requireContext(),
|
||||||
Manifest.permission.WRITE_EXTERNAL_STORAGE
|
Manifest.permission.WRITE_EXTERNAL_STORAGE
|
||||||
) != PackageManager.PERMISSION_GRANTED
|
) != PackageManager.PERMISSION_GRANTED &&
|
||||||
|
!sharedPreferenceUtil.isPlayStoreBuildWithAndroid11OrAbove()
|
||||||
) {
|
) {
|
||||||
Log.d(
|
Log.d(
|
||||||
TAG,
|
TAG,
|
||||||
|
@ -944,11 +944,13 @@ public abstract class CoreReaderFragment extends BaseFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean requestExternalStorageWritePermissionForNotes() {
|
private boolean requestExternalStorageWritePermissionForNotes() {
|
||||||
|
boolean isPermissionGranted = false;
|
||||||
|
if (!sharedPreferenceUtil.isPlayStoreBuildWithAndroid11OrAbove()) {
|
||||||
if (Build.VERSION.SDK_INT >= 23) { // For Marshmallow & higher API levels
|
if (Build.VERSION.SDK_INT >= 23) { // For Marshmallow & higher API levels
|
||||||
|
|
||||||
if (getActivity().checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
if (getActivity().checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||||
== PERMISSION_GRANTED) {
|
== PERMISSION_GRANTED) {
|
||||||
return true;
|
isPermissionGranted = true;
|
||||||
} else {
|
} else {
|
||||||
if (shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
if (shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
||||||
/* shouldShowRequestPermissionRationale() returns false when:
|
/* shouldShowRequestPermissionRationale() returns false when:
|
||||||
@ -964,10 +966,13 @@ public abstract class CoreReaderFragment extends BaseFragment
|
|||||||
REQUEST_WRITE_STORAGE_PERMISSION_ADD_NOTE);
|
REQUEST_WRITE_STORAGE_PERMISSION_ADD_NOTE);
|
||||||
}
|
}
|
||||||
} else { // For Android versions below Marshmallow 6.0 (API 23)
|
} else { // For Android versions below Marshmallow 6.0 (API 23)
|
||||||
return true; // As already requested at install time
|
isPermissionGranted = true; // As already requested at install time
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
isPermissionGranted = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return isPermissionGranted;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("SameReturnValue")
|
@SuppressWarnings("SameReturnValue")
|
||||||
@ -1032,6 +1037,9 @@ public abstract class CoreReaderFragment extends BaseFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasPermission(String permission) {
|
private boolean hasPermission(String permission) {
|
||||||
|
if (sharedPreferenceUtil.isPlayStoreBuildWithAndroid11OrAbove()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return ContextCompat.checkSelfPermission(getActivity(), permission) == PERMISSION_GRANTED;
|
return ContextCompat.checkSelfPermission(getActivity(), permission) == PERMISSION_GRANTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -229,7 +229,8 @@ public abstract class CorePrefsFragment extends PreferenceFragmentCompat impleme
|
|||||||
if (CoreApp.getInstance().isExternalStorageWritable()) {
|
if (CoreApp.getInstance().isExternalStorageWritable()) {
|
||||||
if (ContextCompat.checkSelfPermission(getActivity(),
|
if (ContextCompat.checkSelfPermission(getActivity(),
|
||||||
Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||||
!= PackageManager.PERMISSION_GRANTED) {
|
!= PackageManager.PERMISSION_GRANTED &&
|
||||||
|
!sharedPreferenceUtil.isPlayStoreBuildWithAndroid11OrAbove()) {
|
||||||
Snackbar.make(getView(), R.string.ext_storage_permission_not_granted, Snackbar.LENGTH_SHORT)
|
Snackbar.make(getView(), R.string.ext_storage_permission_not_granted, Snackbar.LENGTH_SHORT)
|
||||||
.show();
|
.show();
|
||||||
return;
|
return;
|
||||||
|
@ -190,6 +190,9 @@ class SharedPreferenceUtil @Inject constructor(val context: Context) {
|
|||||||
else
|
else
|
||||||
path.substringBefore(context.getString(R.string.android_directory_seperator))
|
path.substringBefore(context.getString(R.string.android_directory_seperator))
|
||||||
|
|
||||||
|
fun isPlayStoreBuildWithAndroid11OrAbove(): Boolean =
|
||||||
|
isPlayStoreBuild && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
// Prefs
|
// Prefs
|
||||||
const val PREF_LANG = "pref_language_chooser"
|
const val PREF_LANG = "pref_language_chooser"
|
||||||
|
@ -157,7 +157,8 @@ class CustomReaderFragment : CoreReaderFragment() {
|
|||||||
if (ContextCompat.checkSelfPermission(
|
if (ContextCompat.checkSelfPermission(
|
||||||
requireActivity(),
|
requireActivity(),
|
||||||
READ_EXTERNAL_STORAGE
|
READ_EXTERNAL_STORAGE
|
||||||
) == PERMISSION_DENIED
|
) == PERMISSION_DENIED &&
|
||||||
|
!sharedPreferenceUtil.isPlayStoreBuildWithAndroid11OrAbove()
|
||||||
) {
|
) {
|
||||||
requestPermissions(arrayOf(READ_EXTERNAL_STORAGE), REQUEST_READ_FOR_OBB)
|
requestPermissions(arrayOf(READ_EXTERNAL_STORAGE), REQUEST_READ_FOR_OBB)
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user