checkpoint: transition animation is acceptable. barely.
This commit is contained in:
parent
969af030db
commit
12c7c162f2
|
@ -38,7 +38,7 @@ class MainActivity : BaseActivity() {
|
|||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_main)
|
||||
synchronizer.start(this)
|
||||
if(!DEV_MODE)synchronizer.start(this)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
@ -54,6 +54,11 @@ class MainActivity : BaseActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if(DEV_MODE) navController.navigate(R.id.nav_send_fragment)
|
||||
}
|
||||
|
||||
/**
|
||||
* Let the navController override the default behavior when the drawer icon or back arrow are clicked. This
|
||||
* automatically takes care of the drawer toggle behavior. Note that without overriding this method, the up/drawer
|
||||
|
@ -85,6 +90,12 @@ class MainActivity : BaseActivity() {
|
|||
}
|
||||
|
||||
companion object {
|
||||
/**
|
||||
* A simple flag that helps with removing shortcuts in the code used during development.
|
||||
* TODO: either elevate this to a real thing (based off a system property or some such) or delete it!
|
||||
*/
|
||||
const val DEV_MODE = true
|
||||
|
||||
// TODO: placeholder until we have a network service for this
|
||||
const val USD_PER_ZEC = 49.07
|
||||
init {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package cash.z.android.wallet.ui.fragment
|
||||
|
||||
import android.animation.Animator
|
||||
import android.app.Activity
|
||||
import android.os.Bundle
|
||||
import android.text.SpannableString
|
||||
|
@ -8,6 +9,8 @@ import android.util.Log
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.animation.AccelerateDecelerateInterpolator
|
||||
import android.view.animation.AccelerateInterpolator
|
||||
import androidx.annotation.ColorRes
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.annotation.IdRes
|
||||
|
@ -55,8 +58,15 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView {
|
|||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
viewsInitialized = false
|
||||
val enterTransitionSet = TransitionInflater.from(mainActivity).inflateTransition(R.transition.transition_zec_sent).apply {
|
||||
duration = 350L
|
||||
setupSharedElementTransitions()
|
||||
|
||||
return inflater.inflate(R.layout.fragment_home, container, false)
|
||||
}
|
||||
|
||||
private fun setupSharedElementTransitions() {
|
||||
val enterTransitionSet =
|
||||
TransitionInflater.from(mainActivity).inflateTransition(R.transition.transition_zec_sent).apply {
|
||||
duration = 300L
|
||||
}.addListener(object : Transition.TransitionListener {
|
||||
override fun onTransitionEnd(transition: Transition) {
|
||||
// fixes a bug where the translation gets lost, during animation. As a nice side effect, visually, it makes the view appear to settle in to position
|
||||
|
@ -79,8 +89,6 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView {
|
|||
|
||||
this.sharedElementEnterTransition = enterTransitionSet
|
||||
this.sharedElementReturnTransition = enterTransitionSet
|
||||
|
||||
return inflater.inflate(R.layout.fragment_home, container, false)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
|
@ -90,7 +98,6 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView {
|
|||
mainActivity.setupNavigation()
|
||||
mainActivity.supportActionBar?.setTitle(R.string.destination_title_home)
|
||||
}
|
||||
header_active_transaction.isActivated = true
|
||||
headerFullViews = arrayOf(text_balance_usd, text_balance_includes_info, text_balance_zec, image_zec_symbol_balance_shadow, image_zec_symbol_balance)
|
||||
headerEmptyViews = arrayOf(text_balance_zec_info, text_balance_zec_empty, image_zec_symbol_balance_shadow_empty, image_zec_symbol_balance_empty)
|
||||
|
||||
|
@ -100,10 +107,13 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView {
|
|||
group_empty_view_items.visibility = View.GONE
|
||||
group_full_view_items.visibility = View.GONE
|
||||
|
||||
if (MainActivity.DEV_MODE) {
|
||||
image_logo.setOnClickListener {
|
||||
mainActivity.navController.navigate(R.id.nav_send_fragment)
|
||||
// forceRedraw()
|
||||
// toggleViews(false)
|
||||
header_active_transaction.isActivated = !header_active_transaction.isActivated
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
button_active_transaction_cancel.setOnClickListener {
|
||||
|
@ -258,7 +268,27 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView {
|
|||
private fun onCancelActiveTransaction() {
|
||||
button_active_transaction_cancel.isEnabled = false
|
||||
button_active_transaction_cancel.text = "canceled"
|
||||
header_active_transaction.isActivated = false
|
||||
header_active_transaction.animate().apply {
|
||||
translationZ(0f)
|
||||
duration = 200L
|
||||
interpolator = AccelerateInterpolator()
|
||||
setListener(object : Animator.AnimatorListener {
|
||||
override fun onAnimationRepeat(animation: Animator?) {
|
||||
}
|
||||
|
||||
override fun onAnimationEnd(animation: Animator?) {
|
||||
header_active_transaction.setBackgroundResource(0)
|
||||
}
|
||||
|
||||
override fun onAnimationCancel(animation: Animator?) {
|
||||
}
|
||||
|
||||
override fun onAnimationStart(animation: Animator?) {
|
||||
}
|
||||
|
||||
} )
|
||||
}
|
||||
|
||||
homePresenter.onCancelActiveTransaction()
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,9 @@ import android.view.ViewGroup
|
|||
import androidx.core.text.toSpannable
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import androidx.navigation.fragment.FragmentNavigatorExtras
|
||||
import androidx.transition.Fade
|
||||
import androidx.transition.Transition
|
||||
import androidx.transition.TransitionInflater
|
||||
import cash.z.android.wallet.R
|
||||
import cash.z.android.wallet.databinding.FragmentSendBinding
|
||||
import cash.z.android.wallet.extention.afterTextChanged
|
||||
|
@ -20,6 +23,7 @@ import cash.z.android.wallet.ui.activity.MainActivity
|
|||
import cash.z.android.wallet.ui.presenter.SendPresenter
|
||||
import dagger.Module
|
||||
import dagger.android.ContributesAndroidInjector
|
||||
import kotlinx.android.synthetic.main.include_home_content.*
|
||||
import kotlinx.coroutines.launch
|
||||
import java.text.DecimalFormat
|
||||
|
||||
|
@ -41,6 +45,16 @@ class SendFragment : BaseFragment(), SendPresenter.SendView {
|
|||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
val enterTransitionSet = TransitionInflater.from(mainActivity).inflateTransition(R.transition.transition_zec_sent).apply {
|
||||
duration = 3500L
|
||||
}
|
||||
|
||||
this.sharedElementReturnTransition = enterTransitionSet
|
||||
this.sharedElementEnterTransition = enterTransitionSet
|
||||
|
||||
this.allowReturnTransitionOverlap = false
|
||||
allowEnterTransitionOverlap = false
|
||||
0
|
||||
return DataBindingUtil.inflate<FragmentSendBinding>(
|
||||
inflater, R.layout.fragment_send, container, false
|
||||
).let {
|
||||
|
@ -107,6 +121,7 @@ class SendFragment : BaseFragment(), SendPresenter.SendView {
|
|||
launch {
|
||||
sendPresenter.start()
|
||||
}
|
||||
if(MainActivity.DEV_MODE) showSendDialog()
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
|
@ -115,11 +130,17 @@ class SendFragment : BaseFragment(), SendPresenter.SendView {
|
|||
}
|
||||
|
||||
override fun submit(){
|
||||
val extras = FragmentNavigatorExtras(
|
||||
binding.dialogSendContents to getString(R.string.transition_active_transaction_background),
|
||||
binding.dialogTextTitle to getString(R.string.transition_active_transaction_title),
|
||||
binding.dialogTextAddress to getString(R.string.transition_active_transaction_address)
|
||||
)
|
||||
var extras = with(binding) {
|
||||
listOf(dialogSendBackground, dialogSendContents, dialogTextTitle, dialogTextAddress)
|
||||
.map{ it to it.transitionName }
|
||||
.let { FragmentNavigatorExtras(*it.toTypedArray()) }
|
||||
}
|
||||
// val extras = FragmentNavigatorExtras(
|
||||
// binding.dialogSendContents to binding.dialogSendContents.transitionName,
|
||||
// binding.dialogTextTitle to getString(R.string.transition_active_transaction_title),
|
||||
// binding.dialogTextAddress to getString(R.string.transition_active_transaction_address),
|
||||
// binding.dialogSendBackground to getString(R.string.transition_active_transaction_background)
|
||||
// )
|
||||
|
||||
mainActivity.navController.navigate(R.id.nav_home_fragment,
|
||||
null,
|
||||
|
|
|
@ -278,6 +278,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/zcashBlack_54"
|
||||
android:transitionName="@string/transition_active_transaction_background"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
|
@ -291,7 +292,7 @@
|
|||
android:backgroundTint="@color/zcashWhite"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:transitionName="@string/transition_active_transaction_background"
|
||||
android:transitionName="@string/transition_active_transaction_card"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
|
@ -10,23 +10,24 @@
|
|||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/content_home"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingTop="30dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:paddingBottom="16dp">
|
||||
android:paddingBottom="16dp"
|
||||
android:transitionName="@string/transition_active_transaction_background">
|
||||
|
||||
<!-- Active Transaction - primary -->
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/header_active_transaction"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="70dp"
|
||||
android:background="@drawable/background_rounded_corners"
|
||||
android:background="@drawable/background_rounded_corners_opaque"
|
||||
android:clipToPadding="false"
|
||||
android:padding="16dp"
|
||||
android:stateListAnimator="@animator/selector_active_raise"
|
||||
android:transitionName="@string/transition_active_transaction_background"
|
||||
android:transitionName="@string/transition_active_transaction_card"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
|
|
|
@ -3,7 +3,9 @@
|
|||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:transitionOrdering="together">
|
||||
|
||||
<changeBounds/>
|
||||
<changeBounds>
|
||||
<arcMotion/>
|
||||
</changeBounds>
|
||||
<changeTransform/>
|
||||
<changeClipBounds/>
|
||||
<changeImageTransform/>
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
<string name="transition_active_transaction_background">transition_active_transaction_background</string>
|
||||
<string name="transition_active_transaction_title">transition_active_transaction_title</string>
|
||||
<string name="transition_active_transaction_address">transition_active_transaction_address</string>
|
||||
<string name="transition_active_transaction_card">transition_active_transaction_card</string>
|
||||
|
||||
<!-- Screen copy -->
|
||||
<string name="receive_address_title">Your Zcash shielded address</string>
|
||||
|
|
Loading…
Reference in New Issue