package com.simplemobiletools.dialer.dialogs import com.simplemobiletools.commons.activities.BaseSimpleActivity import com.simplemobiletools.commons.extensions.getAlertDialogBuilder import com.simplemobiletools.commons.extensions.setupDialogStuff import com.simplemobiletools.commons.helpers.TAB_CALL_HISTORY import com.simplemobiletools.commons.helpers.TAB_CONTACTS import com.simplemobiletools.commons.helpers.TAB_FAVORITES import com.simplemobiletools.commons.views.MyAppCompatCheckbox import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.extensions.config import com.simplemobiletools.dialer.helpers.ALL_TABS_MASK class ManageVisibleTabsDialog(val activity: BaseSimpleActivity) { private var view = activity.layoutInflater.inflate(R.layout.dialog_manage_visible_tabs, null) private val tabs = LinkedHashMap() init { tabs.apply { put(TAB_CONTACTS, R.id.manage_visible_tabs_contacts) put(TAB_FAVORITES, R.id.manage_visible_tabs_favorites) put(TAB_CALL_HISTORY, R.id.manage_visible_tabs_call_history) } val showTabs = activity.config.showTabs for ((key, value) in tabs) { view.findViewById(value).isChecked = showTabs and key != 0 } activity.getAlertDialogBuilder() .setPositiveButton(R.string.ok) { dialog, which -> dialogConfirmed() } .setNegativeButton(R.string.cancel, null) .apply { activity.setupDialogStuff(view, this) } } private fun dialogConfirmed() { var result = 0 for ((key, value) in tabs) { if (view.findViewById(value).isChecked) { result += key } } if (result == 0) { result = ALL_TABS_MASK } activity.config.showTabs = result } }