Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.tiyas.mygithubapp.ui
- import android.annotation.SuppressLint
- import android.content.Context
- import androidx.appcompat.app.AppCompatActivity
- import android.os.Bundle
- import android.view.View
- import android.view.inputmethod.InputMethodManager
- import android.widget.SearchView
- import androidx.lifecycle.ViewModelProvider
- import androidx.recyclerview.widget.LinearLayoutManager
- import com.tiyas.mygithubapp.adapter.UserAdapter
- import com.tiyas.mygithubapp.data.Users
- import com.tiyas.mygithubapp.databinding.ActivityMainBinding
- import com.tiyas.mygithubapp.viewModel.MainViewModel
- class MainActivity : AppCompatActivity() {
- private lateinit var mainBinding : ActivityMainBinding
- private lateinit var viewModel : MainViewModel
- private lateinit var userAdapter : UserAdapter
- private lateinit var listUser : ArrayList<Users>
- @SuppressLint("NotifyDataSetChanged")
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- mainBinding = ActivityMainBinding.inflate(layoutInflater)
- setContentView(mainBinding.root)
- setUserAdapter()
- showProgressBar(true)
- setViewModel()
- mainBinding.searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener{
- override fun onQueryTextSubmit(query : String): Boolean {
- showProgressBar(true)
- viewModel.setSearchUsers(this@MainActivity, query)
- closeKeyboard()
- return true
- }
- override fun onQueryTextChange(newText : String): Boolean {
- return false
- }
- })
- }
- private fun closeKeyboard() {
- val view : View? = this.currentFocus
- if(view != null ){
- val iMM : InputMethodManager =
- getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
- iMM.hideSoftInputFromWindow(view.windowToken, 0)
- }
- }
- private fun setViewModel() {
- viewModel = ViewModelProvider(this, ViewModelProvider.NewInstanceFactory()).get(
- MainViewModel::class.java
- )
- if(viewModel.getSearchUsers().value == null){
- viewModel.setSearchUsers(this, "")
- }
- viewModel.getSearchUsers().observe(this,{
- users -> if(users != null){
- listUser = users
- userAdapter.setData(listUser)
- showProgressBar(false)
- }
- } )
- }
- private fun showProgressBar(b: Boolean) {
- if (b){
- mainBinding.progressBar.visibility = View.VISIBLE
- } else {
- mainBinding.progressBar.visibility = View.GONE
- }
- }
- private fun setUserAdapter() {
- userAdapter = UserAdapter()
- userAdapter.notifyDataSetChanged()
- mainBinding.rvMain.apply {
- setHasFixedSize(true)
- adapter = userAdapter
- layoutManager = LinearLayoutManager(this@MainActivity)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement