Browse Source

Implemented custom wormhole to fix upstream issue #41

master
jahway603 4 years ago
parent
commit
2c5470fbae
  1. 16
      app/src/main/java/org/myhush/silentdragon/ConnectionManager.kt
  2. 24
      app/src/main/java/org/myhush/silentdragon/DataModel.kt
  3. 23
      app/src/main/java/org/myhush/silentdragon/ui/SettingsActivity.kt
  4. 23
      app/src/main/res/layout/activity_settings.xml
  5. 11
      app/src/main/res/values/strings.xml

16
app/src/main/java/org/myhush/silentdragon/ConnectionManager.kt

@ -33,8 +33,8 @@ object ConnectionManager {
initCurrencies()
}
// Attempt a connection to the server. If there is no saved connection, we'll set the connection status
// to None
// Attempt a connection to the server
// If there is no saved connection, we'll set the connection status to None
private fun makeConnection(directConn : Boolean = true) {
val connString =
DataModel.getConnString(SilentDragonApp.appContext!!)
@ -79,11 +79,14 @@ object ConnectionManager {
DataModel.connStatus =
DataModel.ConnectionStatus.CONNECTING
val wormHoleValue = DataModel.getWormholeServer()
println("Connstatus = connecting")
val client = OkHttpClient.Builder().connectTimeout(5, TimeUnit.SECONDS).build()
val request = Request.Builder().url("wss://wormhole.myhush.org:443").build()
//val request = Request.Builder().url("ws://192.168.5.187:7070").build()
//val request = Request.Builder().url("wss://wormhole.myhush.org:443").build()
val request = Request.Builder().url("wss://" + wormHoleValue).build()
val listener = WebsocketClient(false)
DataModel.ws = client.newWebSocket(request, listener)
@ -115,6 +118,7 @@ object ConnectionManager {
i.putExtra("doDisconnect", doDisconnect)
SilentDragonApp.appContext?.sendBroadcast(i)
}
fun initCurrencies(){
try {
DataModel.currencySymbols["AUD"] = "$"
@ -156,9 +160,7 @@ object ConnectionManager {
}
}
}.start()
}catch (e: Exception){
e.printStackTrace()
}

24
app/src/main/java/org/myhush/silentdragon/DataModel.kt

@ -12,6 +12,7 @@ import org.libsodium.jni.NaCl
import org.libsodium.jni.Sodium
import java.math.BigInteger
object DataModel {
class MainResponse(val balance: Double, val maxspendable: Double, val maxzspendable: Double? = null,
val saplingAddress: String, val tAddress: String, val tokenName: String,
@ -33,8 +34,7 @@ object DataModel {
}
var ws : WebSocket? = null
enum class ConnectionStatus(val status: Int) {
DISCONNECTED(1),
CONNECTING(2),
@ -329,7 +329,27 @@ object DataModel {
Sodium.crypto_hash_sha256(tobin2, tobin1, tobin1.size)
return tobin2.toHexString()
}
/* functions to set custom wormhole value from Settings tab */
fun setWormholeServer(customWormHole: String) {
val settings = SilentDragonApp.appContext!!.getSharedPreferences("Secret", 0)
val editor = settings.edit()
editor.putString("wormhole", customWormHole)
//editor.apply()
editor.commit()
}
/* functions to get custom wormhole value */
fun getWormholeServer() : String? {
val settings = SilentDragonApp.appContext!!.getSharedPreferences("Secret", 0)
val wormHole = settings.getString("secret", "")
if (wormHole.isNullOrEmpty()) {
return settings.getString("wormhole", "https://wormhole.myhush.org:443" )
}
return settings.getString("wormhole", "" )
}
fun setSecretHex(secretHex: String) {

23
app/src/main/java/org/myhush/silentdragon/ui/SettingsActivity.kt

@ -20,9 +20,6 @@ class SettingsActivity : AppCompatActivity() {
updateUI()
val result = findViewById<View>(R.id.currentWormhole) as TextView
val myhush_default_wormhole : String = "https://wormhole.myhush.org"
btnDisconnect.setOnClickListener {
DataModel.setConnString(
null,
@ -46,18 +43,22 @@ class SettingsActivity : AppCompatActivity() {
btnSetWormhole.setOnClickListener {
val inputText = findViewById<View>(R.id.wormholeInput) as EditText
val result = findViewById<View>(R.id.lblCurrentWormhole) as TextView
val myhushDefaultWormhole : String = "wormhole.myhush.org:443"
val customWormhole = inputText.getText().toString()
// set to default if nothing in wormhole entry EditText object
// set to myhushDefaultWormhole if nothing in EditText (wormholeInput)
if (inputText.text.isBlank()) {
result.setText(myhush_default_wormhole)
Toast.makeText(this, "YEAH: " + myhush_default_wormhole, Toast.LENGTH_SHORT).show()
result.text = myhushDefaultWormhole
Toast.makeText(this, "Defaulting to: " + myhushDefaultWormhole, Toast.LENGTH_SHORT).show()
DataModel.setWormholeServer(myhushDefaultWormhole)
} else {
result.setText(customWormhole)
Toast.makeText(this, "YEAH: " + customWormhole, Toast.LENGTH_SHORT).show()
result.text = customWormhole
Toast.makeText(this, "Wormhole set to: " + customWormhole, Toast.LENGTH_SHORT).show()
DataModel.setWormholeServer(customWormhole)
}
}
spinnerCurrency!!.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>, view: View, pos: Int, id: Long) {
@ -78,7 +79,6 @@ class SettingsActivity : AppCompatActivity() {
}
override fun onNothingSelected(parent: AdapterView<out Adapter>?) {}
}
}
@ -94,7 +94,6 @@ class SettingsActivity : AppCompatActivity() {
selectedIndex++
}
var adapter: ArrayAdapter<String> = ArrayAdapter(
this,
android.R.layout.simple_spinner_item,
@ -118,5 +117,7 @@ class SettingsActivity : AppCompatActivity() {
lblServerVersion.text = DataModel.mainResponseData?.serverversion ?: getString(
R.string.not_connected
)
lblCurrentWormhole.text = DataModel.getWormholeServer()
}
}

23
app/src/main/res/layout/activity_settings.xml

@ -114,23 +114,25 @@
<TextView
android:id="@+id/customWormholeTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="19dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="@string/wormhole_custom_title"
android:text="@string/current_wormhole_title"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/divider5" />
<TextView
android:id="@+id/currentWormhole"
android:id="@+id/lblCurrentWormhole"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:text="@string/wormhole"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/customWormholeTitle" />
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text=""
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/customWormholeTitle"
app:layout_constraintTop_toBottomOf="@+id/divider5" />
<EditText
android:id="@+id/wormholeInput"
@ -139,14 +141,14 @@
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="16dp"
android:autoText="false"
android:clickable="false"
android:hint="@string/change_below"
android:inputType="text"
android:autoText="false"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/currentWormhole" />
app:layout_constraintTop_toBottomOf="@+id/customWormholeTitle" />
<Button
android:id="@+id/btnSetWormhole"
@ -184,7 +186,6 @@
android:textIsSelectable="false"
android:textSize="24sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/divider3" />

11
app/src/main/res/values/strings.xml

@ -84,12 +84,12 @@
<string name="wormhole_settings">Wormhole Settings</string>
<string name="disallow_routing_over_external_service">Disallow routing over external service/internet</string>
<string name="only_attempts_direct_connection">If checked, the app will only attempt a direct connection to SilentDragon, and not route traffic over the internet via the WormHole service at wormhole.myhush.org . Please see the https://myhush.org/silentdragon for more details</string>
<string name="wormhole_custom_title">Current Wormhole:</string>
<string name="current_wormhole_title">Current Wormhole:</string>
<string name="myhush_default_wormhole" translatable="false">wormhole.myhush.org:443</string>
<string name="wormhole_custom">Set custom Wormhole</string>
<string name="myhush_default_wormhole" translatable="false">https://wormhole.myhush.org</string>
<string name="currency">Currency</string>
<string name="silentdragon_version">SilentDragon version</string>
<string name="change_below">Enter wormhole link here and click below to set</string>
<string name="change_below">Enter wormhole\'s server:port here and click below</string>
<!-- activity_about.xml -->
<string name="website">Visit our website</string>
@ -101,7 +101,7 @@
<string name="twitter">Twitter</string>
<string name="twitter_link" translatable="false">https://www.myhush.org/twitter/</string>
<string name="mastodon">Mastodon</string>
<string name="mastodon_link" translatable="false">https://fosstodon.org/@myhushteam/</string>
<string name="mastodon_link" translatable="false">https://www.myhush.org/mastodon/</string>
<string name="github">GitHub</string>
<string name="github_link" translatable="false">https://github.com/MyHush/SilentDragonAndroid</string>
<string name="bugreports">Bug Reports</string>
@ -141,7 +141,8 @@
<string name="error_sending_transaction">Error Sending Transaction!</string>
<string name="memo_field_over_512">Memo field is too long! Must be at most 512 bytes.</string>
<string name="more_than_shielded_address">%1$s %2$s is more than the balance in your shielded address. This Tx will have to be sent from a transparent address, and will not be private.\n\nAre you absolutely sure?</string>
<string name="max_spend_in_a_single_tx">Can\'t spend more than %1$d %2$s in a single Tx"</string>
<!-- <string name="max_spend_in_a_single_tx">Can\'t spend more than %1$d %2$s in a single Tx"</string> -->
<string name="max_spend_in_a_single_tx">You tried to spend %1$d %2$s, but there is not enough HUSH in this single address currently. You might need to sweep funds into one address or wait for some funds to confirm.</string>
<string name="reply_to">Reply to</string>
<!-- content_send -->

Loading…
Cancel
Save