From cbe2617624ba58fc9c8f04f257e47c4400cd0b63 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 29 Mar 2018 16:46:50 +0200 Subject: [PATCH] use a different audio file pick intent on 4.3- devices --- .../simplemobiletools/clock/activities/MainActivity.kt | 10 +++++----- .../clock/dialogs/SelectAlarmSoundDialog.kt | 9 +++++++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/clock/activities/MainActivity.kt index 63f8eb63..75048ca9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/activities/MainActivity.kt @@ -1,10 +1,8 @@ package com.simplemobiletools.clock.activities -import android.annotation.TargetApi import android.content.Intent import android.graphics.drawable.ColorDrawable import android.net.Uri -import android.os.Build import android.os.Bundle import android.view.Menu import android.view.MenuItem @@ -23,6 +21,7 @@ import com.simplemobiletools.clock.models.AlarmSound import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.LICENSE_NUMBER_PICKER import com.simplemobiletools.commons.helpers.LICENSE_STETHO +import com.simplemobiletools.commons.helpers.isKitkatPlus import com.simplemobiletools.commons.models.FAQItem import kotlinx.android.synthetic.main.activity_main.* import java.util.* @@ -130,7 +129,6 @@ class MainActivity : SimpleActivity() { } } - @TargetApi(Build.VERSION_CODES.KITKAT) private fun storeNewAlarmSound(uri: Uri) { var filename = getFilenameFromUri(uri) if (filename.isEmpty()) { @@ -143,8 +141,10 @@ class MainActivity : SimpleActivity() { yourAlarmSounds.add(AlarmSound(newAlarmSoundId, filename, uri.toString())) config.yourAlarmSounds = Gson().toJson(yourAlarmSounds) - val takeFlags = Intent.FLAG_GRANT_READ_URI_PERMISSION - contentResolver.takePersistableUriPermission(uri, takeFlags) + if (isKitkatPlus()) { + val takeFlags = Intent.FLAG_GRANT_READ_URI_PERMISSION + contentResolver.takePersistableUriPermission(uri, takeFlags) + } } private fun initFragments() { diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/SelectAlarmSoundDialog.kt b/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/SelectAlarmSoundDialog.kt index f6a85c65..acb2c1bb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/SelectAlarmSoundDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/SelectAlarmSoundDialog.kt @@ -17,6 +17,7 @@ import com.simplemobiletools.clock.models.AlarmSound import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor import com.simplemobiletools.commons.extensions.setupDialogStuff import com.simplemobiletools.commons.extensions.showErrorToast +import com.simplemobiletools.commons.helpers.isKitkatPlus import com.simplemobiletools.commons.views.MyCompatRadioButton import kotlinx.android.synthetic.main.dialog_select_alarm_sound.view.* import java.util.LinkedHashSet @@ -83,10 +84,14 @@ class SelectAlarmSoundDialog(val activity: SimpleActivity, val currentUri: Strin private fun alarmClicked(alarmSound: AlarmSound) { if (alarmSound.id == ADD_NEW_SOUND_ID) { - Intent(Intent.ACTION_OPEN_DOCUMENT).apply { + val action = if (isKitkatPlus()) Intent.ACTION_OPEN_DOCUMENT else Intent.ACTION_GET_CONTENT + Intent(action).apply { type = "audio/*" activity.startActivityForResult(this, PICK_AUDIO_FILE_INTENT_ID) - flags = flags or Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION + + if (isKitkatPlus()) { + flags = flags or Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION + } } dialog.dismiss() } else {