Skip to content

Conversation

@capi
Copy link

@capi capi commented Aug 25, 2011

Hi,

I fixed a ClassCastException in DatePreference which occured if the device was rotated while the DatePreference was shown. I don't know Android well enough to know why the Parcelable state in onRestoreInstanceState is not the correct SavedState class, but I know that the current code must fail with a ClassCastException (you checked for the class, and casted after you knew it wasn't of the correct type).

I also added an overload for getDateFor() that allows specifying a default value to use in case the DatePreference was never opened in a PreferenceScreen before, as in this case it will always use the default value 1970-01-01.

Hope you find the changes useful.

Best regards,
Martin

capi added 2 commits August 25, 2011 23:01
Before this fix, retrieving the value before the preferences page was
opened at least once, the getDateFor() would return 1.1.1970 instead
of the configured default value in the XML declaration.
When the screen is rotated, it seems that a different state is handed to
onRestoreInstanceState(). Using the defaultValue() in this case.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant