change get_content intent to an open_document one with persistent read uri perm

This commit is contained in:
tibbi 2018-03-29 16:35:57 +02:00
parent 4c9c5e0c7e
commit 2dd62ab3c6
2 changed files with 8 additions and 1 deletions

View File

@ -1,8 +1,10 @@
package com.simplemobiletools.clock.activities package com.simplemobiletools.clock.activities
import android.annotation.TargetApi
import android.content.Intent import android.content.Intent
import android.graphics.drawable.ColorDrawable import android.graphics.drawable.ColorDrawable
import android.net.Uri import android.net.Uri
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
@ -128,6 +130,7 @@ class MainActivity : SimpleActivity() {
} }
} }
@TargetApi(Build.VERSION_CODES.KITKAT)
private fun storeNewAlarmSound(uri: Uri) { private fun storeNewAlarmSound(uri: Uri) {
var filename = getFilenameFromUri(uri) var filename = getFilenameFromUri(uri)
if (filename.isEmpty()) { if (filename.isEmpty()) {
@ -139,6 +142,9 @@ class MainActivity : SimpleActivity() {
val newAlarmSoundId = (yourAlarmSounds.maxBy { it.id }?.id ?: YOUR_ALARM_SOUNDS_MIN_ID) + 1 val newAlarmSoundId = (yourAlarmSounds.maxBy { it.id }?.id ?: YOUR_ALARM_SOUNDS_MIN_ID) + 1
yourAlarmSounds.add(AlarmSound(newAlarmSoundId, filename, uri.toString())) yourAlarmSounds.add(AlarmSound(newAlarmSoundId, filename, uri.toString()))
config.yourAlarmSounds = Gson().toJson(yourAlarmSounds) config.yourAlarmSounds = Gson().toJson(yourAlarmSounds)
val takeFlags = Intent.FLAG_GRANT_READ_URI_PERMISSION
contentResolver.takePersistableUriPermission(uri, takeFlags)
} }
private fun initFragments() { private fun initFragments() {

View File

@ -83,9 +83,10 @@ class SelectAlarmSoundDialog(val activity: SimpleActivity, val currentUri: Strin
private fun alarmClicked(alarmSound: AlarmSound) { private fun alarmClicked(alarmSound: AlarmSound) {
if (alarmSound.id == ADD_NEW_SOUND_ID) { if (alarmSound.id == ADD_NEW_SOUND_ID) {
Intent(Intent.ACTION_GET_CONTENT).apply { Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
type = "audio/*" type = "audio/*"
activity.startActivityForResult(this, PICK_AUDIO_FILE_INTENT_ID) activity.startActivityForResult(this, PICK_AUDIO_FILE_INTENT_ID)
flags = flags or Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
} }
dialog.dismiss() dialog.dismiss()
} else { } else {