From 4059e28d3fc32268325440e10ceb6928b4922cc8 Mon Sep 17 00:00:00 2001 From: pokkst Date: Sat, 3 Dec 2022 14:11:14 -0600 Subject: [PATCH] Add option to hide Monerochan --- .../wallet/fragment/home/HomeFragment.java | 15 ++++++++++++ .../fragment/settings/SettingsFragment.java | 8 +++++++ .../mynero/wallet/service/PrefService.java | 3 ++- .../net/mynero/wallet/util/Constants.java | 1 + app/src/main/res/layout/fragment_home.xml | 14 +++++++++-- app/src/main/res/layout/fragment_settings.xml | 23 ++++++++++++++++++- app/src/main/res/values/strings.xml | 1 + 7 files changed, 61 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/net/mynero/wallet/fragment/home/HomeFragment.java b/app/src/main/java/net/mynero/wallet/fragment/home/HomeFragment.java index 838b422..ecf8379 100644 --- a/app/src/main/java/net/mynero/wallet/fragment/home/HomeFragment.java +++ b/app/src/main/java/net/mynero/wallet/fragment/home/HomeFragment.java @@ -31,6 +31,7 @@ import net.mynero.wallet.model.WalletManager; import net.mynero.wallet.service.BalanceService; import net.mynero.wallet.service.BlockchainService; import net.mynero.wallet.service.HistoryService; +import net.mynero.wallet.service.PrefService; import net.mynero.wallet.util.Constants; import java.util.Collections; @@ -133,6 +134,7 @@ public class HomeFragment extends Fragment implements TransactionInfoAdapter.TxI if (history.isEmpty()) { txHistoryRecyclerView.setVisibility(View.GONE); noHistoryLayout.setVisibility(View.VISIBLE); + displayEmptyHistory(view); } else { Collections.sort(history); if (history.size() > 100) { @@ -164,4 +166,17 @@ public class HomeFragment extends Fragment implements TransactionInfoAdapter.TxI } } } + + private void displayEmptyHistory(View view) { + boolean displayMonerochan = PrefService.getInstance().getBoolean(Constants.PREF_MONEROCHAN, true); + if(displayMonerochan) { + view.findViewById(R.id.monerochan_imageview).setVisibility(View.VISIBLE); + view.findViewById(R.id.monerochan_empty_tx_textview).setVisibility(View.VISIBLE); + view.findViewById(R.id.empty_tx_textview).setVisibility(View.GONE); + } else { + view.findViewById(R.id.monerochan_imageview).setVisibility(View.GONE); + view.findViewById(R.id.monerochan_empty_tx_textview).setVisibility(View.GONE); + view.findViewById(R.id.empty_tx_textview).setVisibility(View.VISIBLE); + } + } } \ No newline at end of file diff --git a/app/src/main/java/net/mynero/wallet/fragment/settings/SettingsFragment.java b/app/src/main/java/net/mynero/wallet/fragment/settings/SettingsFragment.java index 172e765..81380b6 100644 --- a/app/src/main/java/net/mynero/wallet/fragment/settings/SettingsFragment.java +++ b/app/src/main/java/net/mynero/wallet/fragment/settings/SettingsFragment.java @@ -35,6 +35,7 @@ import net.mynero.wallet.model.Wallet; import net.mynero.wallet.model.WalletManager; import net.mynero.wallet.service.BalanceService; import net.mynero.wallet.service.BlockchainService; +import net.mynero.wallet.service.HistoryService; import net.mynero.wallet.service.PrefService; import net.mynero.wallet.util.Constants; import net.mynero.wallet.util.DayNightMode; @@ -99,6 +100,7 @@ public class SettingsFragment extends Fragment implements PasswordBottomSheetDia selectNodeButton = view.findViewById(R.id.select_node_button); SwitchCompat nightModeSwitch = view.findViewById(R.id.day_night_switch); SwitchCompat streetModeSwitch = view.findViewById(R.id.street_mode_switch); + SwitchCompat monerochanSwitch = view.findViewById(R.id.monerochan_switch); SwitchCompat torSwitch = view.findViewById(R.id.tor_switch); ConstraintLayout proxySettingsLayout = view.findViewById(R.id.wallet_proxy_settings_layout); walletProxyAddressEditText = view.findViewById(R.id.wallet_proxy_address_edittext); @@ -119,6 +121,12 @@ public class SettingsFragment extends Fragment implements PasswordBottomSheetDia BalanceService.getInstance().refreshBalance(); }); + monerochanSwitch.setChecked(PrefService.getInstance().getBoolean(Constants.PREF_MONEROCHAN, true)); + monerochanSwitch.setOnCheckedChangeListener((compoundButton, b) -> { + PrefService.getInstance().edit().putBoolean(Constants.PREF_MONEROCHAN, b).apply(); + HistoryService.getInstance().refreshHistory(); + }); + boolean usesProxy = PrefService.getInstance().getBoolean(Constants.PREF_USES_TOR, false); String proxy = PrefService.getInstance().getString(Constants.PREF_PROXY, ""); if (proxy.contains(":")) { diff --git a/app/src/main/java/net/mynero/wallet/service/PrefService.java b/app/src/main/java/net/mynero/wallet/service/PrefService.java index b66d34c..e865c50 100644 --- a/app/src/main/java/net/mynero/wallet/service/PrefService.java +++ b/app/src/main/java/net/mynero/wallet/service/PrefService.java @@ -98,8 +98,9 @@ public class PrefService extends ServiceBase { } public boolean getBoolean(String key, boolean defaultValue) { + boolean containsKey = preferences.contains(key); boolean value = preferences.getBoolean(key, false); - if(!value && defaultValue) { + if(!value && defaultValue && !containsKey) { edit().putBoolean(key, true).apply(); return true; } diff --git a/app/src/main/java/net/mynero/wallet/util/Constants.java b/app/src/main/java/net/mynero/wallet/util/Constants.java index 864f263..939f956 100644 --- a/app/src/main/java/net/mynero/wallet/util/Constants.java +++ b/app/src/main/java/net/mynero/wallet/util/Constants.java @@ -11,6 +11,7 @@ public class Constants { public static final String PREF_CUSTOM_NODES = "pref_custom_nodes"; public static final String PREF_USES_OFFSET = "pref_uses_offset"; public static final String PREF_STREET_MODE = "pref_street_mode"; + public static final String PREF_MONEROCHAN = "pref_monerochan"; public static final String URI_PREFIX = "monero:"; public static final String URI_ARG_AMOUNT = "tx_amount"; diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 9cbb04b..10240cb 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -72,9 +72,9 @@ android:src="@drawable/xmrchan_png" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintEnd_toStartOf="@id/empty_tx_textview"/> + app:layout_constraintEnd_toStartOf="@id/monerochan_empty_tx_textview"/> + + + + + + app:layout_constraintTop_toBottomOf="@id/monerochan_switch" />