aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2019-09-22 22:59:43 -0700
committerGitHub <noreply@github.com>2019-09-22 22:59:43 -0700
commit2889fae685edbad89c40e3cfe8a9b16f0b87ebcc (patch)
treee784f7f5a98b3083d25fa401ea122c40d14e5769
parentcd4799b7b93c542e1d8204a32b6d43df7e5d1191 (diff)
parentdba4c72e90946dda0917a43b9be99d21695e6bdf (diff)
downloadkau-2889fae685edbad89c40e3cfe8a9b16f0b87ebcc.tar.gz
kau-2889fae685edbad89c40e3cfe8a9b16f0b87ebcc.tar.bz2
kau-2889fae685edbad89c40e3cfe8a9b16f0b87ebcc.zip
Merge pull request #229 from AllanWang/nav-bar-flag
Nav bar flag
-rw-r--r--buildSrc/src/main/kotlin/kau/Dependencies.kt3
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/swipe/SwipeBackLayout.kt1
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/utils/ActivityUtils.kt59
-rw-r--r--docs/Changelog.md2
-rw-r--r--sample/src/main/res/xml/kau_changelog.xml7
5 files changed, 43 insertions, 29 deletions
diff --git a/buildSrc/src/main/kotlin/kau/Dependencies.kt b/buildSrc/src/main/kotlin/kau/Dependencies.kt
index b2cdf48..bf9b6be 100644
--- a/buildSrc/src/main/kotlin/kau/Dependencies.kt
+++ b/buildSrc/src/main/kotlin/kau/Dependencies.kt
@@ -7,7 +7,8 @@ object Dependencies {
@JvmStatic
fun kau(version: String) = "ca.allanwang:kau:$version"
- private fun kau(type: String, version: String) = "ca.allanwang.kau:$type:$version"
+ @JvmStatic
+ fun kau(type: String, version: String) = "ca.allanwang.kau:$type:$version"
@JvmStatic
fun kauAbout(version: String) = kau("about", version)
diff --git a/core/src/main/kotlin/ca/allanwang/kau/swipe/SwipeBackLayout.kt b/core/src/main/kotlin/ca/allanwang/kau/swipe/SwipeBackLayout.kt
index bf6d09d..b2d9a5f 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/swipe/SwipeBackLayout.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/swipe/SwipeBackLayout.kt
@@ -248,7 +248,6 @@ internal class SwipeBackLayout @JvmOverloads constructor(
dragHelper.shouldInterceptTouchEvent(event)
} catch (e: Exception) {
false
-
}
}
diff --git a/core/src/main/kotlin/ca/allanwang/kau/utils/ActivityUtils.kt b/core/src/main/kotlin/ca/allanwang/kau/utils/ActivityUtils.kt
index 279bcd3..2142047 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/utils/ActivityUtils.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/utils/ActivityUtils.kt
@@ -17,7 +17,6 @@
package ca.allanwang.kau.utils
-import android.annotation.SuppressLint
import android.app.Activity
import android.app.AlarmManager
import android.app.PendingIntent
@@ -35,6 +34,7 @@ import androidx.annotation.StringRes
import ca.allanwang.kau.R
import com.google.android.material.snackbar.Snackbar
import com.mikepenz.iconics.typeface.IIcon
+import kotlin.system.exitProcess
/**
* Created by Allan Wang on 2017-06-21.
@@ -104,7 +104,7 @@ inline fun Activity.restartApplication() {
else
alarm.setExact(AlarmManager.RTC, System.currentTimeMillis() + 100, pending)
finish()
- System.exit(0)
+ exitProcess(0)
}
fun Activity.finishSlideOut() {
@@ -113,34 +113,41 @@ fun Activity.finishSlideOut() {
}
inline var Activity.navigationBarColor: Int
- @SuppressLint("NewApi")
- get() = if (buildIsLollipopAndUp) window.navigationBarColor else Color.BLACK
- @SuppressLint("NewApi")
+ get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) window.navigationBarColor else Color.BLACK
set(value) {
- if (buildIsLollipopAndUp) window.navigationBarColor = value
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+ return
+ }
+ window.navigationBarColor = value
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
+ return
+ }
+ var prevSystemUiVisibility = window.decorView.systemUiVisibility
+ prevSystemUiVisibility = if (value.isColorDark) {
+ prevSystemUiVisibility and View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR.inv()
+ } else {
+ prevSystemUiVisibility or View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
+ }
+ window.decorView.systemUiVisibility = prevSystemUiVisibility
}
inline var Activity.statusBarColor: Int
- @SuppressLint("NewApi")
- get() = if (buildIsLollipopAndUp) window.statusBarColor else Color.BLACK
- @SuppressLint("NewApi")
+ get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) window.statusBarColor else Color.BLACK
set(value) {
- if (buildIsLollipopAndUp) {
- window.statusBarColor = value
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+ return
}
- }
-
-inline var Activity.statusBarLight: Boolean
- @SuppressLint("InlinedApi")
- get() = if (buildIsMarshmallowAndUp) window.decorView.systemUiVisibility and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR > 0 else false
- @SuppressLint("InlinedApi")
- set(value) {
- if (buildIsMarshmallowAndUp) {
- val flags = window.decorView.systemUiVisibility
- window.decorView.systemUiVisibility =
- if (value) flags or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
- else flags and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.inv()
+ window.statusBarColor = value
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
+ return
}
+ var prevSystemUiVisibility = window.decorView.systemUiVisibility
+ prevSystemUiVisibility = if (value.isColorDark) {
+ prevSystemUiVisibility and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.inv()
+ } else {
+ prevSystemUiVisibility or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
+ }
+ window.decorView.systemUiVisibility = prevSystemUiVisibility
}
/**
@@ -148,7 +155,11 @@ inline var Activity.statusBarLight: Boolean
*
* Call in [Activity.onCreateOptionsMenu]
*/
-fun Context.setMenuIcons(menu: Menu, @ColorInt color: Int = Color.WHITE, vararg iicons: Pair<Int, IIcon>) {
+fun Context.setMenuIcons(
+ menu: Menu,
+ @ColorInt color: Int = Color.WHITE,
+ vararg iicons: Pair<Int, IIcon>
+) {
iicons.forEach { (id, iicon) ->
menu.findItem(id).icon = iicon.toDrawable(this, sizeDp = 18, color = color)
}
diff --git a/docs/Changelog.md b/docs/Changelog.md
index 0078430..073f3a5 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -2,6 +2,8 @@
## v5.2.0
* :fastadapter: Migrate fastadapter to v4.x.x
+* :core: Automatically switch light mode for navigationBarColor and statusBarColor
+* :core: Remove statusBarLight toggle
## v5.1.0
* :adapter: Moved fastadapter elements to new module, :fastadapter:. To migrate, simply rename the dependency. If you don't use fast adapter, no changes are necessary
diff --git a/sample/src/main/res/xml/kau_changelog.xml b/sample/src/main/res/xml/kau_changelog.xml
index 7baecd8..3531e69 100644
--- a/sample/src/main/res/xml/kau_changelog.xml
+++ b/sample/src/main/res/xml/kau_changelog.xml
@@ -8,6 +8,10 @@
<version title="v5.2.0" />
<item text=":fastadapter: Migrate fastadapter to v4.x.x" />
+ <item text=":core: Automatically switch light mode for navigationBarColor and statusBarColor" />
+ <item text=":core: Remove statusBarLight toggle" />
+ <item text="" />
+ <item text="" />
<item text="" />
<version title="v5.1.0" />
@@ -15,9 +19,6 @@
<item text=":adapter: Make NoAnimatorChange an object; previously a class" />
<item text=":core: KPref now supports in memory only variants for testing; pass KPrefBuilderInMemory to KPref constructor" />
<item text=":core: KPref initializer takes in SharedPreferences so user can configure it" />
- <item text="" />
- <item text="" />
- <item text="" />
<version title="v5.0.0" />
<item text="Update Android SDK to 29 and Kotlin to 1.3.31" />