@@ -18,7 +18,6 @@ import com.simplemobiletools.commons.helpers.ensureBackgroundThread
1818import com.simplemobiletools.draw.pro.R
1919import com.simplemobiletools.draw.pro.extensions.*
2020import com.simplemobiletools.draw.pro.interfaces.CanvasListener
21- import com.simplemobiletools.draw.pro.models.MyParcelable
2221import com.simplemobiletools.draw.pro.models.MyPath
2322import com.simplemobiletools.draw.pro.models.PaintOptions
2423import java.util.concurrent.ExecutionException
@@ -86,21 +85,17 @@ class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
8685 updateUndoVisibility()
8786 }
8887
89- public override fun onSaveInstanceState (): Parcelable {
90- val superState = super .onSaveInstanceState()
91- val savedState = MyParcelable (superState!! )
92- savedState.operations = mOperations
93- return savedState
88+ public override fun onSaveInstanceState (): Parcelable ? {
89+ DrawingStateHolder .operations = mOperations
90+ return super .onSaveInstanceState()
9491 }
9592
9693 public override fun onRestoreInstanceState (state : Parcelable ) {
97- if (state !is MyParcelable ) {
98- super .onRestoreInstanceState(state)
99- return
94+ val savedOperations = DrawingStateHolder .operations
95+ if (savedOperations != null ) {
96+ mOperations = savedOperations
10097 }
101-
102- super .onRestoreInstanceState(state.superState)
103- mOperations = state.operations
98+ super .onRestoreInstanceState(state)
10499 updateUndoVisibility()
105100 }
106101
@@ -450,3 +445,8 @@ class MyCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) {
450445 }
451446 }
452447}
448+
449+ // since we don't use view models, this serves as a simple state holder to save drawing operations
450+ object DrawingStateHolder {
451+ var operations: LinkedHashMap <MyPath , PaintOptions >? = null
452+ }
0 commit comments