diff --git a/.gitignore b/.gitignore
index 9075d15..e8d7c57 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,5 @@
/app/src/main/assets/yggdrasil-0.3.8-linux-arm64
/app/src/main/assets/yggdrasil-0.3.8-linux-armhf
/.idea/
+
+acra.properties
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..e619bb2
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "yggdrasil/yggdrasil-extras"]
+ path = yggdrasil/yggdrasil-extras
+ url = https://github.com/yggdrasil-network/yggdrasil-extras
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index ce1fc4f..ce889bd 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -1,22 +1,6 @@
-
-
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 61a9130..fb7f4a8 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index d3183f2..aa00b2c 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,7 +4,7 @@
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index a5f05cd..e34606c 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -21,5 +21,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d5d35ec..57bb2d2 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,16 @@
-
+
+
+
+
+
+
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
deleted file mode 100644
index 7f68460..0000000
--- a/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/acra.properties.sample b/acra.properties.sample
new file mode 100644
index 0000000..9cb8c87
--- /dev/null
+++ b/acra.properties.sample
@@ -0,0 +1,3 @@
+ACRA_BACKEND_URL=""
+ACRA_LOGIN=""
+ACRA_PASSWORD=""
diff --git a/app/build.gradle b/app/build.gradle
index 22d1114..3c04038 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,16 +1,25 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
+def acraSecretsPropertiesFile = rootProject.file("acra.properties")
+def acraSecretsProperties = new Properties()
+acraSecretsProperties.load(new FileInputStream(acraSecretsPropertiesFile))
+
android {
- compileSdkVersion 29
+ compileSdkVersion 31
defaultConfig {
applicationId "io.github.chronosx88.yggdrasil"
minSdkVersion 15
- targetSdkVersion 29
- versionCode 23
- versionName "2.0.3"
+ targetSdkVersion 31
+
+ versionCode 37
+ versionName "2.0.19"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
setProperty("archivesBaseName", project.getParent().name+"-"+versionName)
+
+ buildConfigField("String", "ACRA_BACKEND_URL", acraSecretsProperties['ACRA_BACKEND_URL'])
+ buildConfigField("String", "ACRA_LOGIN", acraSecretsProperties['ACRA_LOGIN'])
+ buildConfigField("String", "ACRA_PASSWORD", acraSecretsProperties['ACRA_PASSWORD'])
}
signingConfigs {
release {
@@ -68,19 +77,19 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(path: ':yggdrasil')
- implementation 'androidx.appcompat:appcompat:1.3.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
+ implementation 'androidx.appcompat:appcompat:1.3.1'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
implementation 'androidx.preference:preference-ktx:1.1.1'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.8'
- implementation 'com.google.android.material:material:1.4.0-rc01'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
+ implementation 'com.google.android.material:material:1.5.0-alpha04'
implementation 'com.google.code.gson:gson:2.8.6'
implementation 'com.hbb20:ccp:2.4.0'
implementation 'com.vincentbrison.openlibraries.android:dualcache:3.1.1'
implementation 'com.vincentbrison.openlibraries.android:dualcache-jsonserializer:3.1.1'
testImplementation 'junit:junit:4.13.1'
- androidTestImplementation 'androidx.test:runner:1.3.0'
- androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
+ androidTestImplementation 'androidx.test:runner:1.4.0'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
\ No newline at end of file
diff --git a/app/src/androidTest/java/io/github/chronosx88/yggdrasil/ExampleInstrumentedTest.kt b/app/src/androidTest/java/org/yggdrasil/app/crispa/ExampleInstrumentedTest.kt
similarity index 93%
rename from app/src/androidTest/java/io/github/chronosx88/yggdrasil/ExampleInstrumentedTest.kt
rename to app/src/androidTest/java/org/yggdrasil/app/crispa/ExampleInstrumentedTest.kt
index 3f568e7..24cb359 100644
--- a/app/src/androidTest/java/io/github/chronosx88/yggdrasil/ExampleInstrumentedTest.kt
+++ b/app/src/androidTest/java/org/yggdrasil/app/crispa/ExampleInstrumentedTest.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil
+package org.yggdrasil.app.crispa
import androidx.test.InstrumentationRegistry
import androidx.test.runner.AndroidJUnit4
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 08a84d9..1c87422 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,46 +1,48 @@
+ package="org.yggdrasil.app.crispa">
@@ -49,10 +51,11 @@
-
+
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/Status.kt b/app/src/main/java/io/github/chronosx88/yggdrasil/models/Status.kt
deleted file mode 100644
index ecb73d8..0000000
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/Status.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package io.github.chronosx88.yggdrasil.models
-
-class Status {
- var up: Boolean = false
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/Peer.kt b/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/Peer.kt
deleted file mode 100644
index dd6a0ef..0000000
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/Peer.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-package io.github.chronosx88.yggdrasil.models.config
-
-import com.google.gson.annotations.SerializedName
-
-data class Peer (
- //Example [{"PublicKey":[154,201,118,156,19,74,134,115,94,159,76,86,36,192,221,105,220,254,226,161,108,226,17,192,75,243,225,15,42,195,155,2],"Endpoint":"(self)","BytesSent":0,"BytesRecvd":0,"Protocol":"self","Port":0,"Uptime":209900460}]
- @SerializedName("Endpoint") var endpoint : String,
- @SerializedName("Port") var port : Int,
- @SerializedName("Uptime") var uptime : Long,
- @SerializedName("Protocol") var protocol : String,
- @SerializedName("BytesSent") var bytesSent : Long,
- @SerializedName("BytesRecvd") var bytesReceived : Long
-)
\ No newline at end of file
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/AboutActivity.kt b/app/src/main/java/org/yggdrasil/app/crispa/AboutActivity.kt
similarity index 99%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/AboutActivity.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/AboutActivity.kt
index 9d63a91..1f480cd 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/AboutActivity.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/AboutActivity.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil
+package org.yggdrasil.app.crispa
import android.os.Bundle
import android.text.Html
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/CopyLocalNodeInfoActivity.kt b/app/src/main/java/org/yggdrasil/app/crispa/CopyLocalNodeInfoActivity.kt
similarity index 78%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/CopyLocalNodeInfoActivity.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/CopyLocalNodeInfoActivity.kt
index 2c50ce3..8358659 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/CopyLocalNodeInfoActivity.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/CopyLocalNodeInfoActivity.kt
@@ -1,12 +1,12 @@
-package io.github.chronosx88.yggdrasil
+package org.yggdrasil.app.crispa
import android.os.Bundle
-import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity
import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
-import io.github.chronosx88.yggdrasil.models.config.NodeInfoListAdapter
+import org.yggdrasil.app.crispa.models.NodeInfo
+import org.yggdrasil.app.crispa.models.config.NodeInfoListAdapter
class CopyLocalNodeInfoActivity: AppCompatActivity() {
@@ -18,8 +18,8 @@ class CopyLocalNodeInfoActivity: AppCompatActivity() {
PreferenceManager.getDefaultSharedPreferences(this.baseContext)
val ipv6Address = intent.extras!!.getString(MainActivity.IPv6, "")
val publicKey = preferences.getString(MainActivity.publicKey, "")
- var nodeInfoListView = findViewById(R.id.nodeInfoList)
- val nodeInfoList = listOf(NodeInfo("IP address", ipv6Address!!), NodeInfo("Public Key", publicKey!!));
+ var nodeInfoListView = findViewById(R.id.node_info_list)
+ val nodeInfoList = listOf(NodeInfo("IP address", ipv6Address!!), NodeInfo("Public Key", publicKey!!));
val adapter =
NodeInfoListAdapter(
this,
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/DNSListActivity.kt b/app/src/main/java/org/yggdrasil/app/crispa/DNSListActivity.kt
similarity index 92%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/DNSListActivity.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/DNSListActivity.kt
index 8a464b2..2c468c3 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/DNSListActivity.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/DNSListActivity.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil
+package org.yggdrasil.app.crispa
import android.app.Activity
import android.content.Intent
@@ -9,11 +9,11 @@ import android.widget.*
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import com.google.android.material.floatingactionbutton.FloatingActionButton
-import io.github.chronosx88.yggdrasil.models.DNSInfo
-import io.github.chronosx88.yggdrasil.models.config.SelectDNSInfoListAdapter
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.deserializeStringList2DNSInfoSet
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.ping
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.serializeDNSInfoSet2StringList
+import org.yggdrasil.app.crispa.models.DNSInfo
+import org.yggdrasil.app.crispa.models.config.SelectDNSInfoListAdapter
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.deserializeStringList2DNSInfoSet
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.ping
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.serializeDNSInfoSet2StringList
import kotlinx.coroutines.*
import java.net.InetAddress
import kotlin.concurrent.thread
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/MainActivity.kt b/app/src/main/java/org/yggdrasil/app/crispa/MainActivity.kt
similarity index 93%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/MainActivity.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/MainActivity.kt
index 9bf848e..7324dbc 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/MainActivity.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/MainActivity.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil
+package org.yggdrasil.app.crispa
import android.app.Activity
import android.app.ActivityManager
@@ -14,17 +14,17 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.SwitchCompat
import androidx.preference.PreferenceManager
import dalvik.system.DexFile
-import io.github.chronosx88.yggdrasil.models.DNSInfo
-import io.github.chronosx88.yggdrasil.models.PeerInfo
-import io.github.chronosx88.yggdrasil.models.config.DNSInfoListAdapter
-import io.github.chronosx88.yggdrasil.models.config.PeerInfoListAdapter
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.deserializePeerStringList2PeerInfoSet
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.deserializeStringList2DNSInfoSet
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.deserializeStringList2PeerInfoSet
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.deserializeStringSet2DNSInfoSet
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.deserializeStringSet2PeerInfoSet
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.serializeDNSInfoSet2StringList
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.serializePeerInfoSet2StringList
+import org.yggdrasil.app.crispa.models.DNSInfo
+import org.yggdrasil.app.crispa.models.PeerInfo
+import org.yggdrasil.app.crispa.models.config.DNSInfoListAdapter
+import org.yggdrasil.app.crispa.models.config.PeerInfoListAdapter
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.deserializePeerStringList2PeerInfoSet
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.deserializeStringList2DNSInfoSet
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.deserializeStringList2PeerInfoSet
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.deserializeStringSet2DNSInfoSet
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.deserializeStringSet2PeerInfoSet
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.serializeDNSInfoSet2StringList
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.serializePeerInfoSet2StringList
import kotlin.concurrent.thread
@@ -398,6 +398,9 @@ class MainActivity : AppCompatActivity() {
//TODO reimplement it
private fun isYggServiceRunning(context: Context): Boolean {
+ if(this.intent.hasExtra(YggdrasilTunService.IS_VPN_SERVICE_STOPPED)){
+ return !this.intent.getBooleanExtra(YggdrasilTunService.IS_VPN_SERVICE_STOPPED, true)
+ }
val manager =
context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
for (service in manager.getRunningServices(Int.MAX_VALUE)) {
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/PeerListActivity.kt b/app/src/main/java/org/yggdrasil/app/crispa/PeerListActivity.kt
similarity index 92%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/PeerListActivity.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/PeerListActivity.kt
index 3355426..88a0349 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/PeerListActivity.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/PeerListActivity.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil
+package org.yggdrasil.app.crispa
import android.app.Activity
import android.content.Intent
@@ -21,13 +21,13 @@ import com.hbb20.CCPCountry
import com.vincentbrison.openlibraries.android.dualcache.Builder
import com.vincentbrison.openlibraries.android.dualcache.SizeOf
import com.vincentbrison.openlibraries.android.dualcache.JsonSerializer
-import io.github.chronosx88.yggdrasil.models.PeerInfo
-import io.github.chronosx88.yggdrasil.models.Status
-import io.github.chronosx88.yggdrasil.models.config.DropDownAdapter
-import io.github.chronosx88.yggdrasil.models.config.SelectPeerInfoListAdapter
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.deserializeStringList2PeerInfoSet
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.ping
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.serializePeerInfoSet2StringList
+import org.yggdrasil.app.crispa.models.PeerInfo
+import org.yggdrasil.app.crispa.models.Status
+import org.yggdrasil.app.crispa.models.config.DropDownAdapter
+import org.yggdrasil.app.crispa.models.config.SelectPeerInfoListAdapter
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.deserializeStringList2PeerInfoSet
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.ping
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.serializePeerInfoSet2StringList
import kotlinx.coroutines.*
import java.io.ByteArrayOutputStream
import java.io.FileNotFoundException
@@ -37,6 +37,8 @@ import java.net.URI
import java.net.URL
import java.net.UnknownHostException
import java.nio.charset.Charset
+import java.util.*
+import kotlin.collections.ArrayList
class PeerListActivity : AppCompatActivity() {
@@ -83,7 +85,9 @@ class PeerListActivity : AppCompatActivity() {
}
var extras = intent.extras
var peerList = findViewById(R.id.peerList)
- var adapter = SelectPeerInfoListAdapter(this, arrayListOf(), mutableSetOf())
+
+ val alreadySelectedPeers = deserializeStringList2PeerInfoSet(extras!!.getStringArrayList(MainActivity.PEER_LIST)!!)
+ var adapter = SelectPeerInfoListAdapter(this, arrayListOf(), alreadySelectedPeers)
peerList.adapter = adapter
var peerInfoListCache = Builder>(CACHE_NAME, TEST_APP_VERSION)
.enableLog()
@@ -95,10 +99,7 @@ class PeerListActivity : AppCompatActivity() {
GlobalScope.launch() {
try {
- var cp = deserializeStringList2PeerInfoSet(
- extras!!.getStringArrayList(MainActivity.PEER_LIST)!!
- )
- for (pi in cp) {
+ for (pi in alreadySelectedPeers) {
var ping = ping(pi.hostName, pi.port)
pi.ping = ping
}
@@ -108,7 +109,7 @@ class PeerListActivity : AppCompatActivity() {
for (peerInfo in peerInfoCache) {
var ping = ping(peerInfo.hostName, peerInfo.port)
peerInfo.ping = ping
- if (cp.contains(peerInfo)) {
+ if (alreadySelectedPeers.contains(peerInfo)) {
continue
}
withContext(Dispatchers.Main) {
@@ -129,7 +130,7 @@ class PeerListActivity : AppCompatActivity() {
for ((peer, status) in peers) {
if (status.up) {
for (ccp in countries) {
- if (ccp.name.toLowerCase()
+ if (ccp.name.lowercase(Locale.getDefault())
.contains(country.replace(".md", "").replace("-", " "))
) {
if(!peerListPing){
@@ -147,7 +148,7 @@ class PeerListActivity : AppCompatActivity() {
)
var ping = ping(url.host, url.port)
peerInfo.ping = ping
- if (cp.contains(peerInfo)) {
+ if (alreadySelectedPeers.contains(peerInfo)) {
continue
}
if (peerInfo.ping < Int.MAX_VALUE) {
@@ -181,7 +182,7 @@ class PeerListActivity : AppCompatActivity() {
for (peerInfo in onlinePeerInfoList) {
var ping = ping(peerInfo.hostName, peerInfo.port)
peerInfo.ping = ping
- if (cp.contains(peerInfo)) {
+ if (alreadySelectedPeers.contains(peerInfo)) {
continue
}
withContext(Dispatchers.Main) {
@@ -197,7 +198,7 @@ class PeerListActivity : AppCompatActivity() {
else -> e.printStackTrace()
}
}
- var currentPeers = ArrayList(cp.sortedWith(compareBy { it.ping }))
+ var currentPeers = ArrayList(alreadySelectedPeers.sortedWith(compareBy { it.ping }))
withContext(Dispatchers.Main) {
adapter.addAll(0, currentPeers)
}
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/Utils.kt b/app/src/main/java/org/yggdrasil/app/crispa/Utils.kt
similarity index 88%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/Utils.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/Utils.kt
index 25b62ea..d118246 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/Utils.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/Utils.kt
@@ -1,9 +1,9 @@
-package io.github.chronosx88.yggdrasil
+package org.yggdrasil.app.crispa
import android.content.Context
import com.google.gson.Gson
import config.NodeConfig
-import io.github.chronosx88.yggdrasil.models.config.Config
+import org.yggdrasil.app.crispa.models.config.Config
import java.io.File
val gson = Gson()
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/YggApplication.kt b/app/src/main/java/org/yggdrasil/app/crispa/YggApplication.kt
similarity index 89%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/YggApplication.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/YggApplication.kt
index 67ab86b..3d525e5 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/YggApplication.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/YggApplication.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil
+package org.yggdrasil.app.crispa
import android.app.Application
import android.content.Context
@@ -18,9 +18,9 @@ class YggApplication : Application() {
reportFormat = StringFormat.JSON
//each plugin you chose above can be configured in a block like this:
httpSender {
- uri = "http:///report"
- basicAuthLogin="***"
- basicAuthPassword = "***"
+ uri = BuildConfig.ACRA_BACKEND_URL
+ basicAuthLogin = BuildConfig.ACRA_LOGIN
+ basicAuthPassword = BuildConfig.ACRA_PASSWORD
httpMethod = HttpSender.Method.POST
}
dialog {
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/YggdrasilTunService.kt b/app/src/main/java/org/yggdrasil/app/crispa/YggdrasilTunService.kt
similarity index 89%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/YggdrasilTunService.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/YggdrasilTunService.kt
index b361eb0..290deb2 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/YggdrasilTunService.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/YggdrasilTunService.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil
+package org.yggdrasil.app.crispa
import android.app.*
import android.content.Context
@@ -14,15 +14,16 @@ import androidx.core.app.NotificationCompat
import androidx.preference.PreferenceManager
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
-import io.github.chronosx88.yggdrasil.models.DNSInfo
-import io.github.chronosx88.yggdrasil.models.PeerInfo
-import io.github.chronosx88.yggdrasil.models.config.Peer
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.convertPeer2PeerStringList
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.convertPeerInfoSet2PeerIdSet
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.deserializeStringList2DNSInfoSet
-import io.github.chronosx88.yggdrasil.models.config.Utils.Companion.deserializeStringList2PeerInfoSet
+import org.yggdrasil.app.crispa.models.DNSInfo
+import org.yggdrasil.app.crispa.models.PeerInfo
+import org.yggdrasil.app.crispa.models.config.Peer
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.convertPeer2PeerStringList
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.convertPeerInfoSet2PeerIdSet
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.deserializeStringList2DNSInfoSet
+import org.yggdrasil.app.crispa.models.config.Utils.Companion.deserializeStringList2PeerInfoSet
import mobile.Mobile
import mobile.Yggdrasil
+import org.acra.ACRA
import java.io.*
import java.net.Inet6Address
import kotlin.concurrent.thread
@@ -41,6 +42,7 @@ class YggdrasilTunService : VpnService() {
companion object {
private const val TAG = "Yggdrasil-service"
+ public const val IS_VPN_SERVICE_STOPPED = "VPN_STATUS"
}
private val FOREGROUND_ID = 1338
@@ -139,6 +141,7 @@ class YggdrasilTunService : VpnService() {
private fun sendMeshPeerStatus(pi: PendingIntent?){
class Token : TypeToken>()
ygg.addressString
+ ACRA.errorReporter.putCustomData("Peers JSON", ygg.peersJSON)
var meshPeers: List = gson.fromJson(ygg.peersJSON, Token().type)
val intent: Intent = Intent().putStringArrayListExtra(
MainActivity.MESH_PEERS,
@@ -161,6 +164,7 @@ class YggdrasilTunService : VpnService() {
config["Listen"] = arrayListOf()
config["AdminListen"] = "tcp://localhost:9001"
config["IfName"] = "tun0"
+ config["IfMTU"] = 65535
if(staticIP) {
val preferences =
PreferenceManager.getDefaultSharedPreferences(this.baseContext)
@@ -179,12 +183,17 @@ class YggdrasilTunService : VpnService() {
config["PublicKey"] = publicKey
}
}
+ var multicastInterface = emptyMap().toMutableMap()
+ multicastInterface["Regex"] = ".*"
+ multicastInterface["Beacon"] = true
+ multicastInterface["Listen"] = true
+ multicastInterface["Port"] = 0
+ (config["MulticastInterfaces"] as MutableList)[0] = multicastInterface
//(config["SessionFirewall"] as MutableMap)["AllowFromDirect"] = true
//(config["SessionFirewall"] as MutableMap)["AllowFromRemote"] = true
//(config["SessionFirewall"] as MutableMap)["AlwaysAllowOutbound"] = true
//(config["SessionFirewall"] as MutableMap)["WhitelistEncryptionPublicKeys"] = whiteList
//(config["SessionFirewall"] as MutableMap)["BlacklistEncryptionPublicKeys"] = blackList
-
//(config["SwitchOptions"] as MutableMap)["MaxTotalQueueSize"] = 4194304
if (config["AutoStart"] == null) {
val tmpMap = emptyMap().toMutableMap()
@@ -202,6 +211,8 @@ class YggdrasilTunService : VpnService() {
ygg.send(buffer.sliceArray(IntRange(0, length - 1)))
} catch (e: IOException) {
e.printStackTrace()
+ } catch (e: Exception){
+ e.printStackTrace();
}
}
@@ -212,6 +223,8 @@ class YggdrasilTunService : VpnService() {
tunOutputStream.write(buffer)
} catch (e: IOException) {
e.printStackTrace()
+ } catch (e: Exception){
+ e.printStackTrace();
}
}
}
@@ -267,6 +280,7 @@ class YggdrasilTunService : VpnService() {
""
}
var intent = Intent(this, MainActivity::class.java)
+ intent.putExtra(IS_VPN_SERVICE_STOPPED, isClosed);
var stackBuilder = TaskStackBuilder.create(this)
stackBuilder.addNextIntentWithParentStack(intent)
var pi = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT)
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/DNSInfo.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/DNSInfo.kt
similarity index 94%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/DNSInfo.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/DNSInfo.kt
index 52f4c73..c03cd18 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/DNSInfo.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/DNSInfo.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil.models
+package org.yggdrasil.app.crispa.models
import android.content.Context
import com.hbb20.CCPCountry
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/NodeInfo.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/NodeInfo.kt
similarity index 78%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/NodeInfo.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/NodeInfo.kt
index b81462c..c9ea0ee 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/NodeInfo.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/NodeInfo.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil.models
+package org.yggdrasil.app.crispa.models
class NodeInfo {
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/PeerInfo.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/PeerInfo.kt
similarity index 97%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/PeerInfo.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/PeerInfo.kt
index c17a327..b6e2069 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/PeerInfo.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/PeerInfo.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil.models
+package org.yggdrasil.app.crispa.models
import android.content.Context
import com.hbb20.CCPCountry
diff --git a/app/src/main/java/org/yggdrasil/app/crispa/models/Status.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/Status.kt
new file mode 100644
index 0000000..42f6056
--- /dev/null
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/Status.kt
@@ -0,0 +1,5 @@
+package org.yggdrasil.app.crispa.models
+
+class Status {
+ var up: Boolean = false
+}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/Config.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/config/Config.kt
similarity index 95%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/config/Config.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/config/Config.kt
index 6107b99..b63fa23 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/Config.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/config/Config.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil.models.config
+package org.yggdrasil.app.crispa.models.config
import com.google.gson.annotations.SerializedName
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/DNSInfoListAdapter.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/config/DNSInfoListAdapter.kt
similarity index 90%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/config/DNSInfoListAdapter.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/config/DNSInfoListAdapter.kt
index 8779dee..f33a1d2 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/DNSInfoListAdapter.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/config/DNSInfoListAdapter.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil.models.config
+package org.yggdrasil.app.crispa.models.config
import android.content.Context
import android.view.LayoutInflater
@@ -7,8 +7,8 @@ import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.ImageView
import android.widget.TextView
-import io.github.chronosx88.yggdrasil.R
-import io.github.chronosx88.yggdrasil.models.DNSInfo
+import org.yggdrasil.app.crispa.R
+import org.yggdrasil.app.crispa.models.DNSInfo
class DNSInfoListAdapter(
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/DropDownAdapter.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/config/DropDownAdapter.kt
similarity index 95%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/config/DropDownAdapter.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/config/DropDownAdapter.kt
index f98fa33..e67110b 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/DropDownAdapter.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/config/DropDownAdapter.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil.models.config
+package org.yggdrasil.app.crispa.models.config
import android.content.Context
import android.view.LayoutInflater
@@ -11,7 +11,7 @@ import android.widget.AdapterView.OnItemClickListener
import android.widget.ArrayAdapter
import android.widget.PopupWindow
import android.widget.TextView
-import io.github.chronosx88.yggdrasil.R
+import org.yggdrasil.app.crispa.R
class DropDownAdapter(
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/NetworkUtils.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/config/NetworkUtils.kt
similarity index 96%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/config/NetworkUtils.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/config/NetworkUtils.kt
index 5239389..f84d3ae 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/NetworkUtils.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/config/NetworkUtils.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil.models.config
+package org.yggdrasil.app.crispa.models.config
import android.content.Context
import android.net.ConnectivityManager
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/NodeInfoListAdapter.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/config/NodeInfoListAdapter.kt
similarity index 88%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/config/NodeInfoListAdapter.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/config/NodeInfoListAdapter.kt
index 8c20a2d..edf17cf 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/NodeInfoListAdapter.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/config/NodeInfoListAdapter.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil.models.config
+package org.yggdrasil.app.crispa.models.config
import android.content.ClipData
import android.content.ClipboardManager
@@ -9,9 +9,10 @@ import android.view.ViewGroup
import android.widget.TextView
import android.widget.Toast
import androidx.recyclerview.widget.RecyclerView
-import io.github.chronosx88.yggdrasil.R
+import org.yggdrasil.app.crispa.R
+import org.yggdrasil.app.crispa.models.NodeInfo
-class NodeInfoListAdapter(private val context: Context, private val infoSet: Array>) :
+class NodeInfoListAdapter(private val context: Context, private val infoSet: Array) :
RecyclerView.Adapter() {
class ViewHolder(private val context: Context, view: View) : RecyclerView.ViewHolder(view) {
@@ -50,8 +51,8 @@ class NodeInfoListAdapter(private val context: Context, private val infoSet: Arr
// Get element from your dataset at this position and replace the
// contents of the view with that element
- viewHolder.key.text = infoSet[position].first
- viewHolder.value.text = infoSet[position].second
+ viewHolder.key.text = infoSet[position].key
+ viewHolder.value.text = infoSet[position].value
}
// Return the size of your dataset (invoked by the layout manager)
diff --git a/app/src/main/java/org/yggdrasil/app/crispa/models/config/Peer.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/config/Peer.kt
new file mode 100644
index 0000000..0f8d240
--- /dev/null
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/config/Peer.kt
@@ -0,0 +1,13 @@
+package org.yggdrasil.app.crispa.models.config
+
+import com.google.gson.annotations.SerializedName
+
+data class Peer (
+ //Example [{"Key":"JQZIX3KIamcp/6S9rycKiAGyg9MK7U6h8UUY5ej36fY=","Root":"AAABERGfllXfKNJshDs/8uzKEIFkFEccE16dmZV/cAo=","Coords":[2,4],"Port":1,"Remote":"tcp://[fe80::5207:4518:4378:7f1%wlan0]:57541","IP":"202:d7cd:bd04:6bbc:acc6:b002:da12:86c7"},{"Key":"DCNBiKAV1xr72JAFUgNrOYfY6Qm/f0Nq6ESZTSLn1eo=","Root":"AAABERGfllXfKNJshDs/8uzKEIFkFEccE16dmZV/cAo=","Coords":[2,4,1],"Port":2,"Remote":"tcp://[fe80::1c39:839:90a5:6ef%wlan0]:1108","IP":"204:7b97:ceeb:fd45:1ca0:84ed:ff55:bf92"}]
+ @SerializedName("Key") var key : String,
+ @SerializedName("Root") var root : String,
+ //@SerializedName("Coords") var uptime : Long,
+ @SerializedName("Port") var port : Int,
+ @SerializedName("Remote") var remote : String,
+ @SerializedName("IP") var ip : String
+)
\ No newline at end of file
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/PeerInfoListAdapter.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/config/PeerInfoListAdapter.kt
similarity index 91%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/config/PeerInfoListAdapter.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/config/PeerInfoListAdapter.kt
index f777eeb..9ae88af 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/PeerInfoListAdapter.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/config/PeerInfoListAdapter.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil.models.config
+package org.yggdrasil.app.crispa.models.config
import android.content.Context
import android.view.LayoutInflater
@@ -7,8 +7,8 @@ import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.ImageView
import android.widget.TextView
-import io.github.chronosx88.yggdrasil.R
-import io.github.chronosx88.yggdrasil.models.PeerInfo
+import org.yggdrasil.app.crispa.R
+import org.yggdrasil.app.crispa.models.PeerInfo
class PeerInfoListAdapter(
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/SelectDNSInfoAdapter.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/config/SelectDNSInfoAdapter.kt
similarity index 96%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/config/SelectDNSInfoAdapter.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/config/SelectDNSInfoAdapter.kt
index 0b3cf93..78503da 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/SelectDNSInfoAdapter.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/config/SelectDNSInfoAdapter.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil.models.config
+package org.yggdrasil.app.crispa.models.config
import android.content.ClipData
import android.content.ClipboardManager
@@ -9,8 +9,8 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.*
-import io.github.chronosx88.yggdrasil.R
-import io.github.chronosx88.yggdrasil.models.DNSInfo
+import org.yggdrasil.app.crispa.R
+import org.yggdrasil.app.crispa.models.DNSInfo
class SelectDNSInfoListAdapter(
context: Context,
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/SelectPeerInfoListAdapter.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/config/SelectPeerInfoListAdapter.kt
similarity index 96%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/config/SelectPeerInfoListAdapter.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/config/SelectPeerInfoListAdapter.kt
index 147112c..57ec567 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/SelectPeerInfoListAdapter.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/config/SelectPeerInfoListAdapter.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil.models.config
+package org.yggdrasil.app.crispa.models.config
import android.content.ClipData
import android.content.ClipboardManager
@@ -9,8 +9,8 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.*
-import io.github.chronosx88.yggdrasil.R
-import io.github.chronosx88.yggdrasil.models.PeerInfo
+import org.yggdrasil.app.crispa.R
+import org.yggdrasil.app.crispa.models.PeerInfo
class SelectPeerInfoListAdapter(
context: Context,
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/SessionFirewall.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/config/SessionFirewall.kt
similarity index 95%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/config/SessionFirewall.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/config/SessionFirewall.kt
index fc225e1..50bf9fe 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/SessionFirewall.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/config/SessionFirewall.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil.models.config
+package org.yggdrasil.app.crispa.models.config
import com.google.gson.annotations.SerializedName
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/SwitchOptions.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/config/SwitchOptions.kt
similarity index 79%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/config/SwitchOptions.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/config/SwitchOptions.kt
index 3893b7c..1ea2c5d 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/SwitchOptions.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/config/SwitchOptions.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil.models.config
+package org.yggdrasil.app.crispa.models.config
import com.google.gson.annotations.SerializedName
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/TunnelRouting.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/config/TunnelRouting.kt
similarity index 95%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/config/TunnelRouting.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/config/TunnelRouting.kt
index 2386bd4..3addb05 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/TunnelRouting.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/config/TunnelRouting.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil.models.config
+package org.yggdrasil.app.crispa.models.config
import com.google.gson.annotations.SerializedName
diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/Utils.kt b/app/src/main/java/org/yggdrasil/app/crispa/models/config/Utils.kt
similarity index 79%
rename from app/src/main/java/io/github/chronosx88/yggdrasil/models/config/Utils.kt
rename to app/src/main/java/org/yggdrasil/app/crispa/models/config/Utils.kt
index 1c737ad..305d1e4 100644
--- a/app/src/main/java/io/github/chronosx88/yggdrasil/models/config/Utils.kt
+++ b/app/src/main/java/org/yggdrasil/app/crispa/models/config/Utils.kt
@@ -1,8 +1,8 @@
-package io.github.chronosx88.yggdrasil.models.config
+package org.yggdrasil.app.crispa.models.config
import com.google.gson.Gson
-import io.github.chronosx88.yggdrasil.models.DNSInfo
-import io.github.chronosx88.yggdrasil.models.PeerInfo
+import org.yggdrasil.app.crispa.models.DNSInfo
+import org.yggdrasil.app.crispa.models.PeerInfo
import org.acra.ACRA
import java.net.InetAddress
import java.net.InetSocketAddress
@@ -119,22 +119,18 @@ class Utils {
if (list != null) {
for(s in list) {
var p = gson.fromJson(s, Peer::class.java)
- if(p.endpoint == "(self)"){
- out.add(PeerInfo(p.protocol, InetAddress.getByName("localhost"), p.port, null, true))
- } else {
- var fixWlanPart = p.endpoint.substring(p.endpoint.indexOf('%'), p.endpoint.indexOf(']'))
- var fixedUrlString = p.endpoint.replace(fixWlanPart, "")
- var url = URI(fixedUrlString)
- out.add(
- PeerInfo(
- url.scheme,
- InetAddress.getByName(url.host),
- url.port,
- null,
- true
- )
+ var fixWlanPart = p.remote.substring(p.remote.indexOf('%'), p.remote.indexOf(']'))
+ var fixedUrlString = p.remote.replace(fixWlanPart, "")
+ var url = URI(fixedUrlString)
+ out.add(
+ PeerInfo(
+ url.scheme,
+ InetAddress.getByName(url.host),
+ url.port,
+ null,
+ true
)
- }
+ )
}
}
return out
diff --git a/app/src/test/java/io/github/chronosx88/yggdrasil/ExampleUnitTest.kt b/app/src/test/java/org/yggdrasil/app/crispa/ExampleUnitTest.kt
similarity index 89%
rename from app/src/test/java/io/github/chronosx88/yggdrasil/ExampleUnitTest.kt
rename to app/src/test/java/org/yggdrasil/app/crispa/ExampleUnitTest.kt
index 462224f..2034cfb 100644
--- a/app/src/test/java/io/github/chronosx88/yggdrasil/ExampleUnitTest.kt
+++ b/app/src/test/java/org/yggdrasil/app/crispa/ExampleUnitTest.kt
@@ -1,4 +1,4 @@
-package io.github.chronosx88.yggdrasil
+package org.yggdrasil.app.crispa
import org.junit.Test
diff --git a/build.gradle b/build.gradle
index 2f3d35b..fa11fe1 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,12 +1,12 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.kotlin_version = "1.5.10"
+ ext.kotlin_version = "1.5.31"
repositories {
google()
mavenCentral()
}
dependencies {
- classpath "com.android.tools.build:gradle:4.2.1"
+ classpath 'com.android.tools.build:gradle:7.0.4'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
@@ -24,4 +24,4 @@ allprojects {
task clean(type: Delete) {
delete rootProject.buildDir
-}
\ No newline at end of file
+}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 1f7c3f7..49a62e7 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
diff --git a/yggdrasil/Makefile b/yggdrasil/Makefile
index 8745071..d207720 100644
--- a/yggdrasil/Makefile
+++ b/yggdrasil/Makefile
@@ -1,10 +1,7 @@
-GOPATH=$(shell go env GOPATH)
-export GO111MODULE=off
all:
- -go get -u github.com/yggdrasil-network/yggdrasil-go;
- -cd $(GOPATH)/src/github.com/yggdrasil-network/yggdrasil-go; \
- go get -v -d ./...; \
- go get -u github.com/yggdrasil-network/yggdrasil-extras; \
- ANDROID=true ./build;
- mv -f $(GOPATH)/src/github.com/yggdrasil-network/yggdrasil-go/yggdrasil.aar yggdrasil.aar;
- mv -f $(GOPATH)/src/github.com/yggdrasil-network/yggdrasil-go/yggdrasil-sources.jar yggdrasil-sources.jar;
+ cd yggdrasil-extras; \
+ gomobile bind -v -target android -tags mobile -o yggdrasil.aar \
+ github.com/yggdrasil-network/yggdrasil-extras/src/mobile \
+ github.com/yggdrasil-network/yggdrasil-go/src/config
+ mv -f yggdrasil-extras/yggdrasil.aar yggdrasil.aar;
+ mv -f yggdrasil-extras/yggdrasil-sources.jar yggdrasil-sources.jar;
diff --git a/yggdrasil/yggdrasil-extras b/yggdrasil/yggdrasil-extras
new file mode 160000
index 0000000..21d029d
--- /dev/null
+++ b/yggdrasil/yggdrasil-extras
@@ -0,0 +1 @@
+Subproject commit 21d029d6a42d64ec169dfa5d8db039ada07226da