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