mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-04 02:09:35 +02:00
code simplification
This commit is contained in:
parent
33a95947a1
commit
0916840fce
3 changed files with 22 additions and 23 deletions
|
@ -19,6 +19,8 @@
|
|||
|
||||
package org.geometerplus.android.fbreader.network;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
|
@ -26,8 +28,7 @@ import android.database.sqlite.SQLiteStatement;
|
|||
|
||||
import org.geometerplus.zlibrary.ui.android.library.ZLAndroidApplication;
|
||||
|
||||
import org.geometerplus.fbreader.network.ICustomNetworkLink;
|
||||
import org.geometerplus.fbreader.network.NetworkDatabase;
|
||||
import org.geometerplus.fbreader.network.*;
|
||||
import org.geometerplus.fbreader.network.urlInfo.*;
|
||||
|
||||
import org.geometerplus.android.util.SQLiteUtil;
|
||||
|
@ -77,7 +78,9 @@ class SQLiteNetworkDatabase extends NetworkDatabase {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void loadCustomLinks(ICustomLinksHandler handler) {
|
||||
protected List<INetworkLink> loadLinks() {
|
||||
final List<INetworkLink> links = new LinkedList<INetworkLink>();
|
||||
|
||||
final Cursor cursor = myDatabase.rawQuery("SELECT link_id,title,site_name,summary FROM Links", null);
|
||||
final UrlInfoCollection<UrlInfoWithDate> linksMap = new UrlInfoCollection<UrlInfoWithDate>();
|
||||
while (cursor.moveToNext()) {
|
||||
|
@ -102,9 +105,14 @@ class SQLiteNetworkDatabase extends NetworkDatabase {
|
|||
}
|
||||
linksCursor.close();
|
||||
|
||||
handler.handleCustomLinkData(id, siteName, title, summary, linksMap);
|
||||
final INetworkLink l = createLink(id, siteName, title, summary, linksMap);
|
||||
if (l != null) {
|
||||
links.add(l);
|
||||
}
|
||||
}
|
||||
cursor.close();
|
||||
|
||||
return links;
|
||||
}
|
||||
|
||||
private SQLiteStatement myInsertCustomLinkStatement;
|
||||
|
|
|
@ -19,7 +19,10 @@
|
|||
|
||||
package org.geometerplus.fbreader.network;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.geometerplus.fbreader.network.urlInfo.*;
|
||||
import org.geometerplus.fbreader.network.opds.OPDSCustomLink;
|
||||
|
||||
public abstract class NetworkDatabase {
|
||||
private static NetworkDatabase ourInstance;
|
||||
|
@ -34,11 +37,14 @@ public abstract class NetworkDatabase {
|
|||
|
||||
protected abstract void executeAsATransaction(Runnable actions);
|
||||
|
||||
public interface ICustomLinksHandler {
|
||||
void handleCustomLinkData(int id, String siteName, String title, String summary, UrlInfoCollection<UrlInfoWithDate> infos);
|
||||
protected INetworkLink createLink(int id, String siteName, String title, String summary, UrlInfoCollection<UrlInfoWithDate> infos) {
|
||||
if (siteName == null || title == null || infos.getInfo(UrlInfo.Type.Catalog) == null) {
|
||||
return null;
|
||||
}
|
||||
return new OPDSCustomLink(id, siteName, title, summary, infos);
|
||||
}
|
||||
|
||||
protected abstract void loadCustomLinks(ICustomLinksHandler handler);
|
||||
protected abstract List<INetworkLink> loadLinks();
|
||||
protected abstract void saveCustomLink(ICustomNetworkLink link);
|
||||
protected abstract void deleteCustomLink(ICustomNetworkLink link);
|
||||
}
|
||||
|
|
|
@ -31,7 +31,6 @@ import org.geometerplus.zlibrary.core.language.ZLLanguageUtil;
|
|||
|
||||
import org.geometerplus.fbreader.tree.FBTree;
|
||||
import org.geometerplus.fbreader.network.tree.*;
|
||||
import org.geometerplus.fbreader.network.opds.OPDSCustomLink;
|
||||
import org.geometerplus.fbreader.network.opds.OPDSLinkReader;
|
||||
import org.geometerplus.fbreader.network.urlInfo.*;
|
||||
|
||||
|
@ -180,21 +179,7 @@ public class NetworkLibrary {
|
|||
|
||||
final NetworkDatabase db = NetworkDatabase.Instance();
|
||||
if (db != null) {
|
||||
db.loadCustomLinks(
|
||||
new NetworkDatabase.ICustomLinksHandler() {
|
||||
public void handleCustomLinkData(int id, String siteName,
|
||||
String title, String summary, UrlInfoCollection<UrlInfoWithDate> infos) {
|
||||
if (title != null &&
|
||||
siteName != null &&
|
||||
infos.getInfo(UrlInfo.Type.Catalog) != null) {
|
||||
final ICustomNetworkLink link = new OPDSCustomLink(
|
||||
id, siteName, title, summary, infos
|
||||
);
|
||||
myLinks.add(link);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
myLinks.addAll(db.loadLinks());
|
||||
}
|
||||
|
||||
myIsAlreadyInitialized = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue