aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2020-02-23 16:03:12 -0800
committerGitHub <noreply@github.com>2020-02-23 16:03:12 -0800
commit61dddd883908a803e3ee55de537e0a30ee4ef90d (patch)
tree1c0793625b9d05c98b4d0abfccd35ffa90819094
parent3fa13a3a84d34fd0d96f26d6c5dea0e0671dd6c4 (diff)
parent5038b93102949bb127b6cb9cb26809490739b3fa (diff)
downloadkau-61dddd883908a803e3ee55de537e0a30ee4ef90d.tar.gz
kau-61dddd883908a803e3ee55de537e0a30ee4ef90d.tar.bz2
kau-61dddd883908a803e3ee55de537e0a30ee4ef90d.zip
Merge pull request #249 from AllanWang/about-activity
About activity
-rw-r--r--about/src/main/kotlin/ca/allanwang/kau/about/AboutActivityBase.kt11
-rw-r--r--core/src/androidTest/kotlin/ca/allanwang/kau/Utils.kt17
-rw-r--r--core/src/androidTest/kotlin/ca/allanwang/kau/kpref/KPrefTest.kt2
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefDelegate.kt2
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefFactory.kt17
-rw-r--r--docs/Changelog.md1
-rw-r--r--docs/Migration.md4
-rw-r--r--sample/src/androidTest/kotlin/ca/allanwang/kau/sample/KPrefViewTest.kt6
-rw-r--r--sample/src/androidTest/kotlin/ca/allanwang/kau/sample/SampleTestApp.kt18
-rw-r--r--sample/src/androidTest/kotlin/ca/allanwang/kau/sample/utils/EspressoUtils.kt2
-rw-r--r--sample/src/main/kotlin/ca/allanwang/kau/sample/AboutActivity.kt20
-rw-r--r--sample/src/main/res/xml/kau_changelog.xml2
12 files changed, 75 insertions, 27 deletions
diff --git a/about/src/main/kotlin/ca/allanwang/kau/about/AboutActivityBase.kt b/about/src/main/kotlin/ca/allanwang/kau/about/AboutActivityBase.kt
index 6b57825..4fe97da 100644
--- a/about/src/main/kotlin/ca/allanwang/kau/about/AboutActivityBase.kt
+++ b/about/src/main/kotlin/ca/allanwang/kau/about/AboutActivityBase.kt
@@ -40,17 +40,14 @@ import kotlinx.android.synthetic.main.kau_activity_about.*
* Created by Allan Wang on 2017-06-28.
*
* Floating About Activity Panel for your app
- * This contains all the necessary layouts, and can be extended and configured using the [configBuilder]
+ * This contains all the necessary layouts, and can be extended and configured using [buildConfigs]
* The [rClass] is necessary to generate the list of libraries used in your app, and should point to your app's
* R.string::class.java
* If you don't need auto detect, you can pass null instead
* Note that for the auto detection to work, the R fields must be excluded from Proguard
* Manual lib listings and other extra modifications can be done so by overriding the open functions
*/
-abstract class AboutActivityBase(
- val rClass: Class<*>?,
- private val configBuilder: Configs.() -> Unit = {}
-) :
+abstract class AboutActivityBase(val rClass: Class<*>?) :
KauBaseActivity(), ViewPager.OnPageChangeListener {
val currentPage: Int
@@ -60,7 +57,9 @@ abstract class AboutActivityBase(
* Holds some common configurations that may be added directly from the constructor
* Applied lazily since it needs the context to fetch resources
*/
- val configs: Configs by lazy { Configs().apply { configBuilder() } }
+ val configs: Configs by lazy { Configs().apply { buildConfigs() } }
+
+ open fun Configs.buildConfigs() = Unit
/**
* Holds that status of each page
diff --git a/core/src/androidTest/kotlin/ca/allanwang/kau/Utils.kt b/core/src/androidTest/kotlin/ca/allanwang/kau/Utils.kt
index 33252d6..c9d4e31 100644
--- a/core/src/androidTest/kotlin/ca/allanwang/kau/Utils.kt
+++ b/core/src/androidTest/kotlin/ca/allanwang/kau/Utils.kt
@@ -1,7 +1,22 @@
+/*
+ * Copyright 2020 Allan Wang
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package ca.allanwang.kau
import android.content.Context
import androidx.test.platform.app.InstrumentationRegistry
val context: Context
- get() = InstrumentationRegistry.getInstrumentation().context \ No newline at end of file
+ get() = InstrumentationRegistry.getInstrumentation().context
diff --git a/core/src/androidTest/kotlin/ca/allanwang/kau/kpref/KPrefTest.kt b/core/src/androidTest/kotlin/ca/allanwang/kau/kpref/KPrefTest.kt
index 222f0f5..70558df 100644
--- a/core/src/androidTest/kotlin/ca/allanwang/kau/kpref/KPrefTest.kt
+++ b/core/src/androidTest/kotlin/ca/allanwang/kau/kpref/KPrefTest.kt
@@ -20,10 +20,10 @@ import android.content.SharedPreferences
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.MediumTest
import ca.allanwang.kau.context
+import kotlin.test.assertEquals
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
-import kotlin.test.assertEquals
/**
* Created by Allan Wang on 2017-08-01.
diff --git a/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefDelegate.kt b/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefDelegate.kt
index c17d3df..217bc6e 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefDelegate.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefDelegate.kt
@@ -104,7 +104,7 @@ class KPrefDelegateInMemory<T> internal constructor(
private val lock = this
init {
- pref.add(this)
+ pref.add(this)
}
override fun invalidate() {
diff --git a/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefFactory.kt b/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefFactory.kt
index 0c49b88..dd6da29 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefFactory.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefFactory.kt
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2020 Allan Wang
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package ca.allanwang.kau.kpref
import android.content.Context
@@ -19,4 +34,4 @@ class KPrefFactoryAndroid(context: Context) : KPrefFactory {
object KPrefFactoryInMemory : KPrefFactory {
override fun createBuilder(preferenceName: String): KPrefBuilder = KPrefBuilderInMemory
-} \ No newline at end of file
+}
diff --git a/docs/Changelog.md b/docs/Changelog.md
index 576ac96..2f9e591 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -1,6 +1,7 @@
# Changelog
## v5.3.0
+* :about: Moved config builder inside activity
* :color: Allow option to disable selected ring
* :core: Breaking KPref changes; see migration
diff --git a/docs/Migration.md b/docs/Migration.md
index b0d0079..0941667 100644
--- a/docs/Migration.md
+++ b/docs/Migration.md
@@ -14,6 +14,10 @@ An example can be found in the sample app test class.
Also note that to better support in memory preferences, `reset()` will clear the in memory content for both variants,
meaning that in memory preferences will reset to default. Previously, in memory `reset()` did nothing.
+## AboutActivityBase
+
+`configBuilder` was previously required in the constructor, but is now an open function so that activity fields can be used in the builder.
+
# v5.1.0
## KPref
diff --git a/sample/src/androidTest/kotlin/ca/allanwang/kau/sample/KPrefViewTest.kt b/sample/src/androidTest/kotlin/ca/allanwang/kau/sample/KPrefViewTest.kt
index 156b66f..88a0402 100644
--- a/sample/src/androidTest/kotlin/ca/allanwang/kau/sample/KPrefViewTest.kt
+++ b/sample/src/androidTest/kotlin/ca/allanwang/kau/sample/KPrefViewTest.kt
@@ -27,6 +27,9 @@ import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.MediumTest
import androidx.test.rule.ActivityTestRule
+import kotlin.test.BeforeTest
+import kotlin.test.assertFalse
+import kotlin.test.assertTrue
import org.hamcrest.BaseMatcher
import org.hamcrest.Description
import org.hamcrest.Matcher
@@ -39,9 +42,6 @@ import org.junit.rules.TestRule
import org.junit.runner.RunWith
import org.koin.test.KoinTest
import org.koin.test.inject
-import kotlin.test.BeforeTest
-import kotlin.test.assertFalse
-import kotlin.test.assertTrue
/**
* Created by Allan Wang on 21/12/2018.
diff --git a/sample/src/androidTest/kotlin/ca/allanwang/kau/sample/SampleTestApp.kt b/sample/src/androidTest/kotlin/ca/allanwang/kau/sample/SampleTestApp.kt
index 8705fbc..ceb551b 100644
--- a/sample/src/androidTest/kotlin/ca/allanwang/kau/sample/SampleTestApp.kt
+++ b/sample/src/androidTest/kotlin/ca/allanwang/kau/sample/SampleTestApp.kt
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2020 Allan Wang
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package ca.allanwang.kau.sample
import android.app.Application
@@ -5,7 +20,6 @@ import android.content.Context
import androidx.test.runner.AndroidJUnitRunner
import ca.allanwang.kau.kpref.KPrefFactory
import ca.allanwang.kau.kpref.KPrefFactoryInMemory
-import ca.allanwang.kau.logging.KL
import org.junit.rules.TestRule
import org.junit.runner.Description
import org.junit.runners.model.Statement
@@ -57,4 +71,4 @@ class SampleTestApp : Application() {
KPrefFactoryInMemory
}
}
-} \ No newline at end of file
+}
diff --git a/sample/src/androidTest/kotlin/ca/allanwang/kau/sample/utils/EspressoUtils.kt b/sample/src/androidTest/kotlin/ca/allanwang/kau/sample/utils/EspressoUtils.kt
index 2a6f0a9..09ad00a 100644
--- a/sample/src/androidTest/kotlin/ca/allanwang/kau/sample/utils/EspressoUtils.kt
+++ b/sample/src/androidTest/kotlin/ca/allanwang/kau/sample/utils/EspressoUtils.kt
@@ -15,8 +15,6 @@
*/
package ca.allanwang.kau.sample.utils
-import android.content.Context
-import androidx.test.platform.app.InstrumentationRegistry
import org.hamcrest.BaseMatcher
import org.hamcrest.Description
import org.hamcrest.Matcher
diff --git a/sample/src/main/kotlin/ca/allanwang/kau/sample/AboutActivity.kt b/sample/src/main/kotlin/ca/allanwang/kau/sample/AboutActivity.kt
index ffe769a..59f1c92 100644
--- a/sample/src/main/kotlin/ca/allanwang/kau/sample/AboutActivity.kt
+++ b/sample/src/main/kotlin/ca/allanwang/kau/sample/AboutActivity.kt
@@ -23,15 +23,17 @@ import com.mikepenz.fastadapter.GenericItem
/**
* Created by Allan Wang on 2017-06-27.
*/
-class AboutActivity : AboutActivityBase(R.string::class.java, {
- cutoutDrawableRes = R.drawable.kau
- textColor = 0xde000000.toInt()
- backgroundColor = 0xfffafafa.toInt()
- accentColor = 0xff00838F.toInt()
- cutoutForeground = 0xff18FFFF.toInt()
- faqXmlRes = R.xml.kau_faq
- faqParseNewLine = false
-}) {
+class AboutActivity : AboutActivityBase(R.string::class.java) {
+
+ override fun Configs.buildConfigs() {
+ cutoutDrawableRes = R.drawable.kau
+ textColor = 0xde000000.toInt()
+ backgroundColor = 0xfffafafa.toInt()
+ accentColor = 0xff00838F.toInt()
+ cutoutForeground = 0xff18FFFF.toInt()
+ faqXmlRes = R.xml.kau_faq
+ faqParseNewLine = false
+ }
override fun postInflateMainPage(adapter: FastItemThemedAdapter<GenericItem>) {
adapter.add(CardIItem {
diff --git a/sample/src/main/res/xml/kau_changelog.xml b/sample/src/main/res/xml/kau_changelog.xml
index 55adabc..a40e70e 100644
--- a/sample/src/main/res/xml/kau_changelog.xml
+++ b/sample/src/main/res/xml/kau_changelog.xml
@@ -7,10 +7,10 @@
-->
<version title="v5.3.0" />
+ <item text=":about: Moved config builder inside activity" />
<item text=":color: Allow option to disable selected ring" />
<item text=":core: Breaking KPref changes; see migration" />
<item text="" />
- <item text="" />
<version title="v5.2.0" />
<item text=":about: Migrate about libraries to v7.x.x" />