From ac39b9215aaea8a3b68d7a5958228b4a3c606931 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Sat, 31 Mar 2018 16:50:44 +0200
Subject: [PATCH] Correctly close settings after saving

---
 .../quasseldroid/ExampleInstrumentedTest.kt   | 22 ------------
 .../ui/coresettings/SettingsFragment.kt       |  4 +--
 .../networkconfig/NetworkConfigFragment.kt    | 36 +++++++++----------
 3 files changed, 20 insertions(+), 42 deletions(-)
 delete mode 100644 app/src/androidTest/java/de/kuschku/quasseldroid/ExampleInstrumentedTest.kt

diff --git a/app/src/androidTest/java/de/kuschku/quasseldroid/ExampleInstrumentedTest.kt b/app/src/androidTest/java/de/kuschku/quasseldroid/ExampleInstrumentedTest.kt
deleted file mode 100644
index d6985543e..000000000
--- a/app/src/androidTest/java/de/kuschku/quasseldroid/ExampleInstrumentedTest.kt
+++ /dev/null
@@ -1,22 +0,0 @@
-package de.kuschku.quasseldroid
-
-import android.support.test.InstrumentationRegistry
-import android.support.test.runner.AndroidJUnit4
-import org.junit.Assert.assertEquals
-import org.junit.Test
-import org.junit.runner.RunWith
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-@RunWith(AndroidJUnit4::class)
-class ExampleInstrumentedTest {
-  @Test
-  fun useAppContext() {
-    // Context of the app under test.
-    val appContext = InstrumentationRegistry.getTargetContext()
-    assertEquals("de.kuschku.quasseldroid_ng", appContext.packageName)
-  }
-}
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/SettingsFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/SettingsFragment.kt
index 7d580fb37..76e93128a 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/SettingsFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/SettingsFragment.kt
@@ -20,11 +20,11 @@ abstract class SettingsFragment : ServiceBoundFragment() {
 
   override fun onOptionsItemSelected(item: MenuItem?) = when (item?.itemId) {
     R.id.action_save -> {
-      onSave()
+      if (onSave()) activity?.finish()
       true
     }
     else             -> super.onOptionsItemSelected(item)
   }
 
-  abstract fun onSave()
+  abstract fun onSave(): Boolean
 }
\ No newline at end of file
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragment.kt
index 972ac1a51..098c19836 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/networkconfig/NetworkConfigFragment.kt
@@ -80,22 +80,22 @@ class NetworkConfigFragment : SettingsFragment() {
   }
 
 
-  override fun onSave() {
-    networkConfig?.let {
-      val config = it.copy()
-
-      config.setPingTimeoutEnabled(pingTimeoutEnabled.isChecked)
-      pingInterval.text.toString().toIntOrNull()?.let(config::setPingInterval)
-      maxPingCount.text.toString().toIntOrNull()?.let(config::setMaxPingCount)
-
-      config.setAutoWhoEnabled(autoWhoEnabled.isChecked)
-      autoWhoInterval.text.toString().toIntOrNull()?.let(config::setAutoWhoInterval)
-      autoWhoNickLimit.text.toString().toIntOrNull()?.let(config::setAutoWhoNickLimit)
-      autoWhoDelay.text.toString().toIntOrNull()?.let(config::setAutoWhoDelay)
-      config.setStandardCtcp(standardCtcp.isChecked)
-
-      val properties = config.toVariantMap()
-      it.requestUpdate(properties)
-    }
-  }
+  override fun onSave() = networkConfig?.let {
+    val config = it.copy()
+
+    config.setPingTimeoutEnabled(pingTimeoutEnabled.isChecked)
+    pingInterval.text.toString().toIntOrNull()?.let(config::setPingInterval)
+    maxPingCount.text.toString().toIntOrNull()?.let(config::setMaxPingCount)
+
+    config.setAutoWhoEnabled(autoWhoEnabled.isChecked)
+    autoWhoInterval.text.toString().toIntOrNull()?.let(config::setAutoWhoInterval)
+    autoWhoNickLimit.text.toString().toIntOrNull()?.let(config::setAutoWhoNickLimit)
+    autoWhoDelay.text.toString().toIntOrNull()?.let(config::setAutoWhoDelay)
+    config.setStandardCtcp(standardCtcp.isChecked)
+
+    val properties = config.toVariantMap()
+    it.requestUpdate(properties)
+
+    true
+  } ?: false
 }
\ No newline at end of file
-- 
GitLab