diff --git a/app/src/main/cpp/monerujo.cpp b/app/src/main/cpp/monerujo.cpp index 9f7dbae..74965db 100644 --- a/app/src/main/cpp/monerujo.cpp +++ b/app/src/main/cpp/monerujo.cpp @@ -529,7 +529,7 @@ Java_com_m2049r_xmrwallet_model_Wallet_setPassword(JNIEnv *env, jobject instance } JNIEXPORT jstring JNICALL -Java_com_m2049r_xmrwallet_model_Wallet_getAddress(JNIEnv *env, jobject instance) { +Java_com_m2049r_xmrwallet_model_Wallet_getAddressJ(JNIEnv *env, jobject instance) { Bitmonero::Wallet *wallet = getHandle(env, instance); const char *address = wallet->address().c_str(); return env->NewStringUTF(address); diff --git a/app/src/main/java/com/m2049r/xmrwallet/GenerateFragment.java b/app/src/main/java/com/m2049r/xmrwallet/GenerateFragment.java index c3a7f07..b728524 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/GenerateFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/GenerateFragment.java @@ -34,6 +34,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; +import com.m2049r.xmrwallet.model.Wallet; import com.m2049r.xmrwallet.model.WalletManager; import com.m2049r.xmrwallet.util.Helper; @@ -278,8 +279,7 @@ public class GenerateFragment extends Fragment { private boolean addressOk() { String address = etWalletAddress.getText().toString(); - boolean testnet = WalletManager.getInstance().isTestNet(); - return ((address.length() == 95) && ((testnet ? "9A" : "4").indexOf(address.charAt(0)) >= 0)); + return Wallet.isAddressValid(address, WalletManager.getInstance().isTestNet()); } private boolean viewKeyOk() { @@ -295,7 +295,7 @@ public class GenerateFragment extends Fragment { private void generateWallet() { String name = etWalletName.getText().toString(); if (name.length() == 0) return; - if (name.charAt(0)=='.') { + if (name.charAt(0) == '.') { Toast.makeText(getActivity(), getString(R.string.generate_wallet_dot), Toast.LENGTH_LONG).show(); etWalletName.requestFocus(); } diff --git a/app/src/main/java/com/m2049r/xmrwallet/SendFragment.java b/app/src/main/java/com/m2049r/xmrwallet/SendFragment.java index 61c48d4..5f135e2 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/SendFragment.java +++ b/app/src/main/java/com/m2049r/xmrwallet/SendFragment.java @@ -277,7 +277,7 @@ public class SendFragment extends Fragment { private boolean addressOk() { String address = etAddress.getText().toString(); - return Helper.isAddressOk(address, WalletManager.getInstance().isTestNet()); + return Wallet.isAddressValid(address, WalletManager.getInstance().isTestNet()); } private boolean amountOk() { diff --git a/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java b/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java index 7704d48..de6fef1 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java +++ b/app/src/main/java/com/m2049r/xmrwallet/WalletActivity.java @@ -697,7 +697,7 @@ public class WalletActivity extends AppCompatActivity implements WalletFragment. address = null; } - if (Helper.isAddressOk(address, WalletManager.getInstance().isTestNet())) { + if (Wallet.isAddressValid(address, WalletManager.getInstance().isTestNet())) { return new BarcodeData(address, paymentId, amount); } return 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 3ae2bf0..ff14440 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/model/Wallet.java +++ b/app/src/main/java/com/m2049r/xmrwallet/model/Wallet.java @@ -68,7 +68,16 @@ public class Wallet { public native boolean setPassword(String password); - public native String getAddress(); + public String getAddress() { + String address = getAddressJ(); + if (!Wallet.isAddressValid(address, WalletManager.getInstance().isTestNet())) { + // just die! + throw new IllegalStateException("Wallet returned invalid address!"); + } + return address; + } + + private native String getAddressJ(); public native String getPath(); diff --git a/app/src/main/java/com/m2049r/xmrwallet/util/Helper.java b/app/src/main/java/com/m2049r/xmrwallet/util/Helper.java index 9c876d8..3fe82dd 100644 --- a/app/src/main/java/com/m2049r/xmrwallet/util/Helper.java +++ b/app/src/main/java/com/m2049r/xmrwallet/util/Helper.java @@ -144,15 +144,6 @@ public class Helper { act.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); } - static public boolean isAddressOk(String address, boolean testnet) { - if (address == null) return false; - if (testnet) { - return ((address.length() == 95) && ("9A".indexOf(address.charAt(0)) >= 0)); - } else { - return ((address.length() == 95) && ("4".indexOf(address.charAt(0)) >= 0)); - } - } - static public String getDisplayAmount(long amount) { String s = Wallet.getDisplayAmount(amount); int lastZero = 0;