diff --git a/app/src/main/java/org/linphone/activities/main/Navigation.kt b/app/src/main/java/org/linphone/activities/main/Navigation.kt index 4cc2c3587..eaa32a2dc 100644 --- a/app/src/main/java/org/linphone/activities/main/Navigation.kt +++ b/app/src/main/java/org/linphone/activities/main/Navigation.kt @@ -24,6 +24,7 @@ import android.os.Bundle import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import androidx.navigation.NavController +import androidx.navigation.NavOptions import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.findNavController import org.linphone.R @@ -46,6 +47,24 @@ internal fun Fragment.findMasterNavController(): NavController { } } +fun getRightToLeftAnimationNavOptions(): NavOptions { + return NavOptions.Builder() + .setEnterAnim(R.anim.enter_right) + .setExitAnim(R.anim.exit_left) + .setPopEnterAnim(R.anim.enter_left) + .setPopExitAnim(R.anim.exit_right) + .build() +} + +fun getLeftToRightAnimationNavOptions(): NavOptions { + return NavOptions.Builder() + .setEnterAnim(R.anim.enter_left) + .setExitAnim(R.anim.exit_right) + .setPopEnterAnim(R.anim.enter_right) + .setPopExitAnim(R.anim.exit_left) + .build() +} + /* Chat related */ internal fun MasterChatRoomsFragment.navigateToChatRoom() { @@ -80,12 +99,12 @@ internal fun MasterChatRoomsFragment.navigateToChatRoomCreation( internal fun DetailChatRoomFragment.navigateToContacts(sipUriToAdd: String) { val deepLink = "linphone-android://contact/new/$sipUriToAdd" - findMasterNavController().navigate(Uri.parse(deepLink)) + findMasterNavController().navigate(Uri.parse(deepLink), getLeftToRightAnimationNavOptions()) } internal fun DetailChatRoomFragment.navigateToChatRooms() { val deepLink = "linphone-android://chat/" - findMasterNavController().navigate(Uri.parse(deepLink)) + findMasterNavController().navigate(Uri.parse(deepLink), getLeftToRightAnimationNavOptions()) } /* Contacts related */ @@ -117,7 +136,7 @@ internal fun MasterContactsFragment.navigateToContactEditor(sipUriToAdd: String? internal fun ContactEditorFragment.navigateToContact(contact: NativeContact) { val deepLink = "linphone-android://contact/view/${contact.nativeId}" - findMasterNavController().navigate(Uri.parse(deepLink)) + findMasterNavController().navigate(Uri.parse(deepLink), getRightToLeftAnimationNavOptions()) } /* History related */ @@ -136,17 +155,17 @@ internal fun MasterCallLogsFragment.navigateToCallHistory() { internal fun DetailCallLogFragment.navigateToContacts(sipUriToAdd: String) { val deepLink = "linphone-android://contact/new/$sipUriToAdd" - findMasterNavController().navigate(Uri.parse(deepLink)) + findMasterNavController().navigate(Uri.parse(deepLink), getRightToLeftAnimationNavOptions()) } internal fun DetailCallLogFragment.navigateToContact(contact: NativeContact) { val deepLink = "linphone-android://contact/view/${contact.nativeId}" - findMasterNavController().navigate(Uri.parse(deepLink)) + findMasterNavController().navigate(Uri.parse(deepLink), getRightToLeftAnimationNavOptions()) } internal fun DetailCallLogFragment.navigateToFriend(friendAddress: Address) { val deepLink = "linphone-android://contact/new/${friendAddress.asStringUriOnly()}" - findMasterNavController().navigate(Uri.parse(deepLink)) + findMasterNavController().navigate(Uri.parse(deepLink), getRightToLeftAnimationNavOptions()) } /* Settings related */ diff --git a/app/src/main/res/navigation/assistant_nav_graph.xml b/app/src/main/res/navigation/assistant_nav_graph.xml index b0670abd7..ab3ba8086 100644 --- a/app/src/main/res/navigation/assistant_nav_graph.xml +++ b/app/src/main/res/navigation/assistant_nav_graph.xml @@ -5,7 +5,6 @@ android:id="@+id/assistant_nav_graph.xml" app:startDestination="@id/welcomeFragment"> - \ No newline at end of file diff --git a/app/src/main/res/navigation/chat_nav_graph.xml b/app/src/main/res/navigation/chat_nav_graph.xml index cc4e1d864..003362158 100644 --- a/app/src/main/res/navigation/chat_nav_graph.xml +++ b/app/src/main/res/navigation/chat_nav_graph.xml @@ -12,15 +12,31 @@ android:label="DetailChatRoomFragment" > diff --git a/app/src/main/res/navigation/history_nav_graph.xml b/app/src/main/res/navigation/history_nav_graph.xml index 37b869a4b..e337fbd72 100644 --- a/app/src/main/res/navigation/history_nav_graph.xml +++ b/app/src/main/res/navigation/history_nav_graph.xml @@ -10,4 +10,5 @@ android:name="org.linphone.activities.main.history.fragments.DetailCallLogFragment" tools:layout="@layout/history_detail_fragment" android:label="DetailCallLogFragment" /> + \ No newline at end of file diff --git a/app/src/main/res/navigation/main_nav_graph.xml b/app/src/main/res/navigation/main_nav_graph.xml index 9fdbb5844..4dc8c2f03 100644 --- a/app/src/main/res/navigation/main_nav_graph.xml +++ b/app/src/main/res/navigation/main_nav_graph.xml @@ -33,10 +33,18 @@ app:popUpToInclusive="true" /> - @@ -384,6 +452,10 @@ android:label="PhoneAccountLinkingFragment" >