|
@@ -1,6 +1,8 @@
|
|
|
package com.khmer9.sbcmain.app
|
|
|
|
|
|
+import android.Manifest
|
|
|
import android.content.Intent
|
|
|
+import android.content.pm.PackageManager
|
|
|
import android.os.Bundle
|
|
|
import android.os.StrictMode
|
|
|
import android.view.View
|
|
@@ -9,13 +11,16 @@ import android.widget.TextView
|
|
|
import androidx.appcompat.app.AlertDialog
|
|
|
import androidx.constraintlayout.widget.Group
|
|
|
import androidx.core.view.isVisible
|
|
|
+import com.google.android.material.snackbar.Snackbar
|
|
|
import com.khmer9.sbcmain.R
|
|
|
+import com.khmer9.sbcmain.app.ShareActivity.Companion.PERMISSION_REQUEST_STORAGE
|
|
|
import com.khmer9.sbcmain.base.BaseActivity
|
|
|
import com.khmer9.sbcmain.remote.LoginData
|
|
|
import com.khmer9.sbcmain.screen.main.MainFragment
|
|
|
import com.khmer9.sbcmain.util.Const
|
|
|
import com.khmer9.sbcmain.util.ModelPreferencesManager
|
|
|
import com.khmer9.sbcmain.util.PrefHelper
|
|
|
+import kotlinx.android.synthetic.main.layout_fragment_main_yuki.*
|
|
|
|
|
|
class ShareActivity : BaseActivity() {
|
|
|
lateinit var settingImageView: ImageView
|
|
@@ -27,6 +32,11 @@ class ShareActivity : BaseActivity() {
|
|
|
lateinit var loginData: LoginData
|
|
|
lateinit var groupToolbarIcons: Group
|
|
|
lateinit var sharePref: PrefHelper
|
|
|
+ lateinit var downloadController: DownloadController
|
|
|
+
|
|
|
+ companion object {
|
|
|
+ const val PERMISSION_REQUEST_STORAGE = 0
|
|
|
+ }
|
|
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
val builder: StrictMode.VmPolicy.Builder = StrictMode.VmPolicy.Builder()
|
|
@@ -131,4 +141,54 @@ class ShareActivity : BaseActivity() {
|
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
|
|
super.onActivityResult(requestCode, resultCode, data)
|
|
|
}
|
|
|
+
|
|
|
+ override fun onRequestPermissionsResult(
|
|
|
+ requestCode: Int,
|
|
|
+ permissions: Array<out String>,
|
|
|
+ grantResults: IntArray
|
|
|
+ ) {
|
|
|
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
|
|
+ if (requestCode == PERMISSION_REQUEST_STORAGE) {
|
|
|
+ // Request for camera permission.
|
|
|
+ if (grantResults.size == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
|
|
+ // start downloading
|
|
|
+ downloadController.enqueueDownload()
|
|
|
+ } else {
|
|
|
+ // Permission request was denied.
|
|
|
+ mainLayout.showSnackbar(R.string.storage_permission_denied, Snackbar.LENGTH_SHORT)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ fun checkStoragePermission() {
|
|
|
+ // Check if the storage permission has been granted
|
|
|
+ if (checkSelfPermissionCompat(Manifest.permission.WRITE_EXTERNAL_STORAGE) ==
|
|
|
+ PackageManager.PERMISSION_GRANTED
|
|
|
+ ) {
|
|
|
+ // start downloading
|
|
|
+ downloadController.enqueueDownload()
|
|
|
+ } else {
|
|
|
+ // Permission is missing and must be requested.
|
|
|
+ requestStoragePermission()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun requestStoragePermission() {
|
|
|
+ if (shouldShowRequestPermissionRationaleCompat(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
|
|
+ mainLayout.showSnackbar(
|
|
|
+ R.string.storage_access_required,
|
|
|
+ Snackbar.LENGTH_INDEFINITE, R.string.ok
|
|
|
+ ) {
|
|
|
+ requestPermissionsCompat(
|
|
|
+ arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE),
|
|
|
+ PERMISSION_REQUEST_STORAGE
|
|
|
+ )
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ requestPermissionsCompat(
|
|
|
+ arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE),
|
|
|
+ PERMISSION_REQUEST_STORAGE
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|