Browse Source

Street Mode

pull/15/head
fekt 1 year ago
parent
commit
9a6c809b09
  1. 1
      app/src/main/java/cash/z/ecc/android/ext/Const.kt
  2. 10
      app/src/main/java/cash/z/ecc/android/ui/home/HomeFragment.kt
  3. 7
      app/src/main/java/cash/z/ecc/android/ui/scan/ScanFragment.kt
  4. 24
      app/src/main/java/cash/z/ecc/android/ui/settings/SettingsFragment.kt
  5. 1
      app/src/main/java/cash/z/ecc/android/ui/settings/SettingsViewModel.kt
  6. 49
      app/src/main/res/layout/fragment_settings.xml

1
app/src/main/java/cash/z/ecc/android/ext/Const.kt

@ -23,6 +23,7 @@ object Const {
const val FEEDBACK_ENABLED = "const.pref.feedback_enabled" const val FEEDBACK_ENABLED = "const.pref.feedback_enabled"
const val SERVER_HOST = "const.pref.server_host" const val SERVER_HOST = "const.pref.server_host"
const val SERVER_PORT = "const.pref.server_port" const val SERVER_PORT = "const.pref.server_port"
const val STREET_MODE = "const.pref.street_mode"
} }
/** /**

10
app/src/main/java/cash/z/ecc/android/ui/home/HomeFragment.kt

@ -15,6 +15,8 @@ import cash.z.ecc.android.R
import cash.z.ecc.android.ZcashWalletApp import cash.z.ecc.android.ZcashWalletApp
import cash.z.ecc.android.databinding.DialogSolicitFeedbackRatingBinding import cash.z.ecc.android.databinding.DialogSolicitFeedbackRatingBinding
import cash.z.ecc.android.databinding.FragmentHomeBinding import cash.z.ecc.android.databinding.FragmentHomeBinding
import cash.z.ecc.android.di.DependenciesHolder
import cash.z.ecc.android.di.DependenciesHolder.lockBox
import cash.z.ecc.android.ext.* import cash.z.ecc.android.ext.*
import cash.z.ecc.android.feedback.Report import cash.z.ecc.android.feedback.Report
import cash.z.ecc.android.feedback.Report.Tap.* import cash.z.ecc.android.feedback.Report.Tap.*
@ -320,6 +322,14 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
else -> getString(R.string.home_instruction_enter_amount) else -> getString(R.string.home_instruction_enter_amount)
} }
} }
// Hide balance and history if Street Mode is enabled
if(lockBox.getBoolean(Const.Pref.STREET_MODE)) {
binding.textBalanceAvailable.visibility = View.INVISIBLE
binding.labelBalance.visibility = View.INVISIBLE
binding.textHistory.visibility = View.INVISIBLE
binding.textSendAmount.isEnabled = false
}
} }
fun setBanner(message: String = "", action: BannerAction = CLEAR) { fun setBanner(message: String = "", action: BannerAction = CLEAR) {

7
app/src/main/java/cash/z/ecc/android/ui/scan/ScanFragment.kt

@ -343,8 +343,13 @@ class ScanFragment : BaseFragment<FragmentScanBinding>() {
} else { /* continue scanning*/ } else { /* continue scanning*/
_fragmentCameraBinding?.textScanError?.text = "" _fragmentCameraBinding?.textScanError?.text = ""
sendViewModel.toAddress = address sendViewModel.toAddress = address
sendViewModel.zatoshiAmount = amt.safelyConvertToBigDecimal().convertZecToZatoshi() if(amt!=null){
sendViewModel.zatoshiAmount =
amt.safelyConvertToBigDecimal().convertZecToZatoshi()
}
if(memo!=null){
sendViewModel.memo = memo sendViewModel.memo = memo
}
mainActivity?.safeNavigate(R.id.action_nav_scan_to_nav_send) mainActivity?.safeNavigate(R.id.action_nav_scan_to_nav_send)
} }
} }

24
app/src/main/java/cash/z/ecc/android/ui/settings/SettingsFragment.kt

@ -2,14 +2,18 @@ package cash.z.ecc.android.ui.settings
import android.content.res.ColorStateList import android.content.res.ColorStateList
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.widget.Toast import android.widget.Toast
import androidx.core.view.ViewCompat.jumpDrawablesToCurrentState
import androidx.core.widget.doAfterTextChanged import androidx.core.widget.doAfterTextChanged
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import cash.z.ecc.android.R import cash.z.ecc.android.R
import cash.z.ecc.android.ZcashWalletApp import cash.z.ecc.android.ZcashWalletApp
import cash.z.ecc.android.databinding.FragmentSettingsBinding import cash.z.ecc.android.databinding.FragmentSettingsBinding
import cash.z.ecc.android.di.DependenciesHolder.lockBox
import cash.z.ecc.android.di.DependenciesHolder.prefs
import cash.z.ecc.android.ext.* import cash.z.ecc.android.ext.*
import cash.z.ecc.android.sdk.exception.LightWalletException import cash.z.ecc.android.sdk.exception.LightWalletException
import cash.z.ecc.android.sdk.ext.collectWith import cash.z.ecc.android.sdk.ext.collectWith
@ -37,6 +41,15 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding>() {
hitAreaExit.onClickNavBack() hitAreaExit.onClickNavBack()
buttonReset.setOnClickListener(::onResetClicked) buttonReset.setOnClickListener(::onResetClicked)
buttonUpdate.setOnClickListener(::onUpdateClicked) buttonUpdate.setOnClickListener(::onUpdateClicked)
streetMode.setOnClickListener(::onStreetModeChecked)
val streetmode = lockBox.getBoolean(Const.Pref.STREET_MODE)
if(streetmode){
streetMode.isChecked = true
}
Log.d("SilentDragon", "streetMode: $streetmode")
buttonUpdate.isActivated = true buttonUpdate.isActivated = true
buttonReset.isActivated = true buttonReset.isActivated = true
inputHost.doAfterTextChanged { inputHost.doAfterTextChanged {
@ -79,6 +92,17 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding>() {
} }
} }
private fun onStreetModeChecked(unused: View?) {
val streetmode = lockBox.getBoolean(Const.Pref.STREET_MODE)
Log.d("SilentDragon", "streetModeChecked! streetmode = $streetmode")
if(streetmode) {
lockBox.setBoolean(Const.Pref.STREET_MODE, false)
}
else{
lockBox.setBoolean(Const.Pref.STREET_MODE, true)
}
}
private fun onUiModelUpdated(uiModel: SettingsViewModel.UiModel) { private fun onUiModelUpdated(uiModel: SettingsViewModel.UiModel) {
twig("onUiModelUpdated:::::$uiModel") twig("onUiModelUpdated:::::$uiModel")
binding.apply { binding.apply {

1
app/src/main/java/cash/z/ecc/android/ui/settings/SettingsViewModel.kt

@ -1,5 +1,6 @@
package cash.z.ecc.android.ui.settings package cash.z.ecc.android.ui.settings
import android.util.Log
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import cash.z.ecc.android.di.DependenciesHolder import cash.z.ecc.android.di.DependenciesHolder
import cash.z.ecc.android.ext.Const import cash.z.ecc.android.ext.Const

49
app/src/main/res/layout/fragment_settings.xml

@ -109,30 +109,56 @@
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<CheckBox
android:id="@+id/streetMode"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="32dp"
android:layout_marginBottom="12dp"
android:checked="false"
android:text="Street Mode (Hides balance and tx list)"
app:layout_constraintBottom_toTopOf="@+id/button_reset"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/text_input_layout_port" />
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/button_reset" android:id="@+id/button_reset"
style="@style/Zcash.Button.OutlinedButton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
style="@style/Zcash.Button.OutlinedButton"
android:text="@string/settings_reset" android:text="@string/settings_reset"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
android:textColor="@color/selector_secondary_button_activatable" android:textColor="@color/selector_secondary_button_activatable"
app:layout_constraintEnd_toStartOf="@id/button_update" app:layout_constraintEnd_toStartOf="@id/button_update"
app:layout_constraintTop_toTopOf="@id/button_update" app:layout_constraintTop_toBottomOf="@+id/streetMode"
app:strokeColor="@color/selector_secondary_button_activatable" /> app:strokeColor="@color/selector_secondary_button_activatable" />
<ProgressBar
android:id="@+id/loading_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="@id/button_reset"
app:layout_constraintStart_toStartOf="@id/icon_exit"
app:layout_constraintTop_toTopOf="@id/button_reset"
app:layout_constraintVertical_bias="0.0" />
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/button_update" android:id="@+id/button_update"
style="@style/Zcash.Button"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="32dp" android:layout_marginTop="12dp"
style="@style/Zcash.Button" android:layout_marginEnd="4dp"
android:backgroundTint="@color/colorPrimary" android:backgroundTint="@color/colorPrimary"
android:text="@string/settings_update" android:text="@string/settings_update"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
app:layout_constraintEnd_toEndOf="@id/text_input_layout_host" app:layout_constraintEnd_toEndOf="@id/text_input_layout_host"
app:layout_constraintTop_toBottomOf="@+id/text_input_layout_port" /> app:layout_constraintTop_toBottomOf="@+id/streetMode" />
<View <View
android:id="@+id/loading_view" android:id="@+id/loading_view"
@ -142,16 +168,9 @@
android:clickable="true" android:clickable="true"
android:elevation="8dp" android:elevation="8dp"
android:focusable="true" android:focusable="true"
android:focusableInTouchMode="true" /> android:focusableInTouchMode="true"
tools:layout_editor_absoluteX="81dp"
<ProgressBar tools:layout_editor_absoluteY="16dp" />
android:id="@+id/loading_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
app:layout_constraintBottom_toBottomOf="@id/button_reset"
app:layout_constraintStart_toStartOf="@id/icon_exit"
app:layout_constraintTop_toTopOf="@id/button_reset" />
<androidx.constraintlayout.widget.Group <androidx.constraintlayout.widget.Group
android:id="@+id/group_loading" android:id="@+id/group_loading"

Loading…
Cancel
Save