1
0
mirror of https://github.com/wulkanowy/wulkanowy.git synced 2025-01-31 15:08:21 +01:00

Fix ads tile (#1905)

This commit is contained in:
Rafał Borcz 2022-06-26 15:50:35 +02:00 committed by GitHub
parent c4689fcbb3
commit 7b13684137
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 29 additions and 23 deletions

View File

@ -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,

View File

@ -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")
}

View File

@ -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() {

View File

@ -50,11 +50,6 @@ class AdsFragment : PreferenceFragmentCompat(), MainView.TitledView, AdsView {
presenter.onConsentSelected(newValue as Boolean)
true
}
findPreference<SwitchPreferenceCompat>(getString(R.string.pref_key_ads_enabled))?.setOnPreferenceChangeListener { _, newValue ->
presenter.onAddEnabled(newValue as Boolean)
true
}
}
override fun showAd(ad: RewardedInterstitialAd) {

View File

@ -4,7 +4,6 @@ import io.github.wulkanowy.data.repositories.PreferencesRepository
import io.github.wulkanowy.data.repositories.StudentRepository
import io.github.wulkanowy.ui.base.BasePresenter
import io.github.wulkanowy.ui.base.ErrorHandler
import io.github.wulkanowy.ui.modules.dashboard.DashboardItem
import io.github.wulkanowy.utils.AdsHelper
import kotlinx.coroutines.launch
import timber.log.Timber
@ -48,7 +47,6 @@ class AdsPresenter @Inject constructor(
} else {
view?.showProcessingDataSummary(null)
view?.setCheckedAdsEnabled(false)
onAddEnabled(false)
}
}
@ -77,12 +75,4 @@ class AdsPresenter @Inject constructor(
view?.setCheckedProcessingData(true)
view?.showProcessingDataSummary(true)
}
fun onAddEnabled(isEnabled: Boolean) {
if (isEnabled) {
preferencesRepository.selectedDashboardTiles += DashboardItem.Tile.ADS
} else {
preferencesRepository.selectedDashboardTiles -= DashboardItem.Tile.ADS
}
}
}

View File

@ -66,7 +66,7 @@ class AdsHelper @Inject constructor(
return suspendCoroutine {
val adView = AdView(context).apply {
adSize = AdSize.getPortraitAnchoredAdaptiveBannerAdSize(context, width)
setAdSize(AdSize.getPortraitAnchoredAdaptiveBannerAdSize(context, width))
adUnitId = BuildConfig.DASHBOARD_TILE_AD_ID
adListener = object : AdListener() {
override fun onAdFailedToLoad(loadAdError: LoadAdError) {