Skip to content
Snippets Groups Projects
Commit 851a4757 authored by Pierre Nicolas's avatar Pierre Nicolas :joy: Committed by Pierre Nicolas
Browse files

plugin: improve load/unload plugin user experience

GitLab: #1475

Change-Id: I8838d5d8885ee30b06e74e379033c1a012b12fc1
parent f2a2c344
Branches
Tags
No related merge requests found
...@@ -29,6 +29,9 @@ class PluginsListAdapter(private var mList: List<PluginDetails>, private val lis ...@@ -29,6 +29,9 @@ class PluginsListAdapter(private var mList: List<PluginDetails>, private val lis
return PluginSettingViewHolder(view, listener) return PluginSettingViewHolder(view, listener)
} }
fun notifyItemChanged(pluginDetails: PluginDetails) =
mList.indexOf(pluginDetails).let { if (it != -1) notifyItemChanged(it) }
override fun onBindViewHolder(holderSetting: PluginSettingViewHolder, position: Int) { override fun onBindViewHolder(holderSetting: PluginSettingViewHolder, position: Int) {
for (item in mList) { for (item in mList) {
item.accountId = accountId item.accountId = accountId
......
...@@ -87,14 +87,22 @@ class PluginsListSettingsFragment : Fragment(), PluginListItemListener { ...@@ -87,14 +87,22 @@ class PluginsListSettingsFragment : Fragment(), PluginListItemListener {
* @param pluginDetails instance of a plugin details that is sent to PluginSettingsFragment * @param pluginDetails instance of a plugin details that is sent to PluginSettingsFragment
*/ */
override fun onPluginEnabled(pluginDetails: PluginDetails) { override fun onPluginEnabled(pluginDetails: PluginDetails) {
var status: String?
if (pluginDetails.isEnabled) { if (pluginDetails.isEnabled) {
pluginDetails.isEnabled = loadPlugin(pluginDetails.rootPath) pluginDetails.isEnabled = loadPlugin(pluginDetails.rootPath)
status =
if (pluginDetails.isEnabled) getString(R.string.load_sucess, pluginDetails.name)
else {
mAdapter?.notifyItemChanged(pluginDetails)
getString(R.string.unable_to_load, pluginDetails.name)
}
} else { } else {
unloadPlugin(pluginDetails.rootPath) unloadPlugin(pluginDetails.rootPath)
status = getString(R.string.unload_sucess, pluginDetails.name)
} }
val status = if (pluginDetails.isEnabled) "ON" else "OFF"
Toast.makeText( Toast.makeText(
requireContext(), pluginDetails.name + " " + status, requireContext(), status,
Toast.LENGTH_SHORT Toast.LENGTH_SHORT
).show() ).show()
} }
......
...@@ -476,4 +476,9 @@ along with this program; if not, write to the Free Software ...@@ -476,4 +476,9 @@ along with this program; if not, write to the Free Software
<string name="donation_setting_description">Enable the donation reminder</string> <string name="donation_setting_description">Enable the donation reminder</string>
<string name="donation_url" translatable="false">https://crowdfunding.lfx.linuxfoundation.org/projects/jami-a-gnu-package</string> <string name="donation_url" translatable="false">https://crowdfunding.lfx.linuxfoundation.org/projects/jami-a-gnu-package</string>
<!-- Plugin -->
<string name="unable_to_load">Unable to load %1$s</string>
<string name="load_sucess">%1$s: enabled</string>
<string name="unload_sucess">%1$s: disabled</string>
</resources> </resources>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment