Added setting to disable animations
This commit is contained in:
parent
f297007975
commit
723c693b68
20 changed files with 137 additions and 212 deletions
|
@ -24,14 +24,9 @@ import android.content.pm.ActivityInfo
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.Surface
|
import android.view.Surface
|
||||||
import android.view.View
|
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.appcompat.app.AppCompatDelegate
|
import androidx.appcompat.app.AppCompatDelegate
|
||||||
import androidx.lifecycle.lifecycleScope
|
|
||||||
import java.util.*
|
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.coreContext
|
||||||
import org.linphone.LinphoneApplication.Companion.corePreferences
|
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||||
import org.linphone.LinphoneApplication.Companion.ensureCoreExists
|
import org.linphone.LinphoneApplication.Companion.ensureCoreExists
|
||||||
|
@ -46,7 +41,6 @@ abstract class GenericActivity : AppCompatActivity() {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
ensureCoreExists(applicationContext)
|
ensureCoreExists(applicationContext)
|
||||||
hideSystemUI()
|
|
||||||
|
|
||||||
requestedOrientation = if (corePreferences.forcePortrait) {
|
requestedOrientation = if (corePreferences.forcePortrait) {
|
||||||
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
|
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() {
|
override fun onResume() {
|
||||||
|
@ -116,18 +88,4 @@ abstract class GenericActivity : AppCompatActivity() {
|
||||||
fun isTablet(): Boolean {
|
fun isTablet(): Boolean {
|
||||||
return resources.getBoolean(R.bool.isTablet)
|
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)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@ class AccountLoginFragment : AbstractPhoneFragment<AssistantAccountLoginFragment
|
||||||
sharedViewModel = requireActivity().run {
|
sharedViewModel = requireActivity().run {
|
||||||
ViewModelProvider(this).get(SharedAssistantViewModel::class.java)
|
ViewModelProvider(this).get(SharedAssistantViewModel::class.java)
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel = ViewModelProvider(this, AccountLoginViewModelFactory(sharedViewModel.getAccountCreator())).get(AccountLoginViewModel::class.java)
|
viewModel = ViewModelProvider(this, AccountLoginViewModelFactory(sharedViewModel.getAccountCreator())).get(AccountLoginViewModel::class.java)
|
||||||
binding.viewModel = viewModel
|
binding.viewModel = viewModel
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ package org.linphone.activities.assistant.fragments
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
|
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.activities.GenericFragment
|
import org.linphone.activities.GenericFragment
|
||||||
import org.linphone.databinding.AssistantTopBarFragmentBinding
|
import org.linphone.databinding.AssistantTopBarFragmentBinding
|
||||||
|
@ -36,7 +37,12 @@ class TopBarFragment : GenericFragment<AssistantTopBarFragmentBinding>() {
|
||||||
binding.setBackClickListener {
|
binding.setBackClickListener {
|
||||||
if (!findNavController().popBackStack()) {
|
if (!findNavController().popBackStack()) {
|
||||||
requireActivity().finish()
|
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
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@ import android.view.animation.LinearInterpolator
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import org.linphone.LinphoneApplication.Companion.coreContext
|
import org.linphone.LinphoneApplication.Companion.coreContext
|
||||||
|
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.activities.GenericFragment
|
import org.linphone.activities.GenericFragment
|
||||||
import org.linphone.activities.call.viewmodels.CallsViewModel
|
import org.linphone.activities.call.viewmodels.CallsViewModel
|
||||||
|
@ -165,11 +166,16 @@ class ControlsFragment : GenericFragment<CallControlsFragmentBinding>() {
|
||||||
|
|
||||||
override fun onStart() {
|
override fun onStart() {
|
||||||
super.onStart()
|
super.onStart()
|
||||||
bounceAnimator.start()
|
|
||||||
|
if (corePreferences.enableAnimations) {
|
||||||
|
bounceAnimator.start()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onStop() {
|
override fun onStop() {
|
||||||
bounceAnimator.pause()
|
if (corePreferences.enableAnimations) {
|
||||||
|
bounceAnimator.pause()
|
||||||
|
}
|
||||||
super.onStop()
|
super.onStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,7 @@ import android.view.View.OnTouchListener
|
||||||
import android.view.animation.LinearInterpolator
|
import android.view.animation.LinearInterpolator
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import androidx.databinding.DataBindingUtil
|
import androidx.databinding.DataBindingUtil
|
||||||
|
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.activities.call.viewmodels.IncomingCallViewModel
|
import org.linphone.activities.call.viewmodels.IncomingCallViewModel
|
||||||
import org.linphone.core.tools.Log
|
import org.linphone.core.tools.Log
|
||||||
|
@ -137,6 +138,8 @@ class AnswerDeclineIncomingCallButtons : LinearLayout {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun configureAnimation() {
|
private fun configureAnimation() {
|
||||||
|
if (!corePreferences.enableAnimations) return
|
||||||
|
|
||||||
val accept1 = ObjectAnimator.ofFloat(binding.arrowAccept1, "alpha", 1f, 0.6f, 0.4f, 1f).apply {
|
val accept1 = ObjectAnimator.ofFloat(binding.arrowAccept1, "alpha", 1f, 0.6f, 0.4f, 1f).apply {
|
||||||
repeatCount = ObjectAnimator.INFINITE
|
repeatCount = ObjectAnimator.INFINITE
|
||||||
repeatMode = ObjectAnimator.RESTART
|
repeatMode = ObjectAnimator.RESTART
|
||||||
|
|
|
@ -22,6 +22,7 @@ package org.linphone.activities.launcher
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import org.linphone.LinphoneApplication.Companion.coreContext
|
import org.linphone.LinphoneApplication.Companion.coreContext
|
||||||
|
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.activities.GenericActivity
|
import org.linphone.activities.GenericActivity
|
||||||
import org.linphone.activities.main.MainActivity
|
import org.linphone.activities.main.MainActivity
|
||||||
|
@ -55,6 +56,8 @@ class LauncherActivity : GenericActivity() {
|
||||||
intent.data = getIntent().data
|
intent.data = getIntent().data
|
||||||
|
|
||||||
startActivity(intent)
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@ import android.view.View
|
||||||
import android.view.inputmethod.InputMethodManager
|
import android.view.inputmethod.InputMethodManager
|
||||||
import androidx.constraintlayout.motion.widget.MotionLayout
|
import androidx.constraintlayout.motion.widget.MotionLayout
|
||||||
import androidx.databinding.DataBindingUtil
|
import androidx.databinding.DataBindingUtil
|
||||||
|
import androidx.fragment.app.FragmentContainerView
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
|
@ -68,6 +69,8 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private lateinit var tabsFragment: FragmentContainerView
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
@ -105,6 +108,8 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin
|
||||||
startActivity(Intent(this, AssistantActivity::class.java))
|
startActivity(Intent(this, AssistantActivity::class.java))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tabsFragment = findViewById(R.id.tabs_fragment)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onNewIntent(intent: Intent?) {
|
override fun onNewIntent(intent: Intent?) {
|
||||||
|
@ -147,10 +152,18 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin
|
||||||
currentFocus?.hideKeyboard()
|
currentFocus?.hideKeyboard()
|
||||||
|
|
||||||
val motionLayout: MotionLayout = binding.content as MotionLayout
|
val motionLayout: MotionLayout = binding.content as MotionLayout
|
||||||
when (destination.id) {
|
if (corePreferences.enableAnimations) {
|
||||||
R.id.masterCallLogsFragment, R.id.masterContactsFragment, R.id.dialerFragment, R.id.masterChatRoomsFragment ->
|
when (destination.id) {
|
||||||
motionLayout.transitionToState(R.id.visible)
|
R.id.masterCallLogsFragment, R.id.masterContactsFragment, R.id.dialerFragment, R.id.masterChatRoomsFragment ->
|
||||||
else -> motionLayout.transitionToState(R.id.gone)
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ import androidx.navigation.NavOptions
|
||||||
import androidx.navigation.findNavController
|
import androidx.navigation.findNavController
|
||||||
import androidx.navigation.fragment.NavHostFragment
|
import androidx.navigation.fragment.NavHostFragment
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
|
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.activities.assistant.fragments.*
|
import org.linphone.activities.assistant.fragments.*
|
||||||
import org.linphone.activities.main.chat.fragments.ChatRoomCreationFragment
|
import org.linphone.activities.main.chat.fragments.ChatRoomCreationFragment
|
||||||
|
@ -55,6 +56,7 @@ internal fun Fragment.findMasterNavController(): NavController {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getRightToLeftAnimationNavOptions(): NavOptions {
|
fun getRightToLeftAnimationNavOptions(): NavOptions {
|
||||||
|
if (!corePreferences.enableAnimations) return NavOptions.Builder().build()
|
||||||
return NavOptions.Builder()
|
return NavOptions.Builder()
|
||||||
.setEnterAnim(R.anim.enter_right)
|
.setEnterAnim(R.anim.enter_right)
|
||||||
.setExitAnim(R.anim.exit_left)
|
.setExitAnim(R.anim.exit_left)
|
||||||
|
@ -64,6 +66,7 @@ fun getRightToLeftAnimationNavOptions(): NavOptions {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getLeftToRightAnimationNavOptions(): NavOptions {
|
fun getLeftToRightAnimationNavOptions(): NavOptions {
|
||||||
|
if (!corePreferences.enableAnimations) return NavOptions.Builder().build()
|
||||||
return NavOptions.Builder()
|
return NavOptions.Builder()
|
||||||
.setEnterAnim(R.anim.enter_left)
|
.setEnterAnim(R.anim.enter_left)
|
||||||
.setExitAnim(R.anim.exit_right)
|
.setExitAnim(R.anim.exit_right)
|
||||||
|
@ -73,6 +76,7 @@ fun getLeftToRightAnimationNavOptions(): NavOptions {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getRightToLeftNoPopAnimationNavOptions(): NavOptions {
|
fun getRightToLeftNoPopAnimationNavOptions(): NavOptions {
|
||||||
|
if (!corePreferences.enableAnimations) return NavOptions.Builder().build()
|
||||||
return NavOptions.Builder()
|
return NavOptions.Builder()
|
||||||
.setEnterAnim(R.anim.enter_right)
|
.setEnterAnim(R.anim.enter_right)
|
||||||
.setExitAnim(R.anim.exit_left)
|
.setExitAnim(R.anim.exit_left)
|
||||||
|
@ -80,6 +84,7 @@ fun getRightToLeftNoPopAnimationNavOptions(): NavOptions {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getLeftToRightNoPopAnimationNavOptions(): NavOptions {
|
fun getLeftToRightNoPopAnimationNavOptions(): NavOptions {
|
||||||
|
if (!corePreferences.enableAnimations) return NavOptions.Builder().build()
|
||||||
return NavOptions.Builder()
|
return NavOptions.Builder()
|
||||||
.setEnterAnim(R.anim.enter_left)
|
.setEnterAnim(R.anim.enter_left)
|
||||||
.setExitAnim(R.anim.exit_right)
|
.setExitAnim(R.anim.exit_right)
|
||||||
|
|
|
@ -26,6 +26,7 @@ import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
import androidx.navigation.NavDestination
|
import androidx.navigation.NavDestination
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
|
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.activities.GenericFragment
|
import org.linphone.activities.GenericFragment
|
||||||
import org.linphone.activities.main.navigateToCallHistory
|
import org.linphone.activities.main.navigateToCallHistory
|
||||||
|
@ -83,13 +84,19 @@ class TabsFragment : GenericFragment<TabsFragmentBinding>(), NavController.OnDes
|
||||||
|
|
||||||
override fun onStart() {
|
override fun onStart() {
|
||||||
super.onStart()
|
super.onStart()
|
||||||
bounceAnimator.start()
|
|
||||||
|
if (corePreferences.enableAnimations) {
|
||||||
|
bounceAnimator.start()
|
||||||
|
}
|
||||||
findNavController().addOnDestinationChangedListener(this)
|
findNavController().addOnDestinationChangedListener(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onStop() {
|
override fun onStop() {
|
||||||
bounceAnimator.pause()
|
if (corePreferences.enableAnimations) {
|
||||||
|
bounceAnimator.pause()
|
||||||
|
}
|
||||||
findNavController().removeOnDestinationChangedListener(this)
|
findNavController().removeOnDestinationChangedListener(this)
|
||||||
|
|
||||||
super.onStop()
|
super.onStop()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,11 +105,20 @@ class TabsFragment : GenericFragment<TabsFragmentBinding>(), NavController.OnDes
|
||||||
destination: NavDestination,
|
destination: NavDestination,
|
||||||
arguments: Bundle?
|
arguments: Bundle?
|
||||||
) {
|
) {
|
||||||
when (destination.id) {
|
if (corePreferences.enableAnimations) {
|
||||||
R.id.masterCallLogsFragment -> binding.motionLayout.transitionToState(R.id.call_history)
|
when (destination.id) {
|
||||||
R.id.masterContactsFragment -> binding.motionLayout.transitionToState(R.id.contacts)
|
R.id.masterCallLogsFragment -> binding.motionLayout.transitionToState(R.id.call_history)
|
||||||
R.id.dialerFragment -> binding.motionLayout.transitionToState(R.id.dialer)
|
R.id.masterContactsFragment -> binding.motionLayout.transitionToState(R.id.contacts)
|
||||||
R.id.masterChatRoomsFragment -> binding.motionLayout.transitionToState(R.id.chat_rooms)
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,6 @@ import androidx.core.content.ContextCompat
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.activities.GenericActivity
|
|
||||||
import org.linphone.activities.GenericFragment
|
import org.linphone.activities.GenericFragment
|
||||||
import org.linphone.activities.main.settings.viewmodels.AdvancedSettingsViewModel
|
import org.linphone.activities.main.settings.viewmodels.AdvancedSettingsViewModel
|
||||||
import org.linphone.core.tools.Log
|
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.backgroundModeEnabled.value = !DeviceUtils.isAppUserRestricted(requireContext())
|
||||||
|
|
||||||
viewModel.goToBatterySettingsEvent.observe(viewLifecycleOwner, { it.consume {
|
viewModel.goToBatterySettingsEvent.observe(viewLifecycleOwner, { it.consume {
|
||||||
|
|
|
@ -72,14 +72,12 @@ class AdvancedSettingsViewModel : GenericSettingsViewModel() {
|
||||||
private val darkModeValues = arrayListOf(-1, 0, 1)
|
private val darkModeValues = arrayListOf(-1, 0, 1)
|
||||||
val setNightModeEvent = MutableLiveData<Event<Int>>()
|
val setNightModeEvent = MutableLiveData<Event<Int>>()
|
||||||
|
|
||||||
val fullScreenListener = object : SettingListenerStub() {
|
val animationsListener = object : SettingListenerStub() {
|
||||||
override fun onBoolValueChanged(newValue: Boolean) {
|
override fun onBoolValueChanged(newValue: Boolean) {
|
||||||
prefs.fullScreen = newValue
|
prefs.enableAnimations = newValue
|
||||||
fullScreenChangedEvent.value = Event(newValue)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val fullScreen = MutableLiveData<Boolean>()
|
val animations = MutableLiveData<Boolean>()
|
||||||
val fullScreenChangedEvent = MutableLiveData<Event<Boolean>>()
|
|
||||||
|
|
||||||
val deviceNameListener = object : SettingListenerStub() {
|
val deviceNameListener = object : SettingListenerStub() {
|
||||||
override fun onTextValueChanged(newValue: String) {
|
override fun onTextValueChanged(newValue: String) {
|
||||||
|
@ -141,7 +139,7 @@ class AdvancedSettingsViewModel : GenericSettingsViewModel() {
|
||||||
darkModeLabels.value = labels
|
darkModeLabels.value = labels
|
||||||
darkModeIndex.value = darkModeValues.indexOf(prefs.darkMode)
|
darkModeIndex.value = darkModeValues.indexOf(prefs.darkMode)
|
||||||
|
|
||||||
fullScreen.value = prefs.fullScreen
|
animations.value = prefs.enableAnimations
|
||||||
deviceName.value = prefs.deviceName
|
deviceName.value = prefs.deviceName
|
||||||
remoteProvisioningUrl.value = core.provisioningUri
|
remoteProvisioningUrl.value = core.provisioningUri
|
||||||
logsServerUrl.value = core.logCollectionUploadServerUrl
|
logsServerUrl.value = core.logCollectionUploadServerUrl
|
||||||
|
|
|
@ -30,6 +30,7 @@ import androidx.lifecycle.lifecycleScope
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.linphone.LinphoneApplication.Companion.coreContext
|
import org.linphone.LinphoneApplication.Companion.coreContext
|
||||||
|
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.activities.GenericFragment
|
import org.linphone.activities.GenericFragment
|
||||||
import org.linphone.activities.assistant.AssistantActivity
|
import org.linphone.activities.assistant.AssistantActivity
|
||||||
|
@ -89,7 +90,10 @@ class SideMenuFragment : GenericFragment<SideMenuFragmentBinding>() {
|
||||||
binding.setAssistantClickListener {
|
binding.setAssistantClickListener {
|
||||||
sharedViewModel.toggleDrawerEvent.value = Event(true)
|
sharedViewModel.toggleDrawerEvent.value = Event(true)
|
||||||
startActivity(Intent(context, AssistantActivity::class.java))
|
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 {
|
binding.setSettingsClickListener {
|
||||||
|
|
|
@ -62,18 +62,18 @@ class CorePreferences constructor(private val context: Context) {
|
||||||
config.setBool("app", "force_portrait_orientation", value)
|
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
|
var replaceSipUriByUsername: Boolean
|
||||||
get() = config.getBool("app", "replace_sip_uri_by_username", false)
|
get() = config.getBool("app", "replace_sip_uri_by_username", false)
|
||||||
set(value) {
|
set(value) {
|
||||||
config.setBool("app", "replace_sip_uri_by_username", 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 */
|
/** -1 means auto, 0 no, 1 yes */
|
||||||
var darkMode: Int
|
var darkMode: Int
|
||||||
get() {
|
get() {
|
||||||
|
|
|
@ -3,10 +3,8 @@
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/tabs_layout"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_alignParentBottom="true"
|
|
||||||
app:layoutDescription="@xml/motion_main_activity_tabs_land">
|
app:layoutDescription="@xml/motion_main_activity_tabs_land">
|
||||||
|
|
||||||
<!-- For proper snack bar placement -->
|
<!-- For proper snack bar placement -->
|
||||||
|
@ -31,9 +29,9 @@
|
||||||
<androidx.fragment.app.FragmentContainerView
|
<androidx.fragment.app.FragmentContainerView
|
||||||
android:id="@+id/tabs_fragment"
|
android:id="@+id/tabs_fragment"
|
||||||
android:name="org.linphone.activities.main.fragments.TabsFragment"
|
android:name="org.linphone.activities.main.fragments.TabsFragment"
|
||||||
app:layout_constraintLeft_toLeftOf="parent"
|
|
||||||
android:layout_width="@dimen/main_activity_tabs_fragment_size"
|
android:layout_width="@dimen/main_activity_tabs_fragment_size"
|
||||||
android:layout_height="match_parent"
|
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>
|
</androidx.constraintlayout.motion.widget.MotionLayout>
|
|
@ -53,14 +53,16 @@
|
||||||
android:src="@drawable/arrow_hangup"
|
android:src="@drawable/arrow_hangup"
|
||||||
android:contentDescription="@null"
|
android:contentDescription="@null"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"/>
|
android:layout_height="wrap_content"
|
||||||
|
android:alpha="0.6"/>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/arrow_hangup_3"
|
android:id="@+id/arrow_hangup_3"
|
||||||
android:src="@drawable/arrow_hangup"
|
android:src="@drawable/arrow_hangup"
|
||||||
android:contentDescription="@null"
|
android:contentDescription="@null"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"/>
|
android:layout_height="wrap_content"
|
||||||
|
android:alpha="0.4"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
@ -92,14 +94,16 @@
|
||||||
android:src="@drawable/arrow_accept"
|
android:src="@drawable/arrow_accept"
|
||||||
android:contentDescription="@null"
|
android:contentDescription="@null"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"/>
|
android:layout_height="wrap_content"
|
||||||
|
android:alpha="0.4"/>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/arrow_accept_2"
|
android:id="@+id/arrow_accept_2"
|
||||||
android:src="@drawable/arrow_accept"
|
android:src="@drawable/arrow_accept"
|
||||||
android:contentDescription="@null"
|
android:contentDescription="@null"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"/>
|
android:layout_height="wrap_content"
|
||||||
|
android:alpha="0.6"/>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/arrow_accept_1"
|
android:id="@+id/arrow_accept_1"
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/tabs_layout"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_alignParentBottom="true"
|
android:layout_alignParentBottom="true"
|
||||||
|
@ -31,9 +30,9 @@
|
||||||
<androidx.fragment.app.FragmentContainerView
|
<androidx.fragment.app.FragmentContainerView
|
||||||
android:id="@+id/tabs_fragment"
|
android:id="@+id/tabs_fragment"
|
||||||
android:name="org.linphone.activities.main.fragments.TabsFragment"
|
android:name="org.linphone.activities.main.fragments.TabsFragment"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/main_activity_tabs_fragment_size"
|
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>
|
</androidx.constraintlayout.motion.widget.MotionLayout>
|
|
@ -106,11 +106,10 @@
|
||||||
|
|
||||||
<include
|
<include
|
||||||
layout="@layout/settings_widget_switch"
|
layout="@layout/settings_widget_switch"
|
||||||
android:visibility="@{View.GONE}"
|
linphone:title="@{@string/advanced_settings_animations_title}"
|
||||||
linphone:title="@{@string/advanced_settings_full_screen_title}"
|
linphone:subtitle="@{@string/advanced_settings_animations_summary}"
|
||||||
linphone:subtitle="@{@string/advanced_settings_full_screen_summary}"
|
linphone:listener="@{viewModel.animationsListener}"
|
||||||
linphone:listener="@{viewModel.fullScreenListener}"
|
linphone:checked="@={viewModel.animations}"/>
|
||||||
linphone:checked="@={viewModel.fullScreen}"/>
|
|
||||||
|
|
||||||
<include
|
<include
|
||||||
layout="@layout/settings_widget_text"
|
layout="@layout/settings_widget_text"
|
||||||
|
|
|
@ -461,8 +461,8 @@
|
||||||
<string name="advanced_settings_dark_mode_label_auto">Auto</string>
|
<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_no">No</string>
|
||||||
<string name="advanced_settings_dark_mode_label_yes">Yes</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_animations_title">Animations</string>
|
||||||
<string name="advanced_settings_full_screen_summary"></string>
|
<string name="advanced_settings_animations_summary"></string>
|
||||||
<string name="advanced_settings_device_name_title">Device name</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_device_name_summary">Changes will be applied at next start up</string>
|
||||||
<string name="advanced_settings_remote_provisioning_url_title">Remote provisioning URL</string>
|
<string name="advanced_settings_remote_provisioning_url_title">Remote provisioning URL</string>
|
||||||
|
|
|
@ -31,7 +31,19 @@
|
||||||
motion:constraintSetStart="@+id/contacts"
|
motion:constraintSetStart="@+id/contacts"
|
||||||
motion:constraintSetEnd="@+id/chat_rooms"/>
|
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
|
<Constraint
|
||||||
android:id="@id/tabs_fragment"
|
android:id="@id/tabs_fragment"
|
||||||
|
@ -39,19 +51,9 @@
|
||||||
android:layout_height="@dimen/main_activity_tabs_fragment_size"
|
android:layout_height="@dimen/main_activity_tabs_fragment_size"
|
||||||
motion:layout_constraintBottom_toBottomOf="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>
|
</ConstraintSet>
|
||||||
|
|
||||||
<ConstraintSet android:id="@+id/gone">
|
<ConstraintSet android:id="@+id/gone" motion:deriveConstraintsFrom="@id/parent">
|
||||||
|
|
||||||
<Constraint
|
<Constraint
|
||||||
android:id="@id/tabs_fragment"
|
android:id="@id/tabs_fragment"
|
||||||
|
@ -61,7 +63,7 @@
|
||||||
|
|
||||||
</ConstraintSet>
|
</ConstraintSet>
|
||||||
|
|
||||||
<ConstraintSet android:id="@+id/call_history">
|
<ConstraintSet android:id="@+id/call_history" motion:deriveConstraintsFrom="@id/parent">
|
||||||
|
|
||||||
<Constraint
|
<Constraint
|
||||||
android:id="@id/selector"
|
android:id="@id/selector"
|
||||||
|
@ -70,19 +72,9 @@
|
||||||
motion:layout_constraintBottom_toBottomOf="parent"
|
motion:layout_constraintBottom_toBottomOf="parent"
|
||||||
motion:layout_constraintLeft_toLeftOf="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>
|
||||||
|
|
||||||
<ConstraintSet android:id="@+id/contacts">
|
<ConstraintSet android:id="@+id/contacts" motion:deriveConstraintsFrom="@id/parent">
|
||||||
|
|
||||||
<Constraint
|
<Constraint
|
||||||
android:id="@id/selector"
|
android:id="@id/selector"
|
||||||
|
@ -91,19 +83,9 @@
|
||||||
motion:layout_constraintBottom_toBottomOf="parent"
|
motion:layout_constraintBottom_toBottomOf="parent"
|
||||||
motion:layout_constraintLeft_toLeftOf="@id/guidelineLeft" />
|
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>
|
||||||
|
|
||||||
<ConstraintSet android:id="@+id/dialer">
|
<ConstraintSet android:id="@+id/dialer" motion:deriveConstraintsFrom="@id/parent">
|
||||||
|
|
||||||
<Constraint
|
<Constraint
|
||||||
android:id="@id/selector"
|
android:id="@id/selector"
|
||||||
|
@ -112,19 +94,9 @@
|
||||||
motion:layout_constraintBottom_toBottomOf="parent"
|
motion:layout_constraintBottom_toBottomOf="parent"
|
||||||
motion:layout_constraintLeft_toLeftOf="@id/guidelineMiddle" />
|
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>
|
||||||
|
|
||||||
<ConstraintSet android:id="@+id/chat_rooms">
|
<ConstraintSet android:id="@+id/chat_rooms" motion:deriveConstraintsFrom="@id/parent">
|
||||||
|
|
||||||
<Constraint
|
<Constraint
|
||||||
android:id="@id/selector"
|
android:id="@id/selector"
|
||||||
|
@ -133,16 +105,6 @@
|
||||||
motion:layout_constraintBottom_toBottomOf="parent"
|
motion:layout_constraintBottom_toBottomOf="parent"
|
||||||
motion:layout_constraintRight_toRightOf="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>
|
</ConstraintSet>
|
||||||
|
|
||||||
</MotionScene>
|
</MotionScene>
|
||||||
|
|
|
@ -31,7 +31,19 @@
|
||||||
motion:constraintSetStart="@+id/contacts"
|
motion:constraintSetStart="@+id/contacts"
|
||||||
motion:constraintSetEnd="@+id/chat_rooms"/>
|
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
|
<Constraint
|
||||||
android:id="@id/tabs_fragment"
|
android:id="@id/tabs_fragment"
|
||||||
|
@ -40,19 +52,9 @@
|
||||||
motion:layout_constraintLeft_toLeftOf="parent"
|
motion:layout_constraintLeft_toLeftOf="parent"
|
||||||
motion:layout_constraintRight_creator="0"/>
|
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>
|
||||||
|
|
||||||
<ConstraintSet android:id="@+id/gone">
|
<ConstraintSet android:id="@+id/gone" motion:deriveConstraintsFrom="@id/parent">
|
||||||
|
|
||||||
<Constraint
|
<Constraint
|
||||||
android:id="@id/tabs_fragment"
|
android:id="@id/tabs_fragment"
|
||||||
|
@ -62,7 +64,7 @@
|
||||||
|
|
||||||
</ConstraintSet>
|
</ConstraintSet>
|
||||||
|
|
||||||
<ConstraintSet android:id="@+id/call_history">
|
<ConstraintSet android:id="@+id/call_history" motion:deriveConstraintsFrom="@id/parent">
|
||||||
|
|
||||||
<Constraint
|
<Constraint
|
||||||
android:id="@id/selector"
|
android:id="@id/selector"
|
||||||
|
@ -71,19 +73,9 @@
|
||||||
motion:layout_constraintLeft_toLeftOf="parent"
|
motion:layout_constraintLeft_toLeftOf="parent"
|
||||||
motion:layout_constraintTop_toTopOf="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>
|
||||||
|
|
||||||
<ConstraintSet android:id="@+id/contacts">
|
<ConstraintSet android:id="@+id/contacts" motion:deriveConstraintsFrom="@id/parent">
|
||||||
|
|
||||||
<Constraint
|
<Constraint
|
||||||
android:id="@id/selector"
|
android:id="@id/selector"
|
||||||
|
@ -92,19 +84,9 @@
|
||||||
motion:layout_constraintLeft_toLeftOf="parent"
|
motion:layout_constraintLeft_toLeftOf="parent"
|
||||||
motion:layout_constraintTop_toTopOf="@id/guidelineTop" />
|
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>
|
||||||
|
|
||||||
<ConstraintSet android:id="@+id/dialer">
|
<ConstraintSet android:id="@+id/dialer" motion:deriveConstraintsFrom="@id/parent">
|
||||||
|
|
||||||
<Constraint
|
<Constraint
|
||||||
android:id="@id/selector"
|
android:id="@id/selector"
|
||||||
|
@ -113,19 +95,9 @@
|
||||||
motion:layout_constraintLeft_toLeftOf="parent"
|
motion:layout_constraintLeft_toLeftOf="parent"
|
||||||
motion:layout_constraintTop_toTopOf="@id/guidelineMiddle" />
|
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>
|
||||||
|
|
||||||
<ConstraintSet android:id="@+id/chat_rooms">
|
<ConstraintSet android:id="@+id/chat_rooms" motion:deriveConstraintsFrom="@id/parent">
|
||||||
|
|
||||||
<Constraint
|
<Constraint
|
||||||
android:id="@id/selector"
|
android:id="@id/selector"
|
||||||
|
@ -134,16 +106,6 @@
|
||||||
motion:layout_constraintLeft_toLeftOf="parent"
|
motion:layout_constraintLeft_toLeftOf="parent"
|
||||||
motion:layout_constraintBottom_toBottomOf="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>
|
</ConstraintSet>
|
||||||
|
|
||||||
</MotionScene>
|
</MotionScene>
|
||||||
|
|
Loading…
Reference in a new issue