aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/ca/allanwang/kau/utils/ActivityUtils.kt
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/kotlin/ca/allanwang/kau/utils/ActivityUtils.kt')
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/utils/ActivityUtils.kt24
1 files changed, 20 insertions, 4 deletions
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 4f95b2c..3b99c46 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/utils/ActivityUtils.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/utils/ActivityUtils.kt
@@ -1,12 +1,16 @@
package ca.allanwang.kau.utils
+import android.annotation.SuppressLint
import android.app.Activity
import android.content.Intent
import android.graphics.Color
+import android.os.Build
import android.support.annotation.ColorInt
+import android.support.annotation.RequiresApi
import android.support.annotation.StringRes
import android.support.design.widget.Snackbar
import android.view.Menu
+import android.view.View
import ca.allanwang.kau.R
import com.mikepenz.iconics.typeface.IIcon
import org.jetbrains.anko.contentView
@@ -16,18 +20,17 @@ import org.jetbrains.anko.contentView
*/
/**
- * Restarts an activity from itself without animations
+ * Restarts an activity from itself with a fade animation
* Keeps its existing extra bundles and has a builder to accept other parameters
*/
fun Activity.restart(builder: Intent.() -> Unit = {}) {
val i = Intent(this, this::class.java)
- i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
i.putExtras(intent.extras)
i.builder()
startActivity(i)
- overridePendingTransition(0, 0) //No transitions
+ overridePendingTransition(R.anim.kau_fade_in, R.anim.kau_fade_out) //No transitions
finish()
- overridePendingTransition(0, 0)
+ overridePendingTransition(R.anim.kau_fade_in, R.anim.kau_fade_out)
}
fun Activity.finishSlideOut() {
@@ -47,6 +50,19 @@ var Activity.statusBarColor: Int
if (buildIsLollipopAndUp) window.statusBarColor = value
}
+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()
+ }
+ }
+
/**
* Themes the base menu icons and adds iicons programmatically based on ids
*