Added possibility to mark contact as favorite

This commit is contained in:
Juha Heinanen
2023-11-02 10:00:24 +02:00
parent 28da3c8fa1
commit ae46ee3b04
8 changed files with 96 additions and 35 deletions
@@ -69,7 +69,7 @@ class BaresipService: Service() {
private lateinit var wifiLock: WifiManager.WifiLock
private lateinit var bluetoothReceiver: BroadcastReceiver
private lateinit var hotSpotReceiver: BroadcastReceiver
private lateinit var contentObserver: ContentObserver
private lateinit var androidContactsObserver: ContentObserver
private lateinit var stopState: String
private lateinit var quitTimer: CountDownTimer
@@ -82,7 +82,7 @@ class BaresipService: Service() {
private var hotSpotIsEnabled = false
private var hotSpotAddresses = mapOf<String, String>()
private var mediaPlayer: MediaPlayer? = null
private var contentObserverRegistered = false
private var androidContactsObserverRegistered = false
private var isServiceClean = false
@SuppressLint("WakelockTimeout")
@@ -318,9 +318,9 @@ class BaresipService: Service() {
this.registerReceiver(bluetoothReceiver, filter)
}
contentObserver = object : ContentObserver(null) {
androidContactsObserver = object : ContentObserver(null) {
override fun onChange(self: Boolean) {
Log.d(TAG, "Contacts change")
Log.d(TAG, "Android contacts change")
if (contactsMode != "baresip") {
Contact.loadAndroidContacts(this@BaresipService.applicationContext)
Contact.contactsUpdate()
@@ -412,7 +412,7 @@ class BaresipService: Service() {
Contact.restoreBaresipContacts()
if (contactsMode != "baresip") {
Contact.loadAndroidContacts(applicationContext)
registerContentObserver()
registerAndroidContactsObserver()
}
Contact.contactsUpdate()
@@ -470,11 +470,11 @@ class BaresipService: Service() {
}
"Start Content Observer" -> {
registerContentObserver()
registerAndroidContactsObserver()
}
"Stop Content Observer" -> {
unRegisterContentObserver()
unRegisterAndroidContactsObserver()
}
"Call Answer" -> {
@@ -1493,21 +1493,21 @@ class BaresipService: Service() {
}
}
private fun registerContentObserver() {
if (!contentObserverRegistered)
private fun registerAndroidContactsObserver() {
if (!androidContactsObserverRegistered)
try {
contentResolver.registerContentObserver(ContactsContract.Contacts.CONTENT_URI,
true, contentObserver)
contentObserverRegistered = true
true, androidContactsObserver)
androidContactsObserverRegistered = true
} catch (e: SecurityException) {
Log.i(TAG, "No Contacts permission")
}
}
private fun unRegisterContentObserver() {
if (contentObserverRegistered) {
contentResolver.unregisterContentObserver(contentObserver)
contentObserverRegistered = false
private fun unRegisterAndroidContactsObserver() {
if (androidContactsObserverRegistered) {
contentResolver.unregisterContentObserver(androidContactsObserver)
androidContactsObserverRegistered = false
}
}
@@ -1529,8 +1529,8 @@ class BaresipService: Service() {
proximityWakeLock.release()
if (this::wifiLock.isInitialized)
wifiLock.release()
if (this::contentObserver.isInitialized)
contentResolver.unregisterContentObserver(contentObserver)
if (this::androidContactsObserver.isInitialized)
contentResolver.unregisterContentObserver(androidContactsObserver)
isServiceClean = true
}
}