Commit 7e1a4c57 authored by Mygod's avatar Mygod

Ensure no duplicate ID/aliases

parent fbeb11a2
...@@ -31,10 +31,11 @@ class PluginList : ArrayList<Plugin>() { ...@@ -31,10 +31,11 @@ class PluginList : ArrayList<Plugin>() {
Intent(PluginContract.ACTION_NATIVE_PLUGIN), PackageManager.GET_META_DATA).map { NativePlugin(it) }) Intent(PluginContract.ACTION_NATIVE_PLUGIN), PackageManager.GET_META_DATA).map { NativePlugin(it) })
} }
val lookup = flatMap { plugin -> val lookup = mutableMapOf<String, Plugin>().apply {
sequence { for (plugin in this@PluginList) {
yield(plugin.id to plugin) fun check(old: Plugin?) = check(old == null || old === plugin)
for (alias in plugin.idAliases) yield(alias to plugin) check(put(plugin.id, plugin))
}.asIterable() for (alias in plugin.idAliases) check(put(alias, plugin))
}.associate { it } }
}
} }
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