SettingsFragment.kt 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.sduduzog.slimlauncher.ui.apps
  2. import android.arch.lifecycle.Observer
  3. import android.arch.lifecycle.ViewModelProviders
  4. import android.os.Bundle
  5. import android.support.v4.app.Fragment
  6. import android.support.v7.widget.LinearLayoutManager
  7. import android.view.LayoutInflater
  8. import android.view.View
  9. import android.view.ViewGroup
  10. import androidx.navigation.Navigation
  11. import com.sduduzog.slimlauncher.MainViewModel
  12. import com.sduduzog.slimlauncher.R
  13. import com.sduduzog.slimlauncher.data.HomeApp
  14. import kotlinx.android.synthetic.main.settings_fragment.*
  15. class SettingsFragment : Fragment() {
  16. private lateinit var viewModel: MainViewModel
  17. private lateinit var adapter: SettingsListAdapter
  18. override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
  19. savedInstanceState: Bundle?): View? {
  20. return inflater.inflate(R.layout.settings_fragment, container, false)
  21. }
  22. override fun onActivityCreated(savedInstanceState: Bundle?) {
  23. super.onActivityCreated(savedInstanceState)
  24. viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
  25. viewModel.homeApps.observe(this, Observer {
  26. if (it != null) {
  27. adapter.setApps(it)
  28. when (it.size) {
  29. in 0..4 -> addButton.visibility = View.VISIBLE
  30. else -> addButton.visibility = View.GONE
  31. }
  32. }
  33. })
  34. var apps = viewModel.homeApps.value
  35. if (apps == null)
  36. apps = listOf()
  37. adapter = SettingsListAdapter(apps, InteractionHandler())
  38. settingsAppList.adapter = adapter
  39. settingsAppList.layoutManager = LinearLayoutManager(activity)
  40. addButton.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_openAppsFragment))
  41. }
  42. inner class InteractionHandler : OnListFragmentInteractionListener {
  43. override fun onRemove(app: HomeApp) {
  44. viewModel.deleteApp(app)
  45. }
  46. }
  47. interface OnListFragmentInteractionListener {
  48. fun onRemove(app: HomeApp)
  49. }
  50. }