diff --git a/app/src/main/java/org/linphone/ui/calls/fragment/CallsFragment.kt b/app/src/main/java/org/linphone/ui/calls/fragment/CallsFragment.kt new file mode 100644 index 000000000..5a3ed12ae --- /dev/null +++ b/app/src/main/java/org/linphone/ui/calls/fragment/CallsFragment.kt @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2010-2023 Belledonne Communications SARL. + * + * This file is part of linphone-android + * (see https://www.linphone.org). + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.linphone.ui.calls.fragment + +import androidx.fragment.app.Fragment + +class CallsFragment : Fragment() diff --git a/app/src/main/java/org/linphone/ui/calls/fragment/CallsListFragment.kt b/app/src/main/java/org/linphone/ui/calls/fragment/CallsListFragment.kt new file mode 100644 index 000000000..8a53eed43 --- /dev/null +++ b/app/src/main/java/org/linphone/ui/calls/fragment/CallsListFragment.kt @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2010-2023 Belledonne Communications SARL. + * + * This file is part of linphone-android + * (see https://www.linphone.org). + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.linphone.ui.calls.fragment + +import androidx.fragment.app.Fragment + +class CallsListFragment : Fragment() diff --git a/app/src/main/java/org/linphone/ui/calls/fragment/CallsListMenuDialogFragment.kt b/app/src/main/java/org/linphone/ui/calls/fragment/CallsListMenuDialogFragment.kt new file mode 100644 index 000000000..dcfdcbabb --- /dev/null +++ b/app/src/main/java/org/linphone/ui/calls/fragment/CallsListMenuDialogFragment.kt @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2010-2023 Belledonne Communications SARL. + * + * This file is part of linphone-android + * (see https://www.linphone.org). + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.linphone.ui.calls.fragment + +import com.google.android.material.bottomsheet.BottomSheetDialogFragment + +class CallsListMenuDialogFragment : BottomSheetDialogFragment() diff --git a/app/src/main/java/org/linphone/ui/calls/fragment/StartCallFragment.kt b/app/src/main/java/org/linphone/ui/calls/fragment/StartCallFragment.kt new file mode 100644 index 000000000..8ec709bc8 --- /dev/null +++ b/app/src/main/java/org/linphone/ui/calls/fragment/StartCallFragment.kt @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2010-2023 Belledonne Communications SARL. + * + * This file is part of linphone-android + * (see https://www.linphone.org). + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.linphone.ui.calls.fragment + +import androidx.fragment.app.Fragment + +class StartCallFragment : Fragment() diff --git a/app/src/main/java/org/linphone/ui/contacts/ContactFragment.kt b/app/src/main/java/org/linphone/ui/contacts/fragment/ContactFragment.kt similarity index 98% rename from app/src/main/java/org/linphone/ui/contacts/ContactFragment.kt rename to app/src/main/java/org/linphone/ui/contacts/fragment/ContactFragment.kt index 1918eb72a..eaad0376f 100644 --- a/app/src/main/java/org/linphone/ui/contacts/ContactFragment.kt +++ b/app/src/main/java/org/linphone/ui/contacts/fragment/ContactFragment.kt @@ -17,7 +17,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package org.linphone.ui.contacts +package org.linphone.ui.contacts.fragment import android.os.Bundle import android.view.LayoutInflater diff --git a/app/src/main/java/org/linphone/ui/contacts/ContactsFragment.kt b/app/src/main/java/org/linphone/ui/contacts/fragment/ContactsFragment.kt similarity index 89% rename from app/src/main/java/org/linphone/ui/contacts/ContactsFragment.kt rename to app/src/main/java/org/linphone/ui/contacts/fragment/ContactsFragment.kt index f41459f0e..024ec2303 100644 --- a/app/src/main/java/org/linphone/ui/contacts/ContactsFragment.kt +++ b/app/src/main/java/org/linphone/ui/contacts/fragment/ContactsFragment.kt @@ -17,7 +17,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package org.linphone.ui.contacts +package org.linphone.ui.contacts.fragment import android.os.Bundle import android.view.LayoutInflater @@ -107,5 +107,14 @@ class ContactsFragment : Fragment() { } } } + + sharedViewModel.navigateToCallsEvent.observe(viewLifecycleOwner) { + it.consume { + if (findNavController().currentDestination?.id == R.id.contactsFragment) { + val action = ContactsFragmentDirections.actionContactsFragmentToCallsFragment() + findNavController().navigate(action) + } + } + } } } diff --git a/app/src/main/java/org/linphone/ui/contacts/ContactsListFragment.kt b/app/src/main/java/org/linphone/ui/contacts/fragment/ContactsListFragment.kt similarity index 97% rename from app/src/main/java/org/linphone/ui/contacts/ContactsListFragment.kt rename to app/src/main/java/org/linphone/ui/contacts/fragment/ContactsListFragment.kt index ddcb53053..48c7a55e2 100644 --- a/app/src/main/java/org/linphone/ui/contacts/ContactsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/contacts/fragment/ContactsListFragment.kt @@ -17,7 +17,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package org.linphone.ui.contacts +package org.linphone.ui.contacts.fragment import android.content.res.Configuration import android.os.Bundle @@ -146,6 +146,10 @@ class ContactsListFragment : Fragment() { sharedViewModel.navigateToConversationsEvent.value = Event(true) } + binding.setOnCallsClicked { + sharedViewModel.navigateToCallsEvent.value = Event(true) + } + binding.setOnAvatarClickListener { (requireActivity() as MainActivity).toggleDrawerMenu() } diff --git a/app/src/main/java/org/linphone/ui/contacts/ContactsListMenuDialogFragment.kt b/app/src/main/java/org/linphone/ui/contacts/fragment/ContactsListMenuDialogFragment.kt similarity index 97% rename from app/src/main/java/org/linphone/ui/contacts/ContactsListMenuDialogFragment.kt rename to app/src/main/java/org/linphone/ui/contacts/fragment/ContactsListMenuDialogFragment.kt index f586d37ea..3b305eda2 100644 --- a/app/src/main/java/org/linphone/ui/contacts/ContactsListMenuDialogFragment.kt +++ b/app/src/main/java/org/linphone/ui/contacts/fragment/ContactsListMenuDialogFragment.kt @@ -17,7 +17,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package org.linphone.ui.contacts +package org.linphone.ui.contacts.fragment import android.content.DialogInterface import android.os.Bundle diff --git a/app/src/main/java/org/linphone/ui/contacts/NewContactFragment.kt b/app/src/main/java/org/linphone/ui/contacts/fragment/NewContactFragment.kt similarity index 98% rename from app/src/main/java/org/linphone/ui/contacts/NewContactFragment.kt rename to app/src/main/java/org/linphone/ui/contacts/fragment/NewContactFragment.kt index 0f273c446..84a39ae4c 100644 --- a/app/src/main/java/org/linphone/ui/contacts/NewContactFragment.kt +++ b/app/src/main/java/org/linphone/ui/contacts/fragment/NewContactFragment.kt @@ -17,7 +17,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package org.linphone.ui.contacts +package org.linphone.ui.contacts.fragment import android.os.Bundle import android.view.LayoutInflater diff --git a/app/src/main/java/org/linphone/ui/conversations/ConversationsFragment.kt b/app/src/main/java/org/linphone/ui/conversations/ConversationsFragment.kt index fd6b22559..d78ce4be4 100644 --- a/app/src/main/java/org/linphone/ui/conversations/ConversationsFragment.kt +++ b/app/src/main/java/org/linphone/ui/conversations/ConversationsFragment.kt @@ -28,7 +28,6 @@ import android.view.animation.AnimationUtils import androidx.core.os.bundleOf import androidx.core.view.doOnPreDraw import androidx.fragment.app.Fragment -import androidx.navigation.fragment.FragmentNavigatorExtras import androidx.navigation.fragment.findNavController import androidx.navigation.navGraphViewModels import androidx.recyclerview.widget.LinearLayoutManager diff --git a/app/src/main/java/org/linphone/ui/EmptyFragment.kt b/app/src/main/java/org/linphone/ui/fragment/EmptyFragment.kt similarity index 98% rename from app/src/main/java/org/linphone/ui/EmptyFragment.kt rename to app/src/main/java/org/linphone/ui/fragment/EmptyFragment.kt index d737b35c5..cca37be49 100644 --- a/app/src/main/java/org/linphone/ui/EmptyFragment.kt +++ b/app/src/main/java/org/linphone/ui/fragment/EmptyFragment.kt @@ -17,7 +17,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package org.linphone.ui +package org.linphone.ui.fragment import android.os.Bundle import android.view.LayoutInflater diff --git a/app/src/main/java/org/linphone/ui/viewmodel/SharedMainViewModel.kt b/app/src/main/java/org/linphone/ui/viewmodel/SharedMainViewModel.kt index 6ac3a1e7f..1843a6c85 100644 --- a/app/src/main/java/org/linphone/ui/viewmodel/SharedMainViewModel.kt +++ b/app/src/main/java/org/linphone/ui/viewmodel/SharedMainViewModel.kt @@ -32,6 +32,8 @@ class SharedMainViewModel : ViewModel() { val navigateToConversationsEvent = MutableLiveData>() + val navigateToCallsEvent = MutableLiveData>() + /* Contacts related */ val showContactEvent = MutableLiveData>() diff --git a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt index 02dd8bbb3..a88fa9cfa 100644 --- a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt +++ b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt @@ -37,7 +37,6 @@ import io.getstream.avatarview.coil.loadImage import org.linphone.R import org.linphone.contacts.ContactData import org.linphone.core.ConsolidatedPresence -import org.linphone.core.tools.Log import org.linphone.ui.contacts.model.ContactModel /** @@ -120,7 +119,6 @@ fun AvatarView.loadContactPicture(contact: ContactModel?) { indicatorEnabled = true val uri = contact.getAvatarUri() - Log.i("[Data binding Utils] Loading URI [$uri]") loadImage( data = uri, onStart = { diff --git a/app/src/main/res/layout-land/bottom_nav_bar.xml b/app/src/main/res/layout-land/bottom_nav_bar.xml index 71c69d3ea..9d6ce4a40 100644 --- a/app/src/main/res/layout-land/bottom_nav_bar.xml +++ b/app/src/main/res/layout-land/bottom_nav_bar.xml @@ -9,9 +9,15 @@ + + @@ -28,7 +34,7 @@ @@ -53,6 +59,7 @@ app:layout_constraintTop_toTopOf="parent" /> + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/contacts_fragment.xml b/app/src/main/res/layout-land/contacts_fragment.xml index 3cc888b5f..20ac4db42 100644 --- a/app/src/main/res/layout-land/contacts_fragment.xml +++ b/app/src/main/res/layout-land/contacts_fragment.xml @@ -22,7 +22,7 @@ @@ -34,11 +34,7 @@ android:layout_height="match_parent" android:layout_weight="1" app:defaultNavHost="false" - app:navGraph="@navigation/contact_right_nav_graph" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintStart_toEndOf="@id/contactsList" - app:layout_constraintEnd_toEndOf="parent"/> + app:navGraph="@navigation/contact_right_nav_graph"/> diff --git a/app/src/main/res/layout-land/contacts_list_fragment.xml b/app/src/main/res/layout-land/contacts_list_fragment.xml index db7ae4d0a..7ad4f6c95 100644 --- a/app/src/main/res/layout-land/contacts_list_fragment.xml +++ b/app/src/main/res/layout-land/contacts_list_fragment.xml @@ -14,6 +14,9 @@ + @@ -32,6 +35,7 @@ + + @@ -55,6 +61,7 @@ app:layout_constraintTop_toTopOf="parent" /> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/contacts_fragment.xml b/app/src/main/res/layout/contacts_fragment.xml index d8dc5fcd6..bfccbde59 100644 --- a/app/src/main/res/layout/contacts_fragment.xml +++ b/app/src/main/res/layout/contacts_fragment.xml @@ -11,29 +11,18 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - - - + app:defaultNavHost="false" + app:navGraph="@navigation/contact_left_nav_graph"/> + @@ -87,6 +90,7 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/calls_right_nav_graph.xml b/app/src/main/res/navigation/calls_right_nav_graph.xml new file mode 100644 index 000000000..ee5e03451 --- /dev/null +++ b/app/src/main/res/navigation/calls_right_nav_graph.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/contact_left_nav_graph.xml b/app/src/main/res/navigation/contact_left_nav_graph.xml index f707119b7..ecc43294e 100644 --- a/app/src/main/res/navigation/contact_left_nav_graph.xml +++ b/app/src/main/res/navigation/contact_left_nav_graph.xml @@ -8,7 +8,7 @@ \ No newline at end of file diff --git a/app/src/main/res/navigation/contact_right_nav_graph.xml b/app/src/main/res/navigation/contact_right_nav_graph.xml index afda7d6fc..1e1593fdb 100644 --- a/app/src/main/res/navigation/contact_right_nav_graph.xml +++ b/app/src/main/res/navigation/contact_right_nav_graph.xml @@ -7,13 +7,13 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/dimen.xml b/app/src/main/res/values/dimen.xml new file mode 100644 index 000000000..bc999d4d1 --- /dev/null +++ b/app/src/main/res/values/dimen.xml @@ -0,0 +1,8 @@ + + + 75dp + 280dp + + 355dp + 300dp + \ No newline at end of file