From 40b4953f837338bd38d70e423f9c1ff582fe716a Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Fri, 11 Jan 2013 06:36:45 +0400 Subject: [PATCH] more methods in IBookCollection --- .../libraryService/BookCollectionShadow.java | 26 +++++++++++++++++-- .../libraryService/LibraryInterface.aidl | 2 ++ .../libraryService/LibraryService.java | 8 ++++++ .../fbreader/library/IBookCollection.java | 2 ++ 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/org/geometerplus/android/fbreader/libraryService/BookCollectionShadow.java b/src/org/geometerplus/android/fbreader/libraryService/BookCollectionShadow.java index 367cc9a46..d470e9dc8 100644 --- a/src/org/geometerplus/android/fbreader/libraryService/BookCollectionShadow.java +++ b/src/org/geometerplus/android/fbreader/libraryService/BookCollectionShadow.java @@ -50,6 +50,28 @@ public class BookCollectionShadow implements IBookCollection, ServiceConnection myContext.unbindService(this); } + public synchronized int size() { + if (myInterface == null) { + return 0; + } + try { + return myInterface.size(); + } catch (RemoteException e) { + return 0; + } + } + + public synchronized Book getRecentBook(int index) { + if (myInterface == null) { + return null; + } + try { + return SerializerUtil.deserializeBook(myInterface.recentBook(index)); + } catch (RemoteException e) { + return null; + } + } + public synchronized Book getBookById(long id) { if (myInterface == null) { return null; @@ -72,7 +94,7 @@ public class BookCollectionShadow implements IBookCollection, ServiceConnection } } - public void saveBookmark(Bookmark bookmark) { + public synchronized void saveBookmark(Bookmark bookmark) { if (myInterface != null) { try { bookmark.update(SerializerUtil.deserializeBookmark( @@ -83,7 +105,7 @@ public class BookCollectionShadow implements IBookCollection, ServiceConnection } } - public void deleteBookmark(Bookmark bookmark) { + public synchronized void deleteBookmark(Bookmark bookmark) { if (myInterface != null) { try { myInterface.deleteBookmark(SerializerUtil.serialize(bookmark)); diff --git a/src/org/geometerplus/android/fbreader/libraryService/LibraryInterface.aidl b/src/org/geometerplus/android/fbreader/libraryService/LibraryInterface.aidl index 4ecadc158..2ce213da6 100644 --- a/src/org/geometerplus/android/fbreader/libraryService/LibraryInterface.aidl +++ b/src/org/geometerplus/android/fbreader/libraryService/LibraryInterface.aidl @@ -7,7 +7,9 @@ package org.geometerplus.android.fbreader.libraryService; import java.util.List; interface LibraryInterface { + int size(); String bookById(in long id); + String recentBook(in int index); List allBookmarks(); String saveBookmark(in String bookmark); diff --git a/src/org/geometerplus/android/fbreader/libraryService/LibraryService.java b/src/org/geometerplus/android/fbreader/libraryService/LibraryService.java index 4fb8651f9..964736069 100644 --- a/src/org/geometerplus/android/fbreader/libraryService/LibraryService.java +++ b/src/org/geometerplus/android/fbreader/libraryService/LibraryService.java @@ -69,6 +69,14 @@ public class LibraryService extends Service { myCollection.startBuild(); } + public int size() { + return myCollection.size(); + } + + public String recentBook(int index) { + return SerializerUtil.serialize(myCollection.getRecentBook(index)); + } + public String bookById(long id) { return SerializerUtil.serialize(myCollection.getBookById(id)); } diff --git a/src/org/geometerplus/fbreader/library/IBookCollection.java b/src/org/geometerplus/fbreader/library/IBookCollection.java index a7dca050c..32ff31260 100644 --- a/src/org/geometerplus/fbreader/library/IBookCollection.java +++ b/src/org/geometerplus/fbreader/library/IBookCollection.java @@ -22,7 +22,9 @@ package org.geometerplus.fbreader.library; import java.util.List; public interface IBookCollection { + int size(); Book getBookById(long id); + Book getRecentBook(int index); List allBookmarks(); void saveBookmark(Bookmark bookmark);