diff options
author | Allan Wang <me@allanwang.ca> | 2017-12-10 23:39:57 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-10 23:39:57 -0500 |
commit | fb9ca21757068c0fb4123a5e30b1471ae4c32cf3 (patch) | |
tree | 7d5b5bbe749f24d522ebe6a57c1bf73f1590de48 /core/src/main/kotlin/ca/allanwang/kau/utils/BundleUtils.kt | |
parent | 1269a026da6a4597f7123e310768e3377e8c63e8 (diff) | |
download | kau-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.kt | 46 |
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 |