Dark theme

This commit is contained in:
2021-02-20 23:21:25 +03:00
parent 88dddcb133
commit 06aa41cab1
179 changed files with 1011 additions and 1133 deletions
@@ -0,0 +1,157 @@
package com.meloda.fast.fragment
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.view.KeyEvent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.inputmethod.EditorInfo
import android.widget.EditText
import com.google.android.material.button.MaterialButton
import com.meloda.fast.R
import com.meloda.fast.base.BaseFragment
import com.meloda.fast.fragment.ui.presenter.LoginPresenter
import com.meloda.fast.fragment.ui.view.LoginView
import com.meloda.fast.util.KeyboardUtils
class LoginFragment : BaseFragment(), LoginView {
private lateinit var presenter: LoginPresenter
private lateinit var email: EditText
private lateinit var password: EditText
private lateinit var authorize: MaterialButton
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
presenter = LoginPresenter(this)
presenter.onCreate(requireContext(), this, savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
presenter.onCreateView(savedInstanceState)
return inflater.inflate(R.layout.fragment_login, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
presenter.onViewCreated(savedInstanceState)
}
override fun initViews() {
email = requireView().findViewById(R.id.loginEmailEditText)
password = requireView().findViewById(R.id.loginPasswordEditText)
authorize = requireView().findViewById(R.id.loginAuthorize)
}
override fun prepareViews() {
prepareEmailEditText()
preparePasswordEditText()
prepareAuthorizeButton()
}
private fun prepareEmailEditText() {
email.addTextChangedListener(onTextChangedListener)
}
private fun preparePasswordEditText() {
password.addTextChangedListener(onTextChangedListener)
password.setOnEditorActionListener { _, _, event ->
if (event == null) return@setOnEditorActionListener false
return@setOnEditorActionListener if (event.action == EditorInfo.IME_ACTION_DONE ||
(event.action == KeyEvent.ACTION_DOWN && (event.keyCode == KeyEvent.KEYCODE_ENTER || event.keyCode == KeyEvent.KEYCODE_NUMPAD_ENTER))
) {
KeyboardUtils.hideKeyboardFrom(password)
authorize.performClick()
true
} else false
}
}
private fun prepareAuthorizeButton() {
authorize.isEnabled = false
authorize.setOnClickListener {
val emailString = email.text.toString().trim()
val passwordString = password.text.toString().trim()
presenter.login(emailString, passwordString)
}
}
override fun showErrorSnackbar(t: Throwable) {
TODO("Not yet implemented")
}
override fun prepareNoItemsView() {
TODO("Not yet implemented")
}
override fun showNoItemsView() {
TODO("Not yet implemented")
}
override fun hideNoItemsView() {
TODO("Not yet implemented")
}
override fun prepareNoInternetView() {
TODO("Not yet implemented")
}
override fun showNoInternetView() {
TODO("Not yet implemented")
}
override fun hideNoInternetView() {
TODO("Not yet implemented")
}
override fun prepareErrorView() {
TODO("Not yet implemented")
}
override fun showErrorView() {
TODO("Not yet implemented")
}
override fun hideErrorView() {
TODO("Not yet implemented")
}
override fun showProgressBar() {
TODO("Not yet implemented")
}
override fun hideProgressBar() {
TODO("Not yet implemented")
}
override fun showRefreshLayout() {
TODO("Not yet implemented")
}
override fun hideRefreshLayout() {
TODO("Not yet implemented")
}
private val onTextChangedListener = object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
authorize.isEnabled =
email.text.toString().trim().isNotEmpty() &&
password.text.toString().trim().isNotEmpty()
}
override fun afterTextChanged(s: Editable?) {
}
}
}