2
0
mirror of https://github.com/KDE/kdeconnect-android synced 2025-09-02 07:05:09 +00:00

Fixed onPluginsChanged not being always called after calling addPlugin

This commit is contained in:
Albert Vaca
2014-10-10 12:38:11 -07:00
parent 54d24848e5
commit 5912611aab

View File

@@ -559,24 +559,25 @@ public class Device implements BaseLink.PackageReceiver {
@Override @Override
public void run() { public void run() {
boolean success;
try { try {
boolean success = plugin.onCreate(); success = plugin.onCreate();
if (!success) {
Log.e("addPlugin", "plugin failed to load " + name);
failedPlugins.put(name, plugin);
return;
}
} catch (Exception e) { } catch (Exception e) {
failedPlugins.put(name, plugin); success = false;
e.printStackTrace(); e.printStackTrace();
Log.e("addPlugin", "Exception loading plugin " + name); Log.e("addPlugin", "Exception loading plugin " + name);
return; return;
} }
//Log.e("addPlugin","added " + name); if (success) {
//Log.e("addPlugin","added " + name);
failedPlugins.remove(name); failedPlugins.remove(name);
plugins.put(name, plugin); plugins.put(name, plugin);
} else {
Log.e("addPlugin", "plugin failed to load " + name);
plugins.remove(name);
failedPlugins.put(name, plugin);
}
for (PluginsChangedListener listener : pluginsChangedListeners) { for (PluginsChangedListener listener : pluginsChangedListeners) {
listener.onPluginsChanged(Device.this); listener.onPluginsChanged(Device.this);
@@ -594,6 +595,7 @@ public class Device implements BaseLink.PackageReceiver {
if (plugin == null) { if (plugin == null) {
if (failedPlugin == null) { if (failedPlugin == null) {
//Not found
return false; return false;
} }
plugin = failedPlugin; plugin = failedPlugin;
@@ -601,20 +603,17 @@ public class Device implements BaseLink.PackageReceiver {
try { try {
plugin.onDestroy(); plugin.onDestroy();
//Log.e("removePlugin","removed " + name);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
Log.e("removePlugin","Exception calling onDestroy for plugin "+name); Log.e("removePlugin","Exception calling onDestroy for plugin "+name);
return false;
} }
//Log.e("removePlugin","removed " + name);
for (PluginsChangedListener listener : pluginsChangedListeners) { for (PluginsChangedListener listener : pluginsChangedListeners) {
listener.onPluginsChanged(this); listener.onPluginsChanged(this);
} }
return true; return true;
} }
public void setPluginEnabled(String pluginName, boolean value) { public void setPluginEnabled(String pluginName, boolean value) {
@@ -651,9 +650,7 @@ public class Device implements BaseLink.PackageReceiver {
} }
} }
for (PluginsChangedListener listener : pluginsChangedListeners) { //No need to call PluginsChangedListeners because addPlugin and removePlugin already do so
listener.onPluginsChanged(this);
}
} }
public HashMap<String,Plugin> getLoadedPlugins() { public HashMap<String,Plugin> getLoadedPlugins() {