Skip to content

Commit

Permalink
Hide bindings with functions to protect user experience
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcinMoskala committed May 4, 2017
1 parent bf73cb1 commit 02d34e9
Show file tree
Hide file tree
Showing 9 changed files with 19 additions and 52 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,8 @@ import kotlin.reflect.KProperty
fun Activity.bindToClick(@IdRes viewId: Int): ReadWriteProperty<Any?, () -> Unit>
= bindToClick { findViewById(viewId) }

fun bindToClick(viewProvider: () -> View): ReadWriteProperty<Any?, () -> Unit>
= bindToClick(lazy(viewProvider))

private fun bindToClick(lazyViewProvider: Lazy<View>): ReadWriteProperty<Any?, () -> Unit>
= OnClickBinding(lazyViewProvider)
private fun bindToClick(viewProvider: () -> View): ReadWriteProperty<Any?, () -> Unit>
= OnClickBinding(lazy(viewProvider))

private class OnClickBinding(viewProvider: Lazy<View>) : ReadWriteProperty<Any?, () -> Unit> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,8 @@ import kotlin.reflect.KProperty
fun Activity.bindToEditText(@IdRes editTextId: Int): ReadWriteProperty<Any?, String>
= bindToEditText { findViewById(editTextId) as EditText }

fun bindToEditText(viewProvider: () -> EditText): ReadWriteProperty<Any?, String>
= bindToEditText(lazy(viewProvider))

private fun bindToEditText(lazyViewProvider: Lazy<EditText>): ReadWriteProperty<Any?, String>
= EditTextViewTextBinding(lazyViewProvider)
private fun bindToEditText(viewProvider: () -> EditText): ReadWriteProperty<Any?, String>
= EditTextViewTextBinding(lazy(viewProvider))

private class EditTextViewTextBinding(lazyViewProvider: Lazy<EditText>) : ReadWriteProperty<Any?, String> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,8 @@ import kotlin.reflect.KProperty
fun Activity.bindToErrorId(@IdRes editTextId: Int): ReadWriteProperty<Any?, Int?>
= bindToErrorId { findViewById(editTextId) as EditText }

fun bindToErrorId(viewProvider: () -> EditText): ReadWriteProperty<Any?, Int?>
= bindToErrorId(lazy(viewProvider))

private fun bindToErrorId(lazyViewProvider: Lazy<EditText>): ReadWriteProperty<Any?, Int?>
= EditTextViewErrorIdBinding(lazyViewProvider)
private fun bindToErrorId(viewProvider: () -> EditText): ReadWriteProperty<Any?, Int?>
= EditTextViewErrorIdBinding(lazy(viewProvider))

private class EditTextViewErrorIdBinding(lazyViewProvider: Lazy<EditText>) : ReadWriteProperty<Any?, Int?> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,8 @@ import kotlin.reflect.KProperty
fun Activity.bindToLongClick(@IdRes viewId: Int): ReadWriteProperty<Any?, () -> Unit>
= bindToLongClick { findViewById(viewId) }

fun bindToLongClick(viewProvider: () -> View): ReadWriteProperty<Any?, () -> Unit>
= bindToLongClick(lazy(viewProvider))

private fun bindToLongClick(lazyViewProvider: Lazy<View>): ReadWriteProperty<Any?, () -> Unit>
= OnLongClickBinding(lazyViewProvider)
private fun bindToLongClick(viewProvider: () -> View): ReadWriteProperty<Any?, () -> Unit>
= OnLongClickBinding(lazy(viewProvider))

private class OnLongClickBinding(viewProvider: Lazy<View>) : ReadWriteProperty<Any?, () -> Unit> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,8 @@ import kotlin.reflect.KProperty
fun Activity.bindToRequestFocus(@IdRes editViewId: Int): ReadOnlyProperty<Any?, () -> Unit>
= bindToRequestFocus { findViewById(editViewId) }

fun bindToRequestFocus(viewProvider: () -> View): ReadOnlyProperty<Any?, () -> Unit>
= bindToRequestFocus(lazy(viewProvider))

private fun bindToRequestFocus(lazyViewProvider: Lazy<View>): ReadOnlyProperty<Any?, () -> Unit>
= RequestFocusBinding(lazyViewProvider)
private fun bindToRequestFocus(viewProvider: () -> View): ReadOnlyProperty<Any?, () -> Unit>
= RequestFocusBinding(lazy(viewProvider))

private class RequestFocusBinding(viewProvider: Lazy<View>) : ReadOnlyProperty<Any?, () -> Unit> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,14 @@ package com.marcinmoskala.kotlinandroidviewbindings
import android.app.Activity
import android.support.annotation.IdRes
import android.support.v4.widget.SwipeRefreshLayout
import kotlin.properties.ReadOnlyProperty
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty

fun Activity.bindToSwipeRefresh(@IdRes swipeRefreshLayoutId: Int): ReadOnlyProperty<Any?, Boolean>
fun Activity.bindToSwipeRefresh(@IdRes swipeRefreshLayoutId: Int): ReadWriteProperty<Any?, Boolean>
= bindToSwipeRefresh { findViewById(swipeRefreshLayoutId) as SwipeRefreshLayout }

fun bindToSwipeRefresh(viewProvider: () -> SwipeRefreshLayout): ReadOnlyProperty<Any?, Boolean>
= bindToSwipeRefresh(lazy(viewProvider))

private fun bindToSwipeRefresh(lazyViewProvider: Lazy<SwipeRefreshLayout>): ReadOnlyProperty<Any?, Boolean>
= bindToSwipeRefresh(lazyViewProvider)
private fun bindToSwipeRefresh(viewProvider: () -> SwipeRefreshLayout): ReadWriteProperty<Any?, Boolean>
= SwipeRefreshBinding(lazy(viewProvider))

private class SwipeRefreshBinding(viewProvider: Lazy<SwipeRefreshLayout>) : ReadWriteProperty<Any?, Boolean> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,14 @@ fun Activity.bindToLoading(
restViewHolderProvider = { restViewHolderId?.let { findViewById(it) } }
)

fun bindToLoading(
private fun bindToLoading(
progressViewProvider: () -> View,
restViewHolderProvider: () -> View?
): ReadWriteProperty<Any?, Boolean> = bindToLoading(
): ReadWriteProperty<Any?, Boolean> = LoadingBinding(
lazy(progressViewProvider),
lazy(restViewHolderProvider)
)

private fun bindToLoading(
progressLazyViewProvider: Lazy<View>,
restViewHolderLazyProvider: Lazy<View?>
): ReadWriteProperty<Any?, Boolean> = LoadingBinding(
progressLazyViewProvider,
restViewHolderLazyProvider
)

private class LoadingBinding(
progressLazyViewProvider: Lazy<View>,
restViewHolderLazyProvider: Lazy<View?>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,8 @@ import kotlin.reflect.KProperty
fun Activity.bindToTextView(@IdRes textViewId: Int): ReadWriteProperty<Any?, String>
= bindToTextView { findViewById(textViewId) as TextView }

fun bindToTextView(viewProvider: () -> TextView): ReadWriteProperty<Any?, String>
= bindToTextView(lazy(viewProvider))

private fun bindToTextView(lazyViewProvider: Lazy<TextView>): ReadWriteProperty<Any?, String>
= TextViewTextBinding(lazyViewProvider)
private fun bindToTextView(viewProvider: () -> TextView): ReadWriteProperty<Any?, String>
= TextViewTextBinding(lazy(viewProvider))

private class TextViewTextBinding(lazyViewProvider: Lazy<TextView>) : ReadWriteProperty<Any?, String> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,8 @@ import kotlin.reflect.KProperty
fun Activity.bindToVisibility(@IdRes editTextId: Int): ReadWriteProperty<Any?, Boolean>
= bindToVisibility { findViewById(editTextId) }

fun bindToVisibility(viewProvider: () -> View): ReadWriteProperty<Any?, Boolean>
= bindToVisibility(lazy(viewProvider))

private fun bindToVisibility(lazyViewProvider: Lazy<View>): ReadWriteProperty<Any?, Boolean>
= ViewVisibilityBinding(lazyViewProvider)
private fun bindToVisibility(viewProvider: () -> View): ReadWriteProperty<Any?, Boolean>
= ViewVisibilityBinding(lazy(viewProvider))

private class ViewVisibilityBinding(viewProvider: Lazy<View>) : ReadWriteProperty<Any?, Boolean> {

Expand Down

0 comments on commit 02d34e9

Please sign in to comment.