From d5be325ab5815dc3eb35f8beaf61a9e391b32a8d Mon Sep 17 00:00:00 2001 From: Mygod Date: Sat, 14 Jan 2017 02:31:01 +0800 Subject: [PATCH] Some bugfixes for new UI --- .../scala/com/github/shadowsocks/ProfileConfigFragment.scala | 1 + .../com/github/shadowsocks/plugin/PluginConfiguration.scala | 5 +++-- .../preference/BottomSheetPreferenceDialogFragment.scala | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/mobile/src/main/scala/com/github/shadowsocks/ProfileConfigFragment.scala b/mobile/src/main/scala/com/github/shadowsocks/ProfileConfigFragment.scala index bb82e5c1..d30e8b66 100644 --- a/mobile/src/main/scala/com/github/shadowsocks/ProfileConfigFragment.scala +++ b/mobile/src/main/scala/com/github/shadowsocks/ProfileConfigFragment.scala @@ -105,6 +105,7 @@ class ProfileConfigFragment extends PreferenceFragment with OnMenuItemClickListe pluginConfiguration = new PluginConfiguration(app.settings.getString(Key.plugin, null)) plugin.setValue(pluginConfiguration.selected) plugin.checkSummary() + pluginConfigure.setEnabled(!TextUtils.isEmpty(pluginConfiguration.selected)) pluginConfigure.setText(pluginConfiguration.selectedOptions.toString) } diff --git a/mobile/src/main/scala/com/github/shadowsocks/plugin/PluginConfiguration.scala b/mobile/src/main/scala/com/github/shadowsocks/plugin/PluginConfiguration.scala index 23c873e3..b94ebdce 100644 --- a/mobile/src/main/scala/com/github/shadowsocks/plugin/PluginConfiguration.scala +++ b/mobile/src/main/scala/com/github/shadowsocks/plugin/PluginConfiguration.scala @@ -10,7 +10,7 @@ import scala.collection.mutable */ class PluginConfiguration(val pluginsOptions: Map[String, PluginOptions], val selected: String) { private def this(plugins: Array[PluginOptions]) = - this(plugins.map(opt => opt.id -> opt).toMap, if (plugins.isEmpty) "" else plugins(0).id) + this(plugins.filter(_.id.nonEmpty).map(opt => opt.id -> opt).toMap, if (plugins.isEmpty) "" else plugins(0).id) def this(plugin: String) = this(if (plugin == null) Array[PluginOptions]() else plugin.split("\n").map { case line if line.startsWith("kcptun ") => val opt = new PluginOptions() @@ -30,7 +30,8 @@ class PluginConfiguration(val pluginsOptions: Map[String, PluginOptions], val se case line => new PluginOptions(line) }) - def selectedOptions: PluginOptions = pluginsOptions(selected) + def getOptions(id: String): PluginOptions = if (id.isEmpty) new PluginOptions() else pluginsOptions(id) + def selectedOptions: PluginOptions = getOptions(selected) override def toString: String = { val result = new mutable.ListBuffer[PluginOptions]() diff --git a/mobile/src/main/scala/com/github/shadowsocks/preference/BottomSheetPreferenceDialogFragment.scala b/mobile/src/main/scala/com/github/shadowsocks/preference/BottomSheetPreferenceDialogFragment.scala index 1caf4ff0..d0105e08 100644 --- a/mobile/src/main/scala/com/github/shadowsocks/preference/BottomSheetPreferenceDialogFragment.scala +++ b/mobile/src/main/scala/com/github/shadowsocks/preference/BottomSheetPreferenceDialogFragment.scala @@ -34,7 +34,7 @@ final class BottomSheetPreferenceDialogFragment extends PreferenceDialogFragment dialog } - def onDialogClosed(positiveResult: Boolean): Unit = if (clickedIndex >= 0) { + def onDialogClosed(positiveResult: Boolean): Unit = if (clickedIndex >= 0 && clickedIndex != index) { val value = preference.getEntryValues()(clickedIndex).toString if (preference.callChangeListener(value)) preference.setValue(value) }