From e3b5f0cc77fa0f036de42208226847d12d4ec6c9 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 17 Aug 2023 16:29:10 +0200 Subject: [PATCH] Various improvements --- .idea/deploymentTargetDropDown.xml | 17 ----- .../ui/assistant/AssistantActivity.kt | 6 -- .../assistant/viewmodel/AssistantViewModel.kt | 2 + .../java/org/linphone/ui/main/MainActivity.kt | 28 +++++--- .../ui/main/calls/fragment/CallFragment.kt | 52 ++++++++++---- .../main/calls/fragment/CallsListFragment.kt | 27 ++++++-- .../main/calls/model/CallLogHistoryModel.kt | 2 +- .../ui/main/calls/model/CallLogModel.kt | 4 ++ .../main/calls/viewmodel/CallLogViewModel.kt | 11 ++- .../calls/viewmodel/CallsListViewModel.kt | 8 ++- .../main/contacts/fragment/ContactFragment.kt | 12 ++-- .../ui/main/viewmodel/SharedMainViewModel.kt | 36 +++++++--- .../java/org/linphone/ui/voip/VoipActivity.kt | 1 - app/src/main/res/drawable/contact_avatar.xml | 18 ++--- .../res/layout-land/calls_list_fragment.xml | 15 +--- .../layout-land/contacts_list_fragment.xml | 2 +- app/src/main/res/layout/account_list_cell.xml | 1 + app/src/main/res/layout/call_fragment.xml | 39 ++++++----- app/src/main/res/layout/call_list_cell.xml | 1 + app/src/main/res/layout/call_popup_menu.xml | 15 +++- .../main/res/layout/call_start_fragment.xml | 4 +- .../main/res/layout/calls_list_fragment.xml | 15 +--- .../layout/contact_favourite_list_cell.xml | 1 + app/src/main/res/layout/contact_fragment.xml | 39 ++++++----- app/src/main/res/layout/contact_list_cell.xml | 1 + .../layout/contact_new_or_edit_fragment.xml | 4 +- .../res/layout/contacts_list_fragment.xml | 2 +- .../res/layout/conversations_fragment.xml | 2 +- app/src/main/res/layout/main_activity.xml | 69 +++++++++++-------- app/src/main/res/layout/top_search_bar.xml | 3 +- .../res/layout/voip_active_call_fragment.xml | 1 + .../layout/voip_incoming_call_fragment.xml | 1 + .../layout/voip_outgoing_call_fragment.xml | 3 +- app/src/main/res/values/dimen.xml | 3 +- 34 files changed, 254 insertions(+), 191 deletions(-) delete mode 100644 .idea/deploymentTargetDropDown.xml diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml deleted file mode 100644 index cdb2ce998..000000000 --- a/.idea/deploymentTargetDropDown.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/java/org/linphone/ui/assistant/AssistantActivity.kt b/app/src/main/java/org/linphone/ui/assistant/AssistantActivity.kt index e84664b71..5e406ea6f 100644 --- a/app/src/main/java/org/linphone/ui/assistant/AssistantActivity.kt +++ b/app/src/main/java/org/linphone/ui/assistant/AssistantActivity.kt @@ -21,7 +21,6 @@ package org.linphone.ui.assistant import android.os.Bundle import androidx.appcompat.app.AppCompatActivity -import androidx.core.content.ContextCompat import androidx.core.view.WindowCompat import androidx.databinding.DataBindingUtil import org.linphone.LinphoneApplication @@ -35,11 +34,6 @@ class AssistantActivity : AppCompatActivity() { WindowCompat.setDecorFitsSystemWindows(window, true) super.onCreate(savedInstanceState) - window.statusBarColor = ContextCompat.getColor( - this, - R.color.primary_color - ) - while (!LinphoneApplication.coreContext.isReady()) { Thread.sleep(20) } diff --git a/app/src/main/java/org/linphone/ui/assistant/viewmodel/AssistantViewModel.kt b/app/src/main/java/org/linphone/ui/assistant/viewmodel/AssistantViewModel.kt index 027afcc9c..cae0c3704 100644 --- a/app/src/main/java/org/linphone/ui/assistant/viewmodel/AssistantViewModel.kt +++ b/app/src/main/java/org/linphone/ui/assistant/viewmodel/AssistantViewModel.kt @@ -117,6 +117,8 @@ class AssistantViewModel : ViewModel() { accountParams.identityAddress = identityAddress newlyCreatedAccount = core.createAccount(accountParams) + // TODO: set international prefix if detected + registrationInProgress.postValue(true) core.addListener(coreListener) core.addAccount(newlyCreatedAccount) 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 a1a646d81..8dd1abd82 100644 --- a/app/src/main/java/org/linphone/ui/main/MainActivity.kt +++ b/app/src/main/java/org/linphone/ui/main/MainActivity.kt @@ -26,13 +26,15 @@ import android.os.Bundle import android.view.Gravity import android.view.LayoutInflater import android.view.View +import android.view.ViewGroup import android.view.ViewGroup.LayoutParams.WRAP_CONTENT import android.widget.PopupWindow +import androidx.annotation.DrawableRes import androidx.appcompat.app.AppCompatActivity -import androidx.core.content.ContextCompat import androidx.core.view.WindowCompat import androidx.databinding.DataBindingUtil import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.lifecycleScope import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.R import org.linphone.core.Account @@ -40,6 +42,7 @@ import org.linphone.databinding.AccountPopupMenuBinding import org.linphone.databinding.MainActivityBinding import org.linphone.ui.assistant.AssistantActivity import org.linphone.ui.main.viewmodel.DrawerMenuViewModel +import org.linphone.utils.slideInToastFromTopForDuration class MainActivity : AppCompatActivity() { companion object { @@ -55,11 +58,6 @@ class MainActivity : AppCompatActivity() { WindowCompat.setDecorFitsSystemWindows(window, true) super.onCreate(savedInstanceState) - window.statusBarColor = ContextCompat.getColor( - this, - R.color.primary_color - ) - while (!coreContext.isReady()) { Thread.sleep(20) } @@ -141,6 +139,14 @@ class MainActivity : AppCompatActivity() { } } + fun showGreenToast(message: String, @DrawableRes icon: Int) { + binding.greenToast.message = message + binding.greenToast.icon = icon + + val target = binding.greenToast.root + target.slideInToastFromTopForDuration(binding.root as ViewGroup, lifecycleScope) + } + private fun loadContacts() { coreContext.contactsManager.loadContacts(this) @@ -172,15 +178,19 @@ class MainActivity : AppCompatActivity() { null, false ) - popupView.setManageProfileClickListener { - // TODO: navigate to profile - } + val popupWindow = PopupWindow( popupView.root, WRAP_CONTENT, WRAP_CONTENT, true ) + + popupView.setManageProfileClickListener { + // TODO: navigate to profile + popupWindow.dismiss() + } + // Elevation is for showing a shadow around the popup popupWindow.elevation = 20f popupWindow.showAsDropDown(view, 0, 0, Gravity.BOTTOM) diff --git a/app/src/main/java/org/linphone/ui/main/calls/fragment/CallFragment.kt b/app/src/main/java/org/linphone/ui/main/calls/fragment/CallFragment.kt index f2c601a70..3d0a76178 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/fragment/CallFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/fragment/CallFragment.kt @@ -31,16 +31,15 @@ import android.widget.PopupWindow import androidx.core.view.doOnPreDraw import androidx.databinding.DataBindingUtil import androidx.lifecycle.ViewModelProvider -import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.navArgs import org.linphone.R import org.linphone.core.tools.Log import org.linphone.databinding.CallFragmentBinding import org.linphone.databinding.CallPopupMenuBinding +import org.linphone.ui.main.MainActivity import org.linphone.ui.main.calls.viewmodel.CallLogViewModel import org.linphone.ui.main.fragment.GenericFragment import org.linphone.utils.Event -import org.linphone.utils.slideInToastFromTopForDuration class CallFragment : GenericFragment() { private lateinit var binding: CallFragmentBinding @@ -94,6 +93,18 @@ class CallFragment : GenericFragment() { } sharedViewModel.openSlidingPaneEvent.value = Event(true) } + + viewModel.historyDeletedEvent.observe(viewLifecycleOwner) { + it.consume { + sharedViewModel.forceRefreshCallLogsListEvent.value = Event(true) + + (requireActivity() as MainActivity).showGreenToast( + "Historique supprimé", + R.drawable.check + ) + goBack() // TODO FIXME : issue with tablet when pane can't be closed + } + } } private fun copyNumberOrAddressToClipboard(value: String) { @@ -101,11 +112,10 @@ class CallFragment : GenericFragment() { val label = "SIP address" clipboard.setPrimaryClip(ClipData.newPlainText(label, value)) - binding.greenToast.message = "Numéro copié dans le presse-papier" - binding.greenToast.icon = R.drawable.check - - val target = binding.greenToast.root - target.slideInToastFromTopForDuration(binding.root as ViewGroup, lifecycleScope) + (requireActivity() as MainActivity).showGreenToast( + "Numéro copié dans le presse-papier", + R.drawable.check + ) } private fun showPopupMenu() { @@ -116,14 +126,6 @@ class CallFragment : GenericFragment() { false ) - popupView.setDeleteAllHistoryClickListener { - viewModel.deleteHistory() - } - - popupView.setCopyNumberClickListener { - copyNumberOrAddressToClipboard(viewModel.callLogModel.value?.displayedAddress.orEmpty()) - } - val popupWindow = PopupWindow( popupView.root, ViewGroup.LayoutParams.WRAP_CONTENT, @@ -131,6 +133,26 @@ class CallFragment : GenericFragment() { true ) + popupView.contactExists = viewModel.callLogModel.value?.friendExists == true + + popupView.setAddToContactsListener { + // TODO: go to new contact fragment + } + + popupView.setGoToContactListener { + // TODO: go to contact fragment + } + + popupView.setDeleteAllHistoryClickListener { + viewModel.deleteHistory() + popupWindow.dismiss() + } + + popupView.setCopyNumberClickListener { + popupWindow.dismiss() + copyNumberOrAddressToClipboard(viewModel.callLogModel.value?.displayedAddress.orEmpty()) + } + // Elevation is for showing a shadow around the popup popupWindow.elevation = 20f popupWindow.showAsDropDown(binding.menu, 0, 0, Gravity.BOTTOM) diff --git a/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt b/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt index cec8f1cd4..b5c4f57c3 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/fragment/CallsListFragment.kt @@ -31,7 +31,6 @@ import android.view.animation.Animation import android.view.animation.AnimationUtils import android.widget.PopupWindow import androidx.databinding.DataBindingUtil -import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import androidx.navigation.navGraphViewModels import androidx.recyclerview.widget.LinearLayoutManager @@ -39,13 +38,13 @@ import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.R import org.linphone.databinding.CallsListFragmentBinding import org.linphone.databinding.CallsListPopupMenuBinding +import org.linphone.ui.main.MainActivity import org.linphone.ui.main.calls.adapter.CallsListAdapter import org.linphone.ui.main.calls.model.RemoveAllCallLogsDialogModel import org.linphone.ui.main.calls.viewmodel.CallsListViewModel import org.linphone.ui.main.fragment.GenericFragment import org.linphone.utils.DialogUtils import org.linphone.utils.Event -import org.linphone.utils.slideInToastFromTopForDuration class CallsListFragment : GenericFragment() { @@ -124,6 +123,21 @@ class CallsListFragment : GenericFragment() { startPostponedEnterTransition() } + listViewModel.historyDeletedEvent.observe(viewLifecycleOwner) { + it.consume { + (requireActivity() as MainActivity).showGreenToast( + "Historique supprimé", + R.drawable.check + ) + } + } + + sharedViewModel.forceRefreshCallLogsListEvent.observe(viewLifecycleOwner) { + it.consume { + listViewModel.applyFilter() + } + } + sharedViewModel.searchFilter.observe(viewLifecycleOwner) { it.consume { filter -> listViewModel.applyFilter(filter) @@ -144,11 +158,10 @@ class CallsListFragment : GenericFragment() { val label = "SIP address" clipboard.setPrimaryClip(ClipData.newPlainText(label, value)) - binding.greenToast.message = "Numéro copié dans le presse-papier" - binding.greenToast.icon = R.drawable.check - - val target = binding.greenToast.root - target.slideInToastFromTopForDuration(binding.root as ViewGroup, lifecycleScope) + (requireActivity() as MainActivity).showGreenToast( + "Numéro copié dans le presse-papier", + R.drawable.check + ) } private fun showPopupMenu() { diff --git a/app/src/main/java/org/linphone/ui/main/calls/model/CallLogHistoryModel.kt b/app/src/main/java/org/linphone/ui/main/calls/model/CallLogHistoryModel.kt index a672bedc5..3454ee8af 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/model/CallLogHistoryModel.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/model/CallLogHistoryModel.kt @@ -8,7 +8,7 @@ import org.linphone.core.CallLog import org.linphone.utils.LinphoneUtils import org.linphone.utils.TimestampUtils -class CallLogHistoryModel(callLog: CallLog) { +class CallLogHistoryModel(val callLog: CallLog) { val isOutgoing = MutableLiveData() val isSuccessful = MutableLiveData() diff --git a/app/src/main/java/org/linphone/ui/main/calls/model/CallLogModel.kt b/app/src/main/java/org/linphone/ui/main/calls/model/CallLogModel.kt index 3bc1d0980..690be3b88 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/model/CallLogModel.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/model/CallLogModel.kt @@ -25,6 +25,8 @@ class CallLogModel(private val callLog: CallLog) { val dateTime = MutableLiveData() + var friendExists: Boolean = false + init { // Core thread isOutgoing.postValue(callLog.dir == Dir.Outgoing) @@ -42,10 +44,12 @@ class CallLogModel(private val callLog: CallLog) { val friend = coreContext.core.findFriend(address) if (friend != null) { avatarModel = ContactAvatarModel(friend) + friendExists = true } else { val fakeFriend = coreContext.core.createFriend() fakeFriend.address = address avatarModel = ContactAvatarModel(fakeFriend) + friendExists = false } iconResId.postValue(LinphoneUtils.getIconResId(callLog.status, callLog.dir)) diff --git a/app/src/main/java/org/linphone/ui/main/calls/viewmodel/CallLogViewModel.kt b/app/src/main/java/org/linphone/ui/main/calls/viewmodel/CallLogViewModel.kt index 43218d27a..972b0bc12 100644 --- a/app/src/main/java/org/linphone/ui/main/calls/viewmodel/CallLogViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/calls/viewmodel/CallLogViewModel.kt @@ -18,6 +18,10 @@ class CallLogViewModel : ViewModel() { val callLogFoundEvent = MutableLiveData>() + val historyDeletedEvent: MutableLiveData> by lazy { + MutableLiveData>() + } + private lateinit var address: Address fun findCallLogByCallId(callId: String) { @@ -45,7 +49,12 @@ class CallLogViewModel : ViewModel() { fun deleteHistory() { // UI thread - // TODO + coreContext.postOnCoreThread { core -> + for (model in historyCallLogs.value.orEmpty()) { + core.removeCallLog(model.callLog) + } + historyDeletedEvent.postValue(Event(true)) + } } fun startAudioCall() { 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 19f1a0c4e..5e27de118 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 @@ -26,10 +26,15 @@ import org.linphone.core.CallLog import org.linphone.core.Core import org.linphone.core.CoreListenerStub import org.linphone.ui.main.calls.model.CallLogModel +import org.linphone.utils.Event class CallsListViewModel : ViewModel() { val callLogs = MutableLiveData>() + val historyDeletedEvent: MutableLiveData> by lazy { + MutableLiveData>() + } + private var currentFilter = "" private val coreListener = object : CoreListenerStub() { @@ -54,7 +59,7 @@ class CallsListViewModel : ViewModel() { } } - fun applyFilter(filter: String) { + fun applyFilter(filter: String = currentFilter) { // UI thread currentFilter = filter @@ -69,6 +74,7 @@ class CallsListViewModel : ViewModel() { for (callLog in core.callLogs) { core.removeCallLog(callLog) } + historyDeletedEvent.postValue(Event(true)) computeCallLogsList(currentFilter) } } diff --git a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt index 3913d6007..1356ad677 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt @@ -31,19 +31,18 @@ import android.view.View import android.view.ViewGroup import androidx.core.view.doOnPreDraw import androidx.lifecycle.ViewModelProvider -import androidx.lifecycle.lifecycleScope import androidx.navigation.findNavController import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs import org.linphone.R import org.linphone.core.tools.Log import org.linphone.databinding.ContactFragmentBinding +import org.linphone.ui.main.MainActivity import org.linphone.ui.main.contacts.model.NumberOrAddressPickerDialogModel import org.linphone.ui.main.contacts.viewmodel.ContactViewModel import org.linphone.ui.main.fragment.GenericFragment import org.linphone.utils.DialogUtils import org.linphone.utils.Event -import org.linphone.utils.slideInToastFromTopForDuration class ContactFragment : GenericFragment() { private lateinit var binding: ContactFragmentBinding @@ -151,10 +150,9 @@ class ContactFragment : GenericFragment() { val label = if (isSip) "SIP address" else "Phone number" clipboard.setPrimaryClip(ClipData.newPlainText(label, value)) - binding.greenToast.message = "Numéro copié dans le presse-papier" - binding.greenToast.icon = R.drawable.check - - val target = binding.greenToast.root - target.slideInToastFromTopForDuration(binding.root as ViewGroup, lifecycleScope) + (requireActivity() as MainActivity).showGreenToast( + "Numéro copié dans le presse-papier", + R.drawable.check + ) } } diff --git a/app/src/main/java/org/linphone/ui/main/viewmodel/SharedMainViewModel.kt b/app/src/main/java/org/linphone/ui/main/viewmodel/SharedMainViewModel.kt index 09d0de0f3..2b921dee7 100644 --- a/app/src/main/java/org/linphone/ui/main/viewmodel/SharedMainViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/viewmodel/SharedMainViewModel.kt @@ -28,27 +28,47 @@ class SharedMainViewModel : ViewModel() { val isSlidingPaneSlideable = MutableLiveData() - val closeSlidingPaneEvent = MutableLiveData>() + val closeSlidingPaneEvent: MutableLiveData> by lazy { + MutableLiveData>() + } - val openSlidingPaneEvent = MutableLiveData>() + val openSlidingPaneEvent: MutableLiveData> by lazy { + MutableLiveData>() + } - val navigateToConversationsEvent = MutableLiveData>() + val navigateToConversationsEvent: MutableLiveData> by lazy { + MutableLiveData>() + } - val navigateToCallsEvent = MutableLiveData>() + val navigateToCallsEvent: MutableLiveData> by lazy { + MutableLiveData>() + } - val navigateToContactsEvent = MutableLiveData>() + val navigateToContactsEvent: MutableLiveData> by lazy { + MutableLiveData>() + } var currentlyDisplayedFragment = MutableLiveData() /* Top bar related */ - val searchFilter = MutableLiveData>() + val searchFilter: MutableLiveData> by lazy { + MutableLiveData>() + } /* Contacts related */ - val showContactEvent = MutableLiveData>() + val showContactEvent: MutableLiveData> by lazy { + MutableLiveData>() + } /* Call logs related */ - val showCallLogEvent = MutableLiveData>() + val showCallLogEvent: MutableLiveData> by lazy { + MutableLiveData>() + } + + val forceRefreshCallLogsListEvent: MutableLiveData> by lazy { + MutableLiveData>() + } } diff --git a/app/src/main/java/org/linphone/ui/voip/VoipActivity.kt b/app/src/main/java/org/linphone/ui/voip/VoipActivity.kt index 70048c52d..c9616d502 100644 --- a/app/src/main/java/org/linphone/ui/voip/VoipActivity.kt +++ b/app/src/main/java/org/linphone/ui/voip/VoipActivity.kt @@ -48,7 +48,6 @@ class VoipActivity : AppCompatActivity() { this, R.color.in_call_black ) - // window.statusBarColor = inCallBlackColor window.navigationBarColor = inCallBlackColor while (!LinphoneApplication.coreContext.isReady()) { diff --git a/app/src/main/res/drawable/contact_avatar.xml b/app/src/main/res/drawable/contact_avatar.xml index da9c64873..133d052f0 100644 --- a/app/src/main/res/drawable/contact_avatar.xml +++ b/app/src/main/res/drawable/contact_avatar.xml @@ -1,19 +1,13 @@ + android:width="52dp" + android:height="52dp" + android:viewportWidth="52" + android:viewportHeight="52"> - diff --git a/app/src/main/res/layout-land/calls_list_fragment.xml b/app/src/main/res/layout-land/calls_list_fragment.xml index 0f3daaf06..ab3b0fe9a 100644 --- a/app/src/main/res/layout-land/calls_list_fragment.xml +++ b/app/src/main/res/layout-land/calls_list_fragment.xml @@ -31,7 +31,7 @@ android:id="@+id/top_bar" android:name="org.linphone.ui.main.fragment.TopBarFragment" android:layout_width="0dp" - android:layout_height="@dimen/top_search_bar_height" + android:layout_height="@dimen/top_bar_height" android:layout_marginEnd="9dp" bind:layout="@layout/top_search_bar" app:layout_constraintTop_toTopOf="parent" @@ -75,19 +75,6 @@ app:layout_constraintTop_toBottomOf="@id/top_bar" app:layout_constraintBottom_toBottomOf="parent" /> - - + app:layout_constraintTop_toTopOf="@id/invisible_title"/> + + + app:layout_constraintTop_toTopOf="@id/invisible_title" /> - - \ No newline at end of file diff --git a/app/src/main/res/layout/call_list_cell.xml b/app/src/main/res/layout/call_list_cell.xml index f8896e0be..7704d82dd 100644 --- a/app/src/main/res/layout/call_list_cell.xml +++ b/app/src/main/res/layout/call_list_cell.xml @@ -36,6 +36,7 @@ android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:adjustViewBounds="true" + android:background="@drawable/shape_button_round" contactAvatar="@{model.avatarModel}" app:avatarViewInitials="JD" app:avatarViewPlaceholder="@drawable/contact_avatar" diff --git a/app/src/main/res/layout/call_popup_menu.xml b/app/src/main/res/layout/call_popup_menu.xml index 13b68e9df..9d6c12d30 100644 --- a/app/src/main/res/layout/call_popup_menu.xml +++ b/app/src/main/res/layout/call_popup_menu.xml @@ -6,12 +6,21 @@ + + + - - + app:layout_constraintTop_toTopOf="@id/invisible_title"/> + + + app:layout_constraintTop_toTopOf="@id/invisible_title" /> - - \ No newline at end of file diff --git a/app/src/main/res/layout/contact_list_cell.xml b/app/src/main/res/layout/contact_list_cell.xml index 5604ec42c..cde8cbaa1 100644 --- a/app/src/main/res/layout/contact_list_cell.xml +++ b/app/src/main/res/layout/contact_list_cell.xml @@ -47,6 +47,7 @@ android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:adjustViewBounds="true" + android:background="@drawable/shape_button_round" contactAvatar="@{model}" app:avatarViewInitials="SB" app:avatarViewPlaceholder="@drawable/contact_avatar" diff --git a/app/src/main/res/layout/contact_new_or_edit_fragment.xml b/app/src/main/res/layout/contact_new_or_edit_fragment.xml index 5f2fee6b8..fdb896dd2 100644 --- a/app/src/main/res/layout/contact_new_or_edit_fragment.xml +++ b/app/src/main/res/layout/contact_new_or_edit_fragment.xml @@ -36,10 +36,9 @@ style="@style/default_text_style_800" android:id="@+id/title" android:layout_width="0dp" - android:layout_height="35dp" + android:layout_height="@dimen/top_bar_height" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" - android:layout_marginTop="10dp" android:gravity="center_vertical" android:text="@{viewModel.isEdit ? `Edit contact` : `New contact`, default=`New contact`}" android:textColor="@color/primary_color" @@ -65,7 +64,6 @@ android:id="@+id/scrollView" android:layout_width="0dp" android:layout_height="0dp" - android:layout_marginTop="10dp" android:layout_marginBottom="10dp" android:background="@color/gray_7" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/contacts_list_fragment.xml b/app/src/main/res/layout/contacts_list_fragment.xml index 8d95df2db..665750fee 100644 --- a/app/src/main/res/layout/contacts_list_fragment.xml +++ b/app/src/main/res/layout/contacts_list_fragment.xml @@ -34,7 +34,7 @@ android:id="@+id/top_bar" android:name="org.linphone.ui.main.fragment.TopBarFragment" android:layout_width="0dp" - android:layout_height="@dimen/top_search_bar_height" + android:layout_height="@dimen/top_bar_height" bind:layout="@layout/top_search_bar" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/conversations_fragment.xml b/app/src/main/res/layout/conversations_fragment.xml index f160c0cce..c18411a3c 100644 --- a/app/src/main/res/layout/conversations_fragment.xml +++ b/app/src/main/res/layout/conversations_fragment.xml @@ -25,7 +25,7 @@ android:id="@+id/top_bar" android:name="org.linphone.ui.main.fragment.TopBarFragment" android:layout_width="0dp" - android:layout_height="@dimen/top_search_bar_height" + android:layout_height="@dimen/top_bar_height" bind:layout="@layout/top_search_bar" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/main_activity.xml b/app/src/main/res/layout/main_activity.xml index ea2d7a81f..de059cdcb 100644 --- a/app/src/main/res/layout/main_activity.xml +++ b/app/src/main/res/layout/main_activity.xml @@ -9,48 +9,59 @@ type="org.linphone.ui.main.viewmodel.DrawerMenuViewModel" /> - - + app:layout_constraintBottom_toBottomOf="parent"/> - - - - - - - - - - + - + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/top_search_bar.xml b/app/src/main/res/layout/top_search_bar.xml index e41b677d8..2b1b59a79 100644 --- a/app/src/main/res/layout/top_search_bar.xml +++ b/app/src/main/res/layout/top_search_bar.xml @@ -12,7 +12,7 @@ 3dp 5dp - 55dp + 55dp + 70dp 110dp 235dp