|
|
@@ -4,14 +4,23 @@ import android.os.Bundle
|
|
|
import android.view.LayoutInflater
|
|
|
import android.view.View
|
|
|
import android.view.ViewGroup
|
|
|
+import androidx.lifecycle.Observer
|
|
|
import androidx.lifecycle.ViewModelProviders
|
|
|
+import androidx.navigation.Navigation
|
|
|
+import androidx.recyclerview.widget.ItemTouchHelper
|
|
|
+import androidx.recyclerview.widget.RecyclerView
|
|
|
import com.sduduzog.slimlauncher.R
|
|
|
import com.sduduzog.slimlauncher.adapters.NotesAdapter
|
|
|
import com.sduduzog.slimlauncher.data.MainViewModel
|
|
|
+import com.sduduzog.slimlauncher.data.model.HomeApp
|
|
|
+import com.sduduzog.slimlauncher.data.model.Note
|
|
|
import com.sduduzog.slimlauncher.ui.BaseFragment
|
|
|
+import com.sduduzog.slimlauncher.utils.OnItemActionListener
|
|
|
+import com.sduduzog.slimlauncher.utils.OnLaunchAppListener
|
|
|
+import com.sduduzog.slimlauncher.utils.OnShitDoneToNotesListener
|
|
|
import kotlinx.android.synthetic.main.notes_fragment.*
|
|
|
|
|
|
-class NotesFragment : BaseFragment(){
|
|
|
+class NotesFragment : BaseFragment(), OnShitDoneToNotesListener {
|
|
|
|
|
|
override fun getFragmentView(): View = notes_fragment
|
|
|
|
|
|
@@ -24,10 +33,46 @@ class NotesFragment : BaseFragment(){
|
|
|
|
|
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
|
|
super.onActivityCreated(savedInstanceState)
|
|
|
- val adapter = NotesAdapter()
|
|
|
+ val adapter = NotesAdapter(this)
|
|
|
activity?.let {
|
|
|
viewModel = ViewModelProviders.of(it).get(MainViewModel::class.java)
|
|
|
} ?: throw Error("Activity null, something here is fucked up")
|
|
|
+
|
|
|
+ viewModel.notes.observe(this, Observer {
|
|
|
+ it?.let { list ->
|
|
|
+ adapter.setItems(list)
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
notes_fragment_list.adapter = adapter
|
|
|
+
|
|
|
+ val listener: OnItemActionListener = adapter
|
|
|
+
|
|
|
+ val simpleItemTouchCallback = object : ItemTouchHelper.Callback() {
|
|
|
+
|
|
|
+ override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder): Int {
|
|
|
+ val swipeFlags = ItemTouchHelper.LEFT or ItemTouchHelper.RIGHT
|
|
|
+ return makeMovementFlags(0, swipeFlags)
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onMove(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder): Boolean {
|
|
|
+ // Do nothing
|
|
|
+ return true
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
|
|
|
+ listener.onViewSwiped(viewHolder.adapterPosition)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ val itemTouchHelper = ItemTouchHelper(simpleItemTouchCallback)
|
|
|
+ itemTouchHelper.attachToRecyclerView(notes_fragment_list)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ override fun onViewNote(note: Note) {
|
|
|
+ val bundle = Bundle()
|
|
|
+ bundle.putSerializable("note", note)
|
|
|
+ Navigation.findNavController(notes_fragment).navigate(R.id.action_notesFragment_to_noteFragment, bundle)
|
|
|
}
|
|
|
}
|