From 02ac83bbd41a8258bb83519bbecc63b733cae432 Mon Sep 17 00:00:00 2001 From: Vladimir Jovanovic Date: Thu, 5 Apr 2018 08:58:36 +0200 Subject: [PATCH] Replace View.BaseSavedState with android.support.v4.view.AbsSavedState --- CHANGELOG.md | 5 ++++ README.md | 2 +- lemniscate/build.gradle | 4 ++-- .../lemniscate/base/BaseCurveProgressView.kt | 24 +++++++++++-------- .../roulette/BaseRouletteProgressView.kt | 10 ++++---- .../settings/CurveSettingsParcelableTest.kt | 4 ---- sample/build.gradle | 4 ++-- 7 files changed, 30 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e367eea..05cd50f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ Change Log ========== +Version 1.4.4 *(2018-04-05)* +---------------------------- + +* Replace `View.BaseSavedState` with `android.support.v4.view.AbsSavedState` in `BaseCurveProgressView` + Version 1.4.3 *(2018-04-04)* ---------------------------- diff --git a/README.md b/README.md index 40bfcc4..3fddbfa 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Add to your module's build.gradle: and to your app build.gradle: dependencies { - compile 'com.github.vlad1m1r990:Lemniscate:1.4.3' + implementation 'com.github.vlad1m1r990:Lemniscate:1.4.4' } Usage diff --git a/lemniscate/build.gradle b/lemniscate/build.gradle index 700de7e..7c431ef 100644 --- a/lemniscate/build.gradle +++ b/lemniscate/build.gradle @@ -13,8 +13,8 @@ android { defaultConfig { minSdkVersion 14 targetSdkVersion 27 - versionCode 143 - versionName "1.4.3" + versionCode 144 + versionName "1.4.4" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/lemniscate/src/main/java/com/vlad1m1r/lemniscate/base/BaseCurveProgressView.kt b/lemniscate/src/main/java/com/vlad1m1r/lemniscate/base/BaseCurveProgressView.kt index bb50d92..2b7e921 100644 --- a/lemniscate/src/main/java/com/vlad1m1r/lemniscate/base/BaseCurveProgressView.kt +++ b/lemniscate/src/main/java/com/vlad1m1r/lemniscate/base/BaseCurveProgressView.kt @@ -22,6 +22,7 @@ import android.graphics.Canvas import android.graphics.Path import android.os.Parcel import android.os.Parcelable +import android.support.v4.view.AbsSavedState import android.util.AttributeSet import android.view.View import android.view.animation.LinearInterpolator @@ -201,8 +202,7 @@ abstract class BaseCurveProgressView : View, IBaseCurveView { } public override fun onSaveInstanceState(): Parcelable { - val superState = super.onSaveInstanceState() - val ss = BaseCurveSavedState(superState) + val ss = BaseCurveSavedState(super.onSaveInstanceState()) ss.curveSettings = this.presenter.curveSettings ss.animationSettings = this.presenter.animationSettings return ss @@ -211,28 +211,32 @@ abstract class BaseCurveProgressView : View, IBaseCurveView { public override fun onRestoreInstanceState(state: Parcelable) { if (state is BaseCurveSavedState) { super.onRestoreInstanceState(state.superState) - this.presenter.curveSettings = state.curveSettings - this.presenter.animationSettings = state.animationSettings + state.curveSettings?.let { + this.presenter.curveSettings = it + } + state.animationSettings?.let { + this.presenter.animationSettings = it + } } else { super.onRestoreInstanceState(state) } } - protected open class BaseCurveSavedState : View.BaseSavedState { - internal lateinit var curveSettings: CurveSettings - internal lateinit var animationSettings: AnimationSettings + protected open class BaseCurveSavedState : AbsSavedState { + internal var curveSettings: CurveSettings? = null + internal var animationSettings: AnimationSettings? = null constructor(superState: Parcelable) : super(superState) - constructor(state: Parcel) : super(state) { + constructor(state: Parcel) : super(state, BaseCurveSavedState::class.java.classLoader) { this.curveSettings = state.readParcelable(CurveSettings::class.java.classLoader) this.animationSettings = state.readParcelable(AnimationSettings::class.java.classLoader) } override fun writeToParcel(out: Parcel, flags: Int) { super.writeToParcel(out, flags) - out.writeParcelable(this.curveSettings, flags) - out.writeParcelable(this.animationSettings, flags) + out.writeParcelable(curveSettings, flags) + out.writeParcelable(animationSettings, flags) } companion object { diff --git a/lemniscate/src/main/java/com/vlad1m1r/lemniscate/roulette/BaseRouletteProgressView.kt b/lemniscate/src/main/java/com/vlad1m1r/lemniscate/roulette/BaseRouletteProgressView.kt index 287ce36..bb51f57 100644 --- a/lemniscate/src/main/java/com/vlad1m1r/lemniscate/roulette/BaseRouletteProgressView.kt +++ b/lemniscate/src/main/java/com/vlad1m1r/lemniscate/roulette/BaseRouletteProgressView.kt @@ -96,8 +96,10 @@ abstract class BaseRouletteProgressView : BaseCurveProgressView { override fun onRestoreInstanceState(state: Parcelable) { if (state is RouletteCurveSavedState) { - super.onRestoreInstanceState(state.superState) - this.rouletteCurveSettings = state.rouletteCurveSettings + super.onRestoreInstanceState(state.superState!!) + state.rouletteCurveSettings?.let { + this.rouletteCurveSettings = it + } } else { super.onRestoreInstanceState(state) } @@ -105,7 +107,7 @@ abstract class BaseRouletteProgressView : BaseCurveProgressView { protected open class RouletteCurveSavedState : BaseCurveSavedState { - internal lateinit var rouletteCurveSettings: RouletteCurveSettings + internal var rouletteCurveSettings: RouletteCurveSettings? = null constructor(superState: Parcelable) : super(superState) @@ -115,7 +117,7 @@ abstract class BaseRouletteProgressView : BaseCurveProgressView { override fun writeToParcel(out: Parcel, flags: Int) { super.writeToParcel(out, flags) - out.writeParcelable(this.rouletteCurveSettings, flags) + out.writeParcelable(rouletteCurveSettings, flags) } companion object { diff --git a/lemniscate/src/test/java/com/vlad1m1r/lemniscate/base/settings/CurveSettingsParcelableTest.kt b/lemniscate/src/test/java/com/vlad1m1r/lemniscate/base/settings/CurveSettingsParcelableTest.kt index 4aa39a0..f8157ec 100644 --- a/lemniscate/src/test/java/com/vlad1m1r/lemniscate/base/settings/CurveSettingsParcelableTest.kt +++ b/lemniscate/src/test/java/com/vlad1m1r/lemniscate/base/settings/CurveSettingsParcelableTest.kt @@ -1,9 +1,7 @@ package com.vlad1m1r.lemniscate.base.settings -import android.graphics.Paint import android.os.Parcel import com.google.common.truth.Truth.assertThat -import com.nhaarman.mockito_kotlin.mock import com.vlad1m1r.lemniscate.base.models.LineLength import org.junit.Before import org.junit.Test @@ -13,8 +11,6 @@ import org.robolectric.RobolectricTestRunner @RunWith(RobolectricTestRunner::class) class CurveSettingsParcelableTest { - private val paint = mock() - private lateinit var curveSettings: CurveSettings @Before diff --git a/sample/build.gradle b/sample/build.gradle index e0dc6bf..77d67b7 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.vlad1m1r.lemniscate.sample" minSdkVersion 14 targetSdkVersion 27 - versionCode 122 - versionName "1.2.2" + versionCode 123 + versionName "1.2.3" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes {