SortingAndGroupingPresenter.kt

package chat.rocket.android.sortingandgrouping.presentation

import chat.rocket.android.server.domain.SortingAndGroupingInteractor
import javax.inject.Inject
import javax.inject.Named

class SortingAndGroupingPresenter @Inject constructor(
    private val view: SortingAndGroupingView,
    private val sortingAndGroupingInteractor: SortingAndGroupingInteractor,
    @Named("currentServer") private val currentServerUrl: String?
) {

    fun getSortingAndGroupingPreferences() {
        currentServerUrl?.let {
            with(sortingAndGroupingInteractor) {
                view.showSortingAndGroupingPreferences(
                    getSortByName(it),
                    getUnreadOnTop(it),
                    getGroupByType(it),
                    getGroupByFavorites(it)
                )
            }
        }
    }

    fun saveSortingAndGroupingPreferences(
        isSortByName: Boolean,
        isUnreadOnTop: Boolean,
        isGroupByType: Boolean,
        isGroupByFavorites: Boolean
    ) {
        currentServerUrl?.let {
            sortingAndGroupingInteractor.save(
                it,
                isSortByName,
                isUnreadOnTop,
                isGroupByType,
                isGroupByFavorites
            )
        }
    }
}