@@ -216,13 +216,13 @@ class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
216216
217217 public override fun onSaveInstanceState (): Parcelable {
218218 val superState = super .onSaveInstanceState()
219- val savedState = SavedState (superState)
219+ val savedState = MyParcelable (superState)
220220 savedState.paths = mPaths
221221 return savedState
222222 }
223223
224224 public override fun onRestoreInstanceState (state : Parcelable ) {
225- if (state !is SavedState ) {
225+ if (state !is MyParcelable ) {
226226 super .onRestoreInstanceState(state)
227227 return
228228 }
@@ -232,19 +232,20 @@ class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
232232 pathsUpdated()
233233 }
234234
235- internal class SavedState : View .BaseSavedState {
235+ internal class MyParcelable : View .BaseSavedState {
236236 var paths = LinkedHashMap <MyPath , PaintOptions >()
237237
238- companion object {
239- val CREATOR : Parcelable .Creator <SavedState > = object : Parcelable .Creator <SavedState > {
240- override fun newArray (size : Int ) = arrayOf<SavedState >()
238+ constructor (superState: Parcelable ) : super (superState)
241239
242- override fun createFromParcel (source : Parcel ) = SavedState (source)
240+ constructor (parcel: Parcel ) : super (parcel) {
241+ val size = parcel.readInt()
242+ for (i in 0 .. size - 1 ) {
243+ val key = parcel.readSerializable() as MyPath
244+ val paintOptions = PaintOptions (parcel.readInt(), parcel.readFloat())
245+ paths.put(key, paintOptions)
243246 }
244247 }
245248
246- constructor (superState: Parcelable ) : super (superState)
247-
248249 override fun writeToParcel (out : Parcel , flags : Int ) {
249250 super .writeToParcel(out , flags)
250251 out .writeInt(paths.size)
@@ -255,12 +256,11 @@ class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
255256 }
256257 }
257258
258- private constructor (parcel: Parcel ) : super (parcel) {
259- val size = parcel.readInt()
260- for (i in 0 .. size - 1 ) {
261- val key = parcel.readSerializable() as MyPath
262- val paintOptions = PaintOptions (parcel.readInt(), parcel.readFloat())
263- paths.put(key, paintOptions)
259+ companion object {
260+ val CREATOR : Parcelable .Creator <MyParcelable > = object : Parcelable .Creator <MyParcelable > {
261+ override fun createFromParcel (source : Parcel ) = MyParcelable (source)
262+
263+ override fun newArray (size : Int ) = arrayOf<MyParcelable >()
264264 }
265265 }
266266 }
0 commit comments