GithubHelp home page GithubHelp logo

benetech / fbreaderj Goto Github PK

View Code? Open in Web Editor NEW

This project forked from amahule/fbreaderj

39.0 25.0 36.0 31.01 MB

An accessible Android app for reading and listening to books on Bookshare. It's available for free on Google Play as "Go Read".

Home Page: http://goread.org/

Makefile 0.74% C++ 0.16% Shell 7.56% HTML 8.49% CSS 0.27% C 2.95% Java 79.82% M4 0.01%

fbreaderj's People

Contributors

amahule avatar ank0223 avatar anuruddhah avatar cdm2012 avatar coder1000 avatar dlmv avatar fred-c avatar gcapiel avatar geometer avatar gerardotest avatar itkach avatar martus-automated-deployments avatar matm avatar mdzyuba avatar miguel-villalobos avatar nictor avatar nimbooce avatar pxanych avatar rishabhjain08 avatar roms avatar siebert avatar t3d avatar thushv89 avatar ury0005 avatar vasiliy-bout avatar vickhears avatar yashasvigirdhar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fbreaderj's Issues

Periodicals: click an edition on a periodical edition list, TalkBack says "Using Google Text-to-Speech Engine"

Steps to reproduce:

  1. Browse periodicals
  2. Select a periodical to fetch a list of available editions
  3. When the list of editions loads, TalkBack says "Search complete" but never announces that there is a list with X number of items.
  4. Tap one of the editions
  5. TalkBack says "Using Google Text-to-Speech Engine".
  6. Tap another of the editions.
  7. TalkBack voices the periodical name and info as expected

Same as https://bugs.benetech.org/browse/FBR-264

java.lang.NullPointerException

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

If browsing periodicals without logging in, the app keeps prompting me to log in

Steps to reproduce:

  • From the Main Menu, Get Bookshare Books
  • Continue w/out logging in
  • Browse Newspapers & Magazines
    • 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.

Same as https://bugs.benetech.org/browse/FBR-261

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.android.settings.TTS_SETTINGS flg=0x10000000 }

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)

Voice highlighted words/phrases

Voice words/phrases immediately on selection

OR

Add an option in SelectionPopup to voice highlighted words/phrases
(allows the user to listen to words/phrases only when s/he wishes to)

[Based on a user feedback received at bookshare.uservoice]

Api key woes

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

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

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)

Periodicals should behave like books

The "Newspapers & Magazines" UI should work like the Books UI (Latest Books or Popular Books for example).

  1. 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.
  2. 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

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

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

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

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)

Periodicals: app presents list of periodicals with a search box in edit mode - but never explains what the edit box is for

Steps to reproduce:

  • From the Main Menu, search for Bookshare books
  • Select the option to browse periodicals
    • 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")

Same as https://bugs.benetech.org/browse/FBR-260

org.geometerplus.zlibrary.text.model.CachedCharStorageException: Error during writing /mnt/sdcard/Books/.FBReader/0.cache

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

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)

Feature: Allow audio to continue in background

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.

What do you guys think?

org.geometerplus.zlibrary.text.model.CachedCharStorageException: Error during writing /storage

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?

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

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"

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)

java.lang.NullPointerException

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

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.NullPointerException

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.NullPointerException

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

Support requesting DAISY with images via async download request

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:

http://developer.bookshare.org/docs/read/api_overview/Download

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.

Support providing option to voice prodnotes for image descriptions

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.UnsatisfiedLinkError: Couldn't load LineBreak-v2: findLibrary returned null

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 null
at 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

Support per book settings

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

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.