FolioReader / FolioReader-Android

A Java ePub reader and parser framework for Android.
BSD 3-Clause "New" or "Revised" License
2.25k stars 718 forks source link

ShowTts configuration seems to be ignored #253

Open kozec opened 6 years ago

kozec commented 6 years ago

Hello,

I've tried to use code from README only to find that it crashes when trying to initialize TTS engine. To workaround this, I've used custom config with ShowTts option disabled:

            val folioReader = FolioReader.getInstance(applicationContext)
            var config = Config().setShowTts(false)
            folioReader.setConfig(config, true)
            folioReader.openBook(R.raw.test)

Despite this, library still tries to create TTS engine (not quite possible on eBook reader with no speakers) and crashes:

08-11 21:33:48.190 6187-6187/package E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.NullPointerException
        at com.folioreader.ui.folio.mediaoverlay.MediaController$2.onInit(MediaController.java:113)
        at android.speech.tts.TextToSpeech.dispatchOnInit(TextToSpeech.java:640)
        at android.speech.tts.TextToSpeech.initTts(TextToSpeech.java:619)
        at android.speech.tts.TextToSpeech.<init>(TextToSpeech.java:553)
        at android.speech.tts.TextToSpeech.<init>(TextToSpeech.java:527)
        at android.speech.tts.TextToSpeech.<init>(TextToSpeech.java:512)
        at com.folioreader.ui.folio.mediaoverlay.MediaController.setTextToSpeech(MediaController.java:105)
        at com.folioreader.ui.folio.fragment.FolioPageFragment.onCreateView(FolioPageFragment.java:188)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:2346)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1428)
        at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1827)
        at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
        at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2596)
        at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2383)
        at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
        at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:2215)
        at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:649)
        at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:167)
        at com.folioreader.view.DirectionalViewpager.populate(DirectionalViewpager.java:1327)
        at com.folioreader.view.DirectionalViewpager.populate(DirectionalViewpager.java:1105)
        at com.folioreader.view.DirectionalViewpager.setAdapter(DirectionalViewpager.java:501)
        at com.folioreader.ui.folio.activity.FolioActivity.configFolio(FolioActivity.java:388)
        at com.folioreader.ui.folio.activity.FolioActivity.onLoadPublication(FolioActivity.java:339)
        at com.folioreader.ui.folio.presenter.MainPresenter.onReceivePublication(MainPresenter.java:25)
        at com.folioreader.ui.base.ManifestTask.onPostExecute(ManifestTask.java:68)
        at com.folioreader.ui.base.ManifestTask.onPostExecute(ManifestTask.java:26)
        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:5041)
        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:793)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
        at dalvik.system.NativeStart.main(Native Method)