TasksIntroPage: fix "Dont show again"

This commit is contained in:
Ricki Hirner 2024-03-13 17:19:23 +01:00
parent 76df2b320d
commit a16fd468fd
2 changed files with 14 additions and 11 deletions

View file

@ -95,9 +95,12 @@ class TasksActivity: AppCompatActivity() {
}
val dontShow = settings.getBooleanLive(HINT_OPENTASKS_NOT_INSTALLED)
fun setDontShow(dontShow: Boolean) {
settings.putBoolean(HINT_OPENTASKS_NOT_INSTALLED, !dontShow)
val showAgain = settings.getBooleanLive(HINT_OPENTASKS_NOT_INSTALLED)
fun setShowAgain(showAgain: Boolean) {
if (showAgain)
settings.remove(HINT_OPENTASKS_NOT_INSTALLED)
else
settings.putBoolean(HINT_OPENTASKS_NOT_INSTALLED, false)
}
val currentProvider = TaskUtils.currentProviderLive(context)
@ -162,7 +165,7 @@ fun TasksCard(
val openTasksInstalled by model.openTasksInstalled.observeAsState(false)
val openTasksSelected by model.openTasksSelected.observeAsState(false)
val dontShow = model.dontShow.observeAsState().value ?: false
val showAgain = model.showAgain.observeAsState().value ?: true
fun installApp(packageName: String) {
val uri = Uri.parse("market://details?id=$packageName&referrer=" +
@ -275,14 +278,14 @@ fun TasksCard(
.padding(vertical = 12.dp)
) {
Checkbox(
checked = dontShow,
onCheckedChange = { model.setDontShow(it) }
checked = !showAgain,
onCheckedChange = { model.setShowAgain(!it) }
)
Text(
text = stringResource(R.string.intro_tasks_dont_show),
modifier = Modifier
.fillMaxWidth()
.clickable { model.setDontShow(!dontShow) }
.clickable { model.setShowAgain(!showAgain) }
)
}
}

View file

@ -27,10 +27,10 @@ class TasksIntroPage : IntroPage {
override fun getShowPolicy(application: Application): IntroPage.ShowPolicy {
val settingsManager = EntryPointAccessors.fromApplication(application, TasksIntroPageEntryPoint::class.java).settingsManager()
return if (!TaskUtils.isAvailable(application) && settingsManager.getBooleanOrNull(TasksActivity.Model.HINT_OPENTASKS_NOT_INSTALLED) != false)
IntroPage.ShowPolicy.SHOW_ALWAYS
else
IntroPage.ShowPolicy.DONT_SHOW
return if (TaskUtils.isAvailable(application) || settingsManager.getBooleanOrNull(TasksActivity.Model.HINT_OPENTASKS_NOT_INSTALLED) == false)
IntroPage.ShowPolicy.DONT_SHOW
else
IntroPage.ShowPolicy.SHOW_ALWAYS
}
@Composable