Changes after review

This commit is contained in:
MohitMali 2022-05-14 10:42:46 +05:30 committed by Kelson
parent 0a0cf213ac
commit 45f8b39ded

View File

@ -25,6 +25,7 @@ import android.app.Activity
import android.content.Intent import android.content.Intent
import android.content.pm.PackageManager.PERMISSION_GRANTED import android.content.pm.PackageManager.PERMISSION_GRANTED
import android.net.ConnectivityManager import android.net.ConnectivityManager
import android.net.Uri
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.provider.Settings import android.provider.Settings
@ -318,12 +319,24 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions {
::requestExternalStoragePermission ::requestExternalStoragePermission
) )
} else { } else {
requestExternalStoragePermission() alertDialogShower.show(
KiwixDialog.WriteStoragePermissionRationale,
::openAppSettings
)
} }
} }
} }
} }
private fun openAppSettings() {
val uri: Uri = Uri.fromParts("package", requireActivity().packageName, null)
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply {
flags = Intent.FLAG_ACTIVITY_NEW_TASK
data = uri
}
startActivity(intent)
}
private fun requestExternalStoragePermission() { private fun requestExternalStoragePermission() {
ActivityCompat.requestPermissions( ActivityCompat.requestPermissions(
requireActivity(), arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), requireActivity(), arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE),
@ -342,9 +355,11 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions {
super.onRequestPermissionsResult(requestCode, permissions, grantResults) super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == REQUEST_STORAGE_PERMISSION && if (requestCode == REQUEST_STORAGE_PERMISSION &&
grantResults.isNotEmpty() && grantResults.isNotEmpty() &&
grantResults[0] != PERMISSION_GRANTED permissions[0] == Manifest.permission.WRITE_EXTERNAL_STORAGE
) { ) {
checkExternalStorageWritePermission() if (grantResults[0] != PERMISSION_GRANTED) {
checkExternalStorageWritePermission()
}
} }
} }