diff options
Diffstat (limited to 'app/src/main/java/foundation/e/privacycentralapp/features')
| -rw-r--r-- | app/src/main/java/foundation/e/privacycentralapp/features/trackers/apptrackers/AppTrackersFeature.kt | 61 |
1 files changed, 31 insertions, 30 deletions
diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/apptrackers/AppTrackersFeature.kt b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/apptrackers/AppTrackersFeature.kt index 790a5a0..270dfcb 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/apptrackers/AppTrackersFeature.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/apptrackers/AppTrackersFeature.kt @@ -87,7 +87,7 @@ class AppTrackersFeature( sealed class Effect { object NoEffect : Effect() - data class ErrorEffect(val message: String) : Effect() + data class ErrorEffect(val message: Any) : Effect() data class SetAppEffect(val appDesc: ApplicationDescription) : Effect() data class AppTrackersBlockingActivatedEffect(val isBlockingActivated: Boolean) : Effect() data class AvailableTrackersListEffect(val trackers: List<Tracker>) : Effect() @@ -127,37 +127,38 @@ class AppTrackersFeature( }, actor = { state, action -> when (action) { - is Action.InitAction -> { - val appDesc = - trackersStateUseCase.getApplicationDescription(action.packageName) - merge<Effect>( - flow { + is Action.InitAction -> + trackersStateUseCase + .getApplicationDescription(action.packageName)?.let { appDesc -> + merge<Effect>( + flow { - emit(Effect.SetAppEffect(appDesc)) - emit( - Effect.AppTrackersBlockingActivatedEffect( - !trackersStateUseCase.isWhitelisted(appDesc.uid) - ) - ) - emit( - Effect.TrackersWhitelistUpdateEffect( - trackersStateUseCase.getTrackersWhitelistIds(appDesc.uid) - ) - ) - emit( - Effect.AvailableTrackersListEffect( - trackers = trackersStatisticsUseCase.getTrackers(appDesc.uid) - ) + emit(Effect.SetAppEffect(appDesc)) + emit( + Effect.AppTrackersBlockingActivatedEffect( + !trackersStateUseCase.isWhitelisted(appDesc.uid) + ) + ) + emit( + Effect.TrackersWhitelistUpdateEffect( + trackersStateUseCase.getTrackersWhitelistIds(appDesc.uid) + ) + ) + emit( + Effect.AvailableTrackersListEffect( + trackers = trackersStatisticsUseCase.getTrackers(appDesc.uid) + ) + ) + }, + trackersStatisticsUseCase.listenUpdates().map { + Effect.NewStatisticsAvailablesEffect + }, + getQuickPrivacyStateUseCase.quickPrivacyEnabledFlow.map { + Effect.QuickPrivacyUpdatedEffect(it) + } ) - }, - trackersStatisticsUseCase.listenUpdates().map { - Effect.NewStatisticsAvailablesEffect - }, - getQuickPrivacyStateUseCase.quickPrivacyEnabledFlow.map { - Effect.QuickPrivacyUpdatedEffect(it) - } - ) - } + } ?: flowOf(Effect.ErrorEffect(R.string.apptrackers_error_no_app)) + is Action.BlockAllToggleAction -> state.appDesc?.uid?.let { appUid -> flow { |
