diff options
author | Allan Wang <me@allanwang.ca> | 2017-08-19 23:18:47 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-19 23:18:47 -0700 |
commit | 17b2b7a21b1a8bb2e7afdbff90293009f1b26057 (patch) | |
tree | a2e2d158d739820da1baca9c2fd946b34132b429 /app/src/main/kotlin/com/pitchedapps/frost/activities | |
parent | 8c178bd82d75ef237c97863fae555ca0346e7352 (diff) | |
download | frost-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')
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt | 29 | ||||
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt | 1 |
2 files changed, 29 insertions, 1 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 } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt index 51aedae3..756d5d35 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt @@ -13,7 +13,6 @@ import android.webkit.WebChromeClient import ca.allanwang.kau.internal.KauBaseActivity import ca.allanwang.kau.swipe.kauSwipeOnCreate import ca.allanwang.kau.swipe.kauSwipeOnDestroy -import ca.allanwang.kau.swipe.kauSwipeOnPostCreate import ca.allanwang.kau.utils.* import com.mikepenz.community_material_typeface_library.CommunityMaterial import com.mikepenz.google_material_typeface_library.GoogleMaterial |