diff --git a/app/src/main/java/org/linphone/contacts/ContactsManager.kt b/app/src/main/java/org/linphone/contacts/ContactsManager.kt
index 00d42ae78..db5f6368a 100644
--- a/app/src/main/java/org/linphone/contacts/ContactsManager.kt
+++ b/app/src/main/java/org/linphone/contacts/ContactsManager.kt
@@ -204,6 +204,7 @@ class ContactsManager @UiThread constructor(context: Context) {
ContactAvatarModel(friend)
} else {
val fakeFriend = coreContext.core.createFriend()
+ fakeFriend.name = LinphoneUtils.getDisplayName(address)
fakeFriend.address = clone
ContactAvatarModel(fakeFriend)
}
diff --git a/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt b/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt
index 52134c221..c67a79079 100644
--- a/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt
@@ -41,7 +41,7 @@ class ContactAvatarModel @WorkerThread constructor(val friend: Friend) : Abstrac
private const val TAG = "[Contact Avatar Model]"
}
- val id = friend.refKey
+ val id = friend.refKey ?: friend.name
val starred = friend.starred
diff --git a/app/src/main/java/org/linphone/ui/main/history/model/CallLogHistoryModel.kt b/app/src/main/java/org/linphone/ui/main/history/model/CallLogHistoryModel.kt
index e0a30232a..804ab2c0f 100644
--- a/app/src/main/java/org/linphone/ui/main/history/model/CallLogHistoryModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/history/model/CallLogHistoryModel.kt
@@ -3,9 +3,11 @@ package org.linphone.ui.main.history.model
import androidx.annotation.IntegerRes
import androidx.annotation.WorkerThread
import androidx.lifecycle.MutableLiveData
+import org.linphone.R
import org.linphone.core.Call
import org.linphone.core.Call.Dir
import org.linphone.core.CallLog
+import org.linphone.utils.AppUtils
import org.linphone.utils.LinphoneUtils
import org.linphone.utils.TimestampUtils
@@ -28,9 +30,9 @@ class CallLogHistoryModel @WorkerThread constructor(val callLog: CallLog) {
val startDate = callLog.startDate
val date = if (TimestampUtils.isToday(startDate)) {
- "Aujourd'hui"
+ AppUtils.getString(R.string.today)
} else if (TimestampUtils.isYesterday(startDate)) {
- "Hier"
+ AppUtils.getString(R.string.yesterday)
} else {
TimestampUtils.dateToString(callLog.startDate)
}
diff --git a/app/src/main/java/org/linphone/ui/main/history/model/CallLogModel.kt b/app/src/main/java/org/linphone/ui/main/history/model/CallLogModel.kt
index ab2ae0958..69f0087a4 100644
--- a/app/src/main/java/org/linphone/ui/main/history/model/CallLogModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/history/model/CallLogModel.kt
@@ -5,13 +5,20 @@ import androidx.annotation.UiThread
import androidx.annotation.WorkerThread
import androidx.lifecycle.MutableLiveData
import org.linphone.LinphoneApplication.Companion.coreContext
+import org.linphone.R
import org.linphone.core.Call.Dir
import org.linphone.core.CallLog
+import org.linphone.core.tools.Log
import org.linphone.ui.main.contacts.model.ContactAvatarModel
+import org.linphone.utils.AppUtils
import org.linphone.utils.LinphoneUtils
import org.linphone.utils.TimestampUtils
class CallLogModel @WorkerThread constructor(private val callLog: CallLog) {
+ companion object {
+ private const val TAG = "[CallLog Model]"
+ }
+
val id = callLog.callId ?: callLog.refKey
val timestamp = callLog.startDate
@@ -34,39 +41,41 @@ class CallLogModel @WorkerThread constructor(private val callLog: CallLog) {
var friendExists: Boolean = false
init {
- val clone = address.clone()
- clone.clean()
- displayedAddress = clone.asStringUriOnly()
-
val timestamp = timestamp
val displayedDate = if (TimestampUtils.isToday(timestamp)) {
TimestampUtils.timeToString(timestamp)
} else if (TimestampUtils.isYesterday(timestamp)) {
- "Hier"
+ AppUtils.getString(R.string.yesterday)
} else {
TimestampUtils.dateToString(timestamp)
}
dateTime.postValue(displayedDate)
- val friend = coreContext.contactsManager.findContactByAddress(address)
- avatarModel = coreContext.contactsManager.getContactAvatarModelForAddress(address)
- if (friend != null) {
- friendRefKey = friend.refKey
- friendExists = true
- } else {
+ if (callLog.wasConference()) {
val fakeFriend = coreContext.core.createFriend()
fakeFriend.address = address
- // Check if it is a conference
val conferenceInfo = coreContext.core.findConferenceInformationFromUri(address)
if (conferenceInfo != null) {
- avatarModel.name.postValue(conferenceInfo.subject)
- avatarModel.showConferenceIcon.postValue(true)
+ fakeFriend.name = conferenceInfo.subject
+ } else {
+ fakeFriend.name = LinphoneUtils.getDisplayName(address)
+ Log.w(
+ "$TAG Call log was conference but failed to find matching conference info from it's URI!"
+ )
}
+ avatarModel = ContactAvatarModel(fakeFriend)
+ avatarModel.showConferenceIcon.postValue(true)
friendRefKey = null
friendExists = false
+ } else {
+ avatarModel = coreContext.contactsManager.getContactAvatarModelForAddress(address)
+ val friend = avatarModel.friend
+ friendRefKey = friend.refKey
+ friendExists = !friendRefKey.isNullOrEmpty()
}
+ displayedAddress = avatarModel.friend.address?.asStringUriOnly() ?: address.asStringUriOnly()
iconResId.postValue(LinphoneUtils.getCallIconResId(callLog.status, callLog.dir))
}
diff --git a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt
index d222c41b9..7e3bfa76b 100644
--- a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt
+++ b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt
@@ -345,7 +345,7 @@ private suspend fun loadContactPictureWithCoil(
imageView.load(
ResourcesCompat.getDrawable(
context.resources,
- R.drawable.users_three,
+ R.drawable.inset_users_three,
context.theme
)
)
@@ -419,7 +419,7 @@ private suspend fun loadContactPictureWithCoil(
imageView.load(
ResourcesCompat.getDrawable(
context.resources,
- R.drawable.user_circle,
+ R.drawable.inset_user_circle,
context.theme
)
)
diff --git a/app/src/main/res/drawable/inset_user_circle.xml b/app/src/main/res/drawable/inset_user_circle.xml
new file mode 100644
index 000000000..f2a72e408
--- /dev/null
+++ b/app/src/main/res/drawable/inset_user_circle.xml
@@ -0,0 +1,5 @@
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/inset_users_three.xml b/app/src/main/res/drawable/inset_users_three.xml
new file mode 100644
index 000000000..274eb8524
--- /dev/null
+++ b/app/src/main/res/drawable/inset_users_three.xml
@@ -0,0 +1,5 @@
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/account_profile_fragment.xml b/app/src/main/res/layout/account_profile_fragment.xml
index 960498ffa..08d52b777 100644
--- a/app/src/main/res/layout/account_profile_fragment.xml
+++ b/app/src/main/res/layout/account_profile_fragment.xml
@@ -5,6 +5,7 @@
+
@@ -101,7 +102,8 @@
android:layout_width="@dimen/avatar_presence_badge_big_size"
android:layout_height="@dimen/avatar_presence_badge_big_size"
android:layout_marginStart="@dimen/avatar_presence_badge_big_end_margin"
- android:src="@drawable/trusted"
+ android:src="@{viewModel.accountModel.trust == SecurityLevel.Safe ? @drawable/trusted : @drawable/not_trusted, default=@drawable/trusted}"
+ android:visibility="@{viewModel.accountModel.showTrust ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="@id/avatar"/>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 72c34d034..fa6951c82 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -47,6 +47,8 @@
next
Start
Required
+ Today
+ Yesterday
- %s selected