aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/ca/allanwang/kau/utils/BundleUtils.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-12-10 23:39:57 -0500
committerGitHub <noreply@github.com>2017-12-10 23:39:57 -0500
commitfb9ca21757068c0fb4123a5e30b1471ae4c32cf3 (patch)
tree7d5b5bbe749f24d522ebe6a57c1bf73f1590de48 /core/src/main/kotlin/ca/allanwang/kau/utils/BundleUtils.kt
parent1269a026da6a4597f7123e310768e3377e8c63e8 (diff)
downloadkau-fb9ca21757068c0fb4123a5e30b1471ae4c32cf3.tar.gz
kau-fb9ca21757068c0fb4123a5e30b1471ae4c32cf3.tar.bz2
kau-fb9ca21757068c0fb4123a5e30b1471ae4c32cf3.zip
Unify start activity design (#112)
Diffstat (limited to 'core/src/main/kotlin/ca/allanwang/kau/utils/BundleUtils.kt')
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/utils/BundleUtils.kt46
1 files changed, 46 insertions, 0 deletions
diff --git a/core/src/main/kotlin/ca/allanwang/kau/utils/BundleUtils.kt b/core/src/main/kotlin/ca/allanwang/kau/utils/BundleUtils.kt
new file mode 100644
index 0000000..98fceaf
--- /dev/null
+++ b/core/src/main/kotlin/ca/allanwang/kau/utils/BundleUtils.kt
@@ -0,0 +1,46 @@
+package ca.allanwang.kau.utils
+
+import android.annotation.SuppressLint
+import android.app.Activity
+import android.app.ActivityOptions
+import android.content.Context
+import android.os.Bundle
+import android.support.annotation.AnimRes
+import android.support.v4.app.ActivityOptionsCompat
+import ca.allanwang.kau.R
+
+/**
+ * Created by Allan Wang on 10/12/17.
+ */
+/**
+ * Similar to [Bundle.putAll], but checks for a null insert and returns the parent bundle
+ */
+infix fun Bundle.with(bundle: Bundle?): Bundle {
+ if (bundle != null) putAll(bundle)
+ return this
+}
+
+/**
+ * Adds transition bundle if context is activity and build is lollipop+
+ */
+@SuppressLint("NewApi")
+fun Bundle.withSceneTransitionAnimation(context: Context) {
+ if (context !is Activity || !buildIsLollipopAndUp) return
+ this with ActivityOptions.makeSceneTransitionAnimation(context).toBundle()
+}
+
+fun Bundle.withCustomAnimation(context: Context,
+ @AnimRes enterResId: Int,
+ @AnimRes exitResId: Int) {
+ this with ActivityOptionsCompat.makeCustomAnimation(context,
+ enterResId, exitResId).toBundle()
+}
+
+fun Bundle.withSlideIn(context: Context) = withCustomAnimation(context,
+ R.anim.kau_slide_in_right, R.anim.kau_fade_out)
+
+fun Bundle.withSlideOut(context: Context) = withCustomAnimation(context,
+ R.anim.kau_fade_in, R.anim.kau_slide_out_right_top)
+
+fun Bundle.withFade(context: Context) = withCustomAnimation(context,
+ android.R.anim.fade_in, android.R.anim.fade_out) \ No newline at end of file