checkpoint: active transaction on home screen is feature complete
Now, just need to cleanup the overall animation
This commit is contained in:
parent
3404082869
commit
969af030db
|
@ -15,9 +15,11 @@ import androidx.annotation.StringRes
|
|||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.transition.ChangeBounds
|
||||
import androidx.transition.Transition
|
||||
import androidx.transition.TransitionInflater
|
||||
import androidx.transition.TransitionSet
|
||||
import cash.z.android.wallet.R
|
||||
import cash.z.android.wallet.extention.Toaster
|
||||
import cash.z.android.wallet.extention.toAppColor
|
||||
import cash.z.android.wallet.extention.toAppString
|
||||
import cash.z.android.wallet.extention.tryIgnore
|
||||
|
@ -54,8 +56,26 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView {
|
|||
): View? {
|
||||
viewsInitialized = false
|
||||
val enterTransitionSet = TransitionInflater.from(mainActivity).inflateTransition(R.transition.transition_zec_sent).apply {
|
||||
duration = 3500L
|
||||
}
|
||||
duration = 350L
|
||||
}.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
|
||||
header_active_transaction.translationZ = 10.0f
|
||||
}
|
||||
|
||||
override fun onTransitionResume(transition: Transition) {
|
||||
}
|
||||
|
||||
override fun onTransitionPause(transition: Transition) {
|
||||
}
|
||||
|
||||
override fun onTransitionCancel(transition: Transition) {
|
||||
}
|
||||
|
||||
override fun onTransitionStart(transition: Transition) {
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
this.sharedElementEnterTransition = enterTransitionSet
|
||||
this.sharedElementReturnTransition = enterTransitionSet
|
||||
|
@ -70,7 +90,7 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView {
|
|||
mainActivity.setupNavigation()
|
||||
mainActivity.supportActionBar?.setTitle(R.string.destination_title_home)
|
||||
}
|
||||
// background_active_transaction.isActivated = true
|
||||
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)
|
||||
|
||||
|
@ -83,7 +103,11 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView {
|
|||
image_logo.setOnClickListener {
|
||||
// forceRedraw()
|
||||
// toggleViews(false)
|
||||
background_active_transaction.isActivated = !background_active_transaction.isActivated
|
||||
header_active_transaction.isActivated = !header_active_transaction.isActivated
|
||||
}
|
||||
|
||||
button_active_transaction_cancel.setOnClickListener {
|
||||
onCancelActiveTransaction()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -161,8 +185,9 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Private API
|
||||
// Private View API
|
||||
//
|
||||
|
||||
/**
|
||||
|
@ -230,6 +255,13 @@ 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
|
||||
homePresenter.onCancelActiveTransaction()
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines the basic properties of each FAB button for use while initializing the FAB
|
||||
*/
|
||||
|
|
|
@ -116,7 +116,9 @@ class SendFragment : BaseFragment(), SendPresenter.SendView {
|
|||
|
||||
override fun submit(){
|
||||
val extras = FragmentNavigatorExtras(
|
||||
binding.dialogSendContents to getString(R.string.transition_active_transaction)
|
||||
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)
|
||||
)
|
||||
|
||||
mainActivity.navController.navigate(R.id.nav_home_fragment,
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package cash.z.android.wallet.ui.presenter
|
||||
|
||||
import android.util.Log
|
||||
import cash.z.android.wallet.extention.Toaster
|
||||
import cash.z.android.wallet.ui.presenter.Presenter.PresenterView
|
||||
import cash.z.android.wallet.vo.WalletTransaction
|
||||
import cash.z.android.wallet.vo.WalletTransactionStatus
|
||||
|
@ -102,11 +103,17 @@ class HomePresenter(
|
|||
}
|
||||
}
|
||||
|
||||
fun onCancelActiveTransaction() {
|
||||
// TODO: hold a reference to the job and cancel it
|
||||
Toaster.short("Cancelled transaction!")
|
||||
}
|
||||
|
||||
private fun NoteQuery.toWalletTransaction(timeOverride: Long? = null): WalletTransaction {
|
||||
// convert time from seconds to milliseconds
|
||||
val timestamp = if (timeOverride == null) time * 1000 else timeOverride * 1000
|
||||
Log.e("@TWIG-u", "setting timestamp to $timestamp for value $value")
|
||||
return WalletTransaction(height, if (sent) SENT else RECEIVED, timestamp, BigDecimal(value / 1e8))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
|
||||
<objectAnimator
|
||||
android:propertyName="backgroundColor"
|
||||
android:valueFrom="@color/zcashGray_light"
|
||||
android:valueTo="@color/zcashBlue"
|
||||
android:valueFrom="@color/fragment_home_background"
|
||||
android:valueTo="@color/zcashWhite"
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:valueType="colorType" />
|
||||
|
||||
<objectAnimator
|
||||
android:propertyName="translationZ"
|
||||
android:valueTo="8dp"
|
||||
android:valueTo="4dp"
|
||||
android:startOffset="300"
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:interpolator="@android:interpolator/fast_out_slow_in" />
|
||||
|
@ -29,8 +29,8 @@
|
|||
|
||||
<objectAnimator
|
||||
android:propertyName="backgroundColor"
|
||||
android:valueFrom="@color/zcashBlue"
|
||||
android:valueTo="@color/zcashGray_light"
|
||||
android:valueFrom="@color/zcashWhite"
|
||||
android:valueTo="@color/fragment_home_background"
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:valueType="colorType" />
|
||||
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item android:state_enabled="false" android:color="@color/text_dark_dimmed"/>
|
||||
<item android:state_enabled="true" android:color="@color/zcashRed" />
|
||||
</selector>
|
|
@ -291,7 +291,7 @@
|
|||
android:backgroundTint="@color/zcashWhite"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:transitionName="@string/transition_active_transaction"
|
||||
android:transitionName="@string/transition_active_transaction_background"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@ -309,6 +309,7 @@
|
|||
android:text="Send 1.73 ZEC ($200.23)?"
|
||||
android:textSize="@dimen/text_size_h6"
|
||||
android:textStyle="bold"
|
||||
android:transitionName="@string/transition_active_transaction_title"
|
||||
app:layout_constraintBottom_toTopOf="@id/dialog_text_address"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
@ -341,6 +342,7 @@
|
|||
android:text="ztestsapling1snmqdnfqnc407pvqw7sld8w5zxx6nd0523kvlj4jf39uvxvh7vn0hs3q38n07806dwwecqwke3t"
|
||||
android:textColor="@color/colorPrimary"
|
||||
android:textSize="@dimen/text_size_body_1"
|
||||
android:transitionName="@string/transition_active_transaction_address"
|
||||
app:layout_constraintBottom_toTopOf="@+id/dialog_text_memo_included"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/dialog_text_to"
|
||||
|
|
|
@ -5,41 +5,76 @@
|
|||
android:id="@+id/scrollable"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/fragment_home_background"
|
||||
android:fillViewport="true"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingTop="30dp"
|
||||
android:paddingBottom="16dp"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingEnd="16dp">
|
||||
android:paddingTop="30dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:paddingBottom="16dp">
|
||||
|
||||
<View
|
||||
android:id="@+id/background_active_transaction"
|
||||
<!-- Active Transaction - primary -->
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/header_active_transaction"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_height="70dp"
|
||||
android:background="@drawable/background_rounded_corners"
|
||||
android:transitionName="@string/transition_active_transaction"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:clipToPadding="false"
|
||||
android:padding="16dp"
|
||||
android:stateListAnimator="@animator/selector_active_raise"
|
||||
android:clickable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
/>
|
||||
android:transitionName="@string/transition_active_transaction_background"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<com.airbnb.lottie.LottieAnimationView
|
||||
android:id="@+id/animation_view"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
app:lottie_autoPlay="true"
|
||||
app:lottie_loop="false"
|
||||
app:lottie_rawRes="@raw/lottie_active_transaction_fail"
|
||||
app:layout_constraintTop_toTopOf="@id/background_active_transaction"
|
||||
app:layout_constraintBottom_toBottomOf="@id/background_active_transaction"
|
||||
app:layout_constraintStart_toStartOf="@id/background_active_transaction"/>
|
||||
<com.airbnb.lottie.LottieAnimationView
|
||||
android:id="@+id/lottie_active_transaction"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:lottie_autoPlay="true"
|
||||
app:lottie_loop="false"
|
||||
app:lottie_rawRes="@raw/lottie_active_transaction_fail" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_active_transaction_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:text="Preparing 1.01 ZEC"
|
||||
android:textSize="@dimen/text_size_body_1"
|
||||
android:textStyle="bold"
|
||||
android:transitionName="@string/transition_active_transaction_title"
|
||||
app:layout_constraintStart_toEndOf="@id/lottie_active_transaction"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_active_transaction_subtitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="to zsapling...123456789"
|
||||
android:textSize="@dimen/text_size_caption"
|
||||
android:transitionName="@string/transition_active_transaction_address"
|
||||
app:layout_constraintStart_toStartOf="@id/text_active_transaction_title"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_active_transaction_title" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/button_active_transaction_cancel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@null"
|
||||
android:text="cancel"
|
||||
android:textColor="@color/selector_red_button"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<!-- Label: Past Activity -->
|
||||
<TextView
|
||||
|
@ -47,13 +82,13 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:paddingBottom="16dp"
|
||||
android:text="Past Activity"
|
||||
android:textColor="@color/text_dark"
|
||||
android:textSize="@dimen/text_size_body_2"
|
||||
android:textStyle="bold"
|
||||
android:paddingBottom="16dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/background_active_transaction" />
|
||||
app:layout_constraintTop_toBottomOf="@id/header_active_transaction" />
|
||||
|
||||
<!-- Transactions -->
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
|
@ -90,8 +125,8 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:padding="16dp"
|
||||
android:gravity="center"
|
||||
android:padding="16dp"
|
||||
android:text="@string/home_empty_wallet"
|
||||
android:textColor="#AAAAAA"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
<color name="zcashBlack_87">#DD000000</color>
|
||||
<color name="zcashBlack">#00000000</color>
|
||||
<color name="zcashPrimaryMedium">#136E6E</color>
|
||||
<color name="zcashRed">#B00016</color>
|
||||
|
||||
<!-- -->
|
||||
<!-- named colors -->
|
||||
|
@ -58,6 +59,7 @@
|
|||
<color name="fragment_receive_background">@color/zcashBlack_light</color>
|
||||
<color name="fragment_request_background">@color/colorPrimary</color>
|
||||
<color name="fragment_send_background">@color/zcashWhite_light</color>
|
||||
<color name="fragment_home_background">@color/zcashWhite_light</color>
|
||||
<color name="launcher_icon_background">@color/zcashPrimaryMedium</color>
|
||||
<color name="receive_title_background">@color/zcashBlack_12</color>
|
||||
<color name="home_transaction_item_background">@color/zcashBlueGray</color>
|
||||
|
|
|
@ -27,7 +27,9 @@
|
|||
<string name="destination_menu_label_settings">Settings</string>
|
||||
|
||||
<!-- Transitions -->
|
||||
<string name="transition_active_transaction">transition_active_transaction</string>
|
||||
<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>
|
||||
|
||||
<!-- Screen copy -->
|
||||
<string name="receive_address_title">Your Zcash shielded address</string>
|
||||
|
|
Loading…
Reference in New Issue