Configuration change during color accent modification causes crash
To reproduce: open settings, color accent, then rotate app
Expected: the app rotates and the dialog stays open, with the non-saved changes staying the same as before the rotation
Actual behaviour: crash with the following stacktrace (missing constructor):
Stacktrace
file: /data/user/0/org.pixeldroid.app.debug/files/1.0.beta28-debug-1706718554979.tracedroid
Android Version: 13
Phone Model: IN2013\nTraceDroid Version: 4.1\nStacktrace: java.lang.RuntimeException: Unable to start activity ComponentInfo{org.pixeldroid.app.debug/org.pixeldroid.app.settings.SettingsActivity}: androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment org.pixeldroid.app.settings.ColorPreferenceDialog: could not find Fragment constructor
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3645)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3782)
at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:5783)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5674)
at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:71)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:138)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7924)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Caused by: androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment org.pixeldroid.app.settings.ColorPreferenceDialog: could not find Fragment constructor
at androidx.fragment.app.Fragment.instantiate(Fragment.java:687)
at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:57)
at androidx.fragment.app.FragmentManager$3.instantiate(FragmentManager.java:525)
at androidx.fragment.app.FragmentState.instantiate(FragmentState.java:84)
at androidx.fragment.app.FragmentStateManager.<init>(FragmentStateManager.java:91)
at androidx.fragment.app.FragmentManager.restoreSaveStateInternal(FragmentManager.java:2562)
at androidx.fragment.app.FragmentManager.attachController(FragmentManager.java:2722)
at androidx.fragment.app.FragmentController.attachHost(FragmentController.java:117)
at androidx.fragment.app.FragmentActivity.lambda$init$3$androidx-fragment-app-FragmentActivity(FragmentActivity.java:139)
at androidx.fragment.app.FragmentActivity$$ExternalSyntheticLambda3.onContextAvailable(Unknown Source:2)
at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.kt:84)
at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:358)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:216)
at org.pixeldroid.common.ThemedActivity.onCreate(ThemedActivity.kt:13)
at org.pixeldroid.app.settings.SettingsActivity.onCreate(SettingsActivity.kt:46)
at android.app.Activity.performCreate(Activity.java:8342)
at android.app.Activity.performCreate(Activity.java:8321)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1417)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3626)
... 15 more
Caused by: java.lang.NoSuchMethodException: org.pixeldroid.app.settings.ColorPreferenceDialog.<init> []
at java.lang.Class.getConstructor0(Class.java:2363)
at java.lang.Class.getConstructor(Class.java:1759)
at androidx.fragment.app.Fragment.instantiate(Fragment.java:672)
... 33 more
\nLog: 3 current handler class=com.android.internal.os.RuntimeInit$KillApplicationHandler
3 Writing unhandled exception to: /data/user/0/org.pixeldroid.app.debug/files/1.0.beta28-debug-1706718554979.tracedroid