TP-77052 | bbps and upi screen transition from home page (#12049)

This commit is contained in:
Mohit Rajput
2024-08-08 05:59:13 -07:00
committed by GitHub
parent 2dd2bac229
commit 2bd73bb1a3
5 changed files with 25 additions and 1 deletions

View File

@@ -28,6 +28,8 @@ import com.navi.bbps.common.utils.ErrorEventHandler
import com.navi.common.model.ModuleNameV2
import com.navi.common.ui.activity.BaseActivity
import com.navi.common.utils.Constants.NEEDS_RESULT
import com.navi.common.utils.screenEnterTransition
import com.navi.common.utils.screenExitTransition
import dagger.Lazy
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@@ -63,6 +65,7 @@ class NaviBbpsActivity : BaseActivity(), BackButtonHandler {
@OptIn(ExperimentalFoundationApi::class)
override fun onCreate(savedInstanceState: Bundle?) {
screenEnterTransition()
super.onCreate(savedInstanceState)
initPermissionsManager()
WindowCompat.setDecorFitsSystemWindows(window, true)
@@ -96,5 +99,6 @@ class NaviBbpsActivity : BaseActivity(), BackButtonHandler {
)
}
super.finish()
screenExitTransition()
}
}

View File

@@ -59,6 +59,7 @@ private const val TRANSITION_DURATION_IN_MILLIS = 400
private const val PAY_BILL_SCREEN = "pay_bill_screen"
private const val CUSTOMER_DATA_INPUT_SCREEN = "customer_data_input_screen"
private const val BBPS_POST_PAYMENT_SCREEN = "bbps_post_payment_screen"
private const val BBPS_ROUTING_LAUNCHER_SCREEN = "bbps_routing_launcher_screen"
typealias IsErrorVisible = Boolean
@@ -192,7 +193,9 @@ private fun naviHostEngine(): NavHostEngine {
rootDefaultAnimations =
RootNavGraphDefaultAnimations(
enterTransition = {
if (restrictEnterTransitionForPayBillScreen()) {
if (
restrictEnterTransitionForPayBillScreen() || isSourceRoutingLauncherScreen()
) {
EnterTransition.None
} else {
slideIntoContainer(
@@ -233,6 +236,9 @@ private fun AnimatedContentTransitionScope<NavBackStackEntry>
this.targetState.destination.route?.contains(PAY_BILL_SCREEN).orFalse() &&
!this.initialState.destination.route?.contains(CUSTOMER_DATA_INPUT_SCREEN).orFalse()
private fun AnimatedContentTransitionScope<NavBackStackEntry>.isSourceRoutingLauncherScreen() =
this.initialState.destination.route?.contains(BBPS_ROUTING_LAUNCHER_SCREEN).orFalse()
private fun AnimatedContentTransitionScope<NavBackStackEntry>.shouldEnableVerticalDownTransition():
Boolean {
return this.initialState.destination.route?.contains(BBPS_POST_PAYMENT_SCREEN).orFalse()

View File

@@ -39,6 +39,7 @@ object NaviBbpsRouter {
putExtra(SOURCE_MODULE, sourceModule)
putExtra(START_SCREEN_NAME, screenName)
putExtras(bundle)
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP)
}
if (needsResult == true && requestCode != null) {

View File

@@ -54,6 +54,7 @@ import com.navi.base.utils.isNotNull
import com.navi.base.utils.isNull
import com.navi.base.utils.orElse
import com.navi.common.CommonLibManager
import com.navi.common.R
import com.navi.common.customview.CustomTypefaceSpan
import com.navi.common.listeners.ClickableTextListener
import com.navi.common.network.models.RepoResult
@@ -661,3 +662,11 @@ fun containsEmoji(input: String): Boolean {
val regex = Regex("[\\uD83C-\\uDBFF\\uDC00-\\uDFFF]+")
return regex.containsMatchIn(input)
}
fun Activity.screenEnterTransition() {
overridePendingTransition(R.anim.parallax_slide_in_right, R.anim.parallax_slide_out_left)
}
fun Activity.screenExitTransition() {
overridePendingTransition(R.anim.parallax_slide_in_left, R.anim.parallax_slide_out_right)
}

View File

@@ -28,6 +28,8 @@ import com.navi.base.utils.orFalse
import com.navi.common.model.ModuleNameV2
import com.navi.common.ui.activity.BaseActivity
import com.navi.common.utils.CriticalJourneyUtil
import com.navi.common.utils.screenEnterTransition
import com.navi.common.utils.screenExitTransition
import com.navi.pay.R
import com.navi.pay.analytics.NaviPayAnalytics
import com.navi.pay.common.model.view.ErrorVisibilityEvent
@@ -98,6 +100,7 @@ class NaviPayActivity : BaseActivity() {
}
override fun onCreate(savedInstanceState: Bundle?) {
screenEnterTransition()
super.onCreate(savedInstanceState)
isActivityRecreated = savedInstanceState?.getBoolean(IS_ACTIVITY_RECREATED).orFalse()
initFromIntent(intent)
@@ -252,6 +255,7 @@ class NaviPayActivity : BaseActivity() {
)
}
super.finish()
screenExitTransition()
}
override fun onSaveInstanceState(outState: Bundle) {