Browse Source

Global internet connection switch

chat
adityapk00 5 years ago
parent
commit
1b92477208
  1. 12
      app/src/main/java/com/adityapk/zcash/zqwandroid/ConnectionManager.kt
  2. 13
      app/src/main/java/com/adityapk/zcash/zqwandroid/DataModel.kt
  3. 4
      app/src/main/java/com/adityapk/zcash/zqwandroid/SettingsActivity.kt
  4. 48
      app/src/main/res/layout/activity_settings.xml

12
app/src/main/java/com/adityapk/zcash/zqwandroid/ConnectionManager.kt

@ -69,7 +69,7 @@ object ConnectionManager {
println("Connstatus = connecting")
val client = OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS).build()
val client = OkHttpClient.Builder().connectTimeout(5, TimeUnit.SECONDS).build()
val request = Request.Builder().url("ws://192.168.5.187:7070").build()
val listener = WebsocketClient(false)
@ -157,16 +157,18 @@ object ConnectionManager {
Log.e(TAG,"Failed $t")
DataModel.connStatus = DataModel.ConnectionStatus.DISCONNECTED
// If the connection is direct, and there is no need to connect to
val allowInternet = DataModel.getAllowInternet() && DataModel.getGlobalAllowInternet()
if (t is ConnectException && (m_directConn && !DataModel.getAllowInternet())) {
// If the connection is direct, and there is no need to further connect, so just error out
if (t is ConnectException && (m_directConn && !allowInternet)) {
sendErrorSignal(t.localizedMessage, true)
sendRefreshSignal(false)
sendRefreshSignal(true)
return
}
// If this was a direct connection and there was a failure to connect, retry connecting
// without the direct connection (i.e., through wormhole)
if (m_directConn && DataModel.getAllowInternet()) {
if (m_directConn && allowInternet) {
makeConnection(false)
} else {
// Not a direct connection (or we're not allowed to connect to internet) and there was a failure.

13
app/src/main/java/com/adityapk/zcash/zqwandroid/DataModel.kt

@ -294,6 +294,19 @@ object DataModel {
}
fun setGlobalAllowInternet(allow: Boolean) {
val settings = ZQWApp.appContext!!.getSharedPreferences("Secret", 0)
val editor = settings.edit()
editor.putBoolean("globalallowinternet", allow)
editor.apply()
}
fun getGlobalAllowInternet(): Boolean {
val settings = ZQWApp.appContext!!.getSharedPreferences("Secret", 0)
return settings.getBoolean("globalallowinternet", false)
}
fun setAllowInternet(allow: Boolean) {
val settings = ZQWApp.appContext!!.getSharedPreferences("Secret", 0)

4
app/src/main/java/com/adityapk/zcash/zqwandroid/SettingsActivity.kt

@ -17,6 +17,10 @@ class SettingsActivity : AppCompatActivity() {
DataModel.clear()
updateUI()
}
chkDisallowInternet.setOnClickListener {
DataModel.setGlobalAllowInternet(chkDisallowInternet.isChecked)
}
}
fun updateUI() {

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

@ -46,20 +46,38 @@
android:layout_marginStart="8dp" app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="8dp" android:visibility="visible" android:layout_height="2dp"
android:layout_marginTop="8dp"/>
<TextView
android:text="ZecQT Wallet android version"
android:layout_width="wrap_content"
<CheckBox
android:text="Disallow routing over external service/internet"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/textView3" android:layout_marginTop="16dp"
android:id="@+id/chkDisallowInternet" android:layout_marginTop="16dp"
app:layout_constraintTop_toBottomOf="@+id/divider" app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="16dp" android:textStyle="bold"/>
android:layout_marginStart="8dp" app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="8dp"/>
<TextView
android:text="If checked, the app will only attempt a direct connection to zec-qt-wallet, and not route traffic over the internet via the external helper service. Please see the FAQ for more details"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/textView4" app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="16dp" app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="16dp" android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/chkDisallowInternet"/>
<View
android:id="@+id/divider3"
android:layout_width="0dp"
android:background="?android:attr/listDivider"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="8dp" app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="8dp" android:visibility="visible" android:layout_height="2dp"
app:layout_constraintHorizontal_bias="0.0"
android:layout_marginTop="16dp" app:layout_constraintTop_toBottomOf="@+id/textView4"/>
<TextView
android:text="TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lblVersionName" android:layout_marginTop="16dp"
app:layout_constraintTop_toBottomOf="@+id/textView3" app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="16dp"/>
android:id="@+id/lblServerVersion" app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="16dp" android:layout_marginTop="16dp"
app:layout_constraintTop_toBottomOf="@+id/textView10"/>
<TextView
android:text="zec-qt-wallet server version"
android:layout_width="wrap_content"
@ -67,13 +85,21 @@
android:id="@+id/textView10" app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="16dp" android:layout_marginTop="16dp"
app:layout_constraintTop_toBottomOf="@+id/lblVersionName" android:textStyle="bold"/>
<TextView
android:text="ZecQT Wallet android version"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/textView3" android:layout_marginTop="16dp"
app:layout_constraintTop_toBottomOf="@id/divider3" app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="16dp" android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="16dp"/>
<TextView
android:text="TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lblServerVersion" app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="16dp" android:layout_marginTop="16dp"
app:layout_constraintTop_toBottomOf="@+id/textView10"/>
android:id="@+id/lblVersionName" android:layout_marginTop="16dp"
app:layout_constraintTop_toBottomOf="@+id/textView3" app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="16dp"/>
<View
android:id="@+id/divider2"
android:layout_width="0dp"

Loading…
Cancel
Save