diff options
author | Allan Wang <me@allanwang.ca> | 2020-02-23 16:03:12 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-23 16:03:12 -0800 |
commit | 61dddd883908a803e3ee55de537e0a30ee4ef90d (patch) | |
tree | 1c0793625b9d05c98b4d0abfccd35ffa90819094 | |
parent | 3fa13a3a84d34fd0d96f26d6c5dea0e0671dd6c4 (diff) | |
parent | 5038b93102949bb127b6cb9cb26809490739b3fa (diff) | |
download | kau-61dddd883908a803e3ee55de537e0a30ee4ef90d.tar.gz kau-61dddd883908a803e3ee55de537e0a30ee4ef90d.tar.bz2 kau-61dddd883908a803e3ee55de537e0a30ee4ef90d.zip |
Merge pull request #249 from AllanWang/about-activity
About activity
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" /> |