From 723c693b689dfb8ff7d41fe7506497dca472b70b Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 26 Oct 2020 17:12:43 +0100 Subject: [PATCH] Added setting to disable animations --- .../linphone/activities/GenericActivity.kt | 42 ----------- .../fragments/AccountLoginFragment.kt | 2 +- .../assistant/fragments/TopBarFragment.kt | 8 +- .../call/fragments/ControlsFragment.kt | 10 ++- .../views/AnswerDeclineIncomingCallButtons.kt | 3 + .../activities/launcher/LauncherActivity.kt | 5 +- .../linphone/activities/main/MainActivity.kt | 21 +++++- .../linphone/activities/main/Navigation.kt | 5 ++ .../activities/main/fragments/TabsFragment.kt | 30 ++++++-- .../fragments/AdvancedSettingsFragment.kt | 11 --- .../viewmodels/AdvancedSettingsViewModel.kt | 10 +-- .../sidemenu/fragments/SideMenuFragment.kt | 6 +- .../java/org/linphone/core/CorePreferences.kt | 12 +-- .../res/layout-land/main_activity_content.xml | 6 +- .../call_incoming_answer_decline_buttons.xml | 12 ++- .../main/res/layout/main_activity_content.xml | 5 +- .../res/layout/settings_advanced_fragment.xml | 9 +-- app/src/main/res/values/strings.xml | 4 +- .../res/xml/motion_main_activity_tabs.xml | 74 +++++-------------- .../xml/motion_main_activity_tabs_land.xml | 74 +++++-------------- 20 files changed, 137 insertions(+), 212 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/GenericActivity.kt b/app/src/main/java/org/linphone/activities/GenericActivity.kt index 557f46042..14fd36453 100644 --- a/app/src/main/java/org/linphone/activities/GenericActivity.kt +++ b/app/src/main/java/org/linphone/activities/GenericActivity.kt @@ -24,14 +24,9 @@ import android.content.pm.ActivityInfo import android.content.res.Configuration import android.os.Bundle import android.view.Surface -import android.view.View import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatDelegate -import androidx.lifecycle.lifecycleScope import java.util.* -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.LinphoneApplication.Companion.ensureCoreExists @@ -46,7 +41,6 @@ abstract class GenericActivity : AppCompatActivity() { super.onCreate(savedInstanceState) ensureCoreExists(applicationContext) - hideSystemUI() requestedOrientation = if (corePreferences.forcePortrait) { ActivityInfo.SCREEN_ORIENTATION_PORTRAIT @@ -70,28 +64,6 @@ abstract class GenericActivity : AppCompatActivity() { } } } - - window.decorView.setOnSystemUiVisibilityChangeListener { visibility -> - if (visibility and View.SYSTEM_UI_FLAG_FULLSCREEN == 0) { - timer?.cancel() - - timer = Timer("Hide Android top & bottom bars") - timer?.schedule(object : TimerTask() { - override fun run() { - lifecycleScope.launch { - withContext(Dispatchers.Main) { - hideSystemUI() - } - } - } - }, 2000) - } - } - } - - override fun onWindowFocusChanged(hasFocus: Boolean) { - super.onWindowFocusChanged(hasFocus) - if (hasFocus) hideSystemUI() } override fun onResume() { @@ -116,18 +88,4 @@ abstract class GenericActivity : AppCompatActivity() { fun isTablet(): Boolean { return resources.getBoolean(R.bool.isTablet) } - - fun hideSystemUI() { - if (corePreferences.fullScreen) { - window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE - or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION - or View.SYSTEM_UI_FLAG_FULLSCREEN - or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION - or View.SYSTEM_UI_FLAG_LAYOUT_STABLE) - } - } - - fun showSystemUI() { - window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE) - } } diff --git a/app/src/main/java/org/linphone/activities/assistant/fragments/AccountLoginFragment.kt b/app/src/main/java/org/linphone/activities/assistant/fragments/AccountLoginFragment.kt index f7be7845a..5dba94e76 100644 --- a/app/src/main/java/org/linphone/activities/assistant/fragments/AccountLoginFragment.kt +++ b/app/src/main/java/org/linphone/activities/assistant/fragments/AccountLoginFragment.kt @@ -49,7 +49,7 @@ class AccountLoginFragment : AbstractPhoneFragment() { binding.setBackClickListener { if (!findNavController().popBackStack()) { requireActivity().finish() - requireActivity().overridePendingTransition(R.anim.enter_left, R.anim.exit_right) + if (corePreferences.enableAnimations) { + requireActivity().overridePendingTransition( + R.anim.enter_left, + R.anim.exit_right + ) + } } } } diff --git a/app/src/main/java/org/linphone/activities/call/fragments/ControlsFragment.kt b/app/src/main/java/org/linphone/activities/call/fragments/ControlsFragment.kt index dd2c04ebe..b84bcd00e 100644 --- a/app/src/main/java/org/linphone/activities/call/fragments/ControlsFragment.kt +++ b/app/src/main/java/org/linphone/activities/call/fragments/ControlsFragment.kt @@ -32,6 +32,7 @@ import android.view.animation.LinearInterpolator import android.widget.TextView import androidx.lifecycle.ViewModelProvider import org.linphone.LinphoneApplication.Companion.coreContext +import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.R import org.linphone.activities.GenericFragment import org.linphone.activities.call.viewmodels.CallsViewModel @@ -165,11 +166,16 @@ class ControlsFragment : GenericFragment() { override fun onStart() { super.onStart() - bounceAnimator.start() + + if (corePreferences.enableAnimations) { + bounceAnimator.start() + } } override fun onStop() { - bounceAnimator.pause() + if (corePreferences.enableAnimations) { + bounceAnimator.pause() + } super.onStop() } diff --git a/app/src/main/java/org/linphone/activities/call/views/AnswerDeclineIncomingCallButtons.kt b/app/src/main/java/org/linphone/activities/call/views/AnswerDeclineIncomingCallButtons.kt index f866faa43..b030ea7a8 100644 --- a/app/src/main/java/org/linphone/activities/call/views/AnswerDeclineIncomingCallButtons.kt +++ b/app/src/main/java/org/linphone/activities/call/views/AnswerDeclineIncomingCallButtons.kt @@ -30,6 +30,7 @@ import android.view.View.OnTouchListener import android.view.animation.LinearInterpolator import android.widget.LinearLayout import androidx.databinding.DataBindingUtil +import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.R import org.linphone.activities.call.viewmodels.IncomingCallViewModel import org.linphone.core.tools.Log @@ -137,6 +138,8 @@ class AnswerDeclineIncomingCallButtons : LinearLayout { } private fun configureAnimation() { + if (!corePreferences.enableAnimations) return + val accept1 = ObjectAnimator.ofFloat(binding.arrowAccept1, "alpha", 1f, 0.6f, 0.4f, 1f).apply { repeatCount = ObjectAnimator.INFINITE repeatMode = ObjectAnimator.RESTART diff --git a/app/src/main/java/org/linphone/activities/launcher/LauncherActivity.kt b/app/src/main/java/org/linphone/activities/launcher/LauncherActivity.kt index 1e2624973..d2e944eed 100644 --- a/app/src/main/java/org/linphone/activities/launcher/LauncherActivity.kt +++ b/app/src/main/java/org/linphone/activities/launcher/LauncherActivity.kt @@ -22,6 +22,7 @@ package org.linphone.activities.launcher import android.content.Intent import android.os.Bundle import org.linphone.LinphoneApplication.Companion.coreContext +import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.R import org.linphone.activities.GenericActivity import org.linphone.activities.main.MainActivity @@ -55,6 +56,8 @@ class LauncherActivity : GenericActivity() { intent.data = getIntent().data startActivity(intent) - overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out) + if (corePreferences.enableAnimations) { + overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out) + } } } diff --git a/app/src/main/java/org/linphone/activities/main/MainActivity.kt b/app/src/main/java/org/linphone/activities/main/MainActivity.kt index 474b8af6f..fc3600dd4 100644 --- a/app/src/main/java/org/linphone/activities/main/MainActivity.kt +++ b/app/src/main/java/org/linphone/activities/main/MainActivity.kt @@ -29,6 +29,7 @@ import android.view.View import android.view.inputmethod.InputMethodManager import androidx.constraintlayout.motion.widget.MotionLayout import androidx.databinding.DataBindingUtil +import androidx.fragment.app.FragmentContainerView import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import androidx.navigation.NavController @@ -68,6 +69,8 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin } } + private lateinit var tabsFragment: FragmentContainerView + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -105,6 +108,8 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin startActivity(Intent(this, AssistantActivity::class.java)) } } + + tabsFragment = findViewById(R.id.tabs_fragment) } override fun onNewIntent(intent: Intent?) { @@ -147,10 +152,18 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin currentFocus?.hideKeyboard() val motionLayout: MotionLayout = binding.content as MotionLayout - when (destination.id) { - R.id.masterCallLogsFragment, R.id.masterContactsFragment, R.id.dialerFragment, R.id.masterChatRoomsFragment -> - motionLayout.transitionToState(R.id.visible) - else -> motionLayout.transitionToState(R.id.gone) + if (corePreferences.enableAnimations) { + when (destination.id) { + R.id.masterCallLogsFragment, R.id.masterContactsFragment, R.id.dialerFragment, R.id.masterChatRoomsFragment -> + motionLayout.transitionToState(R.id.visible) + else -> motionLayout.transitionToState(R.id.gone) + } + } else { + when (destination.id) { + R.id.masterCallLogsFragment, R.id.masterContactsFragment, R.id.dialerFragment, R.id.masterChatRoomsFragment -> + motionLayout.setTransition(R.id.visible, R.id.visible) + else -> motionLayout.setTransition(R.id.gone, R.id.gone) + } } } diff --git a/app/src/main/java/org/linphone/activities/main/Navigation.kt b/app/src/main/java/org/linphone/activities/main/Navigation.kt index 2a52222c5..98c84f563 100644 --- a/app/src/main/java/org/linphone/activities/main/Navigation.kt +++ b/app/src/main/java/org/linphone/activities/main/Navigation.kt @@ -28,6 +28,7 @@ import androidx.navigation.NavOptions import androidx.navigation.findNavController import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.findNavController +import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.R import org.linphone.activities.assistant.fragments.* import org.linphone.activities.main.chat.fragments.ChatRoomCreationFragment @@ -55,6 +56,7 @@ internal fun Fragment.findMasterNavController(): NavController { } fun getRightToLeftAnimationNavOptions(): NavOptions { + if (!corePreferences.enableAnimations) return NavOptions.Builder().build() return NavOptions.Builder() .setEnterAnim(R.anim.enter_right) .setExitAnim(R.anim.exit_left) @@ -64,6 +66,7 @@ fun getRightToLeftAnimationNavOptions(): NavOptions { } fun getLeftToRightAnimationNavOptions(): NavOptions { + if (!corePreferences.enableAnimations) return NavOptions.Builder().build() return NavOptions.Builder() .setEnterAnim(R.anim.enter_left) .setExitAnim(R.anim.exit_right) @@ -73,6 +76,7 @@ fun getLeftToRightAnimationNavOptions(): NavOptions { } fun getRightToLeftNoPopAnimationNavOptions(): NavOptions { + if (!corePreferences.enableAnimations) return NavOptions.Builder().build() return NavOptions.Builder() .setEnterAnim(R.anim.enter_right) .setExitAnim(R.anim.exit_left) @@ -80,6 +84,7 @@ fun getRightToLeftNoPopAnimationNavOptions(): NavOptions { } fun getLeftToRightNoPopAnimationNavOptions(): NavOptions { + if (!corePreferences.enableAnimations) return NavOptions.Builder().build() return NavOptions.Builder() .setEnterAnim(R.anim.enter_left) .setExitAnim(R.anim.exit_right) 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 909628e78..1b1dc0b43 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 @@ -26,6 +26,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.navigation.NavController import androidx.navigation.NavDestination import androidx.navigation.fragment.findNavController +import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.R import org.linphone.activities.GenericFragment import org.linphone.activities.main.navigateToCallHistory @@ -83,13 +84,19 @@ class TabsFragment : GenericFragment(), NavController.OnDes override fun onStart() { super.onStart() - bounceAnimator.start() + + if (corePreferences.enableAnimations) { + bounceAnimator.start() + } findNavController().addOnDestinationChangedListener(this) } override fun onStop() { - bounceAnimator.pause() + if (corePreferences.enableAnimations) { + bounceAnimator.pause() + } findNavController().removeOnDestinationChangedListener(this) + super.onStop() } @@ -98,11 +105,20 @@ class TabsFragment : GenericFragment(), NavController.OnDes destination: NavDestination, arguments: Bundle? ) { - when (destination.id) { - R.id.masterCallLogsFragment -> binding.motionLayout.transitionToState(R.id.call_history) - R.id.masterContactsFragment -> binding.motionLayout.transitionToState(R.id.contacts) - R.id.dialerFragment -> binding.motionLayout.transitionToState(R.id.dialer) - R.id.masterChatRoomsFragment -> binding.motionLayout.transitionToState(R.id.chat_rooms) + if (corePreferences.enableAnimations) { + when (destination.id) { + R.id.masterCallLogsFragment -> binding.motionLayout.transitionToState(R.id.call_history) + R.id.masterContactsFragment -> binding.motionLayout.transitionToState(R.id.contacts) + R.id.dialerFragment -> binding.motionLayout.transitionToState(R.id.dialer) + R.id.masterChatRoomsFragment -> binding.motionLayout.transitionToState(R.id.chat_rooms) + } + } else { + when (destination.id) { + R.id.masterCallLogsFragment -> binding.motionLayout.setTransition(R.id.call_history, R.id.call_history) + R.id.masterContactsFragment -> binding.motionLayout.setTransition(R.id.contacts, R.id.contacts) + R.id.dialerFragment -> binding.motionLayout.setTransition(R.id.dialer, R.id.dialer) + R.id.masterChatRoomsFragment -> binding.motionLayout.setTransition(R.id.chat_rooms, R.id.chat_rooms) + } } } } diff --git a/app/src/main/java/org/linphone/activities/main/settings/fragments/AdvancedSettingsFragment.kt b/app/src/main/java/org/linphone/activities/main/settings/fragments/AdvancedSettingsFragment.kt index 9ab53b804..911a9d2f6 100644 --- a/app/src/main/java/org/linphone/activities/main/settings/fragments/AdvancedSettingsFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/settings/fragments/AdvancedSettingsFragment.kt @@ -30,7 +30,6 @@ import androidx.core.content.ContextCompat import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController import org.linphone.R -import org.linphone.activities.GenericActivity import org.linphone.activities.GenericFragment import org.linphone.activities.main.settings.viewmodels.AdvancedSettingsViewModel import org.linphone.core.tools.Log @@ -66,16 +65,6 @@ class AdvancedSettingsFragment : GenericFragment - if (hideUI) { - (activity as GenericActivity).hideSystemUI() - } else { - (activity as GenericActivity).showSystemUI() - } - } - }) - viewModel.backgroundModeEnabled.value = !DeviceUtils.isAppUserRestricted(requireContext()) viewModel.goToBatterySettingsEvent.observe(viewLifecycleOwner, { it.consume { diff --git a/app/src/main/java/org/linphone/activities/main/settings/viewmodels/AdvancedSettingsViewModel.kt b/app/src/main/java/org/linphone/activities/main/settings/viewmodels/AdvancedSettingsViewModel.kt index 9c6e0cc60..fb38e8799 100644 --- a/app/src/main/java/org/linphone/activities/main/settings/viewmodels/AdvancedSettingsViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/settings/viewmodels/AdvancedSettingsViewModel.kt @@ -72,14 +72,12 @@ class AdvancedSettingsViewModel : GenericSettingsViewModel() { private val darkModeValues = arrayListOf(-1, 0, 1) val setNightModeEvent = MutableLiveData>() - val fullScreenListener = object : SettingListenerStub() { + val animationsListener = object : SettingListenerStub() { override fun onBoolValueChanged(newValue: Boolean) { - prefs.fullScreen = newValue - fullScreenChangedEvent.value = Event(newValue) + prefs.enableAnimations = newValue } } - val fullScreen = MutableLiveData() - val fullScreenChangedEvent = MutableLiveData>() + val animations = MutableLiveData() val deviceNameListener = object : SettingListenerStub() { override fun onTextValueChanged(newValue: String) { @@ -141,7 +139,7 @@ class AdvancedSettingsViewModel : GenericSettingsViewModel() { darkModeLabels.value = labels darkModeIndex.value = darkModeValues.indexOf(prefs.darkMode) - fullScreen.value = prefs.fullScreen + animations.value = prefs.enableAnimations deviceName.value = prefs.deviceName remoteProvisioningUrl.value = core.provisioningUri logsServerUrl.value = core.logCollectionUploadServerUrl diff --git a/app/src/main/java/org/linphone/activities/main/sidemenu/fragments/SideMenuFragment.kt b/app/src/main/java/org/linphone/activities/main/sidemenu/fragments/SideMenuFragment.kt index a787f9912..ab5030750 100644 --- a/app/src/main/java/org/linphone/activities/main/sidemenu/fragments/SideMenuFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/sidemenu/fragments/SideMenuFragment.kt @@ -30,6 +30,7 @@ import androidx.lifecycle.lifecycleScope import java.io.File import kotlinx.coroutines.launch import org.linphone.LinphoneApplication.Companion.coreContext +import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.R import org.linphone.activities.GenericFragment import org.linphone.activities.assistant.AssistantActivity @@ -89,7 +90,10 @@ class SideMenuFragment : GenericFragment() { binding.setAssistantClickListener { sharedViewModel.toggleDrawerEvent.value = Event(true) startActivity(Intent(context, AssistantActivity::class.java)) - requireActivity().overridePendingTransition(R.anim.enter_right, R.anim.exit_left) + + if (corePreferences.enableAnimations) { + requireActivity().overridePendingTransition(R.anim.enter_right, R.anim.exit_left) + } } binding.setSettingsClickListener { diff --git a/app/src/main/java/org/linphone/core/CorePreferences.kt b/app/src/main/java/org/linphone/core/CorePreferences.kt index 75684b320..2a4b7a4d2 100644 --- a/app/src/main/java/org/linphone/core/CorePreferences.kt +++ b/app/src/main/java/org/linphone/core/CorePreferences.kt @@ -62,18 +62,18 @@ class CorePreferences constructor(private val context: Context) { config.setBool("app", "force_portrait_orientation", value) } - var fullScreen: Boolean - get() = config.getBool("app", "full_screen_activities", false) - set(value) { - config.setBool("app", "full_screen_activities", value) - } - var replaceSipUriByUsername: Boolean get() = config.getBool("app", "replace_sip_uri_by_username", false) set(value) { config.setBool("app", "replace_sip_uri_by_username", value) } + var enableAnimations: Boolean + get() = config.getBool("app", "enable_animations", false) + set(value) { + config.setBool("app", "enable_animations", value) + } + /** -1 means auto, 0 no, 1 yes */ var darkMode: Int get() { diff --git a/app/src/main/res/layout-land/main_activity_content.xml b/app/src/main/res/layout-land/main_activity_content.xml index 021c843eb..bf210bc4b 100644 --- a/app/src/main/res/layout-land/main_activity_content.xml +++ b/app/src/main/res/layout-land/main_activity_content.xml @@ -3,10 +3,8 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:id="@+id/tabs_layout" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_alignParentBottom="true" app:layoutDescription="@xml/motion_main_activity_tabs_land"> @@ -31,9 +29,9 @@ + tools:layout="@layout/tabs_fragment" + app:layout_constraintLeft_toLeftOf="parent"/> \ No newline at end of file diff --git a/app/src/main/res/layout/call_incoming_answer_decline_buttons.xml b/app/src/main/res/layout/call_incoming_answer_decline_buttons.xml index 2472f4c6a..8ee8b90a5 100644 --- a/app/src/main/res/layout/call_incoming_answer_decline_buttons.xml +++ b/app/src/main/res/layout/call_incoming_answer_decline_buttons.xml @@ -53,14 +53,16 @@ android:src="@drawable/arrow_hangup" android:contentDescription="@null" android:layout_width="wrap_content" - android:layout_height="wrap_content"/> + android:layout_height="wrap_content" + android:alpha="0.6"/> + android:layout_height="wrap_content" + android:alpha="0.4"/> @@ -92,14 +94,16 @@ android:src="@drawable/arrow_accept" android:contentDescription="@null" android:layout_width="wrap_content" - android:layout_height="wrap_content"/> + android:layout_height="wrap_content" + android:alpha="0.4"/> + android:layout_height="wrap_content" + android:alpha="0.6"/> + tools:layout="@layout/tabs_fragment" + app:layout_constraintBottom_toBottomOf="parent"/> \ No newline at end of file diff --git a/app/src/main/res/layout/settings_advanced_fragment.xml b/app/src/main/res/layout/settings_advanced_fragment.xml index 34faaecab..e0714b2b7 100644 --- a/app/src/main/res/layout/settings_advanced_fragment.xml +++ b/app/src/main/res/layout/settings_advanced_fragment.xml @@ -106,11 +106,10 @@ + linphone:title="@{@string/advanced_settings_animations_title}" + linphone:subtitle="@{@string/advanced_settings_animations_summary}" + linphone:listener="@{viewModel.animationsListener}" + linphone:checked="@={viewModel.animations}"/> Auto No Yes - Full screen - + Animations + Device name Changes will be applied at next start up Remote provisioning URL diff --git a/app/src/main/res/xml/motion_main_activity_tabs.xml b/app/src/main/res/xml/motion_main_activity_tabs.xml index 07d401be0..a9b169e01 100644 --- a/app/src/main/res/xml/motion_main_activity_tabs.xml +++ b/app/src/main/res/xml/motion_main_activity_tabs.xml @@ -31,7 +31,19 @@ motion:constraintSetStart="@+id/contacts" motion:constraintSetEnd="@+id/chat_rooms"/> - + + + + + + + + + + + + + - - - - - - - - - + - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - diff --git a/app/src/main/res/xml/motion_main_activity_tabs_land.xml b/app/src/main/res/xml/motion_main_activity_tabs_land.xml index 67905417e..224827ae6 100644 --- a/app/src/main/res/xml/motion_main_activity_tabs_land.xml +++ b/app/src/main/res/xml/motion_main_activity_tabs_land.xml @@ -31,7 +31,19 @@ motion:constraintSetStart="@+id/contacts" motion:constraintSetEnd="@+id/chat_rooms"/> - + + + + + + + + + + + + + - - - - - - - - - + - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - -