aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/build.gradle6
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/swipe/SwipeBackLayout.kt3
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/ui/SimpleRippleDrawable.kt3
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/utils/ActivityUtils.kt4
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/utils/AnimHolder.kt3
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/utils/AnimUtils.kt74
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/utils/Const.kt5
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/utils/ContextUtils.kt12
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/utils/IIconUtils.kt3
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/utils/PackageUtils.kt8
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/utils/TransitionUtils.kt43
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/utils/ViewUtils.kt124
-rw-r--r--core/src/main/res-public/anim/kau_fade_in.xml (renamed from core/src/main/res/anim/kau_fade_in.xml)0
-rw-r--r--core/src/main/res-public/anim/kau_fade_out.xml (renamed from core/src/main/res/anim/kau_fade_out.xml)0
-rw-r--r--core/src/main/res-public/anim/kau_slide_in_bottom.xml (renamed from core/src/main/res/anim/kau_slide_in_bottom.xml)0
-rw-r--r--core/src/main/res-public/anim/kau_slide_in_left.xml (renamed from core/src/main/res/anim/kau_slide_in_left.xml)0
-rw-r--r--core/src/main/res-public/anim/kau_slide_in_right.xml (renamed from core/src/main/res/anim/kau_slide_in_right.xml)0
-rw-r--r--core/src/main/res-public/anim/kau_slide_in_top.xml (renamed from core/src/main/res/anim/kau_slide_in_top.xml)0
-rw-r--r--core/src/main/res-public/anim/kau_slide_out_bottom.xml (renamed from core/src/main/res/anim/kau_slide_out_bottom.xml)0
-rw-r--r--core/src/main/res-public/anim/kau_slide_out_left.xml (renamed from core/src/main/res/anim/kau_slide_out_left.xml)0
-rw-r--r--core/src/main/res-public/anim/kau_slide_out_right.xml (renamed from core/src/main/res/anim/kau_slide_out_right.xml)0
-rw-r--r--core/src/main/res-public/anim/kau_slide_out_right_top.xml (renamed from core/src/main/res/anim/kau_slide_out_right_top.xml)0
-rw-r--r--core/src/main/res-public/anim/kau_slide_out_top.xml (renamed from core/src/main/res/anim/kau_slide_out_top.xml)0
-rw-r--r--core/src/main/res-public/drawable-v21/kau_selectable_white.xml6
-rw-r--r--core/src/main/res-public/drawable/kau_selectable_white.xml13
-rw-r--r--core/src/main/res-public/drawable/kau_transparent.xml (renamed from core/src/main/res/drawable/kau_transparent.xml)0
-rw-r--r--core/src/main/res-public/transition-v21/kau_enter_slide_bottom.xml (renamed from core/src/main/res/transition/kau_enter_slide_bottom.xml)0
-rw-r--r--core/src/main/res-public/transition-v21/kau_enter_slide_top.xml (renamed from core/src/main/res/transition/kau_enter_slide_top.xml)0
-rw-r--r--core/src/main/res-public/transition-v21/kau_exit_slide_bottom.xml (renamed from core/src/main/res/transition/kau_exit_slide_bottom.xml)0
-rw-r--r--core/src/main/res-public/transition-v21/kau_exit_slide_top.xml (renamed from core/src/main/res/transition/kau_exit_slide_top.xml)0
-rw-r--r--core/src/main/res-public/values/dimens.xml (renamed from core/src/main/res/values/dimens.xml)3
-rw-r--r--core/src/main/res-public/values/public.xml111
-rw-r--r--core/src/main/res-public/values/strings_commons.xml (renamed from core/src/main/res/values/strings_commons.xml)3
-rw-r--r--core/src/main/res-public/values/styles.xml4
-rw-r--r--core/src/main/res-public/values/styles_animations.xml (renamed from core/src/main/res/values/styles_animations.xml)24
-rw-r--r--core/src/main/res/layout/kau_changelog_content.xml2
-rw-r--r--core/src/main/res/values/strings.xml13
37 files changed, 359 insertions, 108 deletions
diff --git a/core/build.gradle b/core/build.gradle
index 258f85a..af36d80 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -1,8 +1,6 @@
-apply from: '../android-lib.gradle'
+ext.kauSubModuleMinSdk = project.CORE_MIN_SDK
-android {
- resourcePrefix "kau_"
-}
+apply from: '../android-lib.gradle'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
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 7f4399d..1474c1a 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/swipe/SwipeBackLayout.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/swipe/SwipeBackLayout.kt
@@ -1,5 +1,6 @@
package ca.allanwang.kau.swipe
+import android.annotation.SuppressLint
import android.app.Activity
import android.content.Context
import android.graphics.Canvas
@@ -37,6 +38,7 @@ class SwipeBackLayout @JvmOverloads constructor(context: Context, attrs: Attribu
}
var activity: Activity? = null
+ @SuppressLint("NewApi")
set(value) {
field = value
if (value != null) {
@@ -81,6 +83,7 @@ class SwipeBackLayout @JvmOverloads constructor(context: Context, attrs: Attribu
val chromeFadeListener: SwipeListener by lazy {
object : SwipeListener {
+ @SuppressLint("NewApi")
override fun onScroll(percent: Float, px: Int, edgeFlag: Int) {
if (!transitionSystemBars) return
activity?.apply {
diff --git a/core/src/main/kotlin/ca/allanwang/kau/ui/SimpleRippleDrawable.kt b/core/src/main/kotlin/ca/allanwang/kau/ui/SimpleRippleDrawable.kt
index 30c8edd..b92b222 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/ui/SimpleRippleDrawable.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/ui/SimpleRippleDrawable.kt
@@ -3,7 +3,9 @@ package ca.allanwang.kau.ui
import android.content.res.ColorStateList
import android.graphics.drawable.ColorDrawable
import android.graphics.drawable.RippleDrawable
+import android.os.Build
import android.support.annotation.ColorInt
+import android.support.annotation.RequiresApi
import ca.allanwang.kau.utils.adjustAlpha
/**
@@ -11,6 +13,7 @@ import ca.allanwang.kau.utils.adjustAlpha
*
* Tries to mimic a standard ripple, given the foreground and background colors
*/
+@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
fun createSimpleRippleDrawable(@ColorInt foregroundColor: Int, @ColorInt backgroundColor: Int): RippleDrawable {
val states = ColorStateList(arrayOf(intArrayOf()), intArrayOf(foregroundColor))
val content = ColorDrawable(backgroundColor)
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 cd6e089..54aeaff 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/utils/ActivityUtils.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/utils/ActivityUtils.kt
@@ -39,13 +39,17 @@ fun Activity.finishSlideOut() {
}
inline var Activity.navigationBarColor: Int
+ @SuppressLint("NewApi")
get() = if (buildIsLollipopAndUp) window.navigationBarColor else Color.BLACK
+ @SuppressLint("NewApi")
set(value) {
if (buildIsLollipopAndUp) window.navigationBarColor = value
}
inline var Activity.statusBarColor: Int
+ @SuppressLint("NewApi")
get() = if (buildIsLollipopAndUp) window.statusBarColor else Color.BLACK
+ @SuppressLint("NewApi")
set(value) {
if (buildIsLollipopAndUp) window.statusBarColor = value
}
diff --git a/core/src/main/kotlin/ca/allanwang/kau/utils/AnimHolder.kt b/core/src/main/kotlin/ca/allanwang/kau/utils/AnimHolder.kt
index 3db8b9c..2767f04 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/utils/AnimHolder.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/utils/AnimHolder.kt
@@ -1,5 +1,7 @@
package ca.allanwang.kau.utils
+import android.os.Build
+import android.support.annotation.RequiresApi
import ca.allanwang.kau.kotlin.lazyInterpolator
/**
@@ -9,6 +11,7 @@ import ca.allanwang.kau.kotlin.lazyInterpolator
*/
object AnimHolder {
+ @RequiresApi(Build.VERSION_CODES.LOLLIPOP)
val fastOutSlowInInterpolator = lazyInterpolator(android.R.interpolator.fast_out_linear_in)
val decelerateInterpolator = lazyInterpolator(android.R.interpolator.decelerate_cubic)
diff --git a/core/src/main/kotlin/ca/allanwang/kau/utils/AnimUtils.kt b/core/src/main/kotlin/ca/allanwang/kau/utils/AnimUtils.kt
index bbde077..ed4b7bd 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/utils/AnimUtils.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/utils/AnimUtils.kt
@@ -2,12 +2,12 @@ package ca.allanwang.kau.utils
import android.animation.Animator
import android.animation.AnimatorListenerAdapter
+import android.annotation.SuppressLint
import android.support.annotation.StringRes
import android.view.View
import android.view.ViewAnimationUtils
import android.view.animation.Animation
import android.view.animation.AnimationUtils
-import android.view.animation.DecelerateInterpolator
import android.widget.TextView
/**
@@ -15,33 +15,8 @@ import android.widget.TextView
*
* Animation extension functions for Views
*/
-@KauUtils fun View.rootCircularReveal(x: Int = 0, y: Int = 0, duration: Long = 500L, onStart: (() -> Unit)? = null, onFinish: (() -> Unit)? = null) {
- this.addOnLayoutChangeListener(object : View.OnLayoutChangeListener {
- override @KauUtils fun onLayoutChange(v: View, left: Int, top: Int, right: Int, bottom: Int, oldLeft: Int, oldTop: Int,
- oldRight: Int, oldBottom: Int) {
- v.removeOnLayoutChangeListener(this)
- var x2 = x
- var y2 = y
- if (x2 > right) x2 = 0
- if (y2 > bottom) y2 = 0
- val radius = Math.hypot(Math.max(x2, right - x2).toDouble(), Math.max(y2, bottom - y2).toDouble()).toInt()
- val reveal = ViewAnimationUtils.createCircularReveal(v, x2, y2, 0f, radius.toFloat())
- reveal.interpolator = DecelerateInterpolator(1f)
- reveal.duration = duration
- reveal.addListener(object : AnimatorListenerAdapter() {
- override @KauUtils fun onAnimationStart(animation: Animator?) {
- visible()
- onStart?.invoke()
- }
-
- override @KauUtils fun onAnimationEnd(animation: Animator?) = onFinish?.invoke() ?: Unit
- override @KauUtils fun onAnimationCancel(animation: Animator?) = onFinish?.invoke() ?: Unit
- })
- reveal.start()
- }
- })
-}
+@SuppressLint("NewApi")
@KauUtils fun View.circularReveal(x: Int = 0, y: Int = 0, offset: Long = 0L, radius: Float = -1.0f, duration: Long = 500L, onStart: (() -> Unit)? = null, onFinish: (() -> Unit)? = null) {
if (!isAttachedToWindow) {
onStart?.invoke()
@@ -49,10 +24,11 @@ import android.widget.TextView
onFinish?.invoke()
return
}
- var r = radius
- if (r < 0.0f) {
- r = Math.max(Math.hypot(x.toDouble(), y.toDouble()), Math.hypot((width - x.toDouble()), (height - y.toDouble()))).toFloat()
- }
+ if (!buildIsLollipopAndUp) return fadeIn(offset, duration, onStart, onFinish)
+
+ val r = if (radius >= 0) radius
+ else Math.max(Math.hypot(x.toDouble(), y.toDouble()), Math.hypot((width - x.toDouble()), (height - y.toDouble()))).toFloat()
+
val anim = ViewAnimationUtils.createCircularReveal(this, x, y, 0f, r).setDuration(duration)
anim.startDelay = offset
anim.addListener(object : AnimatorListenerAdapter() {
@@ -67,6 +43,7 @@ import android.widget.TextView
anim.start()
}
+@SuppressLint("NewApi")
@KauUtils fun View.circularHide(x: Int = 0, y: Int = 0, offset: Long = 0L, radius: Float = -1.0f, duration: Long = 500L, onStart: (() -> Unit)? = null, onFinish: (() -> Unit)? = null) {
if (!isAttachedToWindow) {
onStart?.invoke()
@@ -74,10 +51,11 @@ import android.widget.TextView
onFinish?.invoke()
return
}
- var r = radius
- if (r < 0.0f) {
- r = Math.max(Math.hypot(x.toDouble(), y.toDouble()), Math.hypot((width - x.toDouble()), (height - y.toDouble()))).toFloat()
- }
+ if (!buildIsLollipopAndUp) return fadeOut(offset, duration, onStart, onFinish)
+
+ val r = if (radius >= 0) radius
+ else Math.max(Math.hypot(x.toDouble(), y.toDouble()), Math.hypot((width - x.toDouble()), (height - y.toDouble()))).toFloat()
+
val anim = ViewAnimationUtils.createCircularReveal(this, x, y, r, 0f).setDuration(duration)
anim.startDelay = offset
anim.addListener(object : AnimatorListenerAdapter() {
@@ -100,20 +78,18 @@ import android.widget.TextView
onFinish?.invoke()
return
}
- if (isAttachedToWindow) {
- val anim = AnimationUtils.loadAnimation(context, android.R.anim.fade_in)
- anim.startOffset = offset
- anim.duration = duration
- anim.setAnimationListener(object : Animation.AnimationListener {
- override @KauUtils fun onAnimationRepeat(animation: Animation?) {}
- override @KauUtils fun onAnimationEnd(animation: Animation?) = onFinish?.invoke() ?: Unit
- override @KauUtils fun onAnimationStart(animation: Animation?) {
- visible()
- onStart?.invoke()
- }
- })
- startAnimation(anim)
- }
+ val anim = AnimationUtils.loadAnimation(context, android.R.anim.fade_in)
+ anim.startOffset = offset
+ anim.duration = duration
+ anim.setAnimationListener(object : Animation.AnimationListener {
+ override @KauUtils fun onAnimationRepeat(animation: Animation?) {}
+ override @KauUtils fun onAnimationEnd(animation: Animation?) = onFinish?.invoke() ?: Unit
+ override @KauUtils fun onAnimationStart(animation: Animation?) {
+ visible()
+ onStart?.invoke()
+ }
+ })
+ startAnimation(anim)
}
@KauUtils fun View.fadeOut(offset: Long = 0L, duration: Long = 200L, onStart: (() -> Unit)? = null, onFinish: (() -> Unit)? = null) {
diff --git a/core/src/main/kotlin/ca/allanwang/kau/utils/Const.kt b/core/src/main/kotlin/ca/allanwang/kau/utils/Const.kt
index 9fcc7e7..f267a60 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/utils/Const.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/utils/Const.kt
@@ -8,4 +8,7 @@ const val ANDROID_NAMESPACE = "http://schemas.android.com/apk/res/android"
const val KAU_LEFT = 1
const val KAU_TOP = 2
const val KAU_RIGHT = 4
-const val KAU_BOTTOM = 8 \ No newline at end of file
+const val KAU_BOTTOM = 8
+const val KAU_HORIZONTAL = KAU_LEFT and KAU_RIGHT
+const val KAU_VERTICAL = KAU_TOP and KAU_BOTTOM
+const val KAU_ALL = KAU_HORIZONTAL and KAU_VERTICAL \ No newline at end of file
diff --git a/core/src/main/kotlin/ca/allanwang/kau/utils/ContextUtils.kt b/core/src/main/kotlin/ca/allanwang/kau/utils/ContextUtils.kt
index a8e0715..bf30a91 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/utils/ContextUtils.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/utils/ContextUtils.kt
@@ -1,5 +1,6 @@
package ca.allanwang.kau.utils
+import android.annotation.SuppressLint
import android.app.Activity
import android.app.ActivityOptions
import android.content.ClipData
@@ -25,6 +26,7 @@ import com.afollestad.materialdialogs.MaterialDialog
/**
* Created by Allan Wang on 2017-06-03.
*/
+@SuppressLint("NewApi")
fun Context.startActivity(
clazz: Class<out Activity>,
clearStack: Boolean = false,
@@ -34,7 +36,9 @@ fun Context.startActivity(
val intent = (Intent(this, clazz))
if (clearStack) intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
intent.intentBuilder()
- val fullBundle = if (transition && this is Activity) ActivityOptions.makeSceneTransitionAnimation(this).toBundle() else Bundle()
+ val fullBundle = if (transition && this is Activity && buildIsLollipopAndUp)
+ ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
+ else Bundle()
if (transition && this !is Activity) KL.d("Cannot make scene transition when context is not an instance of an Activity")
if (bundle != null) fullBundle.putAll(bundle)
ContextCompat.startActivity(this, intent, if (fullBundle.isEmpty) null else fullBundle)
@@ -97,7 +101,11 @@ inline fun Context.drawable(@DrawableRes id: Int): Drawable = ContextCompat.getD
inline fun Context.drawable(@DrawableRes id: Int, fallback: Drawable?): Drawable? = if (id > 0) drawable(id) else fallback
inline fun Context.interpolator(@InterpolatorRes id: Int) = AnimationUtils.loadInterpolator(this, id)
inline fun Context.animation(@AnimRes id: Int) = AnimationUtils.loadAnimation(this, id)
-inline fun Context.plural(@PluralsRes id: Int, quantity: Number) = resources.getQuantityString(id, quantity.toInt())
+/**
+ * Returns plural form of res. The quantity is also passed to the formatter as an int
+ */
+inline fun Context.plural(@PluralsRes id: Int, quantity: Number)
+ = resources.getQuantityString(id, quantity.toInt(), quantity.toInt())
//Attr retrievers
fun Context.resolveColor(@AttrRes attr: Int, fallback: Int = 0): Int {
diff --git a/core/src/main/kotlin/ca/allanwang/kau/utils/IIconUtils.kt b/core/src/main/kotlin/ca/allanwang/kau/utils/IIconUtils.kt
index 03a1605..4c71945 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/utils/IIconUtils.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/utils/IIconUtils.kt
@@ -13,8 +13,7 @@ import com.mikepenz.iconics.typeface.IIcon
*/
@KauUtils fun IIcon.toDrawable(c: Context, sizeDp: Int = 24, @ColorInt color: Int = Color.WHITE, builder: IconicsDrawable.() -> Unit = {}): Drawable {
val state = ColorStateList.valueOf(color)
- val icon = IconicsDrawable(c).icon(this).sizeDp(sizeDp)
- icon.setTintList(state)
+ val icon = IconicsDrawable(c).icon(this).sizeDp(sizeDp).color(state)
icon.builder()
return icon
} \ No newline at end of file
diff --git a/core/src/main/kotlin/ca/allanwang/kau/utils/PackageUtils.kt b/core/src/main/kotlin/ca/allanwang/kau/utils/PackageUtils.kt
index 89d64e5..36bcc93 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/utils/PackageUtils.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/utils/PackageUtils.kt
@@ -30,12 +30,14 @@ import android.os.Build
}
}
-inline val buildIsLollipopAndUp: Boolean
- get() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
-
inline val buildIsMarshmallowAndUp: Boolean
+
get() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
+inline val buildIsLollipopAndUp: Boolean
+ @SuppressWarnings("NewApi")
+ get() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
+
inline val buildIsNougatAndUp: Boolean
get() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N
diff --git a/core/src/main/kotlin/ca/allanwang/kau/utils/TransitionUtils.kt b/core/src/main/kotlin/ca/allanwang/kau/utils/TransitionUtils.kt
index 9e668d0..fa062f7 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/utils/TransitionUtils.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/utils/TransitionUtils.kt
@@ -1,11 +1,19 @@
package ca.allanwang.kau.utils
-import android.support.transition.Transition
-import android.support.transition.TransitionSet
+import android.os.Build
+import android.support.annotation.RequiresApi
+import android.support.annotation.TransitionRes
+import android.support.transition.AutoTransition
+import android.support.transition.TransitionInflater
+import android.support.transition.TransitionManager
+import android.support.transition.Transition as SupportTransition
+import android.transition.Transition
+import android.view.ViewGroup
/**
* Created by Allan Wang on 2017-06-24.
*/
+@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
class TransitionEndListener(val onEnd: (transition: Transition) -> Unit) : Transition.TransitionListener {
override fun onTransitionEnd(transition: Transition) = onEnd(transition)
override fun onTransitionResume(transition: Transition) {}
@@ -14,6 +22,35 @@ class TransitionEndListener(val onEnd: (transition: Transition) -> Unit) : Trans
override fun onTransitionStart(transition: Transition) {}
}
-@KauUtils fun TransitionSet.addEndListener(onEnd: (transition: Transition) -> Unit) {
+@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
+@KauUtils fun Transition.addEndListener(onEnd: (transition: Transition) -> Unit) {
addListener(TransitionEndListener(onEnd))
+}
+
+@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
+class SupportTransitionEndListener(val onEnd: (transition: SupportTransition) -> Unit) : SupportTransition.TransitionListener {
+ override fun onTransitionEnd(transition: SupportTransition) = onEnd(transition)
+ override fun onTransitionResume(transition: SupportTransition) {}
+ override fun onTransitionPause(transition: SupportTransition) {}
+ override fun onTransitionCancel(transition: SupportTransition) {}
+ override fun onTransitionStart(transition: SupportTransition) {}
+}
+
+@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
+@KauUtils fun SupportTransition.addEndListener(onEnd: (transition: SupportTransition) -> Unit) {
+ addListener(SupportTransitionEndListener(onEnd))
+}
+
+@KauUtils fun ViewGroup.transitionAuto(builder: AutoTransition.() -> Unit = {}) {
+ if (!buildIsLollipopAndUp) return
+ val transition = AutoTransition()
+ transition.builder()
+ TransitionManager.beginDelayedTransition(this, transition)
+}
+
+@KauUtils fun ViewGroup.transitionDelayed(@TransitionRes id: Int, builder: android.support.transition.Transition.() -> Unit = {}) {
+ if (!buildIsLollipopAndUp) return
+ val transition = TransitionInflater.from(context).inflateTransition(id)
+ transition.builder()
+ TransitionManager.beginDelayedTransition(this, transition)
} \ No newline at end of file
diff --git a/core/src/main/kotlin/ca/allanwang/kau/utils/ViewUtils.kt b/core/src/main/kotlin/ca/allanwang/kau/utils/ViewUtils.kt
index 59ae204..ead2cb7 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/utils/ViewUtils.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/utils/ViewUtils.kt
@@ -5,10 +5,8 @@ package ca.allanwang.kau.utils
import android.animation.ValueAnimator
import android.content.Context
import android.graphics.Color
-import android.support.annotation.ColorInt
-import android.support.annotation.ColorRes
-import android.support.annotation.StringRes
-import android.support.annotation.TransitionRes
+import android.os.Build
+import android.support.annotation.*
import android.support.design.widget.FloatingActionButton
import android.support.design.widget.Snackbar
import android.support.design.widget.TextInputEditText
@@ -93,30 +91,98 @@ fun FloatingActionButton.hideIf(hide: Boolean) = if (hide) hide() else show()
/**
* Set left margin to a value in px
*/
-@KauUtils fun View.updateLeftMargin(margin: Int) = updateMargins(margin, KAU_LEFT)
+@KauUtils fun View.setMarginLeft(margin: Int) = setMargins(margin, KAU_LEFT)
/**
* Set top margin to a value in px
*/
-@KauUtils fun View.updateTopMargin(margin: Int) = updateMargins(margin, KAU_TOP)
+@KauUtils fun View.setMarginTop(margin: Int) = setMargins(margin, KAU_TOP)
/**
* Set right margin to a value in px
*/
-@KauUtils fun View.updateRightMargin(margin: Int) = updateMargins(margin, KAU_RIGHT)
+@KauUtils fun View.setMarginRight(margin: Int) = setMargins(margin, KAU_RIGHT)
/**
* Set bottom margin to a value in px
*/
-@KauUtils fun View.updateBottomMargin(margin: Int) = updateMargins(margin, KAU_BOTTOM)
+@KauUtils fun View.setMarginBottom(margin: Int) = setMargins(margin, KAU_BOTTOM)
-@KauUtils private fun View.updateMargins(margin: Int, flag: Int) {
- val p = (layoutParams as? ViewGroup.MarginLayoutParams) ?: return
+/**
+ * Set left and right margins to a value in px
+ */
+@KauUtils fun View.setMarginHorizontal(margin: Int) = setMargins(margin, KAU_HORIZONTAL)
+
+/**
+ * Set top and bottom margins to a value in px
+ */
+@KauUtils fun View.setMarginVertical(margin: Int) = setMargins(margin, KAU_VERTICAL)
+
+/**
+ * Set all margins to a value in px
+ */
+@KauUtils fun View.setMargin(margin: Int) = setMargins(margin, KAU_ALL)
+
+/**
+ * Base margin setter
+ * returns true if setting is successful, false otherwise
+ */
+@KauUtils private fun View.setMargins(margin: Int, flag: Int): Boolean {
+ val p = (layoutParams as? ViewGroup.MarginLayoutParams) ?: return false
p.setMargins(
- if (flag == KAU_LEFT) margin else p.leftMargin,
- if (flag == KAU_TOP) margin else p.topMargin,
- if (flag == KAU_RIGHT) margin else p.rightMargin,
- if (flag == KAU_BOTTOM) margin else p.bottomMargin
+ if (flag and KAU_LEFT > 0) margin else p.leftMargin,
+ if (flag and KAU_TOP > 0) margin else p.topMargin,
+ if (flag and KAU_RIGHT > 0) margin else p.rightMargin,
+ if (flag and KAU_BOTTOM > 0) margin else p.bottomMargin
+ )
+ requestLayout()
+ return true
+}
+
+/**
+ * Set left padding to a value in px
+ */
+@KauUtils fun View.setPaddingLeft(padding: Int) = setPadding(padding, KAU_LEFT)
+
+/**
+ * Set top padding to a value in px
+ */
+@KauUtils fun View.setPaddingTop(padding: Int) = setPadding(padding, KAU_TOP)
+
+/**
+ * Set right padding to a value in px
+ */
+@KauUtils fun View.setPaddingRight(padding: Int) = setPadding(padding, KAU_RIGHT)
+
+/**
+ * Set bottom padding to a value in px
+ */
+@KauUtils fun View.setPaddingBottom(padding: Int) = setPadding(padding, KAU_BOTTOM)
+
+/**
+ * Set left and right padding to a value in px
+ */
+@KauUtils fun View.setPaddingHorizontal(padding: Int) = setPadding(padding, KAU_HORIZONTAL)
+
+/**
+ * Set top and bottom padding to a value in px
+ */
+@KauUtils fun View.setPaddingVertical(padding: Int) = setPadding(padding, KAU_VERTICAL)
+
+/**
+ * Set all padding to a value in px
+ */
+@KauUtils fun View.setPadding(padding: Int) = setPadding(padding, KAU_ALL)
+
+/**
+ * Base padding setter
+ */
+@KauUtils private fun View.setPadding(padding: Int, flag: Int) {
+ setPadding(
+ if (flag and KAU_LEFT > 0) padding else paddingLeft,
+ if (flag and KAU_TOP > 0) padding else paddingTop,
+ if (flag and KAU_RIGHT > 0) padding else paddingRight,
+ if (flag and KAU_BOTTOM > 0) padding else paddingBottom
)
requestLayout()
}
@@ -131,18 +197,8 @@ fun FloatingActionButton.hideIf(hide: Boolean) = if (hide) hide() else show()
(context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager).showSoftInput(this, InputMethodManager.SHOW_IMPLICIT)
}
-@KauUtils fun ViewGroup.transitionAuto(builder: AutoTransition.() -> Unit = {}) {
- val transition = AutoTransition()
- transition.builder()
- TransitionManager.beginDelayedTransition(this, transition)
-}
-
-@KauUtils fun ViewGroup.transitionDelayed(@TransitionRes id: Int, builder: Transition.() -> Unit = {}) {
- val transition = TransitionInflater.from(context).inflateTransition(id)
- transition.builder()
- TransitionManager.beginDelayedTransition(this, transition)
-}
+@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
@KauUtils fun View.setRippleBackground(@ColorInt foregroundColor: Int, @ColorInt backgroundColor: Int) {
background = createSimpleRippleDrawable(foregroundColor, backgroundColor)
}
@@ -192,4 +248,22 @@ inline fun FloatingActionButton.transition(crossinline action: FloatingActionBut
start()
}
}
+}
+
+/**
+ * Attaches a listener to the recyclerview to hide the fab when it is scrolling downwards
+ * The fab will reappear when scrolling has stopped or if the user scrolls up
+ */
+fun FloatingActionButton.hideOnDownwardsScroll(recycler: RecyclerView) {
+ recycler.addOnScrollListener(object : RecyclerView.OnScrollListener() {
+
+ override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
+ if (newState == android.support.v7.widget.RecyclerView.SCROLL_STATE_IDLE && !isShown) show();
+ }
+
+ override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
+ if (dy > 0 && isShown) hide()
+ else if (dy < 0 && isHidden) show()
+ }
+ })
} \ No newline at end of file
diff --git a/core/src/main/res/anim/kau_fade_in.xml b/core/src/main/res-public/anim/kau_fade_in.xml
index 03312a2..03312a2 100644
--- a/core/src/main/res/anim/kau_fade_in.xml
+++ b/core/src/main/res-public/anim/kau_fade_in.xml
diff --git a/core/src/main/res/anim/kau_fade_out.xml b/core/src/main/res-public/anim/kau_fade_out.xml
index 322befc..322befc 100644
--- a/core/src/main/res/anim/kau_fade_out.xml
+++ b/core/src/main/res-public/anim/kau_fade_out.xml
diff --git a/core/src/main/res/anim/kau_slide_in_bottom.xml b/core/src/main/res-public/anim/kau_slide_in_bottom.xml
index a07cba4..a07cba4 100644
--- a/core/src/main/res/anim/kau_slide_in_bottom.xml
+++ b/core/src/main/res-public/anim/kau_slide_in_bottom.xml
diff --git a/core/src/main/res/anim/kau_slide_in_left.xml b/core/src/main/res-public/anim/kau_slide_in_left.xml
index 828bdae..828bdae 100644
--- a/core/src/main/res/anim/kau_slide_in_left.xml
+++ b/core/src/main/res-public/anim/kau_slide_in_left.xml
diff --git a/core/src/main/res/anim/kau_slide_in_right.xml b/core/src/main/res-public/anim/kau_slide_in_right.xml
index 0f9fbce..0f9fbce 100644
--- a/core/src/main/res/anim/kau_slide_in_right.xml
+++ b/core/src/main/res-public/anim/kau_slide_in_right.xml
diff --git a/core/src/main/res/anim/kau_slide_in_top.xml b/core/src/main/res-public/anim/kau_slide_in_top.xml
index 8caee9b..8caee9b 100644
--- a/core/src/main/res/anim/kau_slide_in_top.xml
+++ b/core/src/main/res-public/anim/kau_slide_in_top.xml
diff --git a/core/src/main/res/anim/kau_slide_out_bottom.xml b/core/src/main/res-public/anim/kau_slide_out_bottom.xml
index 44e7e21..44e7e21 100644
--- a/core/src/main/res/anim/kau_slide_out_bottom.xml
+++ b/core/src/main/res-public/anim/kau_slide_out_bottom.xml
diff --git a/core/src/main/res/anim/kau_slide_out_left.xml b/core/src/main/res-public/anim/kau_slide_out_left.xml
index 6fab33e..6fab33e 100644
--- a/core/src/main/res/anim/kau_slide_out_left.xml
+++ b/core/src/main/res-public/anim/kau_slide_out_left.xml
diff --git a/core/src/main/res/anim/kau_slide_out_right.xml b/core/src/main/res-public/anim/kau_slide_out_right.xml
index 9322741..9322741 100644
--- a/core/src/main/res/anim/kau_slide_out_right.xml
+++ b/core/src/main/res-public/anim/kau_slide_out_right.xml
diff --git a/core/src/main/res/anim/kau_slide_out_right_top.xml b/core/src/main/res-public/anim/kau_slide_out_right_top.xml
index 5b63474..5b63474 100644
--- a/core/src/main/res/anim/kau_slide_out_right_top.xml
+++ b/core/src/main/res-public/anim/kau_slide_out_right_top.xml
diff --git a/core/src/main/res/anim/kau_slide_out_top.xml b/core/src/main/res-public/anim/kau_slide_out_top.xml
index 9f8e14c..9f8e14c 100644
--- a/core/src/main/res/anim/kau_slide_out_top.xml
+++ b/core/src/main/res-public/anim/kau_slide_out_top.xml
diff --git a/core/src/main/res-public/drawable-v21/kau_selectable_white.xml b/core/src/main/res-public/drawable-v21/kau_selectable_white.xml
new file mode 100644
index 0000000..942f149
--- /dev/null
+++ b/core/src/main/res-public/drawable-v21/kau_selectable_white.xml
@@ -0,0 +1,6 @@
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="#40ffffff">
+ <item android:id="@android:id/mask">
+ <color android:color="@android:color/white" />
+ </item>
+</ripple> \ No newline at end of file
diff --git a/core/src/main/res-public/drawable/kau_selectable_white.xml b/core/src/main/res-public/drawable/kau_selectable_white.xml
new file mode 100644
index 0000000..5738478
--- /dev/null
+++ b/core/src/main/res-public/drawable/kau_selectable_white.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item>
+ <selector>
+ <item android:state_activated="true">
+ <color android:color="#40ffffff" />
+ </item>
+ <item>
+ <color android:color="@android:color/transparent" />
+ </item>
+ </selector>
+ </item>
+</layer-list> \ No newline at end of file
diff --git a/core/src/main/res/drawable/kau_transparent.xml b/core/src/main/res-public/drawable/kau_transparent.xml
index 399a46b..399a46b 100644
--- a/core/src/main/res/drawable/kau_transparent.xml
+++ b/core/src/main/res-public/drawable/kau_transparent.xml
diff --git a/core/src/main/res/transition/kau_enter_slide_bottom.xml b/core/src/main/res-public/transition-v21/kau_enter_slide_bottom.xml
index 575e189..575e189 100644
--- a/core/src/main/res/transition/kau_enter_slide_bottom.xml
+++ b/core/src/main/res-public/transition-v21/kau_enter_slide_bottom.xml
diff --git a/core/src/main/res/transition/kau_enter_slide_top.xml b/core/src/main/res-public/transition-v21/kau_enter_slide_top.xml
index 8cf613b..8cf613b 100644
--- a/core/src/main/res/transition/kau_enter_slide_top.xml
+++ b/core/src/main/res-public/transition-v21/kau_enter_slide_top.xml
diff --git a/core/src/main/res/transition/kau_exit_slide_bottom.xml b/core/src/main/res-public/transition-v21/kau_exit_slide_bottom.xml
index e0967ec..e0967ec 100644
--- a/core/src/main/res/transition/kau_exit_slide_bottom.xml
+++ b/core/src/main/res-public/transition-v21/kau_exit_slide_bottom.xml
diff --git a/core/src/main/res/transition/kau_exit_slide_top.xml b/core/src/main/res-public/transition-v21/kau_exit_slide_top.xml
index a9849c0..a9849c0 100644
--- a/core/src/main/res/transition/kau_exit_slide_top.xml
+++ b/core/src/main/res-public/transition-v21/kau_exit_slide_top.xml
diff --git a/core/src/main/res/values/dimens.xml b/core/src/main/res-public/values/dimens.xml
index b7c237a..efc7598 100644
--- a/core/src/main/res/values/dimens.xml
+++ b/core/src/main/res-public/values/dimens.xml
@@ -20,14 +20,13 @@
<dimen name="kau_spacing_large">32dp</dimen>
<dimen name="kau_spacing_xlarge">48dp</dimen>
<dimen name="kau_spacing_huge">64dp</dimen>
+ <dimen name="kau_padding_small">8dp</dimen>
<dimen name="kau_padding_normal">16dp</dimen>
<dimen name="kau_padding_large">24dp</dimen>
<dimen name="kau_fab_size">56dp</dimen>
<dimen name="kau_fab_radius">28dp</dimen>
<dimen name="kau_display_4_text_size">112sp</dimen>
- <dimen name="kau_about_header_height">224dp</dimen>
-
<!-- avatar should be a 40dp asset in a 48dp touch target & optically aligned with standard padding -->
<dimen name="kau_avatar_size">40dp</dimen>
<dimen name="kau_avatar_bounds">48dp</dimen>
diff --git a/core/src/main/res-public/values/public.xml b/core/src/main/res-public/values/public.xml
new file mode 100644
index 0000000..7057f1f
--- /dev/null
+++ b/core/src/main/res-public/values/public.xml
@@ -0,0 +1,111 @@
+<resources xmlns:tools='http://schemas.android.com/tools' tools:ignore='ResourceName'>
+<!-- AUTO-GENERATED FILE. DO NOT MODIFY. public.xml is generated by the generatepublicxml gradle task -->
+ <public name='kau_fade_in' type='anim' />
+ <public name='kau_fade_out' type='anim' />
+ <public name='kau_slide_in_bottom' type='anim' />
+ <public name='kau_slide_in_left' type='anim' />
+ <public name='kau_slide_in_right' type='anim' />
+ <public name='kau_slide_in_top' type='anim' />
+ <public name='kau_slide_out_bottom' type='anim' />
+ <public name='kau_slide_out_left' type='anim' />
+ <public name='kau_slide_out_right' type='anim' />
+ <public name='kau_slide_out_right_top' type='anim' />
+ <public name='kau_slide_out_top' type='anim' />
+ <public name='kau_selectable_white' type='drawable' />
+ <public name='kau_transparent' type='drawable' />
+ <public name='kau_enter_slide_bottom' type='transition' />
+ <public name='kau_enter_slide_top' type='transition' />
+ <public name='kau_exit_slide_bottom' type='transition' />
+ <public name='kau_exit_slide_top' type='transition' />
+ <public name='kau_activity_horizontal_margin' type='dimen' />
+ <public name='kau_activity_vertical_margin' type='dimen' />
+ <public name='kau_dialog_margin' type='dimen' />
+ <public name='kau_dialog_margin_bottom' type='dimen' />
+ <public name='kau_fab_margin' type='dimen' />
+ <public name='kau_appbar_padding_top' type='dimen' />
+ <public name='kau_splash_logo' type='dimen' />
+ <public name='kau_progress_bar_height' type='dimen' />
+ <public name='kau_account_image_size' type='dimen' />
+ <public name='kau_status_bar_height' type='dimen' />
+ <public name='kau_drag_dismiss_distance' type='dimen' />
+ <public name='kau_drag_dismiss_distance_large' type='dimen' />
+ <public name='kau_spacing_normal' type='dimen' />
+ <public name='kau_spacing_micro' type='dimen' />
+ <public name='kau_spacing_large' type='dimen' />
+ <public name='kau_spacing_xlarge' type='dimen' />
+ <public name='kau_spacing_huge' type='dimen' />
+ <public name='kau_padding_small' type='dimen' />
+ <public name='kau_padding_normal' type='dimen' />
+ <public name='kau_padding_large' type='dimen' />
+ <public name='kau_fab_size' type='dimen' />
+ <public name='kau_fab_radius' type='dimen' />
+ <public name='kau_display_4_text_size' type='dimen' />
+ <public name='kau_avatar_size' type='dimen' />
+ <public name='kau_avatar_bounds' type='dimen' />
+ <public name='kau_avatar_padding' type='dimen' />
+ <public name='kau_avatar_margin' type='dimen' />
+ <public name='kau_avatar_ripple_radius' type='dimen' />
+ <public name='kau_about_app' type='string' />
+ <public name='kau_about_x' type='string' />
+ <public name='kau_add_account' type='string' />
+ <public name='kau_amoled' type='string' />
+ <public name='kau_back' type='string' />
+ <public name='kau_cancel' type='string' />
+ <public name='kau_changelog' type='string' />
+ <public name='kau_close' type='string' />
+ <public name='kau_contact_us' type='string' />
+ <public name='kau_copy' type='string' />
+ <public name='kau_custom' type='string' />
+ <public name='kau_dark' type='string' />
+ <public name='kau_default' type='string' />
+ <public name='kau_do_not_show_again' type='string' />
+ <public name='kau_done' type='string' />
+ <public name='kau_error' type='string' />
+ <public name='kau_exit' type='string' />
+ <public name='kau_exit_confirmation' type='string' />
+ <public name='kau_exit_confirmation_x' type='string' />
+ <public name='kau_glass' type='string' />
+ <public name='kau_got_it' type='string' />
+ <public name='kau_great' type='string' />
+ <public name='kau_hide' type='string' />
+ <public name='kau_light' type='string' />
+ <public name='kau_login' type='string' />
+ <public name='kau_logout' type='string' />
+ <public name='kau_logout_confirm_as_x' type='string' />
+ <public name='kau_lorem_ipsum' type='string' />
+ <public name='kau_manage_account' type='string' />
+ <public name='kau_maybe' type='string' />
+ <public name='kau_menu' type='string' />
+ <public name='kau_no' type='string' />
+ <public name='kau_no_results_found' type='string' />
+ <public name='kau_none' type='string' />
+ <public name='kau_ok' type='string' />
+ <public name='kau_play_store' type='string' />
+ <public name='kau_rate' type='string' />
+ <public name='kau_report_bug' type='string' />
+ <public name='kau_search' type='string' />
+ <public name='kau_send_feedback' type='string' />
+ <public name='kau_send_via' type='string' />
+ <public name='kau_settings' type='string' />
+ <public name='kau_share' type='string' />
+ <public name='kau_text_copied' type='string' />
+ <public name='kau_thank_you' type='string' />
+ <public name='kau_uh_oh' type='string' />
+ <public name='kau_warning' type='string' />
+ <public name='kau_x_days' type='plurals' />
+ <public name='kau_x_hours' type='plurals' />
+ <public name='kau_x_minutes' type='plurals' />
+ <public name='kau_x_seconds' type='plurals' />
+ <public name='kau_yes' type='string' />
+ <public name='kau_permission_denied' type='string' />
+ <public name='kau_0' type='string' />
+ <public name='kau_bullet_point' type='string' />
+ <public name='Kau' type='style' />
+ <public name='KauFadeIn' type='style' />
+ <public name='KauFadeInFadeOut' type='style' />
+ <public name='KauSlideInRight' type='style' />
+ <public name='KauSlideInBottom' type='style' />
+ <public name='KauSlideInFadeOut' type='style' />
+ <public name='KauSlideInSlideOutRight' type='style' />
+ <public name='KauSlideInSlideOutBottom' type='style' />
+</resources> \ No newline at end of file
diff --git a/core/src/main/res/values/strings_commons.xml b/core/src/main/res-public/values/strings_commons.xml
index 560a478..d236021 100644
--- a/core/src/main/res/values/strings_commons.xml
+++ b/core/src/main/res-public/values/strings_commons.xml
@@ -68,4 +68,7 @@ Most resources are verbatim and x represents a formatted item
<item quantity="other">%d seconds</item>
</plurals>
<string name="kau_yes">Yes</string>
+ <string name="kau_permission_denied">Permission denied</string>
+ <string name="kau_0">0</string>
+ <string name="kau_bullet_point">•</string>
</resources>
diff --git a/core/src/main/res-public/values/styles.xml b/core/src/main/res-public/values/styles.xml
new file mode 100644
index 0000000..f6f1929
--- /dev/null
+++ b/core/src/main/res-public/values/styles.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<resources>
+ <style name="Kau" parent="Theme.AppCompat.NoActionBar"/>
+</resources>
diff --git a/core/src/main/res/values/styles_animations.xml b/core/src/main/res-public/values/styles_animations.xml
index fc872bd..b98add9 100644
--- a/core/src/main/res/values/styles_animations.xml
+++ b/core/src/main/res-public/values/styles_animations.xml
@@ -18,7 +18,7 @@
<item name="android:windowExitAnimation">@anim/kau_fade_out</item>
</style>
- <style name="KauSlideIn" parent="@android:style/Animation.Activity">
+ <style name="KauSlideInRight" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/kau_slide_in_right</item>
<item name="android:activityCloseEnterAnimation">@anim/kau_slide_in_right</item>
<item name="android:taskOpenEnterAnimation">@anim/kau_slide_in_right</item>
@@ -27,7 +27,16 @@
<item name="android:windowEnterAnimation">@anim/kau_slide_in_right</item>
</style>
- <style name="KauSlideInFadeOut" parent="@style/KauSlideIn">
+ <style name="KauSlideInBottom" parent="@android:style/Animation.Activity">
+ <item name="android:activityOpenEnterAnimation">@anim/kau_slide_in_bottom</item>
+ <item name="android:activityCloseEnterAnimation">@anim/kau_slide_in_bottom</item>
+ <item name="android:taskOpenEnterAnimation">@anim/kau_slide_in_bottom</item>
+ <item name="android:taskCloseEnterAnimation">@anim/kau_slide_in_bottom</item>
+ <item name="android:taskToFrontEnterAnimation">@anim/kau_slide_in_bottom</item>
+ <item name="android:windowEnterAnimation">@anim/kau_slide_in_bottom</item>
+ </style>
+
+ <style name="KauSlideInFadeOut" parent="@style/KauSlideInRight">
<item name="android:activityOpenExitAnimation">@anim/kau_fade_out</item>
<item name="android:activityCloseExitAnimation">@anim/kau_fade_out</item>
<item name="android:taskOpenExitAnimation">@anim/kau_fade_out</item>
@@ -36,7 +45,7 @@
<item name="android:windowExitAnimation">@anim/kau_fade_out</item>
</style>
- <style name="KauSlideInSlideOut" parent="@style/KauSlideIn">
+ <style name="KauSlideInSlideOutRight" parent="@style/KauSlideInRight">
<item name="android:activityOpenExitAnimation">@anim/kau_slide_out_right</item>
<item name="android:activityCloseExitAnimation">@anim/kau_slide_out_right</item>
<item name="android:taskOpenExitAnimation">@anim/kau_slide_out_right</item>
@@ -44,4 +53,13 @@
<item name="android:taskToFrontExitAnimation">@anim/kau_slide_out_right</item>
<item name="android:windowExitAnimation">@anim/kau_slide_out_right</item>
</style>
+
+ <style name="KauSlideInSlideOutBottom" parent="@style/KauSlideInBottom">
+ <item name="android:activityOpenExitAnimation">@anim/kau_slide_out_bottom</item>
+ <item name="android:activityCloseExitAnimation">@anim/kau_slide_out_bottom</item>
+ <item name="android:taskOpenExitAnimation">@anim/kau_slide_out_bottom</item>
+ <item name="android:taskCloseExitAnimation">@anim/kau_slide_out_bottom</item>
+ <item name="android:taskToFrontExitAnimation">@anim/kau_slide_out_bottom</item>
+ <item name="android:windowExitAnimation">@anim/kau_slide_out_bottom</item>
+ </style>
</resources>
diff --git a/core/src/main/res/layout/kau_changelog_content.xml b/core/src/main/res/layout/kau_changelog_content.xml
index 92b87b9..5c463aa 100644
--- a/core/src/main/res/layout/kau_changelog_content.xml
+++ b/core/src/main/res/layout/kau_changelog_content.xml
@@ -15,7 +15,7 @@
android:layout_height="wrap_content"
android:lineSpacingMultiplier="1.6"
android:paddingRight="5dp"
- android:text="@string/kau_u2022"
+ android:text="@string/kau_bullet_point"
android:textAppearance="@style/TextAppearance.AppCompat.Small" />
<TextView
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
deleted file mode 100644
index 7ad6e38..0000000
--- a/core/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<resources>
- <string name="kau_about_libraries_intro">This app would not be possible without the following great libraries.</string>
- <string name="kau_color_picker">Color Picker</string>
- <string name="kau_dependencies_used">Dependencies Used</string>
- <string name="kau_kpref_title_placeholder">Title Placeholder</string>
- <string name="kau_md_color_palette">Color Palette</string>
- <!--Color Picker-->
- <string name="kau_md_custom">Custom</string>
- <string name="kau_md_presets">Presets</string>
- <string name="kau_pref_icon">Pref Icon</string>
- <string name="kau_u2022">•</string>
-</resources>