mirror of
https://github.com/m2049r/xmrwallet
synced 2025-09-04 00:53:36 +02:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f08ddf93c8 | ||
![]() |
4bfc9c1bdd | ||
![]() |
1a13bdde91 | ||
![]() |
3e56d5a54b |
@@ -8,8 +8,8 @@ android {
|
|||||||
compileSdk 35
|
compileSdk 35
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 35
|
targetSdkVersion 35
|
||||||
versionCode 4006
|
versionCode 4007
|
||||||
versionName "4.0.6 'Sidekick'"
|
versionName "4.0.7 'Sidekick'"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
externalNativeBuild {
|
externalNativeBuild {
|
||||||
cmake {
|
cmake {
|
||||||
|
@@ -40,6 +40,7 @@ import android.widget.Toast;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import androidx.fragment.app.FragmentTransaction;
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
@@ -1260,7 +1261,7 @@ public class LoginActivity extends BaseActivity
|
|||||||
if (usbManager.hasPermission(device)) {
|
if (usbManager.hasPermission(device)) {
|
||||||
connectLedger(usbManager, device);
|
connectLedger(usbManager, device);
|
||||||
} else {
|
} else {
|
||||||
registerReceiver(usbPermissionReceiver, new IntentFilter(ACTION_USB_PERMISSION));
|
ContextCompat.registerReceiver(this, usbPermissionReceiver, new IntentFilter(ACTION_USB_PERMISSION), ContextCompat.RECEIVER_NOT_EXPORTED);
|
||||||
usbManager.requestPermission(device,
|
usbManager.requestPermission(device,
|
||||||
PendingIntent.getBroadcast(this, 0,
|
PendingIntent.getBroadcast(this, 0,
|
||||||
new Intent(ACTION_USB_PERMISSION),
|
new Intent(ACTION_USB_PERMISSION),
|
||||||
@@ -1379,8 +1380,7 @@ public class LoginActivity extends BaseActivity
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
ContextCompat.registerReceiver(this, detachReceiver, new IntentFilter(UsbManager.ACTION_USB_DEVICE_DETACHED), ContextCompat.RECEIVER_NOT_EXPORTED);
|
||||||
registerReceiver(detachReceiver, new IntentFilter(UsbManager.ACTION_USB_DEVICE_DETACHED));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onLedgerAction() {
|
public void onLedgerAction() {
|
||||||
|
@@ -289,8 +289,7 @@ public class NodeFragment extends Fragment
|
|||||||
} else if (params[0] == SCAN) {
|
} else if (params[0] == SCAN) {
|
||||||
// otherwise scan the network
|
// otherwise scan the network
|
||||||
Timber.d("scanning");
|
Timber.d("scanning");
|
||||||
Set<NodeInfo> seedList = new HashSet<>();
|
Set<NodeInfo> seedList = new HashSet<>(nodeList);
|
||||||
seedList.addAll(nodeList);
|
|
||||||
nodeList.clear();
|
nodeList.clear();
|
||||||
Timber.d("seed %d", seedList.size());
|
Timber.d("seed %d", seedList.size());
|
||||||
Dispatcher d = new Dispatcher(info -> publishProgress(info));
|
Dispatcher d = new Dispatcher(info -> publishProgress(info));
|
||||||
|
@@ -19,23 +19,26 @@ package com.m2049r.xmrwallet.data;
|
|||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
// Nodes stolen from https://moneroworld.com/#nodes
|
@Getter
|
||||||
|
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public enum DefaultNodes {
|
public enum DefaultNodes {
|
||||||
MONERUJO("nodex.monerujo.io:18081"),
|
AGORIST("xmr.agor.ist:18089/mainnet/agor.ist"),
|
||||||
XMRTO("node.xmr.to:18081"),
|
BOLDSUCK("xmr-de.boldsuck.org:18080/mainnet/boldsuck.org"),
|
||||||
SUPPORTXMR("node.supportxmr.com:18081"),
|
|
||||||
HASHVAULT("nodes.hashvault.pro:18081"),
|
|
||||||
MONEROWORLD("node.moneroworld.com:18089"),
|
|
||||||
XMRTW("opennode.xmr-tw.org:18089"),
|
|
||||||
ds_jetzt("monero.ds-jetzt.de:18089"),
|
|
||||||
MONERUJO_ONION("monerujods7mbghwe6cobdr6ujih6c22zu5rl7zshmizz2udf7v7fsad.onion:18081/mainnet/monerujo.onion"),
|
|
||||||
Criminales78("56wl7y2ebhamkkiza4b7il4mrzwtyvpdym7bm2bkg3jrei2je646k3qd.onion:18089/mainnet/Criminales78.onion"),
|
|
||||||
xmrfail("mxcd4577fldb3ppzy7obmmhnu3tf57gbcbd4qhwr2kxyjj2qi3dnbfqd.onion:18081/mainnet/xmrfail.onion"),
|
|
||||||
boldsuck("6dsdenp6vjkvqzy4wzsnzn6wixkdzihx3khiumyzieauxuxslmcaeiad.onion:18081/mainnet/boldsuck.onion"),
|
boldsuck("6dsdenp6vjkvqzy4wzsnzn6wixkdzihx3khiumyzieauxuxslmcaeiad.onion:18081/mainnet/boldsuck.onion"),
|
||||||
ds_jetzt_onion("qvlr4w7yhnjrdg3txa72jwtpnjn4ezsrivzvocbnvpfbdo342fahhoad.onion:18089/mainnet/ds-jetzt.onion");
|
CAKE("xmr-node.cakewallet.com:18081/mainnet/cakewallet.com"),
|
||||||
|
DS_JETZT("monero.ds-jetzt.de:18089/mainnet/ds-jetzt.de"),
|
||||||
|
ds_jetzt("qvlr4w7yhnjrdg3txa72jwtpnjn4ezsrivzvocbnvpfbdo342fahhoad.onion:18089/mainnet/ds-jetzt.onion"),
|
||||||
|
MONERODEVS("node.monerodevs.org:18089/mainnet/monerodevs.org"),
|
||||||
|
MONERUJO("nodex.monerujo.io:18081/mainnet/monerujo.io"),
|
||||||
|
monerujo("monerujods7mbghwe6cobdr6ujih6c22zu5rl7zshmizz2udf7v7fsad.onion:18081/mainnet/monerujo.onion"),
|
||||||
|
SETH("node.sethforprivacy.com:18089/mainnet/sethforprivacy.com"),
|
||||||
|
seth("sfpp2p7wnfjv3lrvfan4jmmkvhnbsbimpa3cqyuf7nt6zd24xhcqcsyd.onion/mainnet/sethforprivacy.onion"),
|
||||||
|
STACK("monero.stackwallet.com:18081/mainnet/stackwallet.com"),
|
||||||
|
STORMYCLOUD("xmr.stormycloud.org:18089/mainnet/stormycloud.org"),
|
||||||
|
TENZ("monero.10z.com.ar:18089/mainnet/10z.com.ar"),
|
||||||
|
XMRROCKS("node.xmr.rocks:18089/mainnet/xmr.rocks"),
|
||||||
|
xmrrocks("xqnnz2xmlmtpy2p4cm4cphg2elkwu5oob7b7so5v4wwgt44p6vbx5ryd.onion/mainnet/xmr.rocks.onion"),
|
||||||
|
XMRTW("opennode.xmr-tw.org:18089/mainnet/xmr-tw.org");
|
||||||
|
|
||||||
@Getter
|
|
||||||
private final String uri;
|
private final String uri;
|
||||||
}
|
}
|
||||||
|
@@ -144,7 +144,7 @@ public class Node {
|
|||||||
if ((nodeString == null) || nodeString.isEmpty())
|
if ((nodeString == null) || nodeString.isEmpty())
|
||||||
throw new IllegalArgumentException("daemon is empty");
|
throw new IllegalArgumentException("daemon is empty");
|
||||||
String daemonAddress;
|
String daemonAddress;
|
||||||
String a[] = nodeString.split("@");
|
String[] a = nodeString.split("@");
|
||||||
if (a.length == 1) { // no credentials
|
if (a.length == 1) { // no credentials
|
||||||
daemonAddress = a[0];
|
daemonAddress = a[0];
|
||||||
username = "";
|
username = "";
|
||||||
@@ -169,7 +169,7 @@ public class Node {
|
|||||||
throw new IllegalArgumentException("Too many '/' or too few");
|
throw new IllegalArgumentException("Too many '/' or too few");
|
||||||
|
|
||||||
daemonAddress = daParts[0];
|
daemonAddress = daParts[0];
|
||||||
String da[] = daemonAddress.split(":");
|
String[] da = daemonAddress.split(":");
|
||||||
if ((da.length > 2) || (da.length < 1))
|
if ((da.length > 2) || (da.length < 1))
|
||||||
throw new IllegalArgumentException("Too many ':' or too few");
|
throw new IllegalArgumentException("Too many ':' or too few");
|
||||||
String host = da[0];
|
String host = da[0];
|
||||||
|
Reference in New Issue
Block a user