From 02d34e90c0d8ab9dca9e8689cc7b121542fad679 Mon Sep 17 00:00:00 2001 From: Marcin Moskala Date: Thu, 4 May 2017 18:43:46 +0200 Subject: [PATCH] Hide bindings with functions to protect user experience --- .../kotlinandroidviewbindings/BindToClick.kt | 7 ++----- .../kotlinandroidviewbindings/BindToEditText.kt | 7 ++----- .../kotlinandroidviewbindings/BindToErrorId.kt | 7 ++----- .../kotlinandroidviewbindings/BindToLongClick.kt | 7 ++----- .../kotlinandroidviewbindings/BindToRequestFocus.kt | 7 ++----- .../kotlinandroidviewbindings/BindToSwipeRefresh.kt | 10 +++------- .../BindToSwitchVisibility.kt | 12 ++---------- .../kotlinandroidviewbindings/BindToTextView.kt | 7 ++----- .../kotlinandroidviewbindings/BindToVisibility.kt | 7 ++----- 9 files changed, 19 insertions(+), 52 deletions(-) diff --git a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToClick.kt b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToClick.kt index 6bee9a3..6b51435 100644 --- a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToClick.kt +++ b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToClick.kt @@ -9,11 +9,8 @@ import kotlin.reflect.KProperty fun Activity.bindToClick(@IdRes viewId: Int): ReadWriteProperty Unit> = bindToClick { findViewById(viewId) } -fun bindToClick(viewProvider: () -> View): ReadWriteProperty Unit> - = bindToClick(lazy(viewProvider)) - -private fun bindToClick(lazyViewProvider: Lazy): ReadWriteProperty Unit> - = OnClickBinding(lazyViewProvider) +private fun bindToClick(viewProvider: () -> View): ReadWriteProperty Unit> + = OnClickBinding(lazy(viewProvider)) private class OnClickBinding(viewProvider: Lazy) : ReadWriteProperty Unit> { diff --git a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToEditText.kt b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToEditText.kt index d8403a4..d778ce2 100644 --- a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToEditText.kt +++ b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToEditText.kt @@ -9,11 +9,8 @@ import kotlin.reflect.KProperty fun Activity.bindToEditText(@IdRes editTextId: Int): ReadWriteProperty = bindToEditText { findViewById(editTextId) as EditText } -fun bindToEditText(viewProvider: () -> EditText): ReadWriteProperty - = bindToEditText(lazy(viewProvider)) - -private fun bindToEditText(lazyViewProvider: Lazy): ReadWriteProperty - = EditTextViewTextBinding(lazyViewProvider) +private fun bindToEditText(viewProvider: () -> EditText): ReadWriteProperty + = EditTextViewTextBinding(lazy(viewProvider)) private class EditTextViewTextBinding(lazyViewProvider: Lazy) : ReadWriteProperty { diff --git a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToErrorId.kt b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToErrorId.kt index 97cd580..1132c1a 100644 --- a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToErrorId.kt +++ b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToErrorId.kt @@ -9,11 +9,8 @@ import kotlin.reflect.KProperty fun Activity.bindToErrorId(@IdRes editTextId: Int): ReadWriteProperty = bindToErrorId { findViewById(editTextId) as EditText } -fun bindToErrorId(viewProvider: () -> EditText): ReadWriteProperty - = bindToErrorId(lazy(viewProvider)) - -private fun bindToErrorId(lazyViewProvider: Lazy): ReadWriteProperty - = EditTextViewErrorIdBinding(lazyViewProvider) +private fun bindToErrorId(viewProvider: () -> EditText): ReadWriteProperty + = EditTextViewErrorIdBinding(lazy(viewProvider)) private class EditTextViewErrorIdBinding(lazyViewProvider: Lazy) : ReadWriteProperty { diff --git a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToLongClick.kt b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToLongClick.kt index cbd4a41..96a716b 100644 --- a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToLongClick.kt +++ b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToLongClick.kt @@ -9,11 +9,8 @@ import kotlin.reflect.KProperty fun Activity.bindToLongClick(@IdRes viewId: Int): ReadWriteProperty Unit> = bindToLongClick { findViewById(viewId) } -fun bindToLongClick(viewProvider: () -> View): ReadWriteProperty Unit> - = bindToLongClick(lazy(viewProvider)) - -private fun bindToLongClick(lazyViewProvider: Lazy): ReadWriteProperty Unit> - = OnLongClickBinding(lazyViewProvider) +private fun bindToLongClick(viewProvider: () -> View): ReadWriteProperty Unit> + = OnLongClickBinding(lazy(viewProvider)) private class OnLongClickBinding(viewProvider: Lazy) : ReadWriteProperty Unit> { diff --git a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToRequestFocus.kt b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToRequestFocus.kt index 5516835..429f723 100644 --- a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToRequestFocus.kt +++ b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToRequestFocus.kt @@ -9,11 +9,8 @@ import kotlin.reflect.KProperty fun Activity.bindToRequestFocus(@IdRes editViewId: Int): ReadOnlyProperty Unit> = bindToRequestFocus { findViewById(editViewId) } -fun bindToRequestFocus(viewProvider: () -> View): ReadOnlyProperty Unit> - = bindToRequestFocus(lazy(viewProvider)) - -private fun bindToRequestFocus(lazyViewProvider: Lazy): ReadOnlyProperty Unit> - = RequestFocusBinding(lazyViewProvider) +private fun bindToRequestFocus(viewProvider: () -> View): ReadOnlyProperty Unit> + = RequestFocusBinding(lazy(viewProvider)) private class RequestFocusBinding(viewProvider: Lazy) : ReadOnlyProperty Unit> { diff --git a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToSwipeRefresh.kt b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToSwipeRefresh.kt index 88bf40b..0c65df9 100644 --- a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToSwipeRefresh.kt +++ b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToSwipeRefresh.kt @@ -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 +fun Activity.bindToSwipeRefresh(@IdRes swipeRefreshLayoutId: Int): ReadWriteProperty = bindToSwipeRefresh { findViewById(swipeRefreshLayoutId) as SwipeRefreshLayout } -fun bindToSwipeRefresh(viewProvider: () -> SwipeRefreshLayout): ReadOnlyProperty - = bindToSwipeRefresh(lazy(viewProvider)) - -private fun bindToSwipeRefresh(lazyViewProvider: Lazy): ReadOnlyProperty - = bindToSwipeRefresh(lazyViewProvider) +private fun bindToSwipeRefresh(viewProvider: () -> SwipeRefreshLayout): ReadWriteProperty + = SwipeRefreshBinding(lazy(viewProvider)) private class SwipeRefreshBinding(viewProvider: Lazy) : ReadWriteProperty { diff --git a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToSwitchVisibility.kt b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToSwitchVisibility.kt index 1dac671..bb7abe5 100644 --- a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToSwitchVisibility.kt +++ b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToSwitchVisibility.kt @@ -14,22 +14,14 @@ fun Activity.bindToLoading( restViewHolderProvider = { restViewHolderId?.let { findViewById(it) } } ) -fun bindToLoading( +private fun bindToLoading( progressViewProvider: () -> View, restViewHolderProvider: () -> View? -): ReadWriteProperty = bindToLoading( +): ReadWriteProperty = LoadingBinding( lazy(progressViewProvider), lazy(restViewHolderProvider) ) -private fun bindToLoading( - progressLazyViewProvider: Lazy, - restViewHolderLazyProvider: Lazy -): ReadWriteProperty = LoadingBinding( - progressLazyViewProvider, - restViewHolderLazyProvider -) - private class LoadingBinding( progressLazyViewProvider: Lazy, restViewHolderLazyProvider: Lazy diff --git a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToTextView.kt b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToTextView.kt index 3c1fca7..4a98987 100644 --- a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToTextView.kt +++ b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToTextView.kt @@ -9,11 +9,8 @@ import kotlin.reflect.KProperty fun Activity.bindToTextView(@IdRes textViewId: Int): ReadWriteProperty = bindToTextView { findViewById(textViewId) as TextView } -fun bindToTextView(viewProvider: () -> TextView): ReadWriteProperty - = bindToTextView(lazy(viewProvider)) - -private fun bindToTextView(lazyViewProvider: Lazy): ReadWriteProperty - = TextViewTextBinding(lazyViewProvider) +private fun bindToTextView(viewProvider: () -> TextView): ReadWriteProperty + = TextViewTextBinding(lazy(viewProvider)) private class TextViewTextBinding(lazyViewProvider: Lazy) : ReadWriteProperty { diff --git a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToVisibility.kt b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToVisibility.kt index c65c56c..3d0dff2 100644 --- a/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToVisibility.kt +++ b/kotlinandroidviewbindings/src/main/java/com/marcinmoskala/kotlinandroidviewbindings/BindToVisibility.kt @@ -9,11 +9,8 @@ import kotlin.reflect.KProperty fun Activity.bindToVisibility(@IdRes editTextId: Int): ReadWriteProperty = bindToVisibility { findViewById(editTextId) } -fun bindToVisibility(viewProvider: () -> View): ReadWriteProperty - = bindToVisibility(lazy(viewProvider)) - -private fun bindToVisibility(lazyViewProvider: Lazy): ReadWriteProperty - = ViewVisibilityBinding(lazyViewProvider) +private fun bindToVisibility(viewProvider: () -> View): ReadWriteProperty + = ViewVisibilityBinding(lazy(viewProvider)) private class ViewVisibilityBinding(viewProvider: Lazy) : ReadWriteProperty {