Fixes & improvements for landscape & tablets
This commit is contained in:
parent
6600b92d1e
commit
de21f21331
10 changed files with 157 additions and 38 deletions
|
@ -38,6 +38,7 @@ import org.linphone.activities.main.chat.fragments.MasterChatRoomsFragment
|
||||||
import org.linphone.activities.main.contact.fragments.ContactEditorFragment
|
import org.linphone.activities.main.contact.fragments.ContactEditorFragment
|
||||||
import org.linphone.activities.main.contact.fragments.DetailContactFragment
|
import org.linphone.activities.main.contact.fragments.DetailContactFragment
|
||||||
import org.linphone.activities.main.contact.fragments.MasterContactsFragment
|
import org.linphone.activities.main.contact.fragments.MasterContactsFragment
|
||||||
|
import org.linphone.activities.main.dialer.fragments.DialerFragment
|
||||||
import org.linphone.activities.main.fragments.TabsFragment
|
import org.linphone.activities.main.fragments.TabsFragment
|
||||||
import org.linphone.activities.main.history.fragments.DetailCallLogFragment
|
import org.linphone.activities.main.history.fragments.DetailCallLogFragment
|
||||||
import org.linphone.activities.main.history.fragments.MasterCallLogsFragment
|
import org.linphone.activities.main.history.fragments.MasterCallLogsFragment
|
||||||
|
@ -78,16 +79,16 @@ fun getLeftToRightAnimationNavOptions(): NavOptions {
|
||||||
fun getRightToLeftNoPopAnimationNavOptions(): NavOptions {
|
fun getRightToLeftNoPopAnimationNavOptions(): NavOptions {
|
||||||
if (!corePreferences.enableAnimations) return NavOptions.Builder().build()
|
if (!corePreferences.enableAnimations) return NavOptions.Builder().build()
|
||||||
return NavOptions.Builder()
|
return NavOptions.Builder()
|
||||||
.setEnterAnim(R.anim.enter_right)
|
.setEnterAnim(R.anim.enter_right_or_bottom)
|
||||||
.setExitAnim(R.anim.exit_left)
|
.setExitAnim(R.anim.exit_left_or_top)
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getLeftToRightNoPopAnimationNavOptions(): NavOptions {
|
fun getLeftToRightNoPopAnimationNavOptions(): NavOptions {
|
||||||
if (!corePreferences.enableAnimations) return NavOptions.Builder().build()
|
if (!corePreferences.enableAnimations) return NavOptions.Builder().build()
|
||||||
return NavOptions.Builder()
|
return NavOptions.Builder()
|
||||||
.setEnterAnim(R.anim.enter_left)
|
.setEnterAnim(R.anim.enter_left_or_top)
|
||||||
.setExitAnim(R.anim.exit_right)
|
.setExitAnim(R.anim.exit_right_or_bottom)
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,6 +184,13 @@ internal fun TabsFragment.navigateToChatRooms() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Dialer related */
|
||||||
|
|
||||||
|
internal fun DialerFragment.navigateToContacts(uriToAdd: String?) {
|
||||||
|
val deepLink = "linphone-android://contact/new/$uriToAdd"
|
||||||
|
findNavController().navigate(Uri.parse(deepLink), getLeftToRightNoPopAnimationNavOptions())
|
||||||
|
}
|
||||||
|
|
||||||
/* Chat related */
|
/* Chat related */
|
||||||
|
|
||||||
internal fun MasterChatRoomsFragment.navigateToChatRoom() {
|
internal fun MasterChatRoomsFragment.navigateToChatRoom() {
|
||||||
|
@ -197,7 +205,11 @@ internal fun MasterChatRoomsFragment.navigateToChatRoom() {
|
||||||
} else {
|
} else {
|
||||||
val navHostFragment =
|
val navHostFragment =
|
||||||
childFragmentManager.findFragmentById(R.id.chat_nav_container) as NavHostFragment
|
childFragmentManager.findFragmentById(R.id.chat_nav_container) as NavHostFragment
|
||||||
navHostFragment.navController.navigate(R.id.action_global_detailChatRoomFragment)
|
navHostFragment.navController.navigate(
|
||||||
|
R.id.action_global_detailChatRoomFragment,
|
||||||
|
null,
|
||||||
|
getRightToLeftAnimationNavOptions()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -216,7 +228,11 @@ internal fun MasterChatRoomsFragment.navigateToChatRoomCreation(
|
||||||
} else {
|
} else {
|
||||||
val navHostFragment =
|
val navHostFragment =
|
||||||
childFragmentManager.findFragmentById(R.id.chat_nav_container) as NavHostFragment
|
childFragmentManager.findFragmentById(R.id.chat_nav_container) as NavHostFragment
|
||||||
navHostFragment.navController.navigate(R.id.action_global_chatRoomCreationFragment, bundle)
|
navHostFragment.navController.navigate(
|
||||||
|
R.id.action_global_chatRoomCreationFragment,
|
||||||
|
bundle,
|
||||||
|
getRightToLeftAnimationNavOptions()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -341,21 +357,21 @@ internal fun MasterContactsFragment.navigateToContactEditor(sipUriToAdd: String?
|
||||||
} else {
|
} else {
|
||||||
val navHostFragment =
|
val navHostFragment =
|
||||||
childFragmentManager.findFragmentById(R.id.contacts_nav_container) as NavHostFragment
|
childFragmentManager.findFragmentById(R.id.contacts_nav_container) as NavHostFragment
|
||||||
navHostFragment.navController.navigate(R.id.action_global_contactEditorFragment, bundle)
|
navHostFragment.navController.navigate(
|
||||||
|
R.id.action_global_contactEditorFragment,
|
||||||
|
bundle,
|
||||||
|
getRightToLeftAnimationNavOptions()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun ContactEditorFragment.navigateToContact(contact: NativeContact) {
|
internal fun ContactEditorFragment.navigateToContact(contact: NativeContact) {
|
||||||
val deepLink = "linphone-android://contact/view/${contact.nativeId}"
|
val deepLink = "linphone-android://contact/view/${contact.nativeId}"
|
||||||
if (!resources.getBoolean(R.bool.isTablet)) {
|
findMasterNavController().navigate(Uri.parse(deepLink), getRightToLeftAnimationNavOptions())
|
||||||
findMasterNavController().navigate(Uri.parse(deepLink), getRightToLeftAnimationNavOptions())
|
|
||||||
} else {
|
|
||||||
findMasterNavController().navigate(Uri.parse(deepLink))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun DetailContactFragment.navigateToChatRooms(args: Bundle?) {
|
internal fun DetailContactFragment.navigateToChatRooms(args: Bundle?) {
|
||||||
findNavController().navigate(
|
findMasterNavController().navigate(
|
||||||
R.id.action_global_masterChatRoomsFragment,
|
R.id.action_global_masterChatRoomsFragment,
|
||||||
args,
|
args,
|
||||||
getRightToLeftAnimationNavOptions()
|
getRightToLeftAnimationNavOptions()
|
||||||
|
@ -363,7 +379,7 @@ internal fun DetailContactFragment.navigateToChatRooms(args: Bundle?) {
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun DetailContactFragment.navigateToDialer(args: Bundle?) {
|
internal fun DetailContactFragment.navigateToDialer(args: Bundle?) {
|
||||||
findNavController().navigate(
|
findMasterNavController().navigate(
|
||||||
R.id.action_global_dialerFragment,
|
R.id.action_global_dialerFragment,
|
||||||
args,
|
args,
|
||||||
getRightToLeftAnimationNavOptions()
|
getRightToLeftAnimationNavOptions()
|
||||||
|
@ -385,14 +401,20 @@ internal fun DetailContactFragment.navigateToContactEditor() {
|
||||||
internal fun MasterCallLogsFragment.navigateToCallHistory() {
|
internal fun MasterCallLogsFragment.navigateToCallHistory() {
|
||||||
if (!resources.getBoolean(R.bool.isTablet)) {
|
if (!resources.getBoolean(R.bool.isTablet)) {
|
||||||
if (findNavController().currentDestination?.id == R.id.masterCallLogsFragment) {
|
if (findNavController().currentDestination?.id == R.id.masterCallLogsFragment) {
|
||||||
findNavController().navigate(R.id.action_masterCallLogsFragment_to_detailCallLogFragment,
|
findNavController().navigate(
|
||||||
null,
|
R.id.action_masterCallLogsFragment_to_detailCallLogFragment,
|
||||||
getRightToLeftAnimationNavOptions())
|
null,
|
||||||
|
getRightToLeftAnimationNavOptions()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
val navHostFragment =
|
val navHostFragment =
|
||||||
childFragmentManager.findFragmentById(R.id.history_nav_container) as NavHostFragment
|
childFragmentManager.findFragmentById(R.id.history_nav_container) as NavHostFragment
|
||||||
navHostFragment.navController.navigate(R.id.action_global_detailCallLogFragment)
|
navHostFragment.navController.navigate(
|
||||||
|
R.id.action_global_detailCallLogFragment,
|
||||||
|
null,
|
||||||
|
getRightToLeftAnimationNavOptions()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -420,7 +442,7 @@ internal fun DetailCallLogFragment.navigateToFriend(friendAddress: Address) {
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun DetailCallLogFragment.navigateToChatRooms(args: Bundle?) {
|
internal fun DetailCallLogFragment.navigateToChatRooms(args: Bundle?) {
|
||||||
findNavController().navigate(
|
findMasterNavController().navigate(
|
||||||
R.id.action_global_masterChatRoomsFragment,
|
R.id.action_global_masterChatRoomsFragment,
|
||||||
args,
|
args,
|
||||||
getRightToLeftAnimationNavOptions()
|
getRightToLeftAnimationNavOptions()
|
||||||
|
@ -428,7 +450,7 @@ internal fun DetailCallLogFragment.navigateToChatRooms(args: Bundle?) {
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun DetailCallLogFragment.navigateToDialer(args: Bundle?) {
|
internal fun DetailCallLogFragment.navigateToDialer(args: Bundle?) {
|
||||||
findNavController().navigate(
|
findMasterNavController().navigate(
|
||||||
R.id.action_global_dialerFragment,
|
R.id.action_global_dialerFragment,
|
||||||
args,
|
args,
|
||||||
getRightToLeftAnimationNavOptions()
|
getRightToLeftAnimationNavOptions()
|
||||||
|
@ -450,7 +472,11 @@ internal fun SettingsFragment.navigateToAccountSettings(identity: String) {
|
||||||
} else {
|
} else {
|
||||||
val navHostFragment =
|
val navHostFragment =
|
||||||
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
||||||
navHostFragment.navController.navigate(R.id.action_global_accountSettingsFragment, bundle)
|
navHostFragment.navController.navigate(
|
||||||
|
R.id.action_global_accountSettingsFragment,
|
||||||
|
bundle,
|
||||||
|
getRightToLeftAnimationNavOptions()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -466,7 +492,11 @@ internal fun SettingsFragment.navigateToTunnelSettings() {
|
||||||
} else {
|
} else {
|
||||||
val navHostFragment =
|
val navHostFragment =
|
||||||
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
||||||
navHostFragment.navController.navigate(R.id.action_global_tunnelSettingsFragment)
|
navHostFragment.navController.navigate(
|
||||||
|
R.id.action_global_tunnelSettingsFragment,
|
||||||
|
null,
|
||||||
|
getRightToLeftAnimationNavOptions()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -482,7 +512,11 @@ internal fun SettingsFragment.navigateToAudioSettings() {
|
||||||
} else {
|
} else {
|
||||||
val navHostFragment =
|
val navHostFragment =
|
||||||
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
||||||
navHostFragment.navController.navigate(R.id.action_global_audioSettingsFragment)
|
navHostFragment.navController.navigate(
|
||||||
|
R.id.action_global_audioSettingsFragment,
|
||||||
|
null,
|
||||||
|
getRightToLeftAnimationNavOptions()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -498,7 +532,11 @@ internal fun SettingsFragment.navigateToVideoSettings() {
|
||||||
} else {
|
} else {
|
||||||
val navHostFragment =
|
val navHostFragment =
|
||||||
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
||||||
navHostFragment.navController.navigate(R.id.action_global_videoSettingsFragment)
|
navHostFragment.navController.navigate(
|
||||||
|
R.id.action_global_videoSettingsFragment,
|
||||||
|
null,
|
||||||
|
getRightToLeftAnimationNavOptions()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -514,7 +552,11 @@ internal fun SettingsFragment.navigateToCallSettings() {
|
||||||
} else {
|
} else {
|
||||||
val navHostFragment =
|
val navHostFragment =
|
||||||
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
||||||
navHostFragment.navController.navigate(R.id.action_global_callSettingsFragment)
|
navHostFragment.navController.navigate(
|
||||||
|
R.id.action_global_callSettingsFragment,
|
||||||
|
null,
|
||||||
|
getRightToLeftAnimationNavOptions()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -530,7 +572,11 @@ internal fun SettingsFragment.navigateToChatSettings() {
|
||||||
} else {
|
} else {
|
||||||
val navHostFragment =
|
val navHostFragment =
|
||||||
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
||||||
navHostFragment.navController.navigate(R.id.action_global_chatSettingsFragment)
|
navHostFragment.navController.navigate(
|
||||||
|
R.id.action_global_chatSettingsFragment,
|
||||||
|
null,
|
||||||
|
getRightToLeftAnimationNavOptions()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -546,7 +592,11 @@ internal fun SettingsFragment.navigateToNetworkSettings() {
|
||||||
} else {
|
} else {
|
||||||
val navHostFragment =
|
val navHostFragment =
|
||||||
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
||||||
navHostFragment.navController.navigate(R.id.action_global_networkSettingsFragment)
|
navHostFragment.navController.navigate(
|
||||||
|
R.id.action_global_networkSettingsFragment,
|
||||||
|
null,
|
||||||
|
getRightToLeftAnimationNavOptions()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -562,7 +612,11 @@ internal fun SettingsFragment.navigateToContactsSettings() {
|
||||||
} else {
|
} else {
|
||||||
val navHostFragment =
|
val navHostFragment =
|
||||||
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
||||||
navHostFragment.navController.navigate(R.id.action_global_contactsSettingsFragment)
|
navHostFragment.navController.navigate(
|
||||||
|
R.id.action_global_contactsSettingsFragment,
|
||||||
|
null,
|
||||||
|
getRightToLeftAnimationNavOptions()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -578,7 +632,11 @@ internal fun SettingsFragment.navigateToAdvancedSettings() {
|
||||||
} else {
|
} else {
|
||||||
val navHostFragment =
|
val navHostFragment =
|
||||||
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
childFragmentManager.findFragmentById(R.id.settings_nav_container) as NavHostFragment
|
||||||
navHostFragment.navController.navigate(R.id.action_global_advancedSettingsFragment)
|
navHostFragment.navController.navigate(
|
||||||
|
R.id.action_global_advancedSettingsFragment,
|
||||||
|
null,
|
||||||
|
getRightToLeftAnimationNavOptions()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -605,15 +663,14 @@ internal fun PhoneAccountLinkingFragment.navigateToPhoneAccountValidation(args:
|
||||||
/* Side menu related */
|
/* Side menu related */
|
||||||
|
|
||||||
internal fun SideMenuFragment.navigateToAccountSettings(identity: String) {
|
internal fun SideMenuFragment.navigateToAccountSettings(identity: String) {
|
||||||
if (!resources.getBoolean(R.bool.isTablet)) {
|
val deepLink = if (!resources.getBoolean(R.bool.isTablet)) {
|
||||||
// If not a tablet, navigate directly to account settings fragment
|
// If not a tablet, navigate directly to account settings fragment
|
||||||
val deepLink = "linphone-android://account-settings/$identity"
|
"linphone-android://account-settings/$identity"
|
||||||
findNavController().navigate(Uri.parse(deepLink), getRightToLeftAnimationNavOptions())
|
|
||||||
} else {
|
} else {
|
||||||
// On tablet, to keep the categories list on left side, navigate to settings fragment first
|
// On tablet, to keep the categories list on left side, navigate to settings fragment first
|
||||||
val deepLink = "linphone-android://settings/$identity"
|
"linphone-android://settings/$identity"
|
||||||
findNavController().navigate(Uri.parse(deepLink))
|
|
||||||
}
|
}
|
||||||
|
findNavController().navigate(Uri.parse(deepLink), getRightToLeftAnimationNavOptions())
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun SideMenuFragment.navigateToSettings() {
|
internal fun SideMenuFragment.navigateToSettings() {
|
||||||
|
|
|
@ -27,7 +27,6 @@ import android.content.Intent
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.fragment.findNavController
|
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import org.linphone.BuildConfig
|
import org.linphone.BuildConfig
|
||||||
import org.linphone.LinphoneApplication.Companion.coreContext
|
import org.linphone.LinphoneApplication.Companion.coreContext
|
||||||
|
@ -36,6 +35,7 @@ import org.linphone.R
|
||||||
import org.linphone.activities.main.MainActivity
|
import org.linphone.activities.main.MainActivity
|
||||||
import org.linphone.activities.main.dialer.viewmodels.DialerViewModel
|
import org.linphone.activities.main.dialer.viewmodels.DialerViewModel
|
||||||
import org.linphone.activities.main.fragments.SecureFragment
|
import org.linphone.activities.main.fragments.SecureFragment
|
||||||
|
import org.linphone.activities.main.navigateToContacts
|
||||||
import org.linphone.activities.main.viewmodels.DialogViewModel
|
import org.linphone.activities.main.viewmodels.DialogViewModel
|
||||||
import org.linphone.activities.main.viewmodels.SharedMainViewModel
|
import org.linphone.activities.main.viewmodels.SharedMainViewModel
|
||||||
import org.linphone.core.tools.Log
|
import org.linphone.core.tools.Log
|
||||||
|
@ -64,9 +64,7 @@ class DialerFragment : SecureFragment<DialerFragmentBinding>() {
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.setNewContactClickListener {
|
binding.setNewContactClickListener {
|
||||||
val deepLink = "linphone-android://contact/new/${viewModel.enteredUri.value}"
|
navigateToContacts(viewModel.enteredUri.value)
|
||||||
Log.i("[Dialer] Creating contact, starting deep link: $deepLink")
|
|
||||||
findNavController().navigate(Uri.parse(deepLink))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.setTransferCallClickListener {
|
binding.setTransferCallClickListener {
|
||||||
|
|
8
app/src/main/res/anim-land/enter_left_or_top.xml
Normal file
8
app/src/main/res/anim-land/enter_left_or_top.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="0%" android:toXDelta="0%"
|
||||||
|
android:fromYDelta="-100%p" android:toYDelta="0%"
|
||||||
|
android:duration="@android:integer/config_mediumAnimTime"/>
|
||||||
|
</set>
|
8
app/src/main/res/anim-land/enter_right_or_bottom.xml
Normal file
8
app/src/main/res/anim-land/enter_right_or_bottom.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="0%" android:toXDelta="0%"
|
||||||
|
android:fromYDelta="100%p" android:toYDelta="0%"
|
||||||
|
android:duration="@android:integer/config_mediumAnimTime" />
|
||||||
|
</set>
|
8
app/src/main/res/anim-land/exit_left_or_top.xml
Normal file
8
app/src/main/res/anim-land/exit_left_or_top.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="0%" android:toXDelta="0%"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="-100%p"
|
||||||
|
android:duration="@android:integer/config_mediumAnimTime"/>
|
||||||
|
</set>
|
8
app/src/main/res/anim-land/exit_right_or_bottom.xml
Normal file
8
app/src/main/res/anim-land/exit_right_or_bottom.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="0%" android:toXDelta="0%"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="100%p"
|
||||||
|
android:duration="@android:integer/config_mediumAnimTime" />
|
||||||
|
</set>
|
8
app/src/main/res/anim/enter_left_or_top.xml
Normal file
8
app/src/main/res/anim/enter_left_or_top.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="-100%p" android:toXDelta="0%"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="0%"
|
||||||
|
android:duration="@android:integer/config_mediumAnimTime"/>
|
||||||
|
</set>
|
8
app/src/main/res/anim/enter_right_or_bottom.xml
Normal file
8
app/src/main/res/anim/enter_right_or_bottom.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="100%p" android:toXDelta="0%"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="0%"
|
||||||
|
android:duration="@android:integer/config_mediumAnimTime" />
|
||||||
|
</set>
|
8
app/src/main/res/anim/exit_left_or_top.xml
Normal file
8
app/src/main/res/anim/exit_left_or_top.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="0%" android:toXDelta="-100%p"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="0%"
|
||||||
|
android:duration="@android:integer/config_mediumAnimTime"/>
|
||||||
|
</set>
|
8
app/src/main/res/anim/exit_right_or_bottom.xml
Normal file
8
app/src/main/res/anim/exit_right_or_bottom.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="0%" android:toXDelta="100%p"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="0%"
|
||||||
|
android:duration="@android:integer/config_mediumAnimTime" />
|
||||||
|
</set>
|
Loading…
Reference in a new issue