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.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)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ class AccountLoginFragment : AbstractPhoneFragment<AssistantAccountLoginFragment
|
|||
sharedViewModel = requireActivity().run {
|
||||
ViewModelProvider(this).get(SharedAssistantViewModel::class.java)
|
||||
}
|
||||
|
||||
|
||||
viewModel = ViewModelProvider(this, AccountLoginViewModelFactory(sharedViewModel.getAccountCreator())).get(AccountLoginViewModel::class.java)
|
||||
binding.viewModel = viewModel
|
||||
|
||||
|
|
|
@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
bounceAnimator.start()
|
||||
|
||||
if (corePreferences.enableAnimations) {
|
||||
bounceAnimator.start()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
bounceAnimator.pause()
|
||||
if (corePreferences.enableAnimations) {
|
||||
bounceAnimator.pause()
|
||||
}
|
||||
super.onStop()
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
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<TabsFragmentBinding>(), 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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<SideMenuFragmentBinding>() {
|
|||
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 {
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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>
|
|
@ -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"
|
||||
|
|
|
@ -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>
|
|
@ -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"
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue