diff --git a/app/build.gradle b/app/build.gradle index 1bdbf4ea5..0623451de 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -170,12 +170,13 @@ dependencies { implementation 'androidx.media:media:1.2.0' implementation 'androidx.fragment:fragment-ktx:1.2.5' implementation 'androidx.core:core-ktx:1.3.2' - implementation 'androidx.navigation:navigation-fragment-ktx:2.3.0' - implementation 'androidx.navigation:navigation-ui-ktx:2.3.0' + implementation 'androidx.navigation:navigation-fragment-ktx:2.3.1' + implementation 'androidx.navigation:navigation-ui-ktx:2.3.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.2' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0' implementation 'androidx.recyclerview:recyclerview:1.1.0' + implementation 'androidx.constraintlayout:constraintlayout:2.0.2' implementation 'com.google.android.material:material:1.2.1' implementation 'com.google.android:flexbox:2.0.0' diff --git a/app/src/main/java/org/linphone/activities/main/fragments/TabsFragment.kt b/app/src/main/java/org/linphone/activities/main/fragments/TabsFragment.kt index 580de3736..1af973a0f 100644 --- a/app/src/main/java/org/linphone/activities/main/fragments/TabsFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/fragments/TabsFragment.kt @@ -23,7 +23,6 @@ import android.os.Bundle import androidx.lifecycle.ViewModelProvider import androidx.navigation.NavController import androidx.navigation.NavDestination -import androidx.navigation.findNavController import androidx.navigation.fragment.findNavController import org.linphone.R import org.linphone.activities.GenericFragment @@ -93,6 +92,11 @@ class TabsFragment : GenericFragment(), NavController.OnDes destination: NavDestination, arguments: Bundle? ) { - viewModel.updateTabSelection(destination.id) + when (destination.id) { + R.id.masterCallLogsFragment -> binding.selectorMotion.transitionToState(R.id.call_history) + R.id.masterContactsFragment -> binding.selectorMotion.transitionToState(R.id.contacts) + R.id.dialerFragment -> binding.selectorMotion.transitionToState(R.id.dialer) + R.id.masterChatRoomsFragment -> binding.selectorMotion.transitionToState(R.id.chat_rooms) + } } } diff --git a/app/src/main/java/org/linphone/activities/main/viewmodels/TabsViewModel.kt b/app/src/main/java/org/linphone/activities/main/viewmodels/TabsViewModel.kt index 3c71c4c20..30d567687 100644 --- a/app/src/main/java/org/linphone/activities/main/viewmodels/TabsViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/viewmodels/TabsViewModel.kt @@ -22,21 +22,9 @@ package org.linphone.activities.main.viewmodels import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import org.linphone.LinphoneApplication.Companion.coreContext -import org.linphone.LinphoneApplication.Companion.corePreferences -import org.linphone.R import org.linphone.core.* class TabsViewModel : ViewModel() { - val showHistory: Boolean = corePreferences.showHistory - val showContacts: Boolean = corePreferences.showContacts - val showDialer: Boolean = corePreferences.showDialer - val showChat: Boolean = corePreferences.showChat - - val historySelected = MutableLiveData() - val contactsSelected = MutableLiveData() - val dialerSelected = MutableLiveData() - val chatSelected = MutableLiveData() - val unreadMessagesCount = MutableLiveData() val missedCallsCount = MutableLiveData() @@ -86,18 +74,4 @@ class TabsViewModel : ViewModel() { fun updateUnreadChatCount() { unreadMessagesCount.value = coreContext.core.unreadChatMessageCountFromActiveLocals } - - fun updateTabSelection(destinationId: Int) { - historySelected.value = false - contactsSelected.value = false - dialerSelected.value = false - chatSelected.value = false - - when (destinationId) { - R.id.masterCallLogsFragment -> historySelected.value = true - R.id.masterContactsFragment -> contactsSelected.value = true - R.id.dialerFragment -> dialerSelected.value = true - R.id.masterChatRoomsFragment -> chatSelected.value = true - } - } } diff --git a/app/src/main/java/org/linphone/core/CorePreferences.kt b/app/src/main/java/org/linphone/core/CorePreferences.kt index 87a89fba2..75684b320 100644 --- a/app/src/main/java/org/linphone/core/CorePreferences.kt +++ b/app/src/main/java/org/linphone/core/CorePreferences.kt @@ -299,20 +299,6 @@ class CorePreferences constructor(private val context: Context) { val dtmfKeypadVibration: Boolean get() = config.getBool("app", "dtmf_keypad_vibraton", false) - /* Tabs */ - - val showHistory: Boolean - get() = config.getBool("app", "tabs_history", true) - - val showContacts: Boolean - get() = config.getBool("app", "tabs_contacts", true) - - val showDialer: Boolean - get() = config.getBool("app", "tabs_dialer", true) - - val showChat: Boolean - get() = config.getBool("app", "tabs_chat", true) - /* Assistant */ val showCreateAccount: Boolean diff --git a/app/src/main/res/layout-land/tabs_fragment.xml b/app/src/main/res/layout-land/tabs_fragment.xml index 65be0950c..4429f1390 100644 --- a/app/src/main/res/layout-land/tabs_fragment.xml +++ b/app/src/main/res/layout-land/tabs_fragment.xml @@ -1,5 +1,6 @@ - + @@ -20,36 +21,51 @@ type="org.linphone.activities.main.viewmodels.TabsViewModel" /> - + + + + + + + android:background="@drawable/footer_button" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toTopOf="@id/guidelineTop" + android:onClick="@{historyClickListener}"> - - + android:background="@drawable/footer_button" + app:layout_constraintTop_toTopOf="@id/guidelineTop" + app:layout_constraintBottom_toTopOf="@id/guidelineMiddle" + android:onClick="@{contactsClickListener}"> - - + android:background="@drawable/footer_button" + app:layout_constraintTop_toTopOf="@id/guidelineMiddle" + app:layout_constraintBottom_toTopOf="@id/guidelineBottom" + android:onClick="@{dialerClickListener}"> - - + android:background="@drawable/footer_button" + app:layout_constraintTop_toTopOf="@id/guidelineBottom" + app:layout_constraintBottom_toBottomOf="parent" + android:onClick="@{chatClickListener}"> - - - + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/main_activity.xml b/app/src/main/res/layout/main_activity.xml index 183d6d3fd..90993d30f 100644 --- a/app/src/main/res/layout/main_activity.xml +++ b/app/src/main/res/layout/main_activity.xml @@ -48,6 +48,7 @@ android:layout_height="match_parent" android:layout_above="@id/tabs_fragment" app:defaultNavHost="true" + tools:layout="@layout/dialer_fragment" app:navGraph="@navigation/main_nav_graph" /> - + android:layout_height="60dp"> + + + + + + - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/tabs.xml b/app/src/main/res/xml/tabs.xml new file mode 100644 index 000000000..1b1397b3f --- /dev/null +++ b/app/src/main/res/xml/tabs.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/tabs_land.xml b/app/src/main/res/xml/tabs_land.xml new file mode 100644 index 000000000..e5ff13023 --- /dev/null +++ b/app/src/main/res/xml/tabs_land.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file