X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Flibrary%2FRemoteLibraryServer.java;h=ff22a6db989706f1c3c0f709cd57f45166897a40;hb=c55de9d5b566076a4865ba9448c8f25255a49704;hp=4ee3f74d221c3497978cc57d70fc935fd466579f;hpb=3177622aa63d2e126ce9426b440a3443a2ea8bab;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/library/RemoteLibraryServer.java b/src/be/nikiroo/fanfix/library/RemoteLibraryServer.java index 4ee3f74..ff22a6d 100644 --- a/src/be/nikiroo/fanfix/library/RemoteLibraryServer.java +++ b/src/be/nikiroo/fanfix/library/RemoteLibraryServer.java @@ -405,22 +405,38 @@ public class RemoteLibraryServer extends ServerObject { * @return TRUE if it was a progress event, FALSE if not */ static boolean updateProgress(Progress pg, Object rep) { - if (rep instanceof Object[]) { + boolean updateProgress = false; + if (rep instanceof Integer[] && ((Integer[]) rep).length == 3) + updateProgress = true; + if (rep instanceof Object[] && ((Object[]) rep).length >= 5 + && "UPDATE".equals(((Object[]) rep)[0])) + updateProgress = true; + + if (updateProgress) { Object[] a = (Object[]) rep; - if (a.length >= 3) { - int min = (Integer)a[0]; - int max = (Integer)a[1]; - int progress = (Integer)a[2]; - - if (min >= 0 && min <= max) { - pg.setMinMax(min, max); - pg.setProgress(progress); - if (a.length >= 4) { - pg.put("meta", a[3]); - } - return true; + int offset = 0; + if (a[0] instanceof String) { + offset = 1; + } + + int min = (Integer) a[0 + offset]; + int max = (Integer) a[1 + offset]; + int progress = (Integer) a[2 + offset]; + + Object meta = null; + if (a.length > (3 + offset)) { + meta = a[3 + offset]; + } + + if (min >= 0 && min <= max) { + pg.setMinMax(min, max); + pg.setProgress(progress); + if (meta != null) { + pg.put("meta", meta); } + + return true; } } @@ -475,7 +491,7 @@ public class RemoteLibraryServer extends ServerObject { pMeta[0] = meta; try { - action.send(new Object[] { min, max, rel, meta }); + action.send(new Object[] { "UPDATE", min, max, rel, meta }); action.rec(); } catch (Exception e) { getTraceHandler().error(e); @@ -512,12 +528,14 @@ public class RemoteLibraryServer extends ServerObject { } private MetaData removeCover(MetaData meta) { - MetaData light; - if (meta.getCover() == null) { - light = meta; - } else { - light = meta.clone(); - light.setCover(null); + MetaData light = null; + if (meta != null) { + if (meta.getCover() == null) { + light = meta; + } else { + light = meta.clone(); + light.setCover(null); + } } return light;