Added setting to disable animations

This commit is contained in:
Sylvain Berfini 2020-10-26 17:12:43 +01:00
parent f297007975
commit 723c693b68
20 changed files with 137 additions and 212 deletions

View file

@ -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)
}
}

View file

@ -21,6 +21,7 @@ package org.linphone.activities.assistant.fragments
import android.os.Bundle
import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.corePreferences
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.databinding.AssistantTopBarFragmentBinding
@ -36,7 +37,12 @@ class TopBarFragment : GenericFragment<AssistantTopBarFragmentBinding>() {
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
)
}
}
}
}

View file

@ -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<CallControlsFragmentBinding>() {
override fun onStart() {
super.onStart()
if (corePreferences.enableAnimations) {
bounceAnimator.start()
}
}
override fun onStop() {
if (corePreferences.enableAnimations) {
bounceAnimator.pause()
}
super.onStop()
}

View file

@ -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

View file

@ -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)
if (corePreferences.enableAnimations) {
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
}
}
}

View file

@ -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,11 +152,19 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin
currentFocus?.hideKeyboard()
val motionLayout: MotionLayout = binding.content as MotionLayout
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)
}
}
}
private fun View.hideKeyboard() {

View file

@ -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)

View file

@ -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<TabsFragmentBinding>(), NavController.OnDes
override fun onStart() {
super.onStart()
if (corePreferences.enableAnimations) {
bounceAnimator.start()
}
findNavController().addOnDestinationChangedListener(this)
}
override fun onStop() {
if (corePreferences.enableAnimations) {
bounceAnimator.pause()
}
findNavController().removeOnDestinationChangedListener(this)
super.onStop()
}
@ -98,11 +105,20 @@ class TabsFragment : GenericFragment<TabsFragmentBinding>(), NavController.OnDes
destination: NavDestination,
arguments: Bundle?
) {
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)
}
}
}
}

View file

@ -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<SettingsAdvancedFragmentBinding
}
})
viewModel.fullScreenChangedEvent.observe(viewLifecycleOwner, {
it.consume { hideUI ->
if (hideUI) {
(activity as GenericActivity).hideSystemUI()
} else {
(activity as GenericActivity).showSystemUI()
}
}
})
viewModel.backgroundModeEnabled.value = !DeviceUtils.isAppUserRestricted(requireContext())
viewModel.goToBatterySettingsEvent.observe(viewLifecycleOwner, { it.consume {

View file

@ -72,14 +72,12 @@ class AdvancedSettingsViewModel : GenericSettingsViewModel() {
private val darkModeValues = arrayListOf(-1, 0, 1)
val setNightModeEvent = MutableLiveData<Event<Int>>()
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<Boolean>()
val fullScreenChangedEvent = MutableLiveData<Event<Boolean>>()
val animations = MutableLiveData<Boolean>()
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

View file

@ -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,8 +90,11 @@ class SideMenuFragment : GenericFragment<SideMenuFragmentBinding>() {
binding.setAssistantClickListener {
sharedViewModel.toggleDrawerEvent.value = Event(true)
startActivity(Intent(context, AssistantActivity::class.java))
if (corePreferences.enableAnimations) {
requireActivity().overridePendingTransition(R.anim.enter_right, R.anim.exit_left)
}
}
binding.setSettingsClickListener {
sharedViewModel.toggleDrawerEvent.value = Event(true)

View file

@ -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() {

View file

@ -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">
<!-- For proper snack bar placement -->
@ -31,9 +29,9 @@
<androidx.fragment.app.FragmentContainerView
android:id="@+id/tabs_fragment"
android:name="org.linphone.activities.main.fragments.TabsFragment"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_width="@dimen/main_activity_tabs_fragment_size"
android:layout_height="match_parent"
tools:layout="@layout/tabs_fragment" />
tools:layout="@layout/tabs_fragment"
app:layout_constraintLeft_toLeftOf="parent"/>
</androidx.constraintlayout.motion.widget.MotionLayout>

View file

@ -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"/>
<ImageView
android:id="@+id/arrow_hangup_3"
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.4"/>
</LinearLayout>
@ -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"/>
<ImageView
android:id="@+id/arrow_accept_2"
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.6"/>
<ImageView
android:id="@+id/arrow_accept_1"

View file

@ -3,7 +3,6 @@
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"
@ -31,9 +30,9 @@
<androidx.fragment.app.FragmentContainerView
android:id="@+id/tabs_fragment"
android:name="org.linphone.activities.main.fragments.TabsFragment"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="match_parent"
android:layout_height="@dimen/main_activity_tabs_fragment_size"
tools:layout="@layout/tabs_fragment" />
tools:layout="@layout/tabs_fragment"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.motion.widget.MotionLayout>

View file

@ -106,11 +106,10 @@
<include
layout="@layout/settings_widget_switch"
android:visibility="@{View.GONE}"
linphone:title="@{@string/advanced_settings_full_screen_title}"
linphone:subtitle="@{@string/advanced_settings_full_screen_summary}"
linphone:listener="@{viewModel.fullScreenListener}"
linphone:checked="@={viewModel.fullScreen}"/>
linphone:title="@{@string/advanced_settings_animations_title}"
linphone:subtitle="@{@string/advanced_settings_animations_summary}"
linphone:listener="@{viewModel.animationsListener}"
linphone:checked="@={viewModel.animations}"/>
<include
layout="@layout/settings_widget_text"

View file

@ -461,8 +461,8 @@
<string name="advanced_settings_dark_mode_label_auto">Auto</string>
<string name="advanced_settings_dark_mode_label_no">No</string>
<string name="advanced_settings_dark_mode_label_yes">Yes</string>
<string name="advanced_settings_full_screen_title">Full screen</string>
<string name="advanced_settings_full_screen_summary"></string>
<string name="advanced_settings_animations_title">Animations</string>
<string name="advanced_settings_animations_summary"></string>
<string name="advanced_settings_device_name_title">Device name</string>
<string name="advanced_settings_device_name_summary">Changes will be applied at next start up</string>
<string name="advanced_settings_remote_provisioning_url_title">Remote provisioning URL</string>

View file

@ -31,7 +31,19 @@
motion:constraintSetStart="@+id/contacts"
motion:constraintSetEnd="@+id/chat_rooms"/>
<ConstraintSet android:id="@+id/visible">
<ConstraintSet android:id="@+id/parent">
<Constraint android:id="@id/history_unread_count">
<PropertySet motion:visibilityMode="ignore" motion:applyMotionScene="false" />
</Constraint>
<Constraint android:id="@id/chat_unread_count">
<PropertySet motion:visibilityMode="ignore" motion:applyMotionScene="false" />
</Constraint>
</ConstraintSet>
<ConstraintSet android:id="@+id/visible" motion:deriveConstraintsFrom="@id/parent">
<Constraint
android:id="@id/tabs_fragment"
@ -39,19 +51,9 @@
android:layout_height="@dimen/main_activity_tabs_fragment_size"
motion:layout_constraintBottom_toBottomOf="parent"/>
<Constraint
android:id="@id/history_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
<Constraint
android:id="@id/chat_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
</ConstraintSet>
<ConstraintSet android:id="@+id/gone">
<ConstraintSet android:id="@+id/gone" motion:deriveConstraintsFrom="@id/parent">
<Constraint
android:id="@id/tabs_fragment"
@ -61,7 +63,7 @@
</ConstraintSet>
<ConstraintSet android:id="@+id/call_history">
<ConstraintSet android:id="@+id/call_history" motion:deriveConstraintsFrom="@id/parent">
<Constraint
android:id="@id/selector"
@ -70,19 +72,9 @@
motion:layout_constraintBottom_toBottomOf="parent"
motion:layout_constraintLeft_toLeftOf="parent" />
<Constraint
android:id="@id/history_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
<Constraint
android:id="@id/chat_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
</ConstraintSet>
<ConstraintSet android:id="@+id/contacts">
<ConstraintSet android:id="@+id/contacts" motion:deriveConstraintsFrom="@id/parent">
<Constraint
android:id="@id/selector"
@ -91,19 +83,9 @@
motion:layout_constraintBottom_toBottomOf="parent"
motion:layout_constraintLeft_toLeftOf="@id/guidelineLeft" />
<Constraint
android:id="@id/history_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
<Constraint
android:id="@id/chat_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
</ConstraintSet>
<ConstraintSet android:id="@+id/dialer">
<ConstraintSet android:id="@+id/dialer" motion:deriveConstraintsFrom="@id/parent">
<Constraint
android:id="@id/selector"
@ -112,19 +94,9 @@
motion:layout_constraintBottom_toBottomOf="parent"
motion:layout_constraintLeft_toLeftOf="@id/guidelineMiddle" />
<Constraint
android:id="@id/history_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
<Constraint
android:id="@id/chat_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
</ConstraintSet>
<ConstraintSet android:id="@+id/chat_rooms">
<ConstraintSet android:id="@+id/chat_rooms" motion:deriveConstraintsFrom="@id/parent">
<Constraint
android:id="@id/selector"
@ -133,16 +105,6 @@
motion:layout_constraintBottom_toBottomOf="parent"
motion:layout_constraintRight_toRightOf="parent" />
<Constraint
android:id="@id/history_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
<Constraint
android:id="@id/chat_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
</ConstraintSet>
</MotionScene>

View file

@ -31,7 +31,19 @@
motion:constraintSetStart="@+id/contacts"
motion:constraintSetEnd="@+id/chat_rooms"/>
<ConstraintSet android:id="@+id/visible">
<ConstraintSet android:id="@+id/parent">
<Constraint android:id="@id/history_unread_count">
<PropertySet motion:visibilityMode="ignore" motion:applyMotionScene="false" />
</Constraint>
<Constraint android:id="@id/chat_unread_count">
<PropertySet motion:visibilityMode="ignore" motion:applyMotionScene="false" />
</Constraint>
</ConstraintSet>
<ConstraintSet android:id="@+id/visible" motion:deriveConstraintsFrom="@id/parent">
<Constraint
android:id="@id/tabs_fragment"
@ -40,19 +52,9 @@
motion:layout_constraintLeft_toLeftOf="parent"
motion:layout_constraintRight_creator="0"/>
<Constraint
android:id="@id/history_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
<Constraint
android:id="@id/chat_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
</ConstraintSet>
<ConstraintSet android:id="@+id/gone">
<ConstraintSet android:id="@+id/gone" motion:deriveConstraintsFrom="@id/parent">
<Constraint
android:id="@id/tabs_fragment"
@ -62,7 +64,7 @@
</ConstraintSet>
<ConstraintSet android:id="@+id/call_history">
<ConstraintSet android:id="@+id/call_history" motion:deriveConstraintsFrom="@id/parent">
<Constraint
android:id="@id/selector"
@ -71,19 +73,9 @@
motion:layout_constraintLeft_toLeftOf="parent"
motion:layout_constraintTop_toTopOf="parent" />
<Constraint
android:id="@id/history_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
<Constraint
android:id="@id/chat_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
</ConstraintSet>
<ConstraintSet android:id="@+id/contacts">
<ConstraintSet android:id="@+id/contacts" motion:deriveConstraintsFrom="@id/parent">
<Constraint
android:id="@id/selector"
@ -92,19 +84,9 @@
motion:layout_constraintLeft_toLeftOf="parent"
motion:layout_constraintTop_toTopOf="@id/guidelineTop" />
<Constraint
android:id="@id/history_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
<Constraint
android:id="@id/chat_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
</ConstraintSet>
<ConstraintSet android:id="@+id/dialer">
<ConstraintSet android:id="@+id/dialer" motion:deriveConstraintsFrom="@id/parent">
<Constraint
android:id="@id/selector"
@ -113,19 +95,9 @@
motion:layout_constraintLeft_toLeftOf="parent"
motion:layout_constraintTop_toTopOf="@id/guidelineMiddle" />
<Constraint
android:id="@id/history_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
<Constraint
android:id="@id/chat_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
</ConstraintSet>
<ConstraintSet android:id="@+id/chat_rooms">
<ConstraintSet android:id="@+id/chat_rooms" motion:deriveConstraintsFrom="@id/parent">
<Constraint
android:id="@id/selector"
@ -134,16 +106,6 @@
motion:layout_constraintLeft_toLeftOf="parent"
motion:layout_constraintBottom_toBottomOf="parent" />
<Constraint
android:id="@id/history_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
<Constraint
android:id="@id/chat_unread_count">
<PropertySet motion:visibilityMode="ignore" />
</Constraint>
</ConstraintSet>
</MotionScene>