diff --git a/.gitmodules b/.gitmodules index b9973416..d8df3607 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,6 @@ [submodule "android-build-logic"] path = android-build-logic url = https://github.com/gruntsoftware/android-build-logic.git +[submodule "modules/bw-gdlib"] + path = modules/bw-gdlib + url = https://github.com/gruntsoftware/bw-gdlib.git diff --git a/app/src/main/java/com/brainwallet/ui/bentosections/balancebento/BalanceBentoScreen.kt b/app/src/main/java/com/brainwallet/ui/bentosections/balancebento/BalanceBentoScreen.kt index 123ad7eb..dbc05bb8 100644 --- a/app/src/main/java/com/brainwallet/ui/bentosections/balancebento/BalanceBentoScreen.kt +++ b/app/src/main/java/com/brainwallet/ui/bentosections/balancebento/BalanceBentoScreen.kt @@ -111,6 +111,7 @@ fun BalanceBentoScreen( val context = LocalContext.current val infiniteTransition = rememberInfiniteTransition() var previousBalance by remember { mutableStateOf(BigDecimal.ZERO) } + val boingAudioPlayer = remember { MediaPlayer.create(context, R.raw.boingspringmouthharp042013) } val throbOpacity by infiniteTransition.animateFloat( initialValue = 0.5f, @@ -180,6 +181,7 @@ fun BalanceBentoScreen( indication = null ) { isSwapped = !isSwapped + boingAudioPlayer.start() AnalyticsManager.logCustomEventWithParams("did_toggle_fiat_ltc", null) } ) { diff --git a/app/src/main/java/com/brainwallet/ui/screens/main/MainScreenState.kt b/app/src/main/java/com/brainwallet/ui/screens/main/MainScreenState.kt index b0f2a49c..3ccdc304 100644 --- a/app/src/main/java/com/brainwallet/ui/screens/main/MainScreenState.kt +++ b/app/src/main/java/com/brainwallet/ui/screens/main/MainScreenState.kt @@ -36,7 +36,7 @@ data class MainScreenState( val selectedCurrency: CurrencyEntity = CurrencyEntity( "USD", "US Dollar", - -1f, + 0f, "$" ), val isInternetReachable: Boolean = true, diff --git a/app/src/main/java/com/brainwallet/ui/screens/main/MainViewModel.kt b/app/src/main/java/com/brainwallet/ui/screens/main/MainViewModel.kt index e0dc6ba0..8d1d092a 100644 --- a/app/src/main/java/com/brainwallet/ui/screens/main/MainViewModel.kt +++ b/app/src/main/java/com/brainwallet/ui/screens/main/MainViewModel.kt @@ -8,6 +8,7 @@ import androidx.lifecycle.viewModelScope import com.brainwallet.R import com.brainwallet.constants.BWConstants import com.brainwallet.data.model.AppSetting +import com.brainwallet.data.model.CurrencyEntity import com.brainwallet.data.model.GlobalCurrency import com.brainwallet.data.model.GlobalCurrency.entries import com.brainwallet.data.repository.ConnectivityRepository @@ -25,7 +26,6 @@ import com.brainwallet.util.CurrencyDataGetter import com.brainwallet.util.VersionCodeProvider import com.brainwallet.wallet.BRPeerManager import com.brainwallet.wallet.BRWalletManager -import com.google.firebase.crashlytics.FirebaseCrashlytics import kotlinx.collections.immutable.toImmutableList import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers @@ -97,18 +97,23 @@ class MainViewModel( viewModelScope.launch { ltcRepository.rates .combine(appSetting) { currencies, setting -> - currencies.firstOrNull { it.code == setting.currency.code } + currencies.firstOrNull { + it.code == setting.currency.code && it.symbol == setting.currency.symbol + } } .filterNotNull() .collect { selectedCurrency -> - val msg = String.format("selectedCurrency — Name: %s", selectedCurrency.name) - Timber.d("ISO: %s", msg) - FirebaseCrashlytics.getInstance().log(msg) _state.update { it.copy( fiatSymbol = selectedCurrency.symbol, fiatiSOCode = selectedCurrency.code, fiatRate = BigDecimal(selectedCurrency.rate.toDouble()), + selectedCurrency = CurrencyEntity( + code = selectedCurrency.code, + name = selectedCurrency.name, + rate = selectedCurrency.rate, + symbol = selectedCurrency.symbol, + ), ) } } @@ -180,12 +185,16 @@ class MainViewModel( } if (isWalletCreated()) { addObservers() - val balance = BigDecimal(BRSharedPrefs.getCachedBalance(app).toDouble()) + val balance = BRSharedPrefs.getCachedBalance(app) _state.update { it.copy( - ltcBalance = balance, - litoshiBalance = balance - .divide(BigDecimal(ONE_LITECOIN_OF_LITOSHIS)), + ltcBalance = BigDecimal(balance), + litoshiBalance = BigDecimal(balance) + .divide( + BigDecimal(ONE_LITECOIN_OF_LITOSHIS), + 8, + BWConstants.ROUNDING_MODE + ) ) } txRepository.refresh() @@ -219,9 +228,13 @@ class MainViewModel( override fun onBalanceChanged(balance: Long) { _state.update { it.copy( - ltcBalance = BigDecimal(balance.toDouble()), - litoshiBalance = BigDecimal(balance.toDouble()) - .divide(BigDecimal(ONE_LITECOIN_OF_LITOSHIS)), + ltcBalance = BigDecimal(balance), + litoshiBalance = BigDecimal(balance) + .divide( + BigDecimal(ONE_LITECOIN_OF_LITOSHIS), + 8, + BWConstants.ROUNDING_MODE + ), ) } viewModelScope.launch(Dispatchers.IO) { diff --git a/app/src/main/jni/core b/app/src/main/jni/core index fcbf4ae6..4c903166 160000 --- a/app/src/main/jni/core +++ b/app/src/main/jni/core @@ -1 +1 @@ -Subproject commit fcbf4ae60b770463a2a4c2d8b585cb3b498f25c0 +Subproject commit 4c90316690ce613482649ccd8b07583749a72266 diff --git a/app/src/main/res/raw/boingspringmouthharp042013.mp3 b/app/src/main/res/raw/boingspringmouthharp042013.mp3 new file mode 100644 index 00000000..1f75f9a1 Binary files /dev/null and b/app/src/main/res/raw/boingspringmouthharp042013.mp3 differ diff --git a/modules/bw-gdlib b/modules/bw-gdlib new file mode 160000 index 00000000..f3e537be --- /dev/null +++ b/modules/bw-gdlib @@ -0,0 +1 @@ +Subproject commit f3e537be2877ece407e41771ac73215b57fad935