1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
package ca.allanwang.kau.utils
import android.content.Context
import android.graphics.Color
import android.support.annotation.ColorInt
import android.support.annotation.StringRes
import android.support.design.widget.Snackbar
import android.support.transition.AutoTransition
import android.support.transition.TransitionManager
import android.view.View
import android.view.ViewGroup
import android.view.inputmethod.InputMethodManager
import android.widget.ImageView
import android.widget.TextView
import ca.allanwang.kau.views.createSimpleRippleDrawable
import com.mikepenz.iconics.IconicsDrawable
import com.mikepenz.iconics.typeface.IIcon
/**
* Created by Allan Wang on 2017-05-31.
*/
@KauUtils fun <T : View> T.visible(): T {
visibility = View.VISIBLE
return this
}
@KauUtils fun <T : View> T.invisible(): T {
visibility = View.INVISIBLE
return this
}
@KauUtils fun <T : View> T.gone(): T {
visibility = View.GONE
return this
}
@KauUtils fun View.isVisible(): Boolean = visibility == View.VISIBLE
@KauUtils fun View.isInvisible(): Boolean = visibility == View.INVISIBLE
@KauUtils fun View.isGone(): Boolean = visibility == View.GONE
fun View.snackbar(text: String, duration: Int = Snackbar.LENGTH_LONG, builder: (Snackbar) -> Unit = {}) {
val snackbar = Snackbar.make(this, text, duration)
builder.invoke(snackbar)
snackbar.show()
}
fun View.snackbar(@StringRes textId: Int, duration: Int = Snackbar.LENGTH_LONG, builder: (Snackbar) -> Unit = {})
= snackbar(context.string(textId), duration, builder)
@KauUtils fun TextView.setTextIfValid(@StringRes id: Int) {
if (id > 0) text = context.string(id)
}
@KauUtils fun ImageView.setIcon(icon: IIcon?, sizeDp: Int = 24, @ColorInt color: Int = Color.WHITE, builder: IconicsDrawable.() -> Unit = {}) {
if (icon == null) return
setImageDrawable(icon.toDrawable(context, sizeDp = sizeDp, color = color, builder = builder))
}
@KauUtils fun View.hideKeyboard() {
clearFocus()
(context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager).hideSoftInputFromWindow(windowToken, 0)
}
@KauUtils fun View.showKeyboard() {
requestFocus()
(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 View.setRippleBackground(@ColorInt foregroundColor: Int, @ColorInt backgroundColor: Int) {
background = createSimpleRippleDrawable(foregroundColor, backgroundColor)
}
@KauUtils val View.parentViewGroup: ViewGroup
get() = parent as ViewGroup
|