Skip to content

Commit

Permalink
Fix Permission with Android 13
Browse files Browse the repository at this point in the history
  • Loading branch information
ClusterPleiades committed Oct 15, 2022
1 parent 5124ac1 commit 0d281e5
Show file tree
Hide file tree
Showing 9 changed files with 36 additions and 19 deletions.
10 changes: 5 additions & 5 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ android {
minSdk 30
targetSdk 33
versionCode 5
versionName "1.2.0"
versionName "1.2.1"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Expand All @@ -36,8 +36,8 @@ android {
}

dependencies {
implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.5.0'
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.13.2'
Expand All @@ -52,7 +52,7 @@ dependencies {
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'

// restore scroll position
implementation "androidx.recyclerview:recyclerview:1.3.0-beta02"
implementation "androidx.recyclerview:recyclerview:1.3.0-rc01"

// photo view
implementation 'com.github.chrisbanes:PhotoView:2.3.0'
Expand All @@ -61,7 +61,7 @@ dependencies {
implementation 'com.github.MFlisar:DragSelectRecyclerView:0.3'

// gson
implementation 'com.google.code.gson:gson:2.8.8'
implementation 'com.google.code.gson:gson:2.8.9'

// video player
implementation "com.google.android.exoplayer:exoplayer-core:2.18.1"
Expand Down
File renamed without changes.
File renamed without changes.
6 changes: 4 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@
package="com.pleiades.pleione.slotgallery">

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"-->
<!-- tools:ignore="ScopedStorage" />-->

<application
android:allowBackup="true"
Expand Down
4 changes: 3 additions & 1 deletion app/src/main/java/com/pleiades/pleione/slotgallery/Config.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ class Config {
companion object {
// permission
val PERMISSION_STORAGE = arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE)
val PERMISSION_IMAGES_VIDEOS = arrayOf(Manifest.permission.READ_MEDIA_IMAGES, Manifest.permission.READ_MEDIA_VIDEO)

// request code
const val REQUEST_CODE_PERMISSION = 1000
const val REQUEST_CODE_PERMISSION_STORAGE = 1000
const val REQUEST_CODE_PERMISSION_IMAGES_VIDEOS = 1001

// dialog
const val DIALOG_TYPE_PERMISSION = 0
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.pleiades.pleione.slotgallery.ui.activity

import android.content.pm.PackageManager
import android.os.Build
import android.os.Bundle
import android.os.Environment
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
Expand All @@ -11,6 +11,8 @@ import com.pleiades.pleione.slotgallery.Config.Companion.ACTIVITY_CODE_MAIN
import com.pleiades.pleione.slotgallery.Config.Companion.ACTIVITY_CODE_SETTING
import com.pleiades.pleione.slotgallery.Config.Companion.DIALOG_TYPE_PERMISSION
import com.pleiades.pleione.slotgallery.Config.Companion.KEY_USER_LAST_VERSION_CODE
import com.pleiades.pleione.slotgallery.Config.Companion.PERMISSION_IMAGES_VIDEOS
import com.pleiades.pleione.slotgallery.Config.Companion.PERMISSION_STORAGE
import com.pleiades.pleione.slotgallery.Config.Companion.PREFS
import com.pleiades.pleione.slotgallery.R
import com.pleiades.pleione.slotgallery.ui.fragment.dialog.DefaultDialogFragment
Expand Down Expand Up @@ -42,7 +44,14 @@ class MainActivity : AppCompatActivity() {

override fun onStart() {
// check permission
if (Environment.isExternalStorageManager()) {
val isGranted =
if (Build.VERSION.SDK_INT >= 33)
checkSelfPermission(PERMISSION_IMAGES_VIDEOS[0]) == PackageManager.PERMISSION_GRANTED && checkSelfPermission(PERMISSION_IMAGES_VIDEOS[1]) == PackageManager.PERMISSION_GRANTED
else
checkSelfPermission(PERMISSION_STORAGE[0]) == PackageManager.PERMISSION_GRANTED

// case permission granted
if (isGranted) {
// add fragment
if (!isFragmentAdded)
addFragment()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,21 @@ import android.annotation.SuppressLint
import android.app.Activity
import android.app.Dialog
import android.content.DialogInterface
import android.content.Intent
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Build
import android.os.Bundle
import android.provider.Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.FragmentActivity
import com.pleiades.pleione.slotgallery.Config.Companion.DIALOG_TYPE_PERMISSION
import com.pleiades.pleione.slotgallery.Config.Companion.DIALOG_WIDTH_PERCENTAGE_DEFAULT
import com.pleiades.pleione.slotgallery.Config.Companion.PERMISSION_IMAGES_VIDEOS
import com.pleiades.pleione.slotgallery.Config.Companion.PERMISSION_STORAGE
import com.pleiades.pleione.slotgallery.Config.Companion.REQUEST_CODE_PERMISSION
import com.pleiades.pleione.slotgallery.Config.Companion.REQUEST_CODE_PERMISSION_IMAGES_VIDEOS
import com.pleiades.pleione.slotgallery.Config.Companion.REQUEST_CODE_PERMISSION_STORAGE
import com.pleiades.pleione.slotgallery.R
import com.pleiades.pleione.slotgallery.controller.DeviceController

Expand All @@ -44,8 +45,11 @@ class DefaultDialogFragment(private val type: Int) : androidx.fragment.app.Dialo
dialogView.findViewById<View>(R.id.positive_dialog_default).setOnClickListener {
when (type) {
DIALOG_TYPE_PERMISSION -> {
// (context as Activity).requestPermissions(PERMISSION_STORAGE, REQUEST_CODE_PERMISSION)
startActivity(Intent(ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION))
if (Build.VERSION.SDK_INT >= 33)
(context as Activity).requestPermissions(PERMISSION_IMAGES_VIDEOS, REQUEST_CODE_PERMISSION_IMAGES_VIDEOS)
else
(context as Activity).requestPermissions(PERMISSION_STORAGE, REQUEST_CODE_PERMISSION_STORAGE)
// startActivity(Intent(ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION))
}
}
dismiss()
Expand Down
6 changes: 3 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
buildscript {
repositories {
maven { url "https://www.jitpack.io" }
// maven { url "https://www.jitpack.io" }
}
}

plugins {
id 'com.android.application' version '7.2.2' apply false
id 'com.android.library' version '7.2.2' apply false
id 'com.android.application' version '7.3.1' apply false
id 'com.android.library' version '7.3.1' apply false
id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
}

Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Thu Jan 27 23:58:28 KST 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

0 comments on commit 0d281e5

Please # to comment.