mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Ask permissions once. Fixes #892
This commit is contained in:
		| @@ -1,5 +1,9 @@ | ||||
| package eu.kanade.tachiyomi.ui.base.controller | ||||
|  | ||||
| import android.content.pm.PackageManager.PERMISSION_GRANTED | ||||
| import android.os.Build | ||||
| import android.support.v4.content.ContextCompat | ||||
| import com.bluelinelabs.conductor.Controller | ||||
| import com.bluelinelabs.conductor.Router | ||||
|  | ||||
| fun Router.popControllerWithTag(tag: String): Boolean { | ||||
| @@ -9,4 +13,15 @@ fun Router.popControllerWithTag(tag: String): Boolean { | ||||
|         return true | ||||
|     } | ||||
|     return false | ||||
| } | ||||
|  | ||||
| fun Controller.requestPermissionsSafe(permissions: Array<String>, requestCode: Int) { | ||||
|     val activity = activity ?: return | ||||
|     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { | ||||
|         permissions.forEach { permission -> | ||||
|             if (ContextCompat.checkSelfPermission(activity, permission) != PERMISSION_GRANTED) { | ||||
|                 requestPermissions(arrayOf(permission), requestCode) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -26,6 +26,7 @@ import eu.kanade.tachiyomi.source.SourceManager | ||||
| import eu.kanade.tachiyomi.ui.base.controller.RouterPagerAdapter | ||||
| import eu.kanade.tachiyomi.ui.base.controller.RxController | ||||
| import eu.kanade.tachiyomi.ui.base.controller.TabbedController | ||||
| import eu.kanade.tachiyomi.ui.base.controller.requestPermissionsSafe | ||||
| import eu.kanade.tachiyomi.ui.manga.chapter.ChaptersController | ||||
| import eu.kanade.tachiyomi.ui.manga.info.MangaInfoController | ||||
| import eu.kanade.tachiyomi.ui.manga.track.TrackController | ||||
| @@ -85,9 +86,7 @@ class MangaController : RxController, TabbedController { | ||||
|  | ||||
|         if (manga == null || source == null) return | ||||
|  | ||||
|         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { | ||||
|             requestPermissions(arrayOf(WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE), 301) | ||||
|         } | ||||
|         requestPermissionsSafe(arrayOf(WRITE_EXTERNAL_STORAGE), 301) | ||||
|  | ||||
|         with(view) { | ||||
|             adapter = MangaDetailAdapter() | ||||
|   | ||||
| @@ -26,6 +26,7 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper | ||||
| import eu.kanade.tachiyomi.data.preference.getOrDefault | ||||
| import eu.kanade.tachiyomi.ui.base.controller.DialogController | ||||
| import eu.kanade.tachiyomi.ui.base.controller.popControllerWithTag | ||||
| import eu.kanade.tachiyomi.ui.base.controller.requestPermissionsSafe | ||||
| import eu.kanade.tachiyomi.util.getUriCompat | ||||
| import eu.kanade.tachiyomi.util.registerLocalReceiver | ||||
| import eu.kanade.tachiyomi.util.toast | ||||
| @@ -52,9 +53,7 @@ class SettingsBackupController : SettingsController() { | ||||
|  | ||||
|     override fun onViewCreated(view: View, savedInstanceState: Bundle?) { | ||||
|         super.onViewCreated(view, savedInstanceState) | ||||
|         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { | ||||
|             requestPermissions(arrayOf(WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE), 500) | ||||
|         } | ||||
|         requestPermissionsSafe(arrayOf(WRITE_EXTERNAL_STORAGE), 500) | ||||
|     } | ||||
|  | ||||
|     override fun onDestroy() { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user