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 2680c74c8..ae05023a4 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 @@ -19,9 +19,7 @@ */ package org.linphone.activities.main.fragments -import android.content.Context import android.os.Bundle -import android.util.AttributeSet import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -36,38 +34,15 @@ class TabsFragment : Fragment() { private lateinit var binding: TabsFragmentBinding private lateinit var viewModel: TabsViewModel - private var dialerSelected: Boolean = false - private var contactsSelected: Boolean = false - private var chatSelected: Boolean = false - private var historySelected: Boolean = false - override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { binding = TabsFragmentBinding.inflate(inflater, container, false) - - binding.historySelect.visibility = if (historySelected) View.VISIBLE else View.GONE - binding.contactsSelect.visibility = if (contactsSelected) View.VISIBLE else View.GONE - binding.dialerSelect.visibility = if (dialerSelected) View.VISIBLE else View.GONE - binding.chatSelect.visibility = if (chatSelected) View.VISIBLE else View.GONE - return binding.root } - override fun onInflate(context: Context, attrs: AttributeSet, savedInstanceState: Bundle?) { - super.onInflate(context, attrs, savedInstanceState) - - val attributes = context.obtainStyledAttributes(attrs, R.styleable.TabsFragment) - historySelected = attributes.getBoolean(R.styleable.TabsFragment_history_selected, false) - contactsSelected = attributes.getBoolean(R.styleable.TabsFragment_contacts_selected, false) - dialerSelected = attributes.getBoolean(R.styleable.TabsFragment_dialer_selected, false) - chatSelected = attributes.getBoolean(R.styleable.TabsFragment_chat_selected, false) - - attributes.recycle() - } - override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) @@ -78,6 +53,17 @@ class TabsFragment : Fragment() { } ?: throw Exception("Invalid Activity") binding.viewModel = viewModel + viewModel.historySelected.value = false + viewModel.contactsSelected.value = false + viewModel.dialerSelected.value = false + viewModel.chatSelected.value = false + when (findNavController().currentDestination?.id) { + R.id.masterCallLogsFragment -> viewModel.historySelected.value = true + R.id.masterContactsFragment -> viewModel.contactsSelected.value = true + R.id.dialerFragment -> viewModel.dialerSelected.value = true + R.id.masterChatRoomsFragment -> viewModel.chatSelected.value = true + } + binding.setHistoryClickListener { when (findNavController().currentDestination?.id) { R.id.masterContactsFragment -> findNavController().navigate(R.id.action_masterContactsFragment_to_masterCallLogsFragment) 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 30d567687..e6e01708a 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 @@ -25,6 +25,11 @@ import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.core.* class TabsViewModel : ViewModel() { + val historySelected = MutableLiveData() + val contactsSelected = MutableLiveData() + val dialerSelected = MutableLiveData() + val chatSelected = MutableLiveData() + val unreadMessagesCount = MutableLiveData() val missedCallsCount = MutableLiveData() diff --git a/app/src/main/res/layout-land/chat_room_master_fragment.xml b/app/src/main/res/layout-land/chat_room_master_fragment.xml index 4410e1300..918d2e630 100644 --- a/app/src/main/res/layout-land/chat_room_master_fragment.xml +++ b/app/src/main/res/layout-land/chat_room_master_fragment.xml @@ -29,7 +29,6 @@ android:layout_width="60dp" android:layout_height="match_parent" android:layout_alignParentBottom="true" - app:chat_selected="true" tools:layout="@layout/tabs_fragment" /> + android:visibility="@{viewModel.historySelected ? View.VISIBLE : View.GONE, default=gone}" /> + android:visibility="@{viewModel.contactsSelected ? View.VISIBLE : View.GONE, default=gone}" /> + android:background="?attr/accentColor" + android:visibility="@{viewModel.dialerSelected ? View.VISIBLE : View.GONE, default=visible}" /> + android:visibility="@{viewModel.chatSelected ? View.VISIBLE : View.GONE, default=gone}" /> + android:visibility="@{viewModel.historySelected ? View.VISIBLE : View.GONE, default=gone}" /> + android:visibility="@{viewModel.contactsSelected ? View.VISIBLE : View.GONE, default=gone}" /> + android:background="?attr/accentColor" + android:visibility="@{viewModel.dialerSelected ? View.VISIBLE : View.GONE, default=visible}" /> + android:visibility="@{viewModel.chatSelected ? View.VISIBLE : View.GONE, default=gone}" /> - - - - - - - diff --git a/build.gradle b/build.gradle index 8a66b9da8..2df1f96f4 100644 --- a/build.gradle +++ b/build.gradle @@ -12,7 +12,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.6.1' + classpath 'com.android.tools.build:gradle:3.6.2' classpath 'com.google.gms:google-services:4.3.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jlleitschuh.gradle:ktlint-gradle:9.1.1"