forked from github/wulkanowy-mirror
Fix ads tile (#1905)
This commit is contained in:
@ -222,17 +222,31 @@ class PreferencesRepository @Inject constructor(
|
||||
get() = selectedDashboardTilesPreference.asFlow()
|
||||
.map { set ->
|
||||
set.map { DashboardItem.Tile.valueOf(it) }
|
||||
.plus(listOf(DashboardItem.Tile.ACCOUNT, DashboardItem.Tile.ADMIN_MESSAGE))
|
||||
.plus(
|
||||
listOfNotNull(
|
||||
DashboardItem.Tile.ACCOUNT,
|
||||
DashboardItem.Tile.ADMIN_MESSAGE,
|
||||
DashboardItem.Tile.ADS.takeIf { isAdsEnabled }
|
||||
)
|
||||
)
|
||||
.toSet()
|
||||
}
|
||||
|
||||
var selectedDashboardTiles: Set<DashboardItem.Tile>
|
||||
get() = selectedDashboardTilesPreference.get()
|
||||
.map { DashboardItem.Tile.valueOf(it) }
|
||||
.plus(listOf(DashboardItem.Tile.ACCOUNT, DashboardItem.Tile.ADMIN_MESSAGE))
|
||||
.plus(
|
||||
listOfNotNull(
|
||||
DashboardItem.Tile.ACCOUNT,
|
||||
DashboardItem.Tile.ADMIN_MESSAGE,
|
||||
DashboardItem.Tile.ADS.takeIf { isAdsEnabled }
|
||||
)
|
||||
)
|
||||
.toSet()
|
||||
set(value) {
|
||||
val filteredValue = value.filterNot { it == DashboardItem.Tile.ACCOUNT }
|
||||
val filteredValue = value.filterNot {
|
||||
it == DashboardItem.Tile.ACCOUNT || it == DashboardItem.Tile.ADMIN_MESSAGE
|
||||
}
|
||||
.map { it.name }
|
||||
.toSet()
|
||||
|
||||
@ -288,6 +302,11 @@ class PreferencesRepository @Inject constructor(
|
||||
get() = sharedPref.getBoolean(PREF_KEY_PERSONALIZED_ADS_ENABLED, false)
|
||||
set(value) = sharedPref.edit { putBoolean(PREF_KEY_PERSONALIZED_ADS_ENABLED, value) }
|
||||
|
||||
val isAdsEnabledFlow = flowSharedPref.getBoolean(
|
||||
context.getString(R.string.pref_key_ads_enabled),
|
||||
context.resources.getBoolean(R.bool.pref_default_ads_enabled)
|
||||
).asFlow()
|
||||
|
||||
var isAdsEnabled: Boolean
|
||||
get() = getBoolean(
|
||||
R.string.pref_key_ads_enabled,
|
||||
|
@ -57,7 +57,11 @@ class DashboardPresenter @Inject constructor(
|
||||
showContent(false)
|
||||
}
|
||||
|
||||
preferencesRepository.selectedDashboardTilesFlow
|
||||
merge(
|
||||
preferencesRepository.selectedDashboardTilesFlow,
|
||||
preferencesRepository.isAdsEnabledFlow
|
||||
.map { preferencesRepository.selectedDashboardTiles }
|
||||
)
|
||||
.onEach { loadData(tilesToLoad = it) }
|
||||
.launch("dashboard_pref")
|
||||
}
|
||||
|
@ -14,7 +14,6 @@ import io.github.wulkanowy.ui.base.ErrorHandler
|
||||
import io.github.wulkanowy.ui.modules.Destination
|
||||
import io.github.wulkanowy.ui.modules.account.AccountView
|
||||
import io.github.wulkanowy.ui.modules.account.accountdetails.AccountDetailsView
|
||||
import io.github.wulkanowy.ui.modules.dashboard.DashboardItem
|
||||
import io.github.wulkanowy.ui.modules.grade.GradeView
|
||||
import io.github.wulkanowy.ui.modules.message.MessageView
|
||||
import io.github.wulkanowy.ui.modules.schoolandteachers.SchoolAndTeachersView
|
||||
@ -168,13 +167,12 @@ class MainPresenter @Inject constructor(
|
||||
}
|
||||
|
||||
fun onPrivacyAgree(isPersonalizedAds: Boolean) {
|
||||
preferencesRepository.isAdsEnabled = true
|
||||
preferencesRepository.isAgreeToProcessData = true
|
||||
preferencesRepository.isPersonalizedAdsEnabled = isPersonalizedAds
|
||||
|
||||
adsHelper.initialize()
|
||||
|
||||
preferencesRepository.selectedDashboardTiles += DashboardItem.Tile.ADS
|
||||
preferencesRepository.isAdsEnabled = true
|
||||
}
|
||||
|
||||
fun onPrivacySelected() {
|
||||
|
Reference in New Issue
Block a user