From 3f6339887b21b8188286d904f348397a1ecb3176 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 7 Sep 2023 10:33:52 +0200 Subject: [PATCH] Fixed no avatar issue in calls list since it is the default fragment --- .../java/org/linphone/ui/main/MainActivity.kt | 5 ++--- .../main/calls/viewmodel/CallsListViewModel.kt | 16 ++++++++++++++++ .../ui/main/fragment/DrawerMenuFragment.kt | 7 +++++-- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/MainActivity.kt b/app/src/main/java/org/linphone/ui/main/MainActivity.kt index a892c98c3..760cdce82 100644 --- a/app/src/main/java/org/linphone/ui/main/MainActivity.kt +++ b/app/src/main/java/org/linphone/ui/main/MainActivity.kt @@ -21,7 +21,6 @@ package org.linphone.ui.main import android.Manifest import android.annotation.SuppressLint -import android.content.Intent import android.content.pm.PackageManager import android.os.Bundle import android.view.Gravity @@ -37,7 +36,6 @@ import androidx.navigation.findNavController import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.R import org.linphone.databinding.MainActivityBinding -import org.linphone.ui.welcome.WelcomeActivity import org.linphone.utils.slideInToastFromTopForDuration @UiThread @@ -73,7 +71,8 @@ class MainActivity : AppCompatActivity() { override fun onPostCreate(savedInstanceState: Bundle?) { super.onPostCreate(savedInstanceState) - startActivity(Intent(this, WelcomeActivity::class.java)) + // TODO FIXME: uncomment + // startActivity(Intent(this, WelcomeActivity::class.java)) if (checkSelfPermission(Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) { requestPermissions( diff --git a/app/src/main/java/org/linphone/ui/main/calls/viewmodel/CallsListViewModel.kt b/app/src/main/java/org/linphone/ui/main/calls/viewmodel/CallsListViewModel.kt index 0d9cee8a0..cc7f4e5f1 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/viewmodel/CallsListViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/viewmodel/CallsListViewModel.kt @@ -23,15 +23,21 @@ import androidx.annotation.UiThread import androidx.annotation.WorkerThread import androidx.lifecycle.MutableLiveData import org.linphone.LinphoneApplication.Companion.coreContext +import org.linphone.contacts.ContactsManager import org.linphone.core.CallLog import org.linphone.core.Core import org.linphone.core.CoreListenerStub +import org.linphone.core.tools.Log import org.linphone.ui.main.calls.model.CallLogModel import org.linphone.ui.main.viewmodel.AbstractTopBarViewModel import org.linphone.utils.Event import org.linphone.utils.LinphoneUtils class CallsListViewModel @UiThread constructor() : AbstractTopBarViewModel() { + companion object { + private const val TAG = "[Calls List ViewModel]" + } + val callLogs = MutableLiveData>() val historyDeletedEvent: MutableLiveData> by lazy { @@ -46,8 +52,17 @@ class CallsListViewModel @UiThread constructor() : AbstractTopBarViewModel() { } } + private val contactsListener = object : ContactsManager.ContactsListener { + @WorkerThread + override fun onContactsLoaded() { + Log.i("$TAG Contacts have been (re)loaded, updating list") + computeCallLogsList(currentFilter) + } + } + init { coreContext.postOnCoreThread { core -> + coreContext.contactsManager.addListener(contactsListener) core.addListener(coreListener) computeCallLogsList(currentFilter) @@ -59,6 +74,7 @@ class CallsListViewModel @UiThread constructor() : AbstractTopBarViewModel() { super.onCleared() coreContext.postOnCoreThread { core -> + coreContext.contactsManager.removeListener(contactsListener) core.removeListener(coreListener) } } diff --git a/app/src/main/java/org/linphone/ui/main/fragment/DrawerMenuFragment.kt b/app/src/main/java/org/linphone/ui/main/fragment/DrawerMenuFragment.kt index 91083ebf3..d1aa7f8ff 100644 --- a/app/src/main/java/org/linphone/ui/main/fragment/DrawerMenuFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/fragment/DrawerMenuFragment.kt @@ -38,6 +38,7 @@ import org.linphone.ui.assistant.AssistantActivity import org.linphone.ui.main.MainActivity import org.linphone.ui.main.settings.fragment.AccountProfileFragmentDirections import org.linphone.ui.main.viewmodel.DrawerMenuViewModel +import org.linphone.ui.welcome.WelcomeActivity import org.linphone.utils.Event @UiThread @@ -79,9 +80,11 @@ class DrawerMenuFragment : GenericFragment() { } binding.setRecordingsClickListener { - val navController = (requireActivity() as MainActivity).findNavController() + // TODO FIXME + /*val navController = (requireActivity() as MainActivity).findNavController() navController.navigate(R.id.action_global_recordingsFragment) - (requireActivity() as MainActivity).closeDrawerMenu() + (requireActivity() as MainActivity).closeDrawerMenu()*/ + startActivity(Intent(requireActivity(), WelcomeActivity::class.java)) } binding.setHelpClickedListener {