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