RenameAppDialog.kt 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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.HomeApp
  12. import kotlinx.android.synthetic.main.customise_apps_fragment.*
  13. class RenameAppDialog private constructor(
  14. private val app: HomeApp,
  15. private val model: MainViewModel
  16. ) : DialogFragment() {
  17. override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
  18. val view = LayoutInflater.from(context).inflate(R.layout.rename_dialog_edit_text, customise_apps_fragment, false)
  19. val editText: EditText = view.findViewById(R.id.rename_editText)
  20. editText.text.append(app.appName)
  21. val builder = AlertDialog.Builder(context!!).apply {
  22. setTitle("Rename ${app.appName}")
  23. setView(view)
  24. setPositiveButton("DONE") { _, _ ->
  25. val name = editText.text.toString()
  26. updateApp(name)
  27. }
  28. }
  29. editText.setOnEditorActionListener { v, _, _ ->
  30. val name = v.text.toString()
  31. updateApp(name)
  32. this@RenameAppDialog.dismiss()
  33. true
  34. }
  35. return builder.create()
  36. }
  37. private fun updateApp(newName: String) {
  38. if (newName.isNotEmpty()) {
  39. app.appName = newName
  40. model.update(app)
  41. } else {
  42. Toast.makeText(context, "Couldn't save, App name shouldn't be empty", Toast.LENGTH_LONG).show()
  43. }
  44. }
  45. companion object {
  46. fun getInstance(app: HomeApp, model: MainViewModel) = RenameAppDialog(app, model)
  47. }
  48. }