Skip to content

Commit 8591dea

Browse files
committed
Merge branch 'plugin-init-failures' into 'master'
Handle plugin init failures per source See merge request videostreaming/grayjay!168
2 parents 6e815dc + 22c5581 commit 8591dea

1 file changed

Lines changed: 17 additions & 9 deletions

File tree

app/src/main/java/com/futo/platformplayer/states/StatePlatform.kt

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -199,16 +199,24 @@ class StatePlatform {
199199
StatePlugins.instance.installMissingEmbeddedPlugins(context);
200200

201201
for (plugin in StatePlugins.instance.getPlugins()) {
202-
_icons[plugin.config.id] = StatePlugins.instance.getPluginIconOrNull(plugin.config.id) ?:
203-
ImageVariable(plugin.config.absoluteIconUrl, null);
204-
_iconsByName[plugin.config.name.lowercase()] = StatePlugins.instance.getPluginIconOrNull(plugin.config.id) ?:
205-
ImageVariable(plugin.config.absoluteIconUrl, null);
206-
207-
val client = JSClient(context, plugin);
208-
client.onCaptchaException.subscribe { c, ex ->
209-
StateApp.instance.handleCaptchaException(c, ex);
202+
try {
203+
val client = JSClient(context, plugin);
204+
client.onCaptchaException.subscribe { c, ex ->
205+
StateApp.instance.handleCaptchaException(c, ex);
206+
}
207+
208+
_icons[plugin.config.id] = StatePlugins.instance.getPluginIconOrNull(plugin.config.id) ?:
209+
ImageVariable(plugin.config.absoluteIconUrl, null);
210+
_iconsByName[plugin.config.name.lowercase()] = StatePlugins.instance.getPluginIconOrNull(plugin.config.id) ?:
211+
ImageVariable(plugin.config.absoluteIconUrl, null);
212+
_availableClients.add(client);
213+
}
214+
catch(ex: Throwable) {
215+
Logger.e(TAG, "Failed to initialize plugin [${plugin.config.name}]", ex);
216+
StateApp.instance.scopeOrNull?.launch(Dispatchers.Main) {
217+
UIDialogs.toast("Plugin ${plugin.config.name} failed to load\n${ex.message}");
218+
}
210219
}
211-
_availableClients.add(client);
212220
}
213221

214222
if(_availableClients.distinctBy { it.id }.count() < _availableClients.size) {

0 commit comments

Comments
 (0)