mirror of
https://github.com/SimpleMobileTools/Simple-Contacts.git
synced 2025-06-05 21:59:27 +02:00
Add ringtone selector for group
This commit is contained in:
parent
7c893421da
commit
c8db298cd0
@ -1,12 +1,13 @@
|
|||||||
package com.simplemobiletools.contacts.pro.activities
|
package com.simplemobiletools.contacts.pro.activities
|
||||||
|
|
||||||
|
import android.app.Activity
|
||||||
|
import android.content.Intent
|
||||||
|
import android.media.RingtoneManager
|
||||||
|
import android.net.Uri
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import com.simplemobiletools.commons.extensions.beVisibleIf
|
import com.simplemobiletools.commons.extensions.*
|
||||||
import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor
|
|
||||||
import com.simplemobiletools.commons.extensions.underlineText
|
|
||||||
import com.simplemobiletools.commons.extensions.updateTextColors
|
|
||||||
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||||
import com.simplemobiletools.contacts.pro.R
|
import com.simplemobiletools.contacts.pro.R
|
||||||
import com.simplemobiletools.contacts.pro.adapters.ContactsAdapter
|
import com.simplemobiletools.contacts.pro.adapters.ContactsAdapter
|
||||||
@ -27,6 +28,25 @@ class GroupContactsActivity : SimpleActivity(), RemoveFromGroupListener, Refresh
|
|||||||
private var wasInit = false
|
private var wasInit = false
|
||||||
lateinit var group: Group
|
lateinit var group: Group
|
||||||
|
|
||||||
|
protected val INTENT_SELECT_RINGTONE = 600
|
||||||
|
|
||||||
|
protected var contact: Contact? = null
|
||||||
|
|
||||||
|
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
|
||||||
|
super.onActivityResult(requestCode, resultCode, resultData)
|
||||||
|
if (requestCode == INTENT_SELECT_RINGTONE && resultCode == Activity.RESULT_OK && resultData != null) {
|
||||||
|
val extras = resultData.extras
|
||||||
|
if (extras?.containsKey(RingtoneManager.EXTRA_RINGTONE_PICKED_URI) == true) {
|
||||||
|
val uri = extras.getParcelable<Uri>(RingtoneManager.EXTRA_RINGTONE_PICKED_URI) ?: return
|
||||||
|
try {
|
||||||
|
setRingtoneOnSelected(uri)
|
||||||
|
} catch (e: Exception) {
|
||||||
|
showErrorToast(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(R.layout.activity_group_contacts)
|
setContentView(R.layout.activity_group_contacts)
|
||||||
@ -64,6 +84,7 @@ class GroupContactsActivity : SimpleActivity(), RemoveFromGroupListener, Refresh
|
|||||||
when (item.itemId) {
|
when (item.itemId) {
|
||||||
R.id.send_sms_to_group -> sendSMSToGroup()
|
R.id.send_sms_to_group -> sendSMSToGroup()
|
||||||
R.id.send_email_to_group -> sendEmailToGroup()
|
R.id.send_email_to_group -> sendEmailToGroup()
|
||||||
|
R.id.assign_ringtone_to_group -> assignRingtoneToGroup()
|
||||||
else -> return super.onOptionsItemSelected(item)
|
else -> return super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
@ -100,6 +121,15 @@ class GroupContactsActivity : SimpleActivity(), RemoveFromGroupListener, Refresh
|
|||||||
sendEmailToContacts(groupContacts)
|
sendEmailToContacts(groupContacts)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun assignRingtoneToGroup() {
|
||||||
|
val ringtonePickerIntent = getRingtonePickerIntent()
|
||||||
|
try {
|
||||||
|
startActivityForResult(ringtonePickerIntent, INTENT_SELECT_RINGTONE)
|
||||||
|
} catch (e: Exception) {
|
||||||
|
toast(e.toString())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun updateContacts(contacts: ArrayList<Contact>) {
|
private fun updateContacts(contacts: ArrayList<Contact>) {
|
||||||
val currAdapter = group_contacts_list.adapter
|
val currAdapter = group_contacts_list.adapter
|
||||||
if (currAdapter == null) {
|
if (currAdapter == null) {
|
||||||
@ -136,4 +166,26 @@ class GroupContactsActivity : SimpleActivity(), RemoveFromGroupListener, Refresh
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getDefaultRingtoneUri() = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE)
|
||||||
|
|
||||||
|
private fun getRingtonePickerIntent(): Intent {
|
||||||
|
val defaultRingtoneUri = getDefaultRingtoneUri()
|
||||||
|
|
||||||
|
return Intent(RingtoneManager.ACTION_RINGTONE_PICKER).apply {
|
||||||
|
putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true)
|
||||||
|
putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true)
|
||||||
|
putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE)
|
||||||
|
putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, defaultRingtoneUri)
|
||||||
|
putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, defaultRingtoneUri)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private fun setRingtoneOnSelected(uri: Uri) {
|
||||||
|
// val contactRingtone = RingtoneManager.getRingtone(this, uri)
|
||||||
|
// group_ringtone.text = contactRingtone.getTitle(this)
|
||||||
|
groupContacts.forEach{
|
||||||
|
ContactsHelper(this).updateRingtone(it.contactId.toString(), uri.toString())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user