Added startup workflows.
- added home screen banner and logic to show/hide messages - added no balance banner and behavior - added landing and backup screens - fixed and finished receive screen - added back buttons - switched from rounded to cut corners - added sound and vibration - added ability to detect dev environment and adjust behavior
This commit is contained in:
parent
343b7c4cf3
commit
a36fa8b4d4
|
@ -2,6 +2,8 @@
|
|||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="cash.z.ecc.android">
|
||||
|
||||
<uses-permission android:name="android.permission.VIBRATE"/>
|
||||
|
||||
<application
|
||||
android:name="cash.z.ecc.android.ZcashWalletApp"
|
||||
android:allowBackup="false"
|
||||
|
|
Binary file not shown.
|
@ -1,6 +1,7 @@
|
|||
package cash.z.ecc.android
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import cash.z.ecc.android.di.DaggerAppComponent
|
||||
import dagger.android.AndroidInjector
|
||||
import dagger.android.DaggerApplication
|
||||
|
@ -40,4 +41,12 @@ class ZcashWalletApp : DaggerApplication() {
|
|||
ogHandler.uncaughtException(t, e)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun ZcashWalletApp.isEmulator(): Boolean {
|
||||
val goldfish = Build.HARDWARE.contains("goldfish");
|
||||
val emu = (System.getProperty("ro.kernel.qemu", "")?.length ?: 0) > 0;
|
||||
val sdk = Build.MODEL.toLowerCase().contains("sdk")
|
||||
return goldfish || emu || sdk;
|
||||
}
|
||||
|
|
|
@ -6,6 +6,8 @@ import cash.z.ecc.android.ui.detail.WalletDetailFragmentModule
|
|||
import cash.z.ecc.android.ui.home.HomeFragmentModule
|
||||
import cash.z.ecc.android.ui.receive.ReceiveFragmentModule
|
||||
import cash.z.ecc.android.ui.send.SendFragmentModule
|
||||
import cash.z.ecc.android.ui.setup.BackupFragmentModule
|
||||
import cash.z.ecc.android.ui.setup.LandingFragmentModule
|
||||
import dagger.Component
|
||||
import dagger.android.AndroidInjector
|
||||
import dagger.android.support.AndroidSupportInjectionModule
|
||||
|
@ -23,7 +25,9 @@ import javax.inject.Singleton
|
|||
HomeFragmentModule::class,
|
||||
ReceiveFragmentModule::class,
|
||||
SendFragmentModule::class,
|
||||
WalletDetailFragmentModule::class
|
||||
WalletDetailFragmentModule::class,
|
||||
LandingFragmentModule::class,
|
||||
BackupFragmentModule::class
|
||||
]
|
||||
)
|
||||
interface AppComponent : AndroidInjector<ZcashWalletApp> {
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
package cash.z.ecc.android.ext
|
||||
|
||||
import android.view.View
|
||||
import android.view.View.*
|
||||
import cash.z.ecc.android.ui.MainActivity
|
||||
|
||||
fun View.goneIf(isGone: Boolean) {
|
||||
visibility = if (isGone) GONE else VISIBLE
|
||||
}
|
||||
|
||||
fun View.invisibleIf(isInvisible: Boolean) {
|
||||
visibility = if (isInvisible) INVISIBLE else VISIBLE
|
||||
}
|
||||
|
||||
fun View.onClickNavTo(navResId: Int) {
|
||||
setOnClickListener {
|
||||
(context as? MainActivity)?.navController?.navigate(navResId)
|
||||
?: throw IllegalStateException("Cannot navigate from this activity. " +
|
||||
"Expected MainActivity but found ${context.javaClass.simpleName}")
|
||||
}
|
||||
}
|
||||
|
||||
fun View.onClickNavUp() {
|
||||
setOnClickListener {
|
||||
(context as? MainActivity)?.navController?.navigateUp()
|
||||
?: throw IllegalStateException(
|
||||
"Cannot navigate from this activity. " +
|
||||
"Expected MainActivity but found ${context.javaClass.simpleName}"
|
||||
)
|
||||
}
|
||||
}
|
|
@ -4,7 +4,10 @@ import android.content.ClipData
|
|||
import android.content.ClipboardManager
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.media.MediaPlayer
|
||||
import android.os.Bundle
|
||||
import android.os.Vibrator
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
|
@ -14,7 +17,6 @@ import androidx.navigation.NavController
|
|||
import androidx.navigation.findNavController
|
||||
import cash.z.ecc.android.R
|
||||
import cash.z.ecc.android.di.annotation.ActivityScope
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import dagger.Module
|
||||
import dagger.android.ContributesAndroidInjector
|
||||
import dagger.android.support.DaggerAppCompatActivity
|
||||
|
@ -22,7 +24,7 @@ import dagger.android.support.DaggerAppCompatActivity
|
|||
|
||||
class MainActivity : DaggerAppCompatActivity() {
|
||||
lateinit var navController: NavController
|
||||
private var snackbar: Snackbar? = null
|
||||
private val mediaPlayer: MediaPlayer = MediaPlayer()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
@ -34,7 +36,10 @@ class MainActivity : DaggerAppCompatActivity() {
|
|||
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
|
||||
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
|
||||
)
|
||||
setWindowFlag(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, false)// | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, false)
|
||||
setWindowFlag(
|
||||
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
|
||||
false
|
||||
)// | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, false)
|
||||
}
|
||||
|
||||
private fun setWindowFlag(bits: Int, on: Boolean) {
|
||||
|
@ -47,6 +52,7 @@ class MainActivity : DaggerAppCompatActivity() {
|
|||
}
|
||||
win.attributes = winParams
|
||||
}
|
||||
|
||||
private fun initNavigation() {
|
||||
navController = findNavController(R.id.nav_host_fragment)
|
||||
navController.addOnDestinationChangedListener { _, _, _ ->
|
||||
|
@ -58,9 +64,34 @@ class MainActivity : DaggerAppCompatActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
fun playSound(fileName: String) {
|
||||
mediaPlayer.apply {
|
||||
if (isPlaying) stop()
|
||||
try {
|
||||
reset()
|
||||
assets.openFd(fileName).let { afd ->
|
||||
setDataSource(afd.fileDescriptor, afd.startOffset, afd.length)
|
||||
}
|
||||
prepare()
|
||||
start()
|
||||
} catch (t: Throwable) {
|
||||
Log.e("SDK_ERROR", "ERROR: unable to play sound due to $t")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: spruce this up with API 26 stuff
|
||||
fun vibrateSuccess() {
|
||||
val vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
|
||||
if (vibrator.hasVibrator()) {
|
||||
vibrator.vibrate(longArrayOf(0, 200, 200, 100, 100, 800), -1)
|
||||
}
|
||||
}
|
||||
|
||||
fun copyAddress(view: View) {
|
||||
// TODO: get address from synchronizer
|
||||
val address = "zs1qduvdyuv83pyygjvc4cfcuc2wj5flnqn730iigf0tjct8k5ccs9y30p96j2gvn9gzyxm6q0vj12c4"
|
||||
val address =
|
||||
"zs1qduvdyuv83pyygjvc4cfcuc2wj5flnqn730iigf0tjct8k5ccs9y30p96j2gvn9gzyxm6q0vj12c4"
|
||||
val clipboard: ClipboardManager =
|
||||
getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
clipboard.setPrimaryClip(
|
||||
|
@ -74,14 +105,6 @@ class MainActivity : DaggerAppCompatActivity() {
|
|||
|
||||
private fun showMessage(message: String, action: String) {
|
||||
Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
|
||||
// val view = findViewById<View>(android.R.id.content)
|
||||
// if (snackbar == null) {
|
||||
// snackbar = Snackbar.make(view, "$message", Snackbar.LENGTH_INDEFINITE)
|
||||
// .setAction(action) { /*auto-close*/ }
|
||||
// } else {
|
||||
// snackbar?.setText(message)
|
||||
// }
|
||||
// if (snackbar?.isShownOrQueued == false) snackbar?.show()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -89,5 +112,5 @@ class MainActivity : DaggerAppCompatActivity() {
|
|||
abstract class MainActivityModule {
|
||||
@ActivityScope
|
||||
@ContributesAndroidInjector
|
||||
abstract fun contributeMainActivity(): MainActivity
|
||||
abstract fun contributeActivity(): MainActivity
|
||||
}
|
|
@ -1,8 +1,11 @@
|
|||
package cash.z.ecc.android.ui.detail
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import cash.z.ecc.android.databinding.FragmentDetailBinding
|
||||
import cash.z.ecc.android.di.annotation.FragmentScope
|
||||
import cash.z.ecc.android.ext.onClickNavUp
|
||||
import cash.z.ecc.android.ui.base.BaseFragment
|
||||
import dagger.Module
|
||||
import dagger.android.ContributesAndroidInjector
|
||||
|
@ -10,6 +13,11 @@ import dagger.android.ContributesAndroidInjector
|
|||
class WalletDetailFragment : BaseFragment<FragmentDetailBinding>() {
|
||||
override fun inflate(inflater: LayoutInflater): FragmentDetailBinding =
|
||||
FragmentDetailBinding.inflate(inflater)
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
binding.backButton.onClickNavUp()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -17,5 +25,5 @@ class WalletDetailFragment : BaseFragment<FragmentDetailBinding>() {
|
|||
abstract class WalletDetailFragmentModule {
|
||||
@FragmentScope
|
||||
@ContributesAndroidInjector
|
||||
abstract fun contributeWalletDetailFragment(): WalletDetailFragment
|
||||
abstract fun contributeFragment(): WalletDetailFragment
|
||||
}
|
|
@ -3,10 +3,15 @@ package cash.z.ecc.android.ui.home
|
|||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.TextView
|
||||
import cash.z.ecc.android.R
|
||||
import cash.z.ecc.android.databinding.FragmentHomeBinding
|
||||
import cash.z.ecc.android.di.annotation.FragmentScope
|
||||
import cash.z.ecc.android.ext.goneIf
|
||||
import cash.z.ecc.android.ext.onClickNavTo
|
||||
import cash.z.ecc.android.ui.base.BaseFragment
|
||||
import cash.z.ecc.android.ui.home.HomeFragment.BannerAction.*
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import dagger.Module
|
||||
import dagger.android.ContributesAndroidInjector
|
||||
|
||||
|
@ -16,14 +21,74 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
|
|||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
binding.hitAreaReceive.setOnClickListener {
|
||||
mainActivity?.navController?.navigate(R.id.action_nav_home_to_nav_receive)
|
||||
// TODO: trigger this from presenter
|
||||
onNoFunds()
|
||||
}
|
||||
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
binding.hitAreaReceive.onClickNavTo(R.id.action_nav_home_to_nav_receive)
|
||||
binding.iconDetail.onClickNavTo(R.id.action_nav_home_to_nav_detail)
|
||||
binding.textDetail.onClickNavTo(R.id.action_nav_home_to_nav_detail)
|
||||
binding.hitAreaScan.onClickNavTo(R.id.action_nav_home_to_nav_send)
|
||||
|
||||
binding.textBannerAction.setOnClickListener {
|
||||
onBannerAction(BannerAction.from((it as? TextView)?.text?.toString()))
|
||||
}
|
||||
binding.iconDetail.setOnClickListener {
|
||||
mainActivity?.navController?.navigate(R.id.action_nav_home_to_nav_detail)
|
||||
}
|
||||
|
||||
private fun onBannerAction(action: BannerAction) {
|
||||
when (action) {
|
||||
LEARN_MORE -> {
|
||||
MaterialAlertDialogBuilder(activity)
|
||||
.setMessage("To make full use of this wallet, deposit funds to your address or tap the faucet to trigger a tiny automatic deposit.\n\nFaucet funds are made available for the community by the community for testing. So please be kind enough to return what you borrow!")
|
||||
.setTitle("No Balance")
|
||||
.setCancelable(true)
|
||||
.setPositiveButton("Tap Faucet") { dialog, _ ->
|
||||
dialog.dismiss()
|
||||
setBanner("Tapping faucet...", CANCEL)
|
||||
}
|
||||
.setNegativeButton("View Address") { dialog, _ ->
|
||||
dialog.dismiss()
|
||||
mainActivity?.navController?.navigate(R.id.action_nav_home_to_nav_receive)
|
||||
}
|
||||
.show()
|
||||
}
|
||||
CANCEL -> {
|
||||
// TODO: trigger banner / balance update
|
||||
onNoFunds()
|
||||
}
|
||||
}
|
||||
binding.hitAreaScan.setOnClickListener {
|
||||
mainActivity?.navController?.navigate(R.id.action_nav_home_to_nav_send)
|
||||
}
|
||||
|
||||
private fun onNoFunds() {
|
||||
setBanner("No Balance", LEARN_MORE)
|
||||
}
|
||||
|
||||
private fun setBanner(message: String = "", action: BannerAction = CLEAR) {
|
||||
with(binding) {
|
||||
val hasMessage = !message.isEmpty() || action != CLEAR
|
||||
groupBalance.goneIf(hasMessage)
|
||||
groupBanner.goneIf(!hasMessage)
|
||||
layerLock.goneIf(!hasMessage)
|
||||
|
||||
textBannerMessage.text = message
|
||||
textBannerAction.text = action.action
|
||||
}
|
||||
}
|
||||
|
||||
enum class BannerAction(val action: String) {
|
||||
LEARN_MORE("Learn More"),
|
||||
CANCEL("Cancel"),
|
||||
CLEAR("");
|
||||
|
||||
companion object {
|
||||
fun from(action: String?): BannerAction {
|
||||
values().forEach {
|
||||
if (it.action == action) return it
|
||||
}
|
||||
throw IllegalArgumentException("Invalid BannerAction: $action")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -33,5 +98,5 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
|
|||
abstract class HomeFragmentModule {
|
||||
@FragmentScope
|
||||
@ContributesAndroidInjector
|
||||
abstract fun contributeHomeFragment(): HomeFragment
|
||||
abstract fun contributeFragment(): HomeFragment
|
||||
}
|
|
@ -12,6 +12,8 @@ import androidx.lifecycle.lifecycleScope
|
|||
import cash.z.android.qrecycler.QRecycler
|
||||
import cash.z.ecc.android.databinding.FragmentReceiveBinding
|
||||
import cash.z.ecc.android.di.annotation.FragmentScope
|
||||
import cash.z.ecc.android.ext.onClickNavTo
|
||||
import cash.z.ecc.android.ext.onClickNavUp
|
||||
import cash.z.ecc.android.ui.base.BaseFragment
|
||||
import cash.z.ecc.android.ui.util.AddressPartNumberSpan
|
||||
import dagger.Module
|
||||
|
@ -39,6 +41,7 @@ class ReceiveFragment : BaseFragment<FragmentReceiveBinding>() {
|
|||
text_address_part_7,
|
||||
text_address_part_8
|
||||
)
|
||||
binding.backButton.onClickNavUp()
|
||||
}
|
||||
|
||||
override fun onAttach(context: Context) {
|
||||
|
@ -81,5 +84,5 @@ class ReceiveFragment : BaseFragment<FragmentReceiveBinding>() {
|
|||
abstract class ReceiveFragmentModule {
|
||||
@FragmentScope
|
||||
@ContributesAndroidInjector
|
||||
abstract fun contributeReceiveFragment(): ReceiveFragment
|
||||
abstract fun contributeFragment(): ReceiveFragment
|
||||
}
|
|
@ -1,8 +1,11 @@
|
|||
package cash.z.ecc.android.ui.send
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import cash.z.ecc.android.databinding.FragmentSendBinding
|
||||
import cash.z.ecc.android.di.annotation.FragmentScope
|
||||
import cash.z.ecc.android.ext.onClickNavUp
|
||||
import cash.z.ecc.android.ui.base.BaseFragment
|
||||
import dagger.Module
|
||||
import dagger.android.ContributesAndroidInjector
|
||||
|
@ -10,6 +13,11 @@ import dagger.android.ContributesAndroidInjector
|
|||
class SendFragment : BaseFragment<FragmentSendBinding>() {
|
||||
override fun inflate(inflater: LayoutInflater): FragmentSendBinding =
|
||||
FragmentSendBinding.inflate(inflater)
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
binding.backButton.onClickNavUp()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -17,5 +25,5 @@ class SendFragment : BaseFragment<FragmentSendBinding>() {
|
|||
abstract class SendFragmentModule {
|
||||
@FragmentScope
|
||||
@ContributesAndroidInjector
|
||||
abstract fun contributeSendFragment(): SendFragment
|
||||
abstract fun contributeFragment(): SendFragment
|
||||
}
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
package cash.z.ecc.android.ui.setup
|
||||
|
||||
import android.os.Bundle
|
||||
import android.text.SpannableString
|
||||
import android.text.Spanned
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import cash.z.ecc.android.R
|
||||
import cash.z.ecc.android.databinding.FragmentBackupBinding
|
||||
import cash.z.ecc.android.di.annotation.FragmentScope
|
||||
import cash.z.ecc.android.ui.base.BaseFragment
|
||||
import cash.z.ecc.android.ui.util.AddressPartNumberSpan
|
||||
import dagger.Module
|
||||
import dagger.android.ContributesAndroidInjector
|
||||
|
||||
class BackupFragment : BaseFragment<FragmentBackupBinding>() {
|
||||
|
||||
override fun inflate(inflater: LayoutInflater): FragmentBackupBinding =
|
||||
FragmentBackupBinding.inflate(inflater)
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
with(binding) {
|
||||
applySpan(
|
||||
textAddressPart1,
|
||||
textAddressPart2,
|
||||
textAddressPart3,
|
||||
textAddressPart4,
|
||||
textAddressPart5,
|
||||
textAddressPart6,
|
||||
textAddressPart7,
|
||||
textAddressPart8
|
||||
)
|
||||
}
|
||||
binding.buttonPositive.setOnClickListener {
|
||||
onEnterWallet()
|
||||
}
|
||||
}
|
||||
|
||||
private fun onEnterWallet() {
|
||||
Toast.makeText(activity, "Backup verification coming soon! For now, enjoy your new wallet!", Toast.LENGTH_LONG).show()
|
||||
mainActivity?.navController?.navigate(R.id.action_nav_backup_to_nav_home)
|
||||
}
|
||||
|
||||
private fun applySpan(vararg textViews: TextView) {
|
||||
val thinSpace = "\u2005" // 0.25 em space
|
||||
textViews.forEachIndexed { index, textView ->
|
||||
textView.text = SpannableString("${index + 1}$thinSpace${textView.text}").apply {
|
||||
setSpan(AddressPartNumberSpan(), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Module
|
||||
abstract class BackupFragmentModule {
|
||||
@FragmentScope
|
||||
@ContributesAndroidInjector
|
||||
abstract fun contributeFragment(): BackupFragment
|
||||
}
|
|
@ -0,0 +1,89 @@
|
|||
package cash.z.ecc.android.ui.setup
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import cash.z.ecc.android.R
|
||||
import cash.z.ecc.android.ZcashWalletApp
|
||||
import cash.z.ecc.android.databinding.FragmentLandingBinding
|
||||
import cash.z.ecc.android.di.annotation.FragmentScope
|
||||
import cash.z.ecc.android.isEmulator
|
||||
import cash.z.ecc.android.ui.base.BaseFragment
|
||||
import dagger.Module
|
||||
import dagger.android.ContributesAndroidInjector
|
||||
|
||||
class LandingFragment : BaseFragment<FragmentLandingBinding>() {
|
||||
private var skipCount: Int = 0
|
||||
|
||||
override fun inflate(inflater: LayoutInflater): FragmentLandingBinding =
|
||||
FragmentLandingBinding.inflate(inflater)
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
binding.buttonPositive.setOnClickListener {
|
||||
when (binding.buttonPositive.text.toString().toLowerCase()) {
|
||||
"new" -> onNewWallet()
|
||||
"backup" -> onBackupWallet()
|
||||
}
|
||||
}
|
||||
binding.buttonNegative.setOnClickListener {
|
||||
when (binding.buttonNegative.text.toString().toLowerCase()) {
|
||||
"restore" -> onRestoreWallet()
|
||||
else -> onSkip(++skipCount)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun onSkip(count: Int) {
|
||||
when (count) {
|
||||
1 -> {
|
||||
binding.textMessage.text =
|
||||
"Are you sure? Without a backup, funds can be lost FOREVER!"
|
||||
binding.buttonNegative.text = "Later"
|
||||
}
|
||||
2 -> {
|
||||
binding.textMessage.text =
|
||||
"You can't backup later. You're probably going to lose your funds!"
|
||||
binding.buttonNegative.text = "I've been warned"
|
||||
}
|
||||
else -> {
|
||||
onEnterWallet()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun onRestoreWallet() {
|
||||
if (ZcashWalletApp.instance.isEmulator()) {
|
||||
onEnterWallet()
|
||||
} else {
|
||||
Toast.makeText(activity, "Coming soon!", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
|
||||
private fun onNewWallet() {
|
||||
binding.textMessage.text = "Wallet created! Congratulations!"
|
||||
binding.buttonNegative.text = "Skip"
|
||||
binding.buttonPositive.text = "Backup"
|
||||
mainActivity?.playSound("sound_receive_small.mp3")
|
||||
mainActivity?.vibrateSuccess()
|
||||
}
|
||||
|
||||
private fun onBackupWallet() {
|
||||
skipCount = 0
|
||||
mainActivity?.navController?.navigate(R.id.action_nav_landing_to_nav_backup)
|
||||
}
|
||||
|
||||
private fun onEnterWallet() {
|
||||
|
||||
skipCount = 0
|
||||
mainActivity?.navController?.navigate(R.id.action_nav_landing_to_nav_home)
|
||||
}
|
||||
}
|
||||
|
||||
@Module
|
||||
abstract class LandingFragmentModule {
|
||||
@FragmentScope
|
||||
@ContributesAndroidInjector
|
||||
abstract fun contributeFragment(): LandingFragment
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<corners android:radius="10dp" />
|
||||
<stroke android:width="1dp" android:color="#282828"/>
|
||||
<solid android:color="#171717"/>
|
||||
</shape>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<corners android:radius="10dp" />
|
||||
<stroke android:width="1dp" android:color="#282828"/>
|
||||
<solid android:color="#171717"/>
|
||||
</shape>
|
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>
|
||||
</vector>
|
|
@ -0,0 +1,55 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="175dp"
|
||||
android:height="175dp"
|
||||
android:viewportWidth="175"
|
||||
android:viewportHeight="175">
|
||||
<path
|
||||
android:pathData="M87.502,2C41.457,2 4,39.457 4,85.498C4,131.539 41.457,169 87.502,169C133.546,169 171,131.543 171,85.498C171,39.454 133.543,2 87.502,2ZM87.502,155.215C49.059,155.215 17.785,123.941 17.785,85.498C17.785,47.055 49.059,15.785 87.502,15.785C125.945,15.785 157.215,47.059 157.215,85.498C157.215,123.937 125.941,155.215 87.502,155.215Z"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#000000"
|
||||
android:fillAlpha="1"
|
||||
android:fillType="nonZero"
|
||||
android:strokeColor="#00000000"/>
|
||||
<path
|
||||
android:pathData="M87.502,2C41.457,2 4,39.457 4,85.498C4,131.539 41.457,169 87.502,169C133.546,169 171,131.543 171,85.498C171,39.454 133.543,2 87.502,2ZM87.502,155.215C49.059,155.215 17.785,123.941 17.785,85.498C17.785,47.055 49.059,15.785 87.502,15.785C125.945,15.785 157.215,47.059 157.215,85.498C157.215,123.937 125.941,155.215 87.502,155.215Z"
|
||||
android:strokeWidth="1"
|
||||
android:fillType="nonZero"
|
||||
android:strokeColor="#00000000">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:startY="2"
|
||||
android:startX="87.5"
|
||||
android:endY="169"
|
||||
android:endX="87.5"
|
||||
android:type="linear">
|
||||
<item android:offset="0" android:color="#FFFFA200"/>
|
||||
<item android:offset="1" android:color="#FFFFBC00"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M117,59.586l0,-12.676l-22.571,0l0,-13.911l-13.862,0l0,13.911l-22.567,0l0,16.79l34.987,0l-28.612,39.557l-6.375,8.141l0,12.676l22.567,0l0,13.867l1.663,0l0,0.059l10.537,0l0,-0.059l1.663,0l0,-13.867l22.571,0l0,-16.79l-34.99,0l28.612,-39.557z"
|
||||
android:strokeWidth="1"
|
||||
android:fillColor="#000000"
|
||||
android:fillAlpha="1"
|
||||
android:fillType="nonZero"
|
||||
android:strokeColor="#00000000"/>
|
||||
<path
|
||||
android:pathData="M117,59.586l0,-12.676l-22.571,0l0,-13.911l-13.862,0l0,13.911l-22.567,0l0,16.79l34.987,0l-28.612,39.557l-6.375,8.141l0,12.676l22.567,0l0,13.867l1.663,0l0,0.059l10.537,0l0,-0.059l1.663,0l0,-13.867l22.571,0l0,-16.79l-34.99,0l28.612,-39.557z"
|
||||
android:strokeWidth="1"
|
||||
android:fillType="nonZero"
|
||||
android:strokeColor="#00000000">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:startY="32.999"
|
||||
android:startX="87.5005"
|
||||
android:endY="138.00002"
|
||||
android:endX="87.5005"
|
||||
android:type="linear">
|
||||
<item android:offset="0" android:color="#FFFFA200"/>
|
||||
<item android:offset="1" android:color="#FFFFBC00"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
</vector>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/background_home"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/text_light"
|
||||
android:text="send address"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -0,0 +1,187 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/background_home">
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline_buttons"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintGuide_percent="0.667" />
|
||||
|
||||
|
||||
<!-- Address parts -->
|
||||
|
||||
<!-- Someday, there will be an advanced VirtualLayout that helps us do this without nesting but for now, this seems to be the only clean way to center all the fields -->
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/receive_address_parts"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:foregroundGravity="center"
|
||||
android:padding="16dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toTopOf="@id/text_message"
|
||||
>
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_1"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="drum"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_3"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.0"
|
||||
app:layout_constraintVertical_chainStyle="packed" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_3"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="inject"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_5"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_1"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_1" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_5"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="plate"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_7"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_1"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_3" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_7"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="talk"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_1"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_5" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_2"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:text="fitness"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_4"
|
||||
app:layout_constraintStart_toEndOf="@id/barrier_left_address_column"
|
||||
app:layout_constraintTop_toTopOf="@id/text_address_part_1" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_4"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="pool"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_6"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_2"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_2" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_6"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="inform"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_8"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_2"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_4" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_8"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="helmet"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_2"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_6" />
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:id="@+id/barrier_left_address_column"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="150dp"
|
||||
android:layout_marginRight="150dp"
|
||||
android:padding="150dp"
|
||||
app:barrierDirection="end"
|
||||
app:constraint_referenced_ids="text_address_part_1,text_address_part_3,text_address_part_5,text_address_part_7" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:gravity="center"
|
||||
android:text="empowering\neveryone\nwith\neconomic\nfreedom"
|
||||
android:textColor="@color/zcashWhite_50"
|
||||
android:textSize="56dp"
|
||||
android:alpha="0.03"
|
||||
app:layout_constraintBottom_toBottomOf="@id/icon_logo"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/icon_logo" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon_logo"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintDimensionRatio="W,1:1"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.33333"
|
||||
app:layout_constraintWidth_percent="0.4053398058"
|
||||
android:visibility="invisible"
|
||||
app:srcCompat="@drawable/ic_logo_landing" />
|
||||
|
||||
<!-- Choose release names from here https://en.wikipedia.org/wiki/List_of_woods -->
|
||||
<TextView
|
||||
android:id="@+id/text_message"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/TextAppearance.MaterialComponents.Headline6"
|
||||
android:gravity="center"
|
||||
android:paddingStart="32dp"
|
||||
android:paddingEnd="32dp"
|
||||
android:text="Store these backup words securely."
|
||||
android:textColor="@color/zcashWhite"
|
||||
app:layout_constraintBottom_toTopOf="@id/guideline_buttons"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/icon_logo" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/button_positive"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Verify"
|
||||
android:textColor="@color/text_dark"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/guideline_buttons" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/background_home"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/text_light"
|
||||
android:text="send confirm"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -7,6 +7,20 @@
|
|||
android:background="@drawable/background_home"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<!-- Back Button -->
|
||||
<ImageView
|
||||
android:id="@+id/back_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:tint="@color/text_light"
|
||||
app:srcCompat="@drawable/ic_arrow_back_black_24dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintVertical_bias="0.065"
|
||||
app:layout_constraintHorizontal_bias="0.05"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
|
@ -6,117 +6,6 @@
|
|||
android:layout_height="match_parent"
|
||||
android:background="@drawable/background_home">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon_scan"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:tint="@color/colorAccent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.108"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.0574"
|
||||
app:layout_constraintHeight_percent="0.052"
|
||||
app:layout_constraintWidth_percent="0.0887"
|
||||
app:srcCompat="@drawable/ic_qrcode_24dp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon_receive"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.8883"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.06420765027"
|
||||
app:layout_constraintHeight_percent="0.03825136612"
|
||||
app:layout_constraintWidth_percent="0.05582524272"
|
||||
app:srcCompat="@drawable/ic_receive_funds" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon_detail"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:tint="@color/colorAccent"
|
||||
app:layout_constraintTop_toTopOf="@id/text_detail"
|
||||
app:layout_constraintBottom_toBottomOf="@id/text_detail"
|
||||
app:layout_constraintEnd_toStartOf="@id/text_detail"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintHeight_percent="0.044"
|
||||
app:layout_constraintWidth_percent="0.0887"
|
||||
app:srcCompat="@drawable/ic_receipt_24dp"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_detail"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="12dp"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:tint="@color/colorAccent"
|
||||
android:text="Wallet Details"
|
||||
android:textColor="@color/colorAccent"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_send"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintVertical_bias="@dimen/ratio_golden_small"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/icon_detail"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_amount"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:text="12.345"
|
||||
android:textSize="72dp"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="@color/text_light"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toTopOf="@id/guide_keys"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_balance_available"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="12.34581242 ZEC"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:textColor="@color/text_light"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_amount"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/label_available"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/label_available"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="4dp"
|
||||
android:text="Available"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:textColor="@color/colorPrimary"
|
||||
app:layout_constraintBaseline_toBaselineOf="@id/text_balance_available"
|
||||
app:layout_constraintStart_toEndOf="@id/text_balance_available"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon_zec_symbol"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:tint="@color/colorAccent"
|
||||
app:layout_constraintWidth_percent="0.060"
|
||||
app:layout_constraintHeight_percent="0.052"
|
||||
app:layout_constraintTop_toTopOf="@id/text_amount"
|
||||
app:layout_constraintBottom_toBottomOf="@id/text_amount"
|
||||
app:layout_constraintEnd_toStartOf="@id/text_amount"
|
||||
app:layout_constraintVertical_bias="0.2"
|
||||
app:srcCompat="@drawable/ic_zec_symbol" />
|
||||
|
||||
<View
|
||||
android:id="@+id/guide_keys"
|
||||
android:layout_width="0dp"
|
||||
|
@ -131,159 +20,197 @@
|
|||
app:layout_constraintVertical_bias="0.58"
|
||||
app:layout_constraintWidth_percent="0.7475728155" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline_hit_area_top"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintGuide_percent="0.04" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_balance_available"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="12.34581242 ZEC"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:textColor="@color/text_light"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toStartOf="@id/label_balance"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_send_amount" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/label_balance"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="4dp"
|
||||
android:text="Available"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:textColor="@color/colorPrimary"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBaseline_toBaselineOf="@id/text_balance_available"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/text_balance_available" />
|
||||
|
||||
|
||||
<!-- -->
|
||||
<!-- Calculator -->
|
||||
<!-- -->
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/button_calculator_1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="1"
|
||||
style="@style/Zcash.TextView.Calculator"
|
||||
android:text="1"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_4"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintStart_toStartOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_keys"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_4"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent"
|
||||
app:layout_constraintVertical_chainStyle="spread_inside"/>
|
||||
app:layout_constraintVertical_chainStyle="spread_inside"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/button_calculator_2"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="2"
|
||||
style="@style/Zcash.TextView.Calculator"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintStart_toStartOf="@id/guide_keys"
|
||||
app:layout_constraintEnd_toEndOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_keys"
|
||||
android:text="2"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_5"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent"
|
||||
app:layout_constraintVertical_chainStyle="spread_inside"/>
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintEnd_toEndOf="@id/guide_keys"
|
||||
app:layout_constraintStart_toStartOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_keys"
|
||||
app:layout_constraintVertical_chainStyle="spread_inside"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/button_calculator_3"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="3"
|
||||
style="@style/Zcash.TextView.Calculator"
|
||||
android:text="3"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_6"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintEnd_toEndOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toTopOf="@id/guide_keys"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_6"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent"
|
||||
app:layout_constraintVertical_chainStyle="spread_inside"/>
|
||||
app:layout_constraintVertical_chainStyle="spread_inside"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/button_calculator_4"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="4"
|
||||
style="@style/Zcash.TextView.Calculator"
|
||||
android:text="4"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_7"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_calculator_1"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_7"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"/>
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/button_calculator_5"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="5"
|
||||
style="@style/Zcash.TextView.Calculator"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintStart_toStartOf="@id/guide_keys"
|
||||
app:layout_constraintEnd_toEndOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_calculator_2"
|
||||
android:text="5"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_8"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintEnd_toEndOf="@id/guide_keys"
|
||||
app:layout_constraintStart_toStartOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_calculator_2"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/button_calculator_6"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="6"
|
||||
style="@style/Zcash.TextView.Calculator"
|
||||
android:text="6"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_9"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintEnd_toEndOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_calculator_3"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_9"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/button_calculator_7"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="7"
|
||||
style="@style/Zcash.TextView.Calculator"
|
||||
android:text="7"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_decimal"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_calculator_4"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_decimal"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"/>
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/button_calculator_8"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="8"
|
||||
style="@style/Zcash.TextView.Calculator"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintStart_toStartOf="@id/guide_keys"
|
||||
app:layout_constraintEnd_toEndOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_calculator_5"
|
||||
android:text="8"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_0"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintEnd_toEndOf="@id/guide_keys"
|
||||
app:layout_constraintStart_toStartOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_calculator_5"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/button_calculator_9"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="9"
|
||||
style="@style/Zcash.TextView.Calculator"
|
||||
android:text="9"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_back"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintEnd_toEndOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_calculator_6"
|
||||
app:layout_constraintBottom_toTopOf="@id/button_calculator_back"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/button_calculator_decimal"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="."
|
||||
android:paddingBottom="2dp"
|
||||
style="@style/Zcash.TextView.Calculator"
|
||||
android:paddingBottom="2dp"
|
||||
android:text="."
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_keys"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_calculator_7"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_keys"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"/>
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/button_calculator_0"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="0"
|
||||
style="@style/Zcash.TextView.Calculator"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintStart_toStartOf="@id/guide_keys"
|
||||
app:layout_constraintEnd_toEndOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_calculator_8"
|
||||
android:text="0"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_keys"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintEnd_toEndOf="@id/guide_keys"
|
||||
app:layout_constraintStart_toStartOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_calculator_8"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/button_calculator_back"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:text="<"
|
||||
style="@style/Zcash.TextView.Calculator"
|
||||
android:text="<"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_keys"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintEnd_toEndOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_calculator_9"
|
||||
app:layout_constraintBottom_toBottomOf="@id/guide_keys"
|
||||
app:layout_constraintWidth_percent="@dimen/calculator_button_width_percent" />
|
||||
|
||||
<!-- TODO: properly style this as a button with ripples -->
|
||||
|
@ -295,20 +222,67 @@
|
|||
android:background="@drawable/background_button_rounded"
|
||||
android:gravity="center"
|
||||
android:text="Send Amount"
|
||||
android:textColor="#000000"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:textColor="#000000"
|
||||
app:layout_constraintEnd_toEndOf="@id/guide_keys"
|
||||
app:layout_constraintStart_toStartOf="@id/guide_keys"
|
||||
app:layout_constraintTop_toBottomOf="@id/guide_keys" />
|
||||
|
||||
<!-- Hit Areas -->
|
||||
<View
|
||||
android:id="@+id/layer_lock"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#D0000000"
|
||||
android:elevation="5dp" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline_hit_area_top"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintGuide_percent="0.04" />
|
||||
<!-- -->
|
||||
<!-- Upper Layer -->
|
||||
<!-- -->
|
||||
<ImageView
|
||||
android:id="@+id/icon_scan"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:elevation="6dp"
|
||||
android:tint="@color/colorAccent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHeight_percent="0.052"
|
||||
app:layout_constraintHorizontal_bias="0.108"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.0574"
|
||||
app:layout_constraintWidth_percent="0.0887"
|
||||
app:srcCompat="@drawable/ic_qrcode_24dp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon_logo"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:elevation="6dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHeight_percent="0.03825136612"
|
||||
app:layout_constraintHorizontal_bias="0.8883"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.06420765027"
|
||||
app:layout_constraintWidth_percent="0.05582524272"
|
||||
app:srcCompat="@drawable/ic_receive_funds" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon_detail"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:elevation="6dp"
|
||||
android:tint="@color/colorAccent"
|
||||
app:layout_constraintBottom_toBottomOf="@id/text_detail"
|
||||
app:layout_constraintEnd_toStartOf="@id/text_detail"
|
||||
app:layout_constraintHeight_percent="0.044"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/text_detail"
|
||||
app:layout_constraintWidth_percent="0.0887"
|
||||
app:srcCompat="@drawable/ic_receipt_24dp" />
|
||||
|
||||
<View
|
||||
android:id="@+id/hit_area_scan"
|
||||
|
@ -317,6 +291,7 @@
|
|||
android:layout_marginStart="24dp"
|
||||
android:alpha="0.3"
|
||||
android:background="@android:color/transparent"
|
||||
android:elevation="6dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/guideline_hit_area_top" />
|
||||
|
||||
|
@ -326,7 +301,99 @@
|
|||
android:layout_height="68dp"
|
||||
android:layout_marginEnd="24dp"
|
||||
android:background="@android:color/transparent"
|
||||
android:elevation="6dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/guideline_hit_area_top" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_detail"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="12dp"
|
||||
android:elevation="6dp"
|
||||
android:text="Wallet Details"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:textColor="@color/colorAccent"
|
||||
android:tint="@color/colorAccent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/icon_detail"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_send"
|
||||
app:layout_constraintVertical_bias="@dimen/ratio_golden_small" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon_zec_symbol"
|
||||
android:elevation="6dp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:tint="@color/colorAccent"
|
||||
app:layout_constraintBottom_toBottomOf="@id/text_send_amount"
|
||||
app:layout_constraintEnd_toStartOf="@id/text_send_amount"
|
||||
app:layout_constraintHeight_percent="0.052"
|
||||
app:layout_constraintTop_toTopOf="@id/text_send_amount"
|
||||
app:layout_constraintVertical_bias="0.2"
|
||||
app:layout_constraintWidth_percent="0.060"
|
||||
app:srcCompat="@drawable/ic_zec_symbol" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_send_amount"
|
||||
android:elevation="6dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:text="0"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="@color/text_light"
|
||||
android:textSize="72dp"
|
||||
app:layout_constraintBottom_toTopOf="@id/guide_keys"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
<!-- -->
|
||||
<!-- Banner -->
|
||||
<!-- -->
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_banner_message"
|
||||
android:elevation="6dp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/background_banner"
|
||||
android:paddingBottom="8dp"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingTop="8dp"
|
||||
android:text="No Balance"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:textColor="@color/text_light"
|
||||
app:layout_constraintEnd_toEndOf="@id/icon_logo"
|
||||
app:layout_constraintStart_toStartOf="@id/icon_scan"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_send_amount" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_banner_action"
|
||||
android:elevation="6dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:text="Learn More"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:textColor="@color/colorPrimary"
|
||||
app:layout_constraintBaseline_toBaselineOf="@id/text_banner_message"
|
||||
app:layout_constraintEnd_toEndOf="@id/text_banner_message" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/group_balance"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:constraint_referenced_ids="text_balance_available,label_balance" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/group_banner"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:constraint_referenced_ids="text_banner_message, text_banner_action" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -0,0 +1,83 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/background_home">
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline_buttons"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintGuide_percent="0.667" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:gravity="center"
|
||||
android:text="empowering\neveryone\nwith\neconomic\nfreedom"
|
||||
android:textColor="@color/zcashWhite_50"
|
||||
android:textSize="56dp"
|
||||
android:alpha="0.05"
|
||||
app:layout_constraintBottom_toBottomOf="@id/icon_logo"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/icon_logo" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon_logo"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintDimensionRatio="W,1:1"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.33333"
|
||||
app:layout_constraintWidth_percent="0.4053398058"
|
||||
app:srcCompat="@drawable/ic_logo_landing" />
|
||||
|
||||
<!-- Choose release names from here https://en.wikipedia.org/wiki/List_of_woods -->
|
||||
<TextView
|
||||
android:id="@+id/text_message"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/TextAppearance.MaterialComponents.Headline6"
|
||||
android:gravity="center"
|
||||
android:paddingStart="32dp"
|
||||
android:paddingEnd="32dp"
|
||||
android:text="Welcome to the Birch Wallet!"
|
||||
android:textColor="@color/zcashWhite"
|
||||
app:layout_constraintBottom_toTopOf="@id/guideline_buttons"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/icon_logo" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/button_negative"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Zcash.Button.OutlinedButton"
|
||||
android:text="Restore"
|
||||
android:textColor="@color/text_light"
|
||||
app:layout_constraintEnd_toStartOf="@id/button_positive"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/guideline_buttons" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/button_positive"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:text="New"
|
||||
android:textColor="@color/text_dark"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/button_negative"
|
||||
app:layout_constraintTop_toTopOf="@id/guideline_buttons" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/background_home"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/text_light"
|
||||
android:text="send memo"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -1,35 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon_scan"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@drawable/ic_qrcode_24dp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon_receive"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@drawable/ic_zcashlogo" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon_detail"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_marginBottom="56dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:srcCompat="@drawable/ic_receipt_24dp" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -1,5 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<ScrollView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -11,14 +12,21 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/background_home"
|
||||
android:onClick="copyAddress"
|
||||
tools:context=".ui.fragment.ReceiveFragment">
|
||||
|
||||
<!-- <include-->
|
||||
<!-- android:id="@+id/main_app_bar"-->
|
||||
<!-- layout="@layout/include_main_app_bar"-->
|
||||
<!-- android:visibility="invisible"-->
|
||||
<!-- tools:ignore="MissingConstraints" />-->
|
||||
<!-- Back Button -->
|
||||
<ImageView
|
||||
android:id="@+id/back_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:tint="@color/text_light"
|
||||
app:srcCompat="@drawable/ic_arrow_back_black_24dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintVertical_bias="0.065"
|
||||
app:layout_constraintHorizontal_bias="0.05"/>
|
||||
|
||||
<!-- Shield Background -->
|
||||
<ImageView
|
||||
|
@ -26,21 +34,22 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:scaleType="fitXY"
|
||||
app:srcCompat="@drawable/ic_shield"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintDimensionRatio="H,1:1.1676"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintDimensionRatio="H,1:1.1676"
|
||||
app:layout_constraintTop_toTopOf="@id/back_button"
|
||||
app:layout_constraintVertical_bias="0.08"
|
||||
app:layout_constraintWidth_default="percent"
|
||||
app:layout_constraintWidth_percent="0.84988" />
|
||||
app:layout_constraintWidth_percent="0.84988"
|
||||
app:srcCompat="@drawable/ic_shield" />
|
||||
|
||||
<!-- QR code placeholder -->
|
||||
<ImageView
|
||||
android:id="@+id/receive_qr_code"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:onClick="copyAddress"
|
||||
android:scaleType="fitCenter"
|
||||
app:layout_constraintBottom_toBottomOf="@id/image_shield"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
|
@ -54,155 +63,166 @@
|
|||
<ImageView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:srcCompat="@drawable/ic_zcash_white"
|
||||
android:onClick="copyAddress"
|
||||
app:layout_constraintBottom_toBottomOf="@id/receive_qr_code"
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintEnd_toEndOf="@id/receive_qr_code"
|
||||
app:layout_constraintStart_toStartOf="@id/receive_qr_code"
|
||||
app:layout_constraintTop_toTopOf="@id/receive_qr_code"
|
||||
app:layout_constraintWidth_default="percent"
|
||||
app:layout_constraintWidth_percent="0.12"
|
||||
app:layout_constraintStart_toStartOf="@id/receive_qr_code"
|
||||
app:layout_constraintEnd_toEndOf="@id/receive_qr_code"
|
||||
app:layout_constraintTop_toTopOf="@id/receive_qr_code"
|
||||
app:layout_constraintBottom_toBottomOf="@id/receive_qr_code"
|
||||
/>
|
||||
app:srcCompat="@drawable/ic_zcash_white" />
|
||||
|
||||
<View
|
||||
android:id="@+id/receive_address_background"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="#c0171717"
|
||||
app:layout_constraintBottom_toBottomOf="@id/receive_address_parts"
|
||||
app:layout_constraintEnd_toEndOf="@id/image_shield"
|
||||
app:layout_constraintStart_toStartOf="@id/image_shield"
|
||||
app:layout_constraintTop_toTopOf="@id/receive_address_parts" />
|
||||
|
||||
<TextView
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:id="@+id/receive_title"
|
||||
style="@style/Zcash.TextAppearance.Headline6"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="24dp"
|
||||
android:background="#D8FFB727"
|
||||
android:gravity="center"
|
||||
android:padding="16dp"
|
||||
android:text="@string/receive_address_title"
|
||||
android:textColor="@color/zcashWhite"
|
||||
android:backgroundTint="@color/colorPrimary"
|
||||
app:layout_constraintBottom_toBottomOf="@id/image_shield"
|
||||
app:layout_constraintEnd_toEndOf="@+id/image_shield"
|
||||
app:layout_constraintStart_toStartOf="@+id/image_shield"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"/>
|
||||
app:layout_constraintTop_toTopOf="@id/image_shield"
|
||||
app:layout_constraintVertical_bias="0.924">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Zcash.TextAppearance.Headline6"
|
||||
android:gravity="center"
|
||||
android:padding="16dp"
|
||||
android:text="@string/receive_address_title"
|
||||
android:textColor="@color/text_dark" />
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
|
||||
<!-- Address parts -->
|
||||
|
||||
<!-- Someday, there will be an advanced VirtualLayout that helps us do this without nesting but for now, this seems to be the only clean way to center all the fields -->
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/receive_address_parts"
|
||||
android:layout_width="wrap_content"
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:id="@+id/receive_address_background"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:foregroundGravity="center"
|
||||
android:padding="16dp"
|
||||
app:layout_constraintEnd_toEndOf="@id/receive_title"
|
||||
app:layout_constraintStart_toStartOf="@id/receive_title"
|
||||
app:layout_constraintTop_toBottomOf="@id/receive_title">
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_1"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text=" ztestsaplin"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_3"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.0"
|
||||
app:layout_constraintVertical_chainStyle="packed" />
|
||||
android:backgroundTint="#282828"
|
||||
app:layout_constraintEnd_toEndOf="@id/image_shield"
|
||||
app:layout_constraintStart_toStartOf="@id/image_shield"
|
||||
app:layout_constraintTop_toBottomOf="@id/image_shield">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_3"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text=" jceuu9s2p6t"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_5"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_1"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_1" />
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:backgroundTint="#171717"
|
||||
android:elevation="0dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_5"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text=" 7u7uarqls7d"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_7"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_1"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_3" />
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/receive_address_parts"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:foregroundGravity="center"
|
||||
android:onClick="copyAddress"
|
||||
android:padding="16dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_7"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text=" rzq85xggu56"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_1"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_5" />
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:text=" ztestsaplin"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_3"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="0.0"
|
||||
app:layout_constraintVertical_chainStyle="packed" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_2"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:text=" g1mwjzlg62j"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_4"
|
||||
app:layout_constraintStart_toEndOf="@id/barrier_left_address_column"
|
||||
app:layout_constraintTop_toTopOf="@id/text_address_part_1" />
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_3"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:text=" jceuu9s2p6t"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_5"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_1"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_1" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_4"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text=" wns6qxwec6v"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_6"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_2"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_2" />
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_5"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:text=" 7u7uarqls7d"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_7"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_1"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_3" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_6"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text=" gtg3tpgqxjd"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_8"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_2"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_4" />
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_7"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:text=" rzq85xggu56"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_1"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_5" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_8"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text=" k904xderng6"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_2"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_6" />
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginStart="8dp"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:text=" g1mwjzlg62j"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_4"
|
||||
app:layout_constraintStart_toEndOf="@id/barrier_left_address_column"
|
||||
app:layout_constraintTop_toTopOf="@id/text_address_part_1" />
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:id="@+id/barrier_left_address_column"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="150dp"
|
||||
android:layout_marginRight="150dp"
|
||||
android:padding="150dp"
|
||||
app:barrierDirection="end"
|
||||
app:constraint_referenced_ids="text_address_part_1,text_address_part_3,text_address_part_5,text_address_part_7" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_4"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:text=" wns6qxwec6v"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_6"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_2"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_2" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_6"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:text=" gtg3tpgqxjd"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_address_part_8"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_2"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_4" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_address_part_8"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
style="@style/Zcash.TextAppearance.AddressPart"
|
||||
android:text=" k904xderng6"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/text_address_part_2"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_address_part_6" />
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:id="@+id/barrier_left_address_column"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="150dp"
|
||||
android:layout_marginRight="150dp"
|
||||
android:padding="150dp"
|
||||
app:barrierDirection="end"
|
||||
app:constraint_referenced_ids="text_address_part_1,text_address_part_3,text_address_part_5,text_address_part_7" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</ScrollView>
|
|
@ -7,6 +7,20 @@
|
|||
android:background="@drawable/background_home"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<!-- Back Button -->
|
||||
<ImageView
|
||||
android:id="@+id/back_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:tint="@color/text_light"
|
||||
app:srcCompat="@drawable/ic_arrow_back_black_24dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintVertical_bias="0.065"
|
||||
app:layout_constraintHorizontal_bias="0.05"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/background_home"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/text_light"
|
||||
android:text="send memo"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/background_home"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/text_light"
|
||||
android:text="send memo"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -4,7 +4,28 @@
|
|||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/mobile_navigation"
|
||||
app:startDestination="@+id/nav_home">
|
||||
app:startDestination="@+id/nav_landing">
|
||||
|
||||
<fragment
|
||||
android:id="@+id/nav_landing"
|
||||
android:name="cash.z.ecc.android.ui.setup.LandingFragment"
|
||||
tools:layout="@layout/fragment_landing" >
|
||||
<action
|
||||
android:id="@+id/action_nav_landing_to_nav_home"
|
||||
app:destination="@id/nav_home" />
|
||||
<action
|
||||
android:id="@+id/action_nav_landing_to_nav_backup"
|
||||
app:destination="@id/nav_backup" />
|
||||
</fragment>
|
||||
|
||||
<fragment
|
||||
android:id="@+id/nav_backup"
|
||||
android:name="cash.z.ecc.android.ui.setup.BackupFragment"
|
||||
tools:layout="@layout/fragment_backup" >
|
||||
<action
|
||||
android:id="@+id/action_nav_backup_to_nav_home"
|
||||
app:destination="@id/nav_home" />
|
||||
</fragment>
|
||||
|
||||
<fragment
|
||||
android:id="@+id/nav_home"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<resources>
|
||||
<string name="app_name">Zcash Wallet</string>
|
||||
<string name="receive_address_title">Your Zcash shielded address</string>
|
||||
<string name="receive_address_title">Your Shielded Address</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
<resources>
|
||||
|
||||
<!-- Base application theme -->
|
||||
<style name="ZcashBaseTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
|
||||
<!-- Application theme -->
|
||||
|
||||
<style name="ZcashBaseTheme" parent="Theme.MaterialComponents.NoActionBar">
|
||||
<!-- Customize your theme here. -->
|
||||
<item name="colorPrimary">@color/colorPrimary</item>
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||
<item name="colorAccent">@color/colorAccent</item>
|
||||
|
||||
<item name="shapeAppearanceSmallComponent">@style/Zcash.ShapeAppearance.SmallComponent</item>
|
||||
<item name="shapeAppearanceMediumComponent">@style/Zcash.ShapeAppearance.MediumComponent</item>
|
||||
</style>
|
||||
|
||||
<style name="ZcashTheme" parent="ZcashBaseTheme"/>
|
||||
|
@ -22,6 +26,10 @@
|
|||
<item name="android:background">@drawable/selector_pressed_ripple_circle</item>
|
||||
</style>
|
||||
|
||||
<style name="Zcash.Button.OutlinedButton" parent="Widget.MaterialComponents.Button.OutlinedButton">
|
||||
<item name="strokeColor">@color/zcashWhite_87</item>
|
||||
</style>
|
||||
|
||||
<!-- Text Appearances -->
|
||||
|
||||
<style name="Zcash.TextAppearance.Calculator" parent="TextAppearance.MaterialComponents.Body1">
|
||||
|
@ -41,4 +49,14 @@
|
|||
<item name="android:fontFamily">sans-serif</item>
|
||||
</style>
|
||||
|
||||
<!-- Shape Appearances -->
|
||||
|
||||
<style name="Zcash.ShapeAppearance.SmallComponent" parent="ShapeAppearance.MaterialComponents.SmallComponent">
|
||||
<item name="cornerFamily">cut</item>
|
||||
<item name="cornerSize">8dp</item>
|
||||
</style>
|
||||
<style name="Zcash.ShapeAppearance.MediumComponent" parent="ShapeAppearance.MaterialComponents.MediumComponent">
|
||||
<item name="cornerFamily">cut</item>
|
||||
<item name="cornerSize">12dp</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
|
Loading…
Reference in New Issue