ChooseQuickButtonDialog.kt 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package com.sduduzog.slimlauncher.ui.dialogs
  2. import android.app.AlertDialog
  3. import android.app.Dialog
  4. import android.content.DialogInterface
  5. import android.os.Bundle
  6. import androidx.fragment.app.DialogFragment
  7. import com.sduduzog.slimlauncher.R
  8. import com.sduduzog.slimlauncher.datasource.QuickButtonPreferencesRepository
  9. class ChooseQuickButtonDialog(
  10. private val repo: QuickButtonPreferencesRepository,
  11. private val defaultIconId: Int
  12. ) : DialogFragment() {
  13. private var onDismissListener: DialogInterface.OnDismissListener? = null
  14. private val iconIdsByIndex = mapOf(0 to defaultIconId, 1 to R.drawable.ic_empty)
  15. private val indexesByIconId = iconIdsByIndex.entries.associate { it.value to it.key }
  16. override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
  17. val builder = AlertDialog.Builder(requireContext())
  18. val quickButtonPrefs = repo.get()
  19. var currentIconId = 0
  20. when (defaultIconId) {
  21. QuickButtonPreferencesRepository.DEFAULT_ICON_LEFT -> currentIconId =
  22. quickButtonPrefs.leftButton.iconId
  23. QuickButtonPreferencesRepository.DEFAULT_ICON_CENTER -> currentIconId =
  24. quickButtonPrefs.centerButton.iconId
  25. QuickButtonPreferencesRepository.DEFAULT_ICON_RIGHT -> currentIconId =
  26. quickButtonPrefs.rightButton.iconId
  27. }
  28. builder.setTitle(R.string.options_fragment_customize_quick_buttons)
  29. builder.setSingleChoiceItems(
  30. R.array.quick_button_array,
  31. indexesByIconId[currentIconId]!!
  32. ) { dialogInterface, i ->
  33. dialogInterface.dismiss()
  34. when (defaultIconId) {
  35. QuickButtonPreferencesRepository.DEFAULT_ICON_LEFT -> repo.updateLeftIconId(
  36. iconIdsByIndex[i]!!
  37. )
  38. QuickButtonPreferencesRepository.DEFAULT_ICON_CENTER -> repo.updateCenterIconId(
  39. iconIdsByIndex[i]!!
  40. )
  41. QuickButtonPreferencesRepository.DEFAULT_ICON_RIGHT -> repo.updateRightIconId(
  42. iconIdsByIndex[i]!!
  43. )
  44. }
  45. }
  46. return builder.create()
  47. }
  48. override fun onDismiss(dialog: DialogInterface) {
  49. super.onDismiss(dialog)
  50. onDismissListener?.onDismiss(dialog)
  51. }
  52. }