improving the handling of None ringtone

This commit is contained in:
tibbi 2021-12-12 18:41:52 +01:00
parent fa1a69311f
commit 3448b7d9eb
4 changed files with 46 additions and 30 deletions

View File

@ -47,7 +47,7 @@ abstract class ContactActivity : SimpleActivity() {
} else if (requestCode == INTENT_SELECT_RINGTONE && resultCode == Activity.RESULT_OK && resultData != null) { } else if (requestCode == INTENT_SELECT_RINGTONE && resultCode == Activity.RESULT_OK && resultData != null) {
val extras = resultData.extras val extras = resultData.extras
if (extras?.containsKey(RingtoneManager.EXTRA_RINGTONE_PICKED_URI) == true) { if (extras?.containsKey(RingtoneManager.EXTRA_RINGTONE_PICKED_URI) == true) {
val uri = extras.getParcelable<Uri>(RingtoneManager.EXTRA_RINGTONE_PICKED_URI) ?: return val uri = extras.getParcelable<Uri>(RingtoneManager.EXTRA_RINGTONE_PICKED_URI)
try { try {
systemRingtoneSelected(uri) systemRingtoneSelected(uri)
} catch (e: Exception) { } catch (e: Exception) {
@ -59,7 +59,7 @@ abstract class ContactActivity : SimpleActivity() {
abstract fun customRingtoneSelected(ringtonePath: String) abstract fun customRingtoneSelected(ringtonePath: String)
abstract fun systemRingtoneSelected(uri: Uri) abstract fun systemRingtoneSelected(uri: Uri?)
fun showPhotoPlaceholder(photoView: ImageView) { fun showPhotoPlaceholder(photoView: ImageView) {
val placeholder = BitmapDrawable(resources, getBigLetterPlaceholder(contact?.getNameToDisplay() ?: "A")) val placeholder = BitmapDrawable(resources, getBigLetterPlaceholder(contact?.getNameToDisplay() ?: "A"))
@ -88,7 +88,13 @@ abstract class ContactActivity : SimpleActivity() {
.apply(options) .apply(options)
.override(wantedWidth, wantedHeight) .override(wantedWidth, wantedHeight)
.listener(object : RequestListener<Drawable> { .listener(object : RequestListener<Drawable> {
override fun onResourceReady(resource: Drawable?, model: Any?, target: Target<Drawable>?, dataSource: DataSource?, isFirstResource: Boolean): Boolean { override fun onResourceReady(
resource: Drawable?,
model: Any?,
target: Target<Drawable>?,
dataSource: DataSource?,
isFirstResource: Boolean
): Boolean {
photoView.background = ColorDrawable(0) photoView.background = ColorDrawable(0)
bottomShadow.beVisible() bottomShadow.beVisible()
return false return false
@ -152,12 +158,14 @@ abstract class ContactActivity : SimpleActivity() {
return if (type == BaseTypes.TYPE_CUSTOM) { return if (type == BaseTypes.TYPE_CUSTOM) {
label label
} else { } else {
getString(when (type) { getString(
Email.TYPE_HOME -> R.string.home when (type) {
Email.TYPE_WORK -> R.string.work Email.TYPE_HOME -> R.string.home
Email.TYPE_MOBILE -> R.string.mobile Email.TYPE_WORK -> R.string.work
else -> R.string.other Email.TYPE_MOBILE -> R.string.mobile
}) else -> R.string.other
}
)
} }
} }
@ -165,11 +173,13 @@ abstract class ContactActivity : SimpleActivity() {
return if (type == BaseTypes.TYPE_CUSTOM) { return if (type == BaseTypes.TYPE_CUSTOM) {
label label
} else { } else {
getString(when (type) { getString(
StructuredPostal.TYPE_HOME -> R.string.home when (type) {
StructuredPostal.TYPE_WORK -> R.string.work StructuredPostal.TYPE_HOME -> R.string.home
else -> R.string.other StructuredPostal.TYPE_WORK -> R.string.work
}) else -> R.string.other
}
)
} }
} }
@ -177,16 +187,18 @@ abstract class ContactActivity : SimpleActivity() {
return if (type == Im.PROTOCOL_CUSTOM) { return if (type == Im.PROTOCOL_CUSTOM) {
label label
} else { } else {
getString(when (type) { getString(
Im.PROTOCOL_AIM -> R.string.aim when (type) {
Im.PROTOCOL_MSN -> R.string.windows_live Im.PROTOCOL_AIM -> R.string.aim
Im.PROTOCOL_YAHOO -> R.string.yahoo Im.PROTOCOL_MSN -> R.string.windows_live
Im.PROTOCOL_SKYPE -> R.string.skype Im.PROTOCOL_YAHOO -> R.string.yahoo
Im.PROTOCOL_QQ -> R.string.qq Im.PROTOCOL_SKYPE -> R.string.skype
Im.PROTOCOL_GOOGLE_TALK -> R.string.hangouts Im.PROTOCOL_QQ -> R.string.qq
Im.PROTOCOL_ICQ -> R.string.icq Im.PROTOCOL_GOOGLE_TALK -> R.string.hangouts
else -> R.string.jabber Im.PROTOCOL_ICQ -> R.string.icq
}) else -> R.string.jabber
}
)
} }
} }

View File

@ -533,7 +533,9 @@ class EditContactActivity : ContactActivity() {
} }
val ringtone = contact!!.ringtone val ringtone = contact!!.ringtone
if (ringtone != null && ringtone.isNotEmpty()) { if (ringtone?.isEmpty() == true) {
contact_ringtone.text = getString(R.string.no_sound)
} else if (ringtone?.isNotEmpty() == true) {
if (ringtone == SILENT) { if (ringtone == SILENT) {
contact_ringtone.text = getString(R.string.no_sound) contact_ringtone.text = getString(R.string.no_sound)
} else { } else {
@ -1317,8 +1319,8 @@ class EditContactActivity : ContactActivity() {
contact_ringtone.text = ringtonePath.getFilenameFromPath() contact_ringtone.text = ringtonePath.getFilenameFromPath()
} }
override fun systemRingtoneSelected(uri: Uri) { override fun systemRingtoneSelected(uri: Uri?) {
contact!!.ringtone = uri.toString() contact!!.ringtone = uri?.toString()
val contactRingtone = RingtoneManager.getRingtone(this, uri) val contactRingtone = RingtoneManager.getRingtone(this, uri)
contact_ringtone.text = contactRingtone.getTitle(this) contact_ringtone.text = contactRingtone.getTitle(this)
} }

View File

@ -613,7 +613,9 @@ class ViewContactActivity : ContactActivity() {
contact_ringtone.beVisible() contact_ringtone.beVisible()
val ringtone = contact!!.ringtone val ringtone = contact!!.ringtone
if (ringtone != null && ringtone.isNotEmpty()) { if (ringtone?.isEmpty() == true) {
contact_ringtone.text = getString(R.string.no_sound)
} else if (ringtone?.isNotEmpty() == true) {
if (ringtone == SILENT) { if (ringtone == SILENT) {
contact_ringtone.text = getString(R.string.no_sound) contact_ringtone.text = getString(R.string.no_sound)
} else { } else {
@ -703,7 +705,7 @@ class ViewContactActivity : ContactActivity() {
ringtoneUpdated(ringtonePath) ringtoneUpdated(ringtonePath)
} }
override fun systemRingtoneSelected(uri: Uri) { override fun systemRingtoneSelected(uri: Uri?) {
val contactRingtone = RingtoneManager.getRingtone(this, uri) val contactRingtone = RingtoneManager.getRingtone(this, uri)
contact_ringtone.text = contactRingtone.getTitle(this) contact_ringtone.text = contactRingtone.getTitle(this)
ringtoneUpdated(uri.toString()) ringtoneUpdated(uri.toString())

View File

@ -1097,7 +1097,7 @@ class ContactsHelper(val context: Context) {
val uri = Uri.withAppendedPath(Contacts.CONTENT_URI, contact.contactId.toString()) val uri = Uri.withAppendedPath(Contacts.CONTENT_URI, contact.contactId.toString())
val contentValues = ContentValues(2) val contentValues = ContentValues(2)
contentValues.put(Contacts.STARRED, contact.starred) contentValues.put(Contacts.STARRED, contact.starred)
contentValues.put(Contacts.CUSTOM_RINGTONE, contact.ringtone) contentValues.put(Contacts.CUSTOM_RINGTONE, contact.ringtone ?: "")
context.contentResolver.update(uri, contentValues, null, null) context.contentResolver.update(uri, contentValues, null, null)
} catch (e: Exception) { } catch (e: Exception) {
context.showErrorToast(e) context.showErrorToast(e)