From 726c28111df242c46f61a34dac9d0e1ac0bfc52f Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Sat, 18 Jun 2011 20:13:04 +0100 Subject: [PATCH] more methods in API --- .../android/fbreader/api/ApiImplementation.java | 15 ++++++++++++++- .../android/fbreader/api/ApiInterface.aidl | 5 +++++ .../fbreader/api/ApiServiceConnection.java | 9 +++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/org/geometerplus/android/fbreader/api/ApiImplementation.java b/src/org/geometerplus/android/fbreader/api/ApiImplementation.java index 47ffa024d..15ec2a77c 100644 --- a/src/org/geometerplus/android/fbreader/api/ApiImplementation.java +++ b/src/org/geometerplus/android/fbreader/api/ApiImplementation.java @@ -26,6 +26,12 @@ import org.geometerplus.fbreader.fbreader.FBReaderApp; public class ApiImplementation extends ApiInterface.Stub { private final FBReaderApp myReader = (FBReaderApp)FBReaderApp.Instance(); + @Override + public String getBookLanguage() { + // TODO: check for NPE + return myReader.Model.Book.getLanguage(); + } + private TextPosition getTextPosition(ZLTextWordCursor cursor) { return new TextPosition( cursor.getParagraphIndex(), @@ -56,9 +62,16 @@ public class ApiImplementation extends ApiInterface.Stub { return myReader.Model.BookTextModel.getParagraphsNumber(); } + @Override + public int getElementsNumber(int paragraphIndex) { + final ZLTextWordCursor cursor = new ZLTextWordCursor(myReader.getTextView().getStartCursor()); + cursor.moveToParagraph(paragraphIndex); + cursor.moveToParagraphEnd(); + return cursor.getElementIndex(); + } + @Override public String getParagraphText(int paragraphIndex) { - // TODO: check for NPEs final StringBuffer sb = new StringBuffer(); final ZLTextWordCursor cursor = new ZLTextWordCursor(myReader.getTextView().getStartCursor()); cursor.moveToParagraph(paragraphIndex); diff --git a/src/org/geometerplus/android/fbreader/api/ApiInterface.aidl b/src/org/geometerplus/android/fbreader/api/ApiInterface.aidl index 218c94d5c..6aea5c10f 100644 --- a/src/org/geometerplus/android/fbreader/api/ApiInterface.aidl +++ b/src/org/geometerplus/android/fbreader/api/ApiInterface.aidl @@ -22,7 +22,12 @@ package org.geometerplus.android.fbreader.api; import org.geometerplus.android.fbreader.api.TextPosition; interface ApiInterface { + //ApiObject request(String name, ApiObject[] parameters); + int getParagraphsNumber(); + int getElementsNumber(int paragraphIndex); + + String getBookLanguage(); TextPosition getPageStart(); TextPosition getPageEnd(); diff --git a/src/org/geometerplus/android/fbreader/api/ApiServiceConnection.java b/src/org/geometerplus/android/fbreader/api/ApiServiceConnection.java index 4a7f1585e..8a6b7ce2b 100644 --- a/src/org/geometerplus/android/fbreader/api/ApiServiceConnection.java +++ b/src/org/geometerplus/android/fbreader/api/ApiServiceConnection.java @@ -65,6 +65,15 @@ public class ApiServiceConnection implements ServiceConnection { } } + public synchronized String getBookLanguage() throws ApiException { + checkConnection(); + try { + return myInterface.getBookLanguage(); + } catch (android.os.RemoteException e) { + throw new ApiException(e); + } + } + public synchronized TextPosition getPageStart() throws ApiException { checkConnection(); try {