flixclusiveorg / Flixclusive

An ad-free TV show and movie player application.
MIT License
356 stars 28 forks source link

App crashes in addon edit modal #116

Closed back2Lobby closed 1 month ago

back2Lobby commented 1 month ago

Steps to reproduce

Alright, this is one is legit 😜. Here are the steps to reproduce:

Here is the demo:

https://github.com/user-attachments/assets/1b9d610b-46cc-43bb-aa51-b616eea2993b

Expected behavior

Simply show the edit modal

Actual behavior

Shows app crash page with crash logs

Crash logs (or stack trace)

java.lang.IllegalStateException: MutableState(value=Addon(id=marcojoao.ml.cyberflix.catalog, name=Cyberflix Catalog, version=1.5.2, description=Cyberflix, an catalog add-on for Stremio, aggregates the most popular steaming platforms such as Netflix, Amazon Prime or Hulu, and also specific catalogs for Kids, Asian or Anime., logo=https://cyberflix.elfhosted.com/logo.png, baseUrl=https://cyberflix.elfhosted.com, resources=[catalog, meta], types=[series, movie], catalogs=[], behaviorHints={configurable=true, configurationRequired=true}))@48220962 cannot be saved using the current SaveableStateRegistry. The default implementation only supports types which can be stored inside the Bundle. Please consider implementing a custom Saver for this class and pass it to rememberSaveable(). at androidx.compose.runtime.saveable.SaveableStateRegistryImpl.performSave(SaveableStateRegistry.kt:162) at androidx.compose.runtime.saveable.SaveableStateHolderImpl$RegistryHolder.saveTo(SaveableStateHolder.kt:126) at androidx.compose.runtime.saveable.SaveableStateHolderImpl.saveAll(SaveableStateHolder.kt:103) at androidx.compose.runtime.saveable.SaveableStateHolderImpl.access$saveAll(SaveableStateHolder.kt:69) at androidx.compose.runtime.saveable.SaveableStateHolderImpl$Companion$Saver$1.invoke(SaveableStateHolder.kt:138) at androidx.compose.runtime.saveable.SaveableStateHolderImpl$Companion$Saver$1.invoke(SaveableStateHolder.kt:137) at androidx.compose.runtime.saveable.SaverKt$Saver$1.save(Saver.kt:66) at androidx.compose.runtime.saveable.SaveableHolder$valueProvider$1.invoke(RememberSaveable.kt:148) at androidx.compose.runtime.saveable.SaveableStateRegistryImpl.performSave(SaveableStateRegistry.kt:148) at androidx.compose.ui.platform.DisposableSaveableStateRegistry_androidKt.DisposableSaveableStateRegistry$lambda$0(DisposableSaveableStateRegistry.android.kt:83) at androidx.compose.ui.platform.DisposableSaveableStateRegistry_androidKt.$r8$lambda$3svWVUZR13inipXTIHi2OaR9lmk(Unknown Source:0) at androidx.compose.ui.platform.DisposableSaveableStateRegistry_androidKt$$ExternalSyntheticLambda0.saveState(Unknown Source:2) at androidx.savedstate.SavedStateRegistry.performSave(SavedStateRegistry.kt:247) at androidx.savedstate.SavedStateRegistryController.performSave(SavedStateRegistryController.kt:81) at androidx.activity.ComponentActivity.onSaveInstanceState(ComponentActivity.java:374) at android.app.Activity.performSaveInstanceState(Activity.java:2260) at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1508) at android.app.ActivityThread.callActivityOnSaveInstanceState(ActivityThread.java:5944) at android.app.ActivityThread.callActivityOnStop(ActivityThread.java:5330) at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:5296) at android.app.ActivityThread.handleStopActivity(ActivityThread.java:5361) at android.app.servertransaction.StopActivityItem.execute(StopActivityItem.java:43) at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2325) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:210) at android.os.Looper.loop(Looper.java:299) at android.app.ActivityThread.main(ActivityThread.java:8280) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:576) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1073)

App version

Pre Release 2.0

Android version

12

Device

Redmi Note 9

Other details

I know the title could be better lol

Acknowledgements

rhenwinch commented 1 month ago

Thanks for the time for making a detailed input

Based on your crash logs, unfortunately, this is not an app issue but a provider issue, rather. This happens due to the wrong state configuration of the said provider's settings screen. All settings screen of a provider are managed by them and completely separated from the app itself.

If you dont mind, please transfer this to the provider's repository. I'll be closing this issue as not planned, but I'll note this on the other repository.

Thank you!

rhenwinch commented 1 month ago

Also, you could make another feature enhancement request where to safely catch and handle these errors.

That'd be better for the app to not crash if a provider crashes again.

back2Lobby commented 1 month ago

nvm I didn't know provider also handle their portion of app UI, mb lol.