Skip to content

Instantly share code, notes, and snippets.

View theerasan's full-sized avatar

Theerasan Tonthongkam theerasan

View GitHub Profile
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="imageRatio" format="enum">
<enum name="square" value="0" />
<enum name="W2L1" value="1" />
</attr>
<attr name="imageOrientation" format="enum">
<enum name="landscape" value="0"/>
<enum name="portrait" value="1"/>
</attr>
var binding: ActivityLoginArch2WaysBindingBinding? = null
var viewModel: LoginArch2WaysBindingViewModel? = null
var presenter: LoginArch2WaysBindingInf.PresenterInf? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
initView()
initViewModel()
initPresenter()
}
override fun onInit() {
viewModel?.readyToLogin?.set(false)
viewModel?.onClickLogin?.set(View.OnClickListener { _ ->
view.performLogin(viewModel?.email?.get() + " " + viewModel?.password?.get())
viewModel!!.email.set("")
viewModel!!.password.set("")
})
}
<AutoCompleteTextView
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_email"
android:inputType="textEmailAddress"
android:text="@={viewModel.email}"
android:addTextChangedListener="@{viewModel.emailOnChange}"
android:maxLines="1" />
class LoginArch2WaysBindingViewModel : ViewModel() {
var email: ObservableField<String>? = ObservableField("")
var password: ObservableField<String>? = ObservableField("")
var emailOnChange = TextWatcherAdapter({s ->
email.set(s)
readyToLogin?.set(isCanLogin())
})
var passwordOnChange = TextWatcherAdapter({s ->
class TextWatcherAdapter(private var field: (String) -> Unit) : TextWatcher {
private var isInEditMode = false
var tmp = ""
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
}
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
initView()
initViewModel()
initPresenter()
initEvent()
}
.
.
.
override fun onInit() {
viewModel?.readyToLogin?.set(false)
viewModel?.onClickLogin?.set(View.OnClickListener { _ ->
view.performLogin(viewModel?.email?.get() + " " + viewModel?.password?.get())
viewModel?.email?.set("")
viewModel?.password?.set("")
})
}
override fun setReadyToClick(isReady: Boolean) {
<AutoCompleteTextView
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_email"
android:inputType="textEmailAddress"
android:text="@{viewModel.email}"
android:maxLines="1" />
<EditText
class LoginArchViewModel : ViewModel() {
var email: ObservableField<String>? = ObservableField("")
var password: ObservableField<String>? = ObservableField("")
var onClickLogin: ObservableField<View.OnClickListener>? = ObservableField()
var readyToLogin: ObservableField<Boolean>? = ObservableField(false)
}