aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-08-19 23:18:47 -0700
committerGitHub <noreply@github.com>2017-08-19 23:18:47 -0700
commit17b2b7a21b1a8bb2e7afdbff90293009f1b26057 (patch)
treea2e2d158d739820da1baca9c2fd946b34132b429 /app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt
parent8c178bd82d75ef237c97863fae555ca0346e7352 (diff)
downloadfrost-17b2b7a21b1a8bb2e7afdbff90293009f1b26057.tar.gz
frost-17b2b7a21b1a8bb2e7afdbff90293009f1b26057.tar.bz2
frost-17b2b7a21b1a8bb2e7afdbff90293009f1b26057.zip
Feature/ringtone selector (#200)
* Update changelog * Create and test ringtone selector * Update changelog * Update text
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt29
1 files changed, 29 insertions, 0 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt
index 7023fbc2..497ee375 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt
@@ -3,6 +3,8 @@ package com.pitchedapps.frost.activities
import android.annotation.SuppressLint
import android.app.Activity
import android.content.Intent
+import android.media.RingtoneManager
+import android.net.Uri
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
@@ -32,12 +34,39 @@ class SettingsActivity : KPrefActivity(), FrostBilling by IABSettings() {
var resultFlag = Activity.RESULT_CANCELED
+ companion object {
+ private const val REQUEST_RINGTONE = 0b10111 shl 5
+ const val REQUEST_NOTIFICATION_RINGTONE = REQUEST_RINGTONE or 1
+ const val REQUEST_MESSAGE_RINGTONE = REQUEST_RINGTONE or 2
+ }
+
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ if (fetchRingtone(requestCode, resultCode, data)) return
if (!onActivityResultBilling(requestCode, resultCode, data))
super.onActivityResult(requestCode, resultCode, data)
reloadList()
}
+ /**
+ * Fetch ringtone and save uri
+ * Returns [true] if consumed, [false] otherwise
+ */
+ private fun fetchRingtone(requestCode: Int, resultCode: Int, data: Intent?): Boolean {
+ if (requestCode and REQUEST_RINGTONE != REQUEST_RINGTONE || resultCode != Activity.RESULT_OK) return false
+ val uri: String = data?.getParcelableExtra<Uri>(RingtoneManager.EXTRA_RINGTONE_PICKED_URI)?.toString() ?: ""
+ when (requestCode) {
+ REQUEST_NOTIFICATION_RINGTONE -> {
+ Prefs.notificationRingtone = uri
+ reloadByTitle(R.string.notification_ringtone)
+ }
+ REQUEST_MESSAGE_RINGTONE -> {
+ Prefs.messageRingtone = uri
+ reloadByTitle(R.string.message_ringtone)
+ }
+ }
+ return true
+ }
+
override fun kPrefCoreAttributes(): CoreAttributeContract.() -> Unit = {
textColor = { Prefs.textColor }
accentColor = { Prefs.accentColor }