diff --git a/zcash-android-wallet-app/app/libs/zcash-android-wallet-sdk-1.4.0.aar b/zcash-android-wallet-app/app/libs/zcash-android-wallet-sdk-1.4.0.aar index 92e684d..f757707 100644 Binary files a/zcash-android-wallet-app/app/libs/zcash-android-wallet-sdk-1.4.0.aar and b/zcash-android-wallet-app/app/libs/zcash-android-wallet-sdk-1.4.0.aar differ diff --git a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/di/module/SynchronizerModule.kt b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/di/module/SynchronizerModule.kt index 794f0f8..1033b08 100644 --- a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/di/module/SynchronizerModule.kt +++ b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/di/module/SynchronizerModule.kt @@ -85,10 +85,16 @@ internal object SynchronizerModule { // TODO: load most of these properties in later, perhaps from settings object Properties { -// const val COMPACT_BLOCK_SERVER = "10.0.0.26" - const val COMPACT_BLOCK_SERVER = "lightwalletd.z.cash" + val COMPACT_BLOCK_SERVER = Servers.ZCASH_TESTNET.host const val COMPACT_BLOCK_PORT = 9067 - const val CACHE_DB_NAME = "wallet_cache9.db" - const val DATA_DB_NAME = "wallet_data9.db" + const val CACHE_DB_NAME = "wallet_cache19.db" + const val DATA_DB_NAME = "wallet_data19.db" val SEED_PROVIDER = SampleSeedProvider("dummyseed") -} \ No newline at end of file +} + +enum class Servers(val host: String) { + EMULATOR("10.0.2.2"), + WLAN("10.0.0.26"), + BOLT_TESTNET("ec2-34-228-10-162.compute-1.amazonaws.com"), + ZCASH_TESTNET("lightwalletd.z.cash") +} diff --git a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/activity/MainActivity.kt b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/activity/MainActivity.kt index ba35211..a827236 100644 --- a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/activity/MainActivity.kt +++ b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/activity/MainActivity.kt @@ -9,6 +9,7 @@ import androidx.appcompat.app.AppCompatDelegate import androidx.core.content.getSystemService import androidx.core.view.GravityCompat import androidx.core.view.doOnLayout +import androidx.drawerlayout.widget.DrawerLayout import androidx.navigation.NavController import androidx.navigation.NavDestination import androidx.navigation.Navigation @@ -77,6 +78,10 @@ class MainActivity : BaseActivity() { return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp() } + fun setDrawerLocked(isLocked: Boolean) { + drawer_layout.setDrawerLockMode(if (isLocked) DrawerLayout.LOCK_MODE_LOCKED_CLOSED else DrawerLayout.LOCK_MODE_UNLOCKED) + } + fun setupNavigation() { // create and setup the navController and appbarConfiguration navController = Navigation.findNavController(this, R.id.nav_host_fragment).also { n -> diff --git a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/fragment/HomeFragment.kt b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/fragment/HomeFragment.kt index 6da0b42..453c3f0 100644 --- a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/fragment/HomeFragment.kt +++ b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/fragment/HomeFragment.kt @@ -29,8 +29,10 @@ import cash.z.android.wallet.ui.presenter.HomePresenter import cash.z.android.wallet.ui.util.AlternatingRowColorDecoration import cash.z.android.wallet.ui.util.TopAlignedSpan import cash.z.android.wallet.vo.WalletTransaction +import cash.z.wallet.sdk.data.ActiveSendTransaction import cash.z.wallet.sdk.data.ActiveTransaction import cash.z.wallet.sdk.data.TransactionState +import cash.z.wallet.sdk.ext.toZec import com.leinardi.android.speeddial.SpeedDialActionItem import dagger.Module import dagger.android.ContributesAndroidInjector @@ -68,7 +70,7 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView { private fun setupSharedElementTransitions() { val enterTransitionSet = TransitionInflater.from(mainActivity).inflateTransition(R.transition.transition_zec_sent).apply { - duration = 300L + duration = 3000L }.addListener(HomeTransitionListener()) this.sharedElementEnterTransition = enterTransitionSet @@ -106,22 +108,24 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView { onCancelActiveTransaction() } - refresh_layout.setOnRefreshListener { - val fauxRefresh = Random.nextLong(750L..3000L) - refresh_layout.postDelayed({ - refresh_layout.isRefreshing = false - }, fauxRefresh) +// refresh_layout.setOnRefreshListener { +// val fauxRefresh = Random.nextLong(750L..3000L) +// refresh_layout.postDelayed({ +// refresh_layout.isRefreshing = false +// }, fauxRefresh) +// } + + launch { + setFirstRunShown(mainActivity.synchronizer.isFirstRun()) } - if (mainActivity.synchronizer.processor.dataDbExists) { - container_first_run.visibility = View.GONE - mainActivity.findViewById(R.id.drawer_layout).setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED) - sd_fab.visibility = View.VISIBLE - } else { - container_first_run.visibility = View.VISIBLE - mainActivity.findViewById(R.id.drawer_layout).setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED) - sd_fab.visibility = View.GONE - } +// refresh_layout.setProgressViewEndTarget(false, (86f * resources.displayMetrics.density).toInt()) + } + + private fun setFirstRunShown(isShown: Boolean) { + container_first_run?.visibility = if (isShown) View.VISIBLE else View.GONE + mainActivity.setDrawerLocked(isShown) + sd_fab?.visibility = if (!isShown) View.VISIBLE else View.GONE } override fun onResume() { @@ -180,6 +184,7 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView { Log.e("TWIG-t", "submitList called with ${transactions.size} transactions") transactionAdapter.submitList(transactions) recycler_transactions.smoothScrollToPosition(0) + if (transactions.isNotEmpty()) setFirstRunShown(false) } var snackbar: Snackbar? = null @@ -202,12 +207,6 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView { snackbar?.setText(message) if(progress == 100 && snackbar?.isShownOrQueued != true) snackbar?.show() } - - if (progress >= 100) { - container_first_run.visibility = View.GONE - mainActivity.findViewById(R.id.drawer_layout).setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED) - sd_fab.visibility = View.VISIBLE - } } override fun setActiveTransactions(activeTransactionMap: Map) { @@ -229,13 +228,13 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView { var subtitle = "Processing..." when (transactionState) { TransactionState.Creating -> { - title = "Preparing ${transaction.value} ZEC" - subtitle = "to ********" + title = "Preparing ${transaction.value.toZec(2)} ZEC" + subtitle = "to ${(transaction as ActiveSendTransaction).toAddress}" button_active_transaction_cancel.text = "cancel" } TransactionState.SendingToNetwork -> { title = "Sending Transaction" - subtitle = "to ********" + subtitle = "to ${(transaction as ActiveSendTransaction).toAddress}" button_active_transaction_cancel.text = "${transaction.value/1000L}" } is TransactionState.Failure -> { @@ -336,11 +335,12 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView { if (situationHasChanged) { Log.e("TWIG-t", "The situation has changed! toggling views!") toggleViews(isEmpty) + if (!isEmpty) setFirstRunShown(false) } } private fun onActiveTransactionTransitionStart() { - + button_active_transaction_cancel.visibility = View.INVISIBLE } private fun onActiveTransactionTransitionEnd() { @@ -348,6 +348,7 @@ class HomeFragment : BaseFragment(), HomePresenter.HomeView { header_active_transaction.translationZ = 10.0f button_active_transaction_cancel.apply { postDelayed({text = "cancel"}, 50L) + visibility = View.VISIBLE } } diff --git a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/presenter/HomePresenter.kt b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/presenter/HomePresenter.kt index 1bb11f8..7d5d185 100644 --- a/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/presenter/HomePresenter.kt +++ b/zcash-android-wallet-app/app/src/main/java/cash/z/android/wallet/ui/presenter/HomePresenter.kt @@ -102,13 +102,6 @@ class HomePresenter( private fun bind(progress: Int) = onMain { view.showProgress(progress) - if (progress == 100) { - launch { - // TODO: remove this behavior and pull it down into the synchronizer - Log.e("@TWIG-t", "triggering manual scan!") - synchronizer.processor.scanBlocks() - } - } } private fun bind(activeTransactionMap: Map) = onMain { diff --git a/zcash-android-wallet-app/app/src/main/res/layout/activity_main_first_run.xml b/zcash-android-wallet-app/app/src/main/res/layout/activity_main_first_run.xml index 5a0bd01..8f84208 100644 --- a/zcash-android-wallet-app/app/src/main/res/layout/activity_main_first_run.xml +++ b/zcash-android-wallet-app/app/src/main/res/layout/activity_main_first_run.xml @@ -18,17 +18,20 @@ android:id="@+id/container_first_run" android:layout_width="match_parent" android:layout_height="match_parent" - android:visibility="gone" - android:background="#81CAFF"> + android:background="#81CAFF" + android:clickable="true" + android:focusableInTouchMode="true" + android:visibility="gone"> + app:layout_constraintTop_toTopOf="parent"> + + + + \ No newline at end of file diff --git a/zcash-android-wallet-app/app/src/main/res/layout/include_home_content.xml b/zcash-android-wallet-app/app/src/main/res/layout/include_home_content.xml index 97c741c..c1e22b5 100644 --- a/zcash-android-wallet-app/app/src/main/res/layout/include_home_content.xml +++ b/zcash-android-wallet-app/app/src/main/res/layout/include_home_content.xml @@ -9,10 +9,10 @@ android:fillViewport="true" app:layout_behavior="@string/appbar_scrolling_view_behavior"> - + + + + - + \ No newline at end of file