1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-05 10:49:24 +02:00

more refactoring: String -> ZLNetworkException (code is still not compilable)

This commit is contained in:
Nikolay Pultsin 2010-10-09 06:38:36 +01:00
parent b2f140c612
commit b5aea623a2
12 changed files with 120 additions and 101 deletions

View file

@ -82,40 +82,46 @@ abstract class ItemsLoadingRunnable implements Runnable {
myUpdateInterval = updateIntervalMillis;
}
public abstract String doBefore();
public abstract void doBefore() throws ZLNetworkException;
public abstract void doLoading(NetworkOperationData.OnNewItemListener doWithListener) throws ZLNetworkException;
public abstract String getResourceKey();
public final void run() {
String err = doBefore();
if (err != null) {
myHandler.sendFinish(err, false);
try {
doBefore();
} catch (ZLNetworkException e) {
myHandler.sendFinish(e.getMessage(), false);
return;
}
err = doLoading(new NetworkOperationData.OnNewItemListener() {
private long myUpdateTime;
private int myItemsNumber;
public void onNewItem(INetworkLink link, NetworkLibraryItem item) {
myHandler.addItem(link, item);
++myItemsNumber;
final long now = System.currentTimeMillis();
if (now > myUpdateTime) {
myHandler.sendUpdateItems();
myUpdateTime = now + myUpdateInterval;
String error = null;
try {
doLoading(new NetworkOperationData.OnNewItemListener() {
private long myUpdateTime;
private int myItemsNumber;
public void onNewItem(INetworkLink link, NetworkLibraryItem item) {
myHandler.addItem(link, item);
++myItemsNumber;
final long now = System.currentTimeMillis();
if (now > myUpdateTime) {
myHandler.sendUpdateItems();
myUpdateTime = now + myUpdateInterval;
}
}
}
public boolean confirmInterrupt() {
return confirmInterruptLoading();
}
public void commitItems(INetworkLink link) {
myHandler.commitItems(link);
}
});
public boolean confirmInterrupt() {
return confirmInterruptLoading();
}
public void commitItems(INetworkLink link) {
myHandler.commitItems(link);
}
});
} catch (ZLNetworkException e) {
error = e.getMessage();
}
myHandler.sendUpdateItems();
myHandler.ensureItemsProcessed();
myHandler.sendFinish(err, isLoadingInterrupted());
myHandler.sendFinish(error, isLoadingInterrupted());
myHandler.ensureFinishProcessed();
}