From 595d88e42ebaecad17b3671ce9c9506b11b211e2 Mon Sep 17 00:00:00 2001 From: m2049r <30435443+m2049r@users.noreply.github.com> Date: Mon, 15 Jan 2018 23:31:14 +0100 Subject: [PATCH] fixes & touchups (#178) --- .../com/m2049r/xmrwallet/LoginFragment.java | 62 +++++++++++++++---- .../com/m2049r/xmrwallet/WalletActivity.java | 13 +++- .../xmrwallet/fragment/send/SendFragment.java | 49 +++++++++++++++ .../layout/TransactionInfoAdapter.java | 14 ++--- app/src/main/res/layout/fragment_generate.xml | 8 +-- app/src/main/res/layout/fragment_login.xml | 30 +++++++++ app/src/main/res/layout/fragment_send.xml | 31 ++++++++++ app/src/main/res/layout/item_transaction.xml | 49 ++++++++------- app/src/main/res/values-es/help.xml | 54 ++++++++++++++++ app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values/colors.xml | 5 +- app/src/main/res/values/help.xml | 31 ++++++++++ app/src/main/res/values/strings.xml | 4 +- 13 files changed, 301 insertions(+), 51 deletions(-) diff --git a/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java b/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java index 60ad6a2..5854096 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java @@ -43,6 +43,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; +import com.m2049r.xmrwallet.dialog.HelpFragment; import com.m2049r.xmrwallet.layout.WalletInfoAdapter; import com.m2049r.xmrwallet.model.WalletManager; import com.m2049r.xmrwallet.util.Helper; @@ -61,15 +62,18 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter private WalletInfoAdapter adapter; - List walletList = new ArrayList<>(); - List displayedList = new ArrayList<>(); + private List walletList = new ArrayList<>(); + private List displayedList = new ArrayList<>(); - EditText etDummy; - ImageView ivGunther; - DropDownEditText etDaemonAddress; - ArrayAdapter nodeAdapter; + private EditText etDummy; + private ImageView ivGunther; + private DropDownEditText etDaemonAddress; + private ArrayAdapter nodeAdapter; - Listener activityCallback; + private View llXmrToEnabled; + private View ibXmrToInfoClose; + + private Listener activityCallback; // Container Activity must implement this interface public interface Listener { @@ -165,6 +169,25 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter recyclerView.setAdapter(adapter); etDummy = (EditText) view.findViewById(R.id.etDummy); + + llXmrToEnabled = view.findViewById(R.id.llXmrToEnabled); + llXmrToEnabled.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + HelpFragment.display(getChildFragmentManager(), R.string.help_xmrto); + + } + }); + ibXmrToInfoClose = view.findViewById(R.id.ibXmrToInfoClose); + ibXmrToInfoClose.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + llXmrToEnabled.setVisibility(View.GONE); + showXmrtoEnabled = false; + saveXmrToPrefs(); + } + }); + etDaemonAddress = (DropDownEditText) view.findViewById(R.id.etDaemonAddress); nodeAdapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_dropdown_item_1line); etDaemonAddress.setAdapter(nodeAdapter); @@ -211,6 +234,9 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter }); loadPrefs(); + if (!showXmrtoEnabled) { + llXmrToEnabled.setVisibility(View.GONE); + } return view; } @@ -290,9 +316,8 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter activityCallback.onWalletDetails(name, isTestnet()); } - private boolean showReceive(@NonNull String name) { + private void showReceive(@NonNull String name) { activityCallback.onWalletReceive(name, isTestnet()); - return true; } @Override @@ -336,6 +361,7 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter private static final String PREF_DAEMON_TESTNET = "daemon_testnet"; private static final String PREF_DAEMON_MAINNET = "daemon_mainnet"; + private static final String PREF_SHOW_XMRTO_ENABLED = "info_xmrto_enabled_login"; private static final String PREF_DAEMONLIST_MAINNET = "node.moneroworld.com:18089;node.xmrbackb.one;node.xmr.be"; @@ -346,22 +372,33 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter private NodeList daemonTestNet; private NodeList daemonMainNet; + boolean showXmrtoEnabled = true; + void loadPrefs() { SharedPreferences sharedPref = activityCallback.getPrefs(); daemonMainNet = new NodeList(sharedPref.getString(PREF_DAEMON_MAINNET, PREF_DAEMONLIST_MAINNET)); daemonTestNet = new NodeList(sharedPref.getString(PREF_DAEMON_TESTNET, PREF_DAEMONLIST_TESTNET)); setNet(isTestnet(), false); + + showXmrtoEnabled = sharedPref.getBoolean(PREF_SHOW_XMRTO_ENABLED, true); + } + + void saveXmrToPrefs() { + SharedPreferences sharedPref = activityCallback.getPrefs(); + SharedPreferences.Editor editor = sharedPref.edit(); + editor.putBoolean(PREF_SHOW_XMRTO_ENABLED, showXmrtoEnabled); + editor.apply(); } void savePrefs() { savePrefs(false); } - void savePrefs(boolean usePreviousState) { - Timber.d("SAVE / %s", usePreviousState); + void savePrefs(boolean usePreviousTestnetState) { + Timber.d("SAVE / %s", usePreviousTestnetState); // save the daemon address for the net - boolean testnet = isTestnet() ^ usePreviousState; + boolean testnet = isTestnet() ^ usePreviousTestnetState; String daemon = getDaemon(); if (testnet) { daemonTestNet.setRecent(daemon); @@ -373,6 +410,7 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter SharedPreferences.Editor editor = sharedPref.edit(); editor.putString(PREF_DAEMON_MAINNET, daemonMainNet.toString()); editor.putString(PREF_DAEMON_TESTNET, daemonTestNet.toString()); + editor.putBoolean(PREF_SHOW_XMRTO_ENABLED, showXmrtoEnabled); editor.apply(); } diff --git a/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java b/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java index ef0f791..cdefe01 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java +++ b/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java @@ -22,6 +22,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.ServiceConnection; +import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.os.Bundle; import android.os.IBinder; @@ -140,6 +141,9 @@ public class WalletActivity extends SecureActivity implements WalletFragment.Lis @Override protected void onDestroy() { Timber.d("onDestroy()"); + if (!isSynced()) { + saveWallet(); + } stopWalletService(); super.onDestroy(); } @@ -807,9 +811,6 @@ public class WalletActivity extends SecureActivity implements WalletFragment.Lis super.onBackPressed(); } } else { - if (!isSynced()) { - saveWallet(); - } super.onBackPressed(); } } @@ -818,4 +819,10 @@ public class WalletActivity extends SecureActivity implements WalletFragment.Lis public void onFragmentDone() { popFragmentStack(null); } + + @Override + public SharedPreferences getPrefs() { + return getPreferences(Context.MODE_PRIVATE); + } + } diff --git a/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendFragment.java b/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendFragment.java index 2146eb6..c5e61e2 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendFragment.java @@ -17,6 +17,7 @@ package com.m2049r.xmrwallet.fragment.send; import android.content.Context; +import android.content.SharedPreferences; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.annotation.Nullable; @@ -41,9 +42,11 @@ import com.m2049r.xmrwallet.data.BarcodeData; import com.m2049r.xmrwallet.data.PendingTx; import com.m2049r.xmrwallet.data.TxData; import com.m2049r.xmrwallet.data.TxDataBtc; +import com.m2049r.xmrwallet.dialog.HelpFragment; import com.m2049r.xmrwallet.layout.SpendViewPager; import com.m2049r.xmrwallet.model.PendingTransaction; import com.m2049r.xmrwallet.util.Helper; +import com.m2049r.xmrwallet.util.NodeList; import com.m2049r.xmrwallet.util.UserNotes; import com.m2049r.xmrwallet.widget.DotBar; import com.m2049r.xmrwallet.widget.Toolbar; @@ -63,6 +66,8 @@ public class SendFragment extends Fragment private Listener activityCallback; public interface Listener { + SharedPreferences getPrefs(); + long getTotalFunds(); void onPrepareSend(String tag, TxData data); @@ -93,6 +98,10 @@ public class SendFragment extends Fragment private Button bDone; + private View llXmrToEnabled; + private View ibXmrToInfoClose; + + static private int MAX_FALLBACK = Integer.MAX_VALUE; @Override @@ -110,6 +119,28 @@ public class SendFragment extends Fragment arrowPrev = getResources().getDrawable(R.drawable.ic_navigate_prev_white_24dp); arrowNext = getResources().getDrawable(R.drawable.ic_navigate_next_white_24dp); + llXmrToEnabled = view.findViewById(R.id.llXmrToEnabled); + llXmrToEnabled.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + HelpFragment.display(getChildFragmentManager(), R.string.help_xmrto); + + } + }); + ibXmrToInfoClose = view.findViewById(R.id.ibXmrToInfoClose); + ibXmrToInfoClose.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + llXmrToEnabled.setVisibility(View.GONE); + showXmrtoEnabled = false; + saveXmrToPrefs(); + } + }); + loadPrefs(); + if (!showXmrtoEnabled) { + llXmrToEnabled.setVisibility(View.GONE); + } + spendViewPager = (SpendViewPager) view.findViewById(R.id.pager); pagerAdapter = new SpendPagerAdapter(getChildFragmentManager()); spendViewPager.setOffscreenPageLimit(pagerAdapter.getCount()); // load & keep all pages in cache @@ -518,4 +549,22 @@ public class SendFragment extends Fragment inflater.inflate(R.menu.send_menu, menu); super.onCreateOptionsMenu(menu, inflater); } + + // xmr.to info box + private static final String PREF_SHOW_XMRTO_ENABLED = "info_xmrto_enabled_send"; + + boolean showXmrtoEnabled = true; + + void loadPrefs() { + SharedPreferences sharedPref = activityCallback.getPrefs(); + showXmrtoEnabled = sharedPref.getBoolean(PREF_SHOW_XMRTO_ENABLED, true); + } + + void saveXmrToPrefs() { + SharedPreferences sharedPref = activityCallback.getPrefs(); + SharedPreferences.Editor editor = sharedPref.edit(); + editor.putBoolean(PREF_SHOW_XMRTO_ENABLED, showXmrtoEnabled); + editor.apply(); + } + } diff --git a/app/src/main/java/com/m2049r/xmrwallet/layout/TransactionInfoAdapter.java b/app/src/main/java/com/m2049r/xmrwallet/layout/TransactionInfoAdapter.java index b44d84d..c0f0bdf 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/layout/TransactionInfoAdapter.java +++ b/app/src/main/java/com/m2049r/xmrwallet/layout/TransactionInfoAdapter.java @@ -130,6 +130,13 @@ public class TransactionInfoAdapter extends RecyclerView.Adapter + android:textAlignment="textStart" /> + android:textAlignment="textStart" /> + android:textAlignment="textStart" /> + android:textAlignment="textStart" />