ConnectActionClientObject action = null;
try {
+ Instance.getTraceHandler().trace("Getting remote lib status...");
action = new ConnectActionClientObject(host, port, true) {
@Override
public void action(Version serverVersion) throws Exception {
}
}
+ Instance.getTraceHandler().trace("Remote lib status: " + result[0]);
return result[0];
}
}
@Override
- public Image getSourceCover(final String source) {
+ public Image getCustomSourceCover(final String source) {
+ return getCustomCover(source, "SOURCE");
+ }
+
+ @Override
+ public Image getCustomAuthorCover(final String author) {
+ return getCustomCover(author, "AUTHOR");
+ }
+
+ // type: "SOURCE" or "AUTHOR"
+ private Image getCustomCover(final String source, final String type) {
final Image[] result = new Image[1];
try {
new ConnectActionClientObject(host, port, true) {
@Override
public void action(Version serverVersion) throws Exception {
- Object rep = send(new Object[] { md5, "GET_SOURCE_COVER",
- source });
+ Object rep = send(new Object[] { md5, "GET_CUSTOM_COVER",
+ type, source });
result[0] = (Image) rep;
}
}.connect();
// because the meta changed:
- invalidateInfo(luidSaved[0]);
-
MetaData meta = getInfo(luidSaved[0]);
- meta.setCover(story.getMeta().getCover());
+ if (story.getMeta().getClass() != null) {
+ // If already available locally:
+ meta.setCover(story.getMeta().getCover());
+ } else {
+ // If required:
+ meta.setCover(getCover(meta.getLuid()));
+ }
story.setMeta(meta);
pg.done();
@Override
public void setSourceCover(final String source, final String luid) {
+ setCover(source, luid, "SOURCE");
+ }
+
+ @Override
+ public void setAuthorCover(final String author, final String luid) {
+ setCover(author, luid, "AUTHOR");
+ }
+
+ // type = "SOURCE" | "AUTHOR"
+ private void setCover(final String value, final String luid,
+ final String type) {
try {
new ConnectActionClientObject(host, port, true) {
@Override
public void action(Version serverVersion) throws Exception {
- send(new Object[] { md5, "SET_SOURCE_COVER", source, luid });
+ send(new Object[] { md5, "SET_COVER", type, value, luid });
}
@Override
@Override
// Could work (more slowly) without it
public Story imprt(final URL url, Progress pg) throws IOException {
+ // Import the file locally if it is actually a file
+ if (url == null || url.getProtocol().equalsIgnoreCase("file")) {
+ return super.imprt(url, pg);
+ }
+
+ // Import it remotely if it is an URL
+
if (pg == null) {
pg = new Progress();
}
@Override
// Could work (more slowly) without it
- public synchronized void changeSource(final String luid,
- final String newSource, Progress pg) throws IOException {
+ protected synchronized void changeSTA(final String luid,
+ final String newSource, final String newTitle,
+ final String newAuthor, Progress pg) throws IOException {
final Progress pgF = pg == null ? new Progress() : pg;
try {
public void action(Version serverVersion) throws Exception {
Progress pg = pgF;
- Object rep = send(new Object[] { md5, "CHANGE_SOURCE",
- luid, newSource });
+ Object rep = send(new Object[] { md5, "CHANGE_STA", luid,
+ newSource, newTitle, newAuthor });
while (true) {
if (!RemoteLibraryServer.updateProgress(pg, rep)) {
break;
return getMetasList("*", pg);
}
+ @Override
+ protected void updateInfo(MetaData meta) {
+ // Will be taken care of directly server side
+ }
+
@Override
protected void invalidateInfo(String luid) {
+ // Will be taken care of directly server side
}
// The following methods are only used by Save and Delete in BasicLibrary:
/**
* Return the meta of the given story or a list of all known metas if the
* luid is "*".
+ * <p>
+ * Will not get the covers.
*
* @param luid
* the luid of the story or *