From 5a7aa6cc77b32a407bcdac940978f6230c2a5527 Mon Sep 17 00:00:00 2001 From: m2049r Date: Fri, 25 May 2018 18:19:29 +0200 Subject: [PATCH] testnet => stagenet (#288) --- app/src/main/cpp/monerujo.cpp | 2 - .../xmrwallet/GenerateReviewFragment.java | 8 +-- .../com/m2049r/xmrwallet/LoginActivity.java | 4 +- .../com/m2049r/xmrwallet/LoginFragment.java | 52 ++++++++----------- .../send/SendAddressWizardFragment.java | 2 +- .../send/SendBtcAmountWizardFragment.java | 2 +- .../com/m2049r/xmrwallet/model/Wallet.java | 2 - .../m2049r/xmrwallet/model/WalletManager.java | 5 +- app/src/main/res/menu/list_menu.xml | 4 +- app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values-es/strings.xml | 1 - app/src/main/res/values-fr/strings.xml | 1 - app/src/main/res/values-it/strings.xml | 1 - app/src/main/res/values-nb/strings.xml | 1 - app/src/main/res/values-zh-rCN/strings.xml | 1 - app/src/main/res/values-zh-rTW/strings.xml | 1 - app/src/main/res/values/strings.xml | 2 +- .../util/BitcoinAddressValidatorTest.java | 1 + 18 files changed, 35 insertions(+), 56 deletions(-) diff --git a/app/src/main/cpp/monerujo.cpp b/app/src/main/cpp/monerujo.cpp index a7adbb8..164876e 100644 --- a/app/src/main/cpp/monerujo.cpp +++ b/app/src/main/cpp/monerujo.cpp @@ -757,8 +757,6 @@ Java_com_m2049r_xmrwallet_model_Wallet_isAddressValid(JNIEnv *env, jobject clazz return static_cast(isValid); } -//TODO static static bool keyValid(const std::string &secret_key_string, const std::string &address_string, bool isViewKey, bool testnet, std::string &error); - JNIEXPORT jstring JNICALL Java_com_m2049r_xmrwallet_model_Wallet_getPaymentIdFromAddress(JNIEnv *env, jobject clazz, jstring address, diff --git a/app/src/main/java/com/m2049r/xmrwallet/GenerateReviewFragment.java b/app/src/main/java/com/m2049r/xmrwallet/GenerateReviewFragment.java index aff2226..6f44246 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/GenerateReviewFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/GenerateReviewFragment.java @@ -102,10 +102,10 @@ public class GenerateReviewFragment extends Fragment { bAccept = (Button) view.findViewById(R.id.bAccept); - boolean testnet = WalletManager.getInstance().getNetworkType() != NetworkType.NetworkType_Mainnet; - tvWalletMnemonic.setTextIsSelectable(testnet); - tvWalletSpendKey.setTextIsSelectable(testnet); - tvWalletPassword.setTextIsSelectable(testnet); + boolean allowCopy = WalletManager.getInstance().getNetworkType() != NetworkType.NetworkType_Mainnet; + tvWalletMnemonic.setTextIsSelectable(allowCopy); + tvWalletSpendKey.setTextIsSelectable(allowCopy); + tvWalletPassword.setTextIsSelectable(allowCopy); bAccept.setOnClickListener(new View.OnClickListener() { @Override diff --git a/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java b/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java index 39d7ce7..eeeb18e 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java +++ b/app/src/main/java/com/m2049r/xmrwallet/LoginActivity.java @@ -1007,11 +1007,11 @@ public class LoginActivity extends SecureActivity case R.id.action_privacy_policy: PrivacyFragment.display(getSupportFragmentManager()); return true; - case R.id.action_testnet: + case R.id.action_stagenet: try { LoginFragment loginFragment = (LoginFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_container); - item.setChecked(loginFragment.onTestnetMenuItem()); + item.setChecked(loginFragment.onStagenetMenuItem()); } catch (ClassCastException ex) { // never mind then } diff --git a/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java b/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java index 881e8e3..aeb9909 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/LoginFragment.java @@ -18,15 +18,12 @@ package com.m2049r.xmrwallet; import android.content.Context; import android.content.SharedPreferences; -import android.content.res.ColorStateList; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.design.widget.FloatingActionButton; import android.support.v4.app.Fragment; -import android.support.v4.content.ContextCompat; import android.support.v7.widget.RecyclerView; -import android.view.Gravity; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; @@ -41,14 +38,11 @@ import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.FrameLayout; -import android.widget.ImageButton; import android.widget.ImageView; -import android.widget.LinearLayout; 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.NetworkType; import com.m2049r.xmrwallet.model.WalletManager; @@ -343,69 +337,65 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.list_menu, menu); - menu.findItem(R.id.action_testnet).setChecked(testnetCheckMenu); + menu.findItem(R.id.action_stagenet).setChecked(stagenetCheckMenu); super.onCreateOptionsMenu(menu, inflater); } - private boolean testnetCheckMenu = BuildConfig.DEBUG; + private boolean stagenetCheckMenu = BuildConfig.DEBUG; - //boolean isTestnet() { - // return testnet; - //} - - public boolean onTestnetMenuItem() { - boolean lastState = testnetCheckMenu; + public boolean onStagenetMenuItem() { + boolean lastState = stagenetCheckMenu; setNet(!lastState, true); // set and save return !lastState; } - public void setNet(boolean testnetChecked, boolean save) { - this.testnetCheckMenu = testnetChecked; - NetworkType net = testnetChecked ? NetworkType.NetworkType_Testnet : NetworkType.NetworkType_Mainnet; + public void setNet(boolean stagenetChecked, boolean save) { + this.stagenetCheckMenu = stagenetChecked; + NetworkType net = stagenetChecked ? NetworkType.NetworkType_Stagenet : NetworkType.NetworkType_Mainnet; activityCallback.setNetworkType(net); activityCallback.showNet(); if (save) { savePrefs(true); // use previous state as we just clicked it } - if (testnetChecked) { - setDaemon(daemonTestNet); + if (stagenetChecked) { + setDaemon(daemonStageNet); } else { setDaemon(daemonMainNet); } loadList(); } - private static final String PREF_DAEMON_TESTNET = "daemon_testnet"; + private static final String PREF_DAEMON_STAGENET = "daemon_stagenet"; private static final String PREF_DAEMON_MAINNET = "daemon_mainnet"; private static final String PREF_DAEMONLIST_MAINNET = "node.moneroworld.com:18089;node.xmrbackb.one;node.xmr.be"; - private static final String PREF_DAEMONLIST_TESTNET = - "testnet.xmrchain.net"; + private static final String PREF_DAEMONLIST_STAGENET = + "stagenet.xmr-tw.org"; - private NodeList daemonTestNet; + private NodeList daemonStageNet; private NodeList daemonMainNet; 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(testnetCheckMenu, false); + daemonStageNet = new NodeList(sharedPref.getString(PREF_DAEMON_STAGENET, PREF_DAEMONLIST_STAGENET)); + setNet(stagenetCheckMenu, false); } void savePrefs() { savePrefs(false); } - void savePrefs(boolean usePreviousTestnetState) { - Timber.d("SAVE / %s", usePreviousTestnetState); + void savePrefs(boolean usePreviousNetState) { + Timber.d("SAVE / %s", usePreviousNetState); // save the daemon address for the net - boolean testnet = testnetCheckMenu ^ usePreviousTestnetState; + boolean stagenet = stagenetCheckMenu ^ usePreviousNetState; String daemon = getDaemon(); - if (testnet) { - daemonTestNet.setRecent(daemon); + if (stagenet) { + daemonStageNet.setRecent(daemon); } else { daemonMainNet.setRecent(daemon); } @@ -413,7 +403,7 @@ public class LoginFragment extends Fragment implements WalletInfoAdapter.OnInter SharedPreferences sharedPref = activityCallback.getPrefs(); SharedPreferences.Editor editor = sharedPref.edit(); editor.putString(PREF_DAEMON_MAINNET, daemonMainNet.toString()); - editor.putString(PREF_DAEMON_TESTNET, daemonTestNet.toString()); + editor.putString(PREF_DAEMON_STAGENET, daemonStageNet.toString()); editor.apply(); } diff --git a/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendAddressWizardFragment.java b/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendAddressWizardFragment.java index 984eb11..e1db43b 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendAddressWizardFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendAddressWizardFragment.java @@ -233,7 +233,7 @@ public class SendAddressWizardFragment extends SendWizardFragment { private boolean isBitcoinAddress() { String address = etAddress.getEditText().getText().toString(); - if ((address.length() >= 27) && (address.length() <= 34)) + if ((address.length() >= 27) && (address.length() <= 35)) return BitcoinAddressValidator.validate(address); else return false; diff --git a/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendBtcAmountWizardFragment.java b/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendBtcAmountWizardFragment.java index 88fe821..bee7808 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendBtcAmountWizardFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/fragment/send/SendBtcAmountWizardFragment.java @@ -247,7 +247,7 @@ public class SendBtcAmountWizardFragment extends SendWizardFragment { private XmrToApi xmrToApi = null; - private final XmrToApi getXmrToApi() { + private XmrToApi getXmrToApi() { if (xmrToApi == null) { synchronized (this) { if (xmrToApi == null) { diff --git a/app/src/main/java/com/m2049r/xmrwallet/model/Wallet.java b/app/src/main/java/com/m2049r/xmrwallet/model/Wallet.java index 02e7b84..69cb27c 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/model/Wallet.java +++ b/app/src/main/java/com/m2049r/xmrwallet/model/Wallet.java @@ -164,8 +164,6 @@ public class Wallet { public static native boolean isAddressValid(String address, int networkType); -//TODO static static bool keyValid(const std::string &secret_key_string, const std::string &address_string, bool isViewKey, bool testnet, std::string &error); - public static native String getPaymentIdFromAddress(String address, int networkType); public static native long getMaximumAllowedAmount(); diff --git a/app/src/main/java/com/m2049r/xmrwallet/model/WalletManager.java b/app/src/main/java/com/m2049r/xmrwallet/model/WalletManager.java index 5bd6a68..b0a535e 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/model/WalletManager.java +++ b/app/src/main/java/com/m2049r/xmrwallet/model/WalletManager.java @@ -228,7 +228,6 @@ public class WalletManager { public String getDaemonAddress() { if (daemonAddress == null) { - // assume testnet not explicitly initialised throw new IllegalStateException("use setDaemon() to initialise daemon and net first!"); } return this.daemonAddress; @@ -236,13 +235,13 @@ public class WalletManager { private native void setDaemonAddressJ(String address); - String daemonUsername = ""; + private String daemonUsername = ""; public String getDaemonUsername() { return daemonUsername; } - String daemonPassword = ""; + private String daemonPassword = ""; public String getDaemonPassword() { return daemonPassword; diff --git a/app/src/main/res/menu/list_menu.xml b/app/src/main/res/menu/list_menu.xml index 57f280c..83bdc79 100644 --- a/app/src/main/res/menu/list_menu.xml +++ b/app/src/main/res/menu/list_menu.xml @@ -3,10 +3,10 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> Wallet - Testnet Über Datenschutzerklärung diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 90654a8..a4b28f5 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -1,7 +1,6 @@ Monedero - Testnet Acerca De Política de Privacidad diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index fe9aa22..124e317 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -1,7 +1,6 @@ Portefeuille - Testnet À Propos Politique de Confidentialité diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 3e7b2ee..c13020f 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -1,7 +1,6 @@ Portafoglio - Testnet Informazioni Politiche Privacy diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 29f48de..edc868c 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -1,7 +1,6 @@ Lommebok - Testnett Om Personvernserklæring diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 15ad426..398b295 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1,7 +1,6 @@ 钱包 - Testnet 关于 隐私权政策 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index a351606..5a75264 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1,7 +1,6 @@ 錢包 - Testnet 關於 隱私權政策 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0eaccb0..648b9ab 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2,7 +2,7 @@ monerujo Wallet - Testnet + Stagenet About Privacy Policy diff --git a/app/src/test/java/com/m2049r/xmrwallet/util/BitcoinAddressValidatorTest.java b/app/src/test/java/com/m2049r/xmrwallet/util/BitcoinAddressValidatorTest.java index a60fb1e..5882723 100644 --- a/app/src/test/java/com/m2049r/xmrwallet/util/BitcoinAddressValidatorTest.java +++ b/app/src/test/java/com/m2049r/xmrwallet/util/BitcoinAddressValidatorTest.java @@ -25,6 +25,7 @@ public class BitcoinAddressValidatorTest { @Test public void validateBTC_shouldValidate() { + assertTrue(BitcoinAddressValidator.validate("2NBMEXXS4v8ubajzfQUjYvh2ptLkxzH8uTC", true)); assertTrue(BitcoinAddressValidator.validate("2N9fzq66uZYQXp7uqrPBH6jKBhjrgTzpGCy", true)); assertTrue(BitcoinAddressValidator.validate("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i", false)); assertTrue(BitcoinAddressValidator.validate("1Q1pE5vPGEEMqRcVRMbtBK842Y6Pzo6nK9", false));