- Show red messages icon when unread messages exist
This commit is contained in:
@@ -16,6 +16,7 @@ class Account(val accp: String) {
|
||||
var vmNew = 0
|
||||
var vmOld = 0
|
||||
var missedCalls = false
|
||||
var unreadMessages = false
|
||||
|
||||
init {
|
||||
val stunHost = account_stun_host(accp)
|
||||
|
||||
@@ -543,6 +543,8 @@ class BaresipService: Service() {
|
||||
Log.d(LOG_TAG, "Message event for $uap from $peer at $timeStamp")
|
||||
Message.add(Message(ua.account.aor, peer, text, timeStamp.toLong(),
|
||||
R.drawable.arrow_down_green, 0, "", true))
|
||||
Message.saveMessages(filesPath)
|
||||
ua.account.unreadMessages = true
|
||||
if (!Utils.isVisible()) {
|
||||
val intent = Intent(this, BaresipService::class.java)
|
||||
intent.action = "Message Show"
|
||||
|
||||
@@ -92,6 +92,7 @@ class ChatActivity : AppCompatActivity() {
|
||||
if (chatMessages.size == 0) {
|
||||
listView.removeFooterView(footerView)
|
||||
}
|
||||
Message.saveMessages(applicationContext.filesDir.absolutePath)
|
||||
}
|
||||
DialogInterface.BUTTON_POSITIVE -> {
|
||||
}
|
||||
@@ -154,6 +155,8 @@ class ChatActivity : AppCompatActivity() {
|
||||
LocalBroadcastManager.getInstance(this).registerReceiver(messageResponseReceiver,
|
||||
IntentFilter("message response"))
|
||||
|
||||
ua.account.unreadMessages = false
|
||||
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||
@@ -166,7 +169,6 @@ class ChatActivity : AppCompatActivity() {
|
||||
Log.d("Baresip", "Saving newMessage ${newMessage.text} for $aor::$peerUri")
|
||||
BaresipService.chatTexts.put("$aor::$peerUri", newMessage.text.toString())
|
||||
}
|
||||
Message.saveMessages(applicationContext.filesDir.absolutePath)
|
||||
super.onPause()
|
||||
}
|
||||
|
||||
@@ -199,7 +201,14 @@ class ChatActivity : AppCompatActivity() {
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
when (item.itemId) {
|
||||
android.R.id.home -> {
|
||||
for (m in chatMessages) if (m.new) m.new = false
|
||||
var save = false
|
||||
for (m in chatMessages) {
|
||||
if (m.new) {
|
||||
m.new = false
|
||||
save = true
|
||||
}
|
||||
}
|
||||
if (save) Message.saveMessages(applicationContext.filesDir.absolutePath)
|
||||
imm.hideSoftInputFromWindow(newMessage.windowToken, 0)
|
||||
val i = Intent()
|
||||
setResult(Activity.RESULT_OK, i)
|
||||
|
||||
@@ -73,6 +73,7 @@ class ChatsActivity: AppCompatActivity() {
|
||||
clAdapter.remove(m)
|
||||
clAdapter.notifyDataSetChanged()
|
||||
BaresipService.messages = msgs
|
||||
Message.saveMessages(filesPath)
|
||||
uaMessages = uaMessages(aor)
|
||||
}
|
||||
DialogInterface.BUTTON_POSITIVE -> {
|
||||
@@ -142,7 +143,6 @@ class ChatsActivity: AppCompatActivity() {
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
Message.saveMessages(applicationContext.filesDir.absolutePath)
|
||||
super.onPause()
|
||||
}
|
||||
|
||||
|
||||
@@ -152,10 +152,7 @@ class MainActivity : AppCompatActivity() {
|
||||
} else {
|
||||
voicemailButton.visibility = View.INVISIBLE
|
||||
}
|
||||
if (acc.missedCalls)
|
||||
callsButton.setImageResource(R.drawable.calls_missed)
|
||||
else
|
||||
callsButton.setImageResource(R.drawable.calls)
|
||||
updateIcons(acc)
|
||||
}
|
||||
|
||||
override fun onNothingSelected(parent: AdapterView<*>) {
|
||||
@@ -522,10 +519,12 @@ class MainActivity : AppCompatActivity() {
|
||||
"message show", "message reply" ->
|
||||
handleServiceEvent(resumeAction, arrayListOf(resumeUap, resumeUri))
|
||||
else -> {
|
||||
if ((aorSpinner.selectedItemPosition == -1) && (UserAgent.uas().size > 0))
|
||||
aorSpinner.setSelection(0)
|
||||
if (aorSpinner.selectedItemPosition >= 0)
|
||||
if (UserAgent.uas().size > 0) {
|
||||
if (aorSpinner.selectedItemPosition == -1)
|
||||
aorSpinner.setSelection(0)
|
||||
showCall(UserAgent.uas()[aorSpinner.selectedItemPosition])
|
||||
updateIcons(UserAgent.uas()[aorSpinner.selectedItemPosition].account)
|
||||
}
|
||||
}
|
||||
}
|
||||
resumeAction = ""
|
||||
@@ -1130,6 +1129,17 @@ class MainActivity : AppCompatActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateIcons(acc: Account) {
|
||||
if (acc.missedCalls)
|
||||
callsButton.setImageResource(R.drawable.calls_missed)
|
||||
else
|
||||
callsButton.setImageResource(R.drawable.calls)
|
||||
if (acc.unreadMessages)
|
||||
messagesButton.setImageResource(R.drawable.messages_unread)
|
||||
else
|
||||
messagesButton.setImageResource(R.drawable.messages)
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
var visible = false
|
||||
|
||||
Reference in New Issue
Block a user