Skip to content

Commit

Permalink
Merge pull request #13429 from woocommerce/13210-woo-pos-the-exit-ani…
Browse files Browse the repository at this point in the history
…mation-from-the-onboarding-screen-in-pos-doesnt-match-with-the-enter-animation

[Woo POS] The exit animation from the onboarding screen in pos doesn't match with the enter animation
  • Loading branch information
AnirudhBhat authored Feb 3, 2025
2 parents 3f8e575 + 9c87d0a commit 6483ce2
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 34 deletions.
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package com.woocommerce.android.extensions

import android.app.Activity
import android.app.Activity.OVERRIDE_TRANSITION_CLOSE
import android.app.Activity.OVERRIDE_TRANSITION_OPEN
import androidx.annotation.AnimRes
import androidx.fragment.app.FragmentActivity
import com.woocommerce.android.support.help.HelpActivity
import com.woocommerce.android.support.help.HelpOrigin
import com.woocommerce.android.util.SystemVersionUtils

/**
* Used for starting the HelpActivity in a wrapped way whenever a troubleshooting URL click happens
Expand All @@ -22,3 +26,20 @@ var Activity.currentScreenBrightness: Float
set(value) {
window.attributes = window.attributes.apply { screenBrightness = value }
}

fun Activity.adjustActivityTransition(
overrideTransitionOpen: Boolean = true,
@AnimRes enterAnim: Int,
@AnimRes exitAnim: Int,
) {
if (SystemVersionUtils.isAtLeastU()) {
overrideActivityTransition(
if (overrideTransitionOpen) OVERRIDE_TRANSITION_OPEN else OVERRIDE_TRANSITION_CLOSE,
enterAnim,
exitAnim
)
} else {
@Suppress("DEPRECATION")
overridePendingTransition(enterAnim, exitAnim)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package com.woocommerce.android.support.requests

import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import android.view.MenuItem
import androidx.activity.viewModels
Expand All @@ -13,6 +12,7 @@ import com.woocommerce.android.R
import com.woocommerce.android.analytics.AnalyticsEvent
import com.woocommerce.android.analytics.AnalyticsTracker
import com.woocommerce.android.databinding.ActivitySupportRequestFormBinding
import com.woocommerce.android.extensions.adjustActivityTransition
import com.woocommerce.android.extensions.serializable
import com.woocommerce.android.support.SupportHelper
import com.woocommerce.android.support.help.HelpOrigin
Expand All @@ -22,7 +22,6 @@ import com.woocommerce.android.support.requests.SupportRequestFormViewModel.Show
import com.woocommerce.android.support.zendesk.TicketType
import com.woocommerce.android.support.zendesk.ZendeskSettings
import com.woocommerce.android.ui.dialog.WooDialog
import com.woocommerce.android.util.SystemVersionUtils
import com.woocommerce.android.widgets.CustomProgressDialog
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
Expand Down Expand Up @@ -58,43 +57,24 @@ class SupportRequestFormActivity : AppCompatActivity() {
}
viewModel.onViewCreated()

adjustActivityTransitions()
if (isPOS()) {
adjustActivityTransition(
overrideTransitionOpen = true,
enterAnim = R.anim.woopos_slide_in_right,
exitAnim = R.anim.woopos_slide_out_left,
)
}
}

override fun finish() {
super.finish()
adjustExitTransition()
}

private fun SupportRequestFormActivity.adjustActivityTransitions() {
if (isPOS()) {
if (SystemVersionUtils.isAtLeastU()) {
overrideActivityTransition(
OVERRIDE_TRANSITION_CLOSE,
R.anim.woopos_slide_in_left,
R.anim.woopos_slide_out_right,
Color.TRANSPARENT
)
overrideActivityTransition(
OVERRIDE_TRANSITION_OPEN,
R.anim.woopos_slide_in_right,
R.anim.woopos_slide_out_left,
Color.TRANSPARENT
)
} else {
@Suppress("DEPRECATION")
overridePendingTransition(
R.anim.woopos_slide_in_right,
R.anim.woopos_slide_out_left
)
}
}
}

private fun adjustExitTransition() {
if (isPOS() && SystemVersionUtils.isAtMostT()) {
@Suppress("DEPRECATION")
overridePendingTransition(
if (isPOS()) {
adjustActivityTransition(
overrideTransitionOpen = false,
R.anim.woopos_slide_in_left,
R.anim.woopos_slide_out_right
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import com.woocommerce.android.databinding.FragmentCardReaderOnboardingSelectPay
import com.woocommerce.android.databinding.FragmentCardReaderOnboardingStripeBinding
import com.woocommerce.android.databinding.FragmentCardReaderOnboardingUnsupportedBinding
import com.woocommerce.android.databinding.FragmentCardReaderOnboardingWcpayBinding
import com.woocommerce.android.extensions.adjustActivityTransition
import com.woocommerce.android.extensions.startHelpActivity
import com.woocommerce.android.support.help.HelpOrigin
import com.woocommerce.android.ui.base.BaseFragment
Expand Down Expand Up @@ -58,8 +59,12 @@ class CardReaderOnboardingFragment : BaseFragment(R.layout.fragment_card_reader_
object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
if (viewModel.isPos) {
// If the user is in POS, we should navigate back skipping everything
requireActivity().finish()
requireActivity().adjustActivityTransition(
overrideTransitionOpen = false,
R.anim.woopos_slide_in_left,
R.anim.woopos_slide_out_right
)
} else {
findNavController().popBackStack()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updatePadding
import androidx.navigation.fragment.NavHostFragment
import com.woocommerce.android.R
import com.woocommerce.android.extensions.adjustActivityTransition
import com.woocommerce.android.ui.payments.cardreader.onboarding.CardReaderFlowParam
import com.woocommerce.android.ui.payments.cardreader.onboarding.CardReaderType
import com.woocommerce.android.ui.payments.cardreader.statuschecker.CardReaderStatusCheckerDialogFragmentArgs
Expand Down Expand Up @@ -61,8 +62,11 @@ class WooPosCardReaderActivity : AppCompatActivity(R.layout.activity_woo_pos_car

override fun finish() {
super.finish()
@Suppress("DEPRECATION")
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
adjustActivityTransition(
overrideTransitionOpen = true,
enterAnim = android.R.anim.fade_in,
exitAnim = android.R.anim.fade_out,
)
}

private fun observeResult(navHostFragment: NavHostFragment) {
Expand Down

0 comments on commit 6483ce2

Please sign in to comment.