java.lang.RuntimeException: Unable to resume activity {org.benetech.android/org.geometerplus.android.fbreader.network.bookshare.Bookshare_Book_Details}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=2, data=Intent { (has extras) }} to activity {org.benetech.android/org.geometerplus.android.fbreader.network.bookshare.Bookshare_Book_Details}: java.lang.NullPointerException
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2444)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2472)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1986)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=2, data=Intent { (has extras) }} to activity {org.benetech.android/org.geometerplus.android.fbreader.network.bookshare.Bookshare_Book_Details}: java.lang.NullPointerException
at android.app.ActivityThread.deliverResults(ActivityThread.java:2980)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2431)
... 12 more
Caused by: java.lang.NullPointerException
at org.geometerplus.android.fbreader.network.bookshare.az.onPreExecute(Unknown Source)
at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:561)
at android.os.AsyncTask.execute(AsyncTask.java:511)
at org.geometerplus.android.fbreader.network.bookshare.Bookshare_Book_Details.onActivityResult(Unknown Source)
at android.app.Activity.dispatchActivityResult(Activity.java:4649)
at android.app.ActivityThread.deliverResults(ActivityThread.java:2976)
... 13 more
The login required prompt appears. Why? We don't present such a dialog when browsing books, most of which cannot be downloaded w/out logging in.
Note that the same dialog appears each and every time an unauthenticated user searches periodicals. If we're going to display such a prompt, we should do so once only.
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.android.settings.TTS_SETTINGS flg=0x10000000 }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1409)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379)
at android.app.Activity.startActivityForResult(Activity.java:2863)
at android.app.Activity.startActivity(Activity.java:2969)
at org.geometerplus.android.fbreader.benetech.af.a(Unknown Source)
at org.geometerplus.android.fbreader.benetech.c.a(Unknown Source)
at org.geometerplus.android.fbreader.benetech.ak.onItemClick(Unknown Source)
at android.widget.AdapterView.performItemClick(AdapterView.java:284)
at android.widget.ListView.performItemClick(ListView.java:3513)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:1974)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:850)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
at dalvik.system.NativeStart.main(Native Method)
While this is supposedly a free software project, it can't be built or distributed without requesting and providing API keys. Thus it is impossible for the likes of F-droid.org to re-destribute the app, because exposing API keys is against the terms of service of mashing/bookshare. The solution to this kind of problem have been well discussed: provide an interface within the app to insert keys, provide a proxy to process queries, obfuscate the keys according to the tolerance of the service provider. None of these are easy solutions, but I just wanted to bring this issue to your attention.
java.lang.NullPointerException
at org.geometerplus.android.fbreader.benetech.SpeakActivity.j(Unknown Source)
at org.geometerplus.android.fbreader.benetech.SpeakActivity.k(Unknown Source)
at org.geometerplus.android.fbreader.benetech.SpeakActivity.c(Unknown Source)
at org.accessibility.c.onDoubleTap(Unknown Source)
at android.view.GestureDetector.onTouchEvent(GestureDetector.java:1247)
at org.accessibility.c.a(Unknown Source)
at org.geometerplus.android.fbreader.benetech.SpeakActivity.dispatchTouchEvent(Unknown Source)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2024)
at android.view.View.dispatchPointerEvent(View.java:5775)
at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3175)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2684)
at android.view.ViewRootImpl.processInputEvents(ViewRootImpl.java:1051)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2693)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4514)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
at dalvik.system.NativeStart.main(Native Method)
java.lang.IllegalArgumentException: View not attached to window manager
at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:381)
at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:226)
at android.view.Window$LocalWindowManager.removeView(Window.java:432)
at android.app.Dialog.dismissDialog(Dialog.java:279)
at android.app.Dialog.access$000(Dialog.java:72)
at android.app.Dialog$1.run(Dialog.java:112)
at android.app.Dialog.dismiss(Dialog.java:269)
at android.app.Dialog.cancel(Dialog.java:966)
at org.geometerplus.android.fbreader.network.bookshare.ap.handleMessage(Unknown Source)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
The "Newspapers & Magazines" UI should work like the Books UI (Latest Books or Popular Books for example).
Remove the "Login Required" popups completely from the app. Instead, on the first page that lists the periodicals, show the downloadable icon or the following text "( not downloadable )" underneath the periodical name. This is similar to how the books work. In the periodical detail screen, when the user is not logged in, show the following text instead of the download button, "You must sign in to Bookshare to download this periodical." An example of this can be found in a book detail screen.
Remove the search/filter box from the top of the periodical list screen. This is inconsistent with the way the books list screens work.
java.lang.NullPointerException
at org.geometerplus.android.fbreader.benetech.SpeakActivity.b(Unknown Source)
at org.geometerplus.android.fbreader.benetech.SpeakActivity.f(Unknown Source)
at org.geometerplus.android.fbreader.benetech.SpeakActivity.onInit(Unknown Source)
at android.speech.tts.TextToSpeech.dispatchOnInit(TextToSpeech.java:627)
at android.speech.tts.TextToSpeech.access$1000(TextToSpeech.java:52)
at android.speech.tts.TextToSpeech$Connection.onServiceConnected(TextToSpeech.java:1279)
at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1068)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1085)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4514)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
java.lang.NullPointerException
at org.geometerplus.android.fbreader.benetech.SpeakActivity.n(Unknown Source)
at org.geometerplus.android.fbreader.benetech.SpeakActivity.a(Unknown Source)
at org.accessibility.c.onFling(Unknown Source)
at android.view.GestureDetector.onTouchEvent(GestureDetector.java:568)
at org.accessibility.c.a(Unknown Source)
at org.geometerplus.android.fbreader.benetech.SpeakActivity.dispatchTouchEvent(Unknown Source)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1734)
at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2216)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1887)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
at dalvik.system.NativeStart.main(Native Method)
org.geometerplus.zlibrary.text.model.CachedCharStorageException: Error during writing /mnt/sdcard/Books/.FBReader/8.links
at org.geometerplus.zlibrary.text.model.b.b(Unknown Source)
at org.geometerplus.fbreader.e.b.a(Unknown Source)
at org.geometerplus.fbreader.e.e.d(Unknown Source)
at org.geometerplus.fbreader.c.a.j.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.c.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.c.b(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.d.c(Unknown Source)
at org.geometerplus.fbreader.c.a.j.a(Unknown Source)
at org.geometerplus.fbreader.c.a.h.a(Unknown Source)
at org.geometerplus.fbreader.c.a.t.a(Unknown Source)
at org.geometerplus.fbreader.e.b.a(Unknown Source)
at org.geometerplus.fbreader.d.f.b(Unknown Source)
at org.geometerplus.fbreader.d.k.run(Unknown Source)
at org.geometerplus.android.a.d.run(Unknown Source)
at java.lang.Thread.run(Thread.java:856)
org.geometerplus.zlibrary.text.model.CachedCharStorageException: Error during writing /storage/emulated/0/eBooks/.FBReader/0.cache
at org.geometerplus.zlibrary.text.model.b.b(Unknown Source)
at org.geometerplus.zlibrary.text.model.j.d(Unknown Source)
at org.geometerplus.zlibrary.text.model.j.a(Unknown Source)
at org.geometerplus.fbreader.e.e.a(Unknown Source)
at org.geometerplus.fbreader.e.e.h(Unknown Source)
at org.geometerplus.fbreader.c.e.i.a(Unknown Source)
at org.geometerplus.fbreader.c.e.c.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.c.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.c.b(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.d.c(Unknown Source)
at org.geometerplus.fbreader.c.e.c.a(Unknown Source)
at org.geometerplus.fbreader.c.d.m.a(Unknown Source)
at org.geometerplus.fbreader.c.d.j.a(Unknown Source)
at org.geometerplus.fbreader.e.b.a(Unknown Source)
at org.geometerplus.fbreader.d.f.b(Unknown Source)
at org.geometerplus.fbreader.d.k.run(Unknown Source)
at org.geometerplus.android.a.d.run(Unknown Source)
at java.lang.Thread.run(Thread.java:856)
The list of all periodicals appears, as expected. However, a search input field also appears, with focus and in edit mode with virtual keyboard. Talkback says "Search complete. Books list. Edit box. Showing items 1 to 8 of 101."
It should say "periodicals list", rather than books list.
Why is the edit box enabled from the get-go? Couldn't we make search the first option in the list?
If we do want to enable search immediately, we should explain what the edit box is for (e.g., "enter name of periodical to find the periodical you're looking for")
org.geometerplus.zlibrary.text.model.CachedCharStorageException: Error during writing /mnt/sdcard/Books/.FBReader/0.cache
at org.geometerplus.zlibrary.text.model.b.b(Unknown Source)
at org.geometerplus.zlibrary.text.model.j.d(Unknown Source)
at org.geometerplus.zlibrary.text.model.j.a(Unknown Source)
at org.geometerplus.fbreader.e.e.a(Unknown Source)
at org.geometerplus.fbreader.e.e.a(Unknown Source)
at org.geometerplus.fbreader.c.a.e.a(Unknown Source)
at org.geometerplus.fbreader.c.a.j.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.c.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.c.b(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.d.c(Unknown Source)
at org.geometerplus.fbreader.c.a.j.a(Unknown Source)
at org.geometerplus.fbreader.c.a.h.a(Unknown Source)
at org.geometerplus.fbreader.c.a.t.a(Unknown Source)
at org.geometerplus.fbreader.e.b.a(Unknown Source)
at org.geometerplus.fbreader.d.f.b(Unknown Source)
at org.geometerplus.fbreader.d.k.run(Unknown Source)
at org.geometerplus.android.a.d.run(Unknown Source)
at java.lang.Thread.run(Thread.java:1019)
org.geometerplus.zlibrary.text.model.CachedCharStorageException: Error during writing /storage/exsdcard/Books/.FBReader/0.cache
at org.geometerplus.zlibrary.text.model.b.b(Unknown Source)
at org.geometerplus.zlibrary.text.model.j.d(Unknown Source)
at org.geometerplus.zlibrary.text.model.j.a(Unknown Source)
at org.geometerplus.fbreader.e.e.c(Unknown Source)
at org.geometerplus.fbreader.e.e.g(Unknown Source)
at org.geometerplus.fbreader.c.e.f.a(Unknown Source)
at org.geometerplus.fbreader.c.e.c.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.c.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.c.b(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.d.c(Unknown Source)
at org.geometerplus.fbreader.c.e.c.a(Unknown Source)
at org.geometerplus.fbreader.c.d.m.a(Unknown Source)
at org.geometerplus.fbreader.c.d.j.a(Unknown Source)
at org.geometerplus.fbreader.e.b.a(Unknown Source)
at org.geometerplus.fbreader.d.f.b(Unknown Source)
at org.geometerplus.fbreader.d.k.run(Unknown Source)
at org.geometerplus.android.a.d.run(Unknown Source)
at java.lang.Thread.run(Thread.java:856)
I read the reviews of Go Read on Google Play an I found an interesting idea: Allow the audio to continue in background while the user can navigate to other applications.
It will be like an audio player. To implement this I am thinking that we should use android Services.
org.geometerplus.zlibrary.text.model.CachedCharStorageException: Error during writing /storage
/.FBReader/0.cache
at org.geometerplus.zlibrary.text.model.b.b(Unknown Source)
at org.geometerplus.zlibrary.text.model.j.d(Unknown Source)
at org.geometerplus.zlibrary.text.model.j.a(Unknown Source)
at org.geometerplus.fbreader.e.e.a(Unknown Source)
at org.geometerplus.fbreader.e.e.a(Unknown Source)
at org.geometerplus.fbreader.c.a.e.a(Unknown Source)
at org.geometerplus.fbreader.c.a.j.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.c.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.c.b(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.d.c(Unknown Source)
at org.geometerplus.fbreader.c.a.j.a(Unknown Source)
at org.geometerplus.fbreader.c.a.h.a(Unknown Source)
at org.geometerplus.fbreader.c.a.t.a(Unknown Source)
at org.geometerplus.fbreader.e.b.a(Unknown Source)
at org.geometerplus.fbreader.d.f.b(Unknown Source)
at org.geometerplus.fbreader.d.m.run(Unknown Source)
at org.geometerplus.android.a.d.run(Unknown Source)
at java.lang.Thread.run(Thread.java:856)
android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@4103bce8 is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:513)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:301)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
at android.view.Window$LocalWindowManager.addView(Window.java:537)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2507)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1986)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/data/org.benetech.android/databases/periodicals.db
at android.database.sqlite.SQLiteClosable.acquireReference(SQLiteClosable.java:55)
at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1156)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1032)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1200)
at org.geometerplus.android.fbreader.network.bookshare.subscription.j.a(Unknown Source)
at org.geometerplus.android.fbreader.network.bookshare.v.a(Unknown Source)
at org.geometerplus.android.fbreader.network.bookshare.v.onPostExecute(Unknown Source)
at android.os.AsyncTask.finish(AsyncTask.java:631)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
at dalvik.system.NativeStart.main(Native Method)
java.lang.NumberFormatException: Invalid int: "ul"
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parse(Integer.java:375)
at java.lang.Integer.parseInt(Integer.java:366)
at java.lang.Integer.parseInt(Integer.java:332)
at java.lang.Integer.valueOf(Integer.java:490)
at org.geometerplus.fbreader.c.a.k.b(Unknown Source)
at org.geometerplus.fbreader.c.a.j.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.c.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.c.b(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.b.a(Unknown Source)
at org.geometerplus.zlibrary.core.d.d.c(Unknown Source)
at org.geometerplus.fbreader.c.a.j.a(Unknown Source)
at org.geometerplus.fbreader.c.a.h.a(Unknown Source)
at org.geometerplus.fbreader.c.a.t.a(Unknown Source)
at org.geometerplus.fbreader.e.b.a(Unknown Source)
at org.geometerplus.fbreader.d.f.b(Unknown Source)
at org.geometerplus.fbreader.d.m.run(Unknown Source)
at org.geometerplus.android.a.d.run(Unknown Source)
at java.lang.Thread.run(Thread.java:856)
I have an issue that i am unable to find gen folder as well as r.java folder in the respiratory and also the application is unable load native library.
Navigation to prev/next section (in Read to Me) results app reading from the beginning of the section, but highlighter sometimes does not highlight the first sentence of the section but some middle sentence.
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.NullPointerException
at org.geometerplus.android.fbreader.network.bookshare.az.a(Unknown Source)
at org.geometerplus.android.fbreader.network.bookshare.az.doInBackground(Unknown Source)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
... 4 more
java.lang.IllegalArgumentException: View not attached to window manager
at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200)
at android.view.Window$LocalWindowManager.removeView(Window.java:432)
at android.app.Dialog.dismissDialog(Dialog.java:278)
at android.app.Dialog.access$000(Dialog.java:71)
at android.app.Dialog$1.run(Dialog.java:111)
at android.app.Dialog.dismiss(Dialog.java:268)
at android.app.Dialog.cancel(Dialog.java:951)
at org.geometerplus.android.fbreader.network.bookshare.ay.a(Unknown Source)
at org.geometerplus.android.fbreader.network.bookshare.ay.onPostExecute(Unknown Source)
at android.os.AsyncTask.finish(AsyncTask.java:417)
at android.os.AsyncTask.access$300(AsyncTask.java:127)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
java.lang.RuntimeException: Unable to stop activity {org.benetech.android/org.geometerplus.android.fbreader.benetech.SpeakActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3023)
at android.app.ActivityThread.handleWindowVisibility(ActivityThread.java:3124)
at android.app.ActivityThread.access$1000(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4921)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at org.geometerplus.android.fbreader.api.a.l(Unknown Source)
at org.geometerplus.android.fbreader.benetech.SpeakActivity.onStop(Unknown Source)
at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1207)
at android.app.Activity.performStop(Activity.java:5388)
at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3020)
... 11 more
java.lang.RuntimeException: Unable to stop activity {org.benetech.android/org.geometerplus.android.fbreader.benetech.SpeakActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3076)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3130)
at android.app.ActivityThread.access$1200(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1180)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at org.geometerplus.android.fbreader.benetech.SpeakActivity.a(Unknown Source)
at org.geometerplus.android.fbreader.benetech.SpeakActivity.onStop(Unknown Source)
at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1174)
at android.app.Activity.performStop(Activity.java:4603)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3071)
... 11 more
Download requests can be initiated for DAISY titles with images as an asynchronous request. This is done by requesting version number 4 instead of version number 1 (possibly not yet documented) in the download request API request:
When the download is ready the user receives an email with a download link to download the book to their SD card or open the zip package via apps that can open zip packages.
There is a separate issue (#2) around having Go Read support opening zip files via an open intent.
Revision information is returned by the web service, but there's no reason to display this to the end user. If it had meaning, such as morning edition or evening edition, then we could show it. As such, it conveys no information to a user.
FBReaderJ has still some inaccessible components like the options menu. Making these components accessible can be achieved by using the library available at https://github.com/idrc/InputAccessLib.
When an image has an associated prodnote, the user should have the option to listen to image descriptions within prodnotes. Their option should be saved in preferences, so that they are not prompted again. They can turn off voicing of image descriptions via settings.
java.lang.ExceptionInInitializerError
at org.geometerplus.zlibrary.text.a.aa.a(Unknown Source)
at org.geometerplus.zlibrary.text.a.aa.<init>(Unknown Source)
at org.geometerplus.zlibrary.text.a.aa.a(Unknown Source)
at org.geometerplus.zlibrary.text.a.j.a(Unknown Source)
at org.geometerplus.fbreader.d.z.a(Unknown Source)
at org.geometerplus.fbreader.d.f.b(Unknown Source)
at org.geometerplus.fbreader.d.k.run(Unknown Source)
at org.geometerplus.android.a.d.run(Unknown Source)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load LineBreak-v2: findLibrary returned nullat java.lang.Runtime.loadLibrary(Runtime.java:365)at java.lang.System.loadLibrary(System.java:535)at org.vimgadgets.linebreak.LineBreaker.<clinit>(Unknown Source)... 9 more
Store formatting (font family, style, size, alignment, line spacing etc.) per book. Load the book along with saved formatting when user wishes to reopen it.
Motivation:
User has to explicitly select 'font family' for character sets which are not supported by Droid fonts.
Some character sets are better readable with specific alignments, line spacing, sizes etc. (e.g. Arabic - right aligned, Japanese - large characters)
User has to reconfigure formatting each time s/he switches among books with different character sets.
Storing and loading formatting along with books will ease this burden.
org.geometerplus.zlibrary.text.model.CachedCharStorageException: Error during reading /mnt/sdcard/Books/.FBReader/4.cache
at org.geometerplus.zlibrary.text.model.b.a(Unknown Source)
at org.geometerplus.zlibrary.text.model.c.l(Unknown Source)
at org.geometerplus.zlibrary.text.a.q.a(Unknown Source)
at org.geometerplus.zlibrary.text.a.aa.a(Unknown Source)
at org.geometerplus.zlibrary.text.a.aa.<init>(Unknown Source)
at org.geometerplus.zlibrary.text.a.aa.a(Unknown Source)
at org.geometerplus.zlibrary.text.a.aa.h(Unknown Source)
at org.geometerplus.zlibrary.text.a.b.m(Unknown Source)
at org.geometerplus.zlibrary.text.a.j.a(Unknown Source)
at org.geometerplus.zlibrary.text.a.j.a(Unknown Source)
at org.geometerplus.zlibrary.text.a.j.a(Unknown Source)
at org.geometerplus.zlibrary.ui.android.view.ZLAndroidWidget.a(Unknown Source)
at org.geometerplus.zlibrary.ui.android.view.i.a(Unknown Source)
at org.geometerplus.zlibrary.ui.android.view.h.i(Unknown Source)
at org.geometerplus.zlibrary.ui.android.view.p.a(Unknown Source)
at org.geometerplus.zlibrary.ui.android.view.h.b(Unknown Source)
at org.geometerplus.zlibrary.ui.android.view.ZLAndroidWidget.a(Unknown Source)
at org.geometerplus.zlibrary.ui.android.view.ZLAndroidWidget.onDraw(Unknown Source)
at android.view.View.draw(View.java:6881)
at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.View.draw(View.java:6884)
at android.widget.FrameLayout.draw(FrameLayout.java:357)
at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
at android.view.View.draw(View.java:6884)
at android.widget.FrameLayout.draw(FrameLayout.java:357)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2037)
at android.view.ViewRoot.draw(ViewRoot.java:1526)
at android.view.ViewRoot.performTraversals(ViewRoot.java:1262)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1863)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3689)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)