RenameNoteDialog.kt 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package com.sduduzog.slimlauncher.dialogs
  2. import android.app.Dialog
  3. import android.os.Bundle
  4. import android.view.LayoutInflater
  5. import android.widget.EditText
  6. import android.widget.Toast
  7. import androidx.appcompat.app.AlertDialog
  8. import androidx.fragment.app.DialogFragment
  9. import com.sduduzog.slimlauncher.R
  10. import com.sduduzog.slimlauncher.data.MainViewModel
  11. import com.sduduzog.slimlauncher.data.model.Note
  12. import kotlinx.android.synthetic.main.voice_note_fragment.*
  13. class RenameNoteDialog : DialogFragment() {
  14. private lateinit var note: Note
  15. private lateinit var viewModel: MainViewModel
  16. override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
  17. val view = LayoutInflater.from(context).inflate(R.layout.rename_dialog_edit_text, voice_note_fragment, false)
  18. val editText: EditText = view.findViewById(R.id.rename_editText)
  19. editText.text.append(note.title)
  20. val builder = AlertDialog.Builder(context!!)
  21. builder.setTitle("Rename Audio")
  22. builder.setView(view)
  23. builder.setPositiveButton("DONE") { _, _ ->
  24. val name = editText.text.toString()
  25. updateNote(name)
  26. }
  27. editText.setOnEditorActionListener { v, _, _ ->
  28. val title = v.text.toString()
  29. updateNote(title)
  30. this@RenameNoteDialog.dismiss()
  31. true
  32. }
  33. return builder.create()
  34. }
  35. private fun updateNote(newTitle: String) {
  36. if (newTitle.isNotEmpty()) {
  37. note.title = newTitle
  38. viewModel.update(note)
  39. } else {
  40. Toast.makeText(context, "Couldn't save, title shouldn't be empty", Toast.LENGTH_LONG).show()
  41. }
  42. }
  43. companion object {
  44. fun getInstance(note: Note, viewModel: MainViewModel): RenameNoteDialog {
  45. return RenameNoteDialog().apply {
  46. this.note = note
  47. this.viewModel = viewModel
  48. }
  49. }
  50. }
  51. }