Commit d5be325a authored by Mygod's avatar Mygod

Some bugfixes for new UI

parent a38c9920
...@@ -105,6 +105,7 @@ class ProfileConfigFragment extends PreferenceFragment with OnMenuItemClickListe ...@@ -105,6 +105,7 @@ class ProfileConfigFragment extends PreferenceFragment with OnMenuItemClickListe
pluginConfiguration = new PluginConfiguration(app.settings.getString(Key.plugin, null)) pluginConfiguration = new PluginConfiguration(app.settings.getString(Key.plugin, null))
plugin.setValue(pluginConfiguration.selected) plugin.setValue(pluginConfiguration.selected)
plugin.checkSummary() plugin.checkSummary()
pluginConfigure.setEnabled(!TextUtils.isEmpty(pluginConfiguration.selected))
pluginConfigure.setText(pluginConfiguration.selectedOptions.toString) pluginConfigure.setText(pluginConfiguration.selectedOptions.toString)
} }
......
...@@ -10,7 +10,7 @@ import scala.collection.mutable ...@@ -10,7 +10,7 @@ import scala.collection.mutable
*/ */
class PluginConfiguration(val pluginsOptions: Map[String, PluginOptions], val selected: String) { class PluginConfiguration(val pluginsOptions: Map[String, PluginOptions], val selected: String) {
private def this(plugins: Array[PluginOptions]) = 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 { def this(plugin: String) = this(if (plugin == null) Array[PluginOptions]() else plugin.split("\n").map {
case line if line.startsWith("kcptun ") => case line if line.startsWith("kcptun ") =>
val opt = new PluginOptions() val opt = new PluginOptions()
...@@ -30,7 +30,8 @@ class PluginConfiguration(val pluginsOptions: Map[String, PluginOptions], val se ...@@ -30,7 +30,8 @@ class PluginConfiguration(val pluginsOptions: Map[String, PluginOptions], val se
case line => new PluginOptions(line) 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 = { override def toString: String = {
val result = new mutable.ListBuffer[PluginOptions]() val result = new mutable.ListBuffer[PluginOptions]()
......
...@@ -34,7 +34,7 @@ final class BottomSheetPreferenceDialogFragment extends PreferenceDialogFragment ...@@ -34,7 +34,7 @@ final class BottomSheetPreferenceDialogFragment extends PreferenceDialogFragment
dialog 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 val value = preference.getEntryValues()(clickedIndex).toString
if (preference.callChangeListener(value)) preference.setValue(value) if (preference.callChangeListener(value)) preference.setValue(value)
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment