Skip to content

Fix non-working app list chips and filters in Compose UI#10

Merged
Dev97633 merged 1 commit intomainfrom
codex/fix-chips-and-filters-functionality
Feb 14, 2026
Merged

Fix non-working app list chips and filters in Compose UI#10
Dev97633 merged 1 commit intomainfrom
codex/fix-chips-and-filters-functionality

Conversation

@Dev97633
Copy link
Copy Markdown
Owner

Motivation

  • The app list UI had search working but the chips/filters in the Compose top bar were not wired to the filtering pipeline, so toggling chips did not change the displayed list.

Description

  • Added a new AppFilters data class and a persisted filters state in DebloaterScreen to hold chip selections.
  • Reworked the filteredAppData derivation to apply the search query together with all AppFilters (systemOnly, userOnly, disabledOnly, uninstalledOnly).
  • Exposed filters and onFiltersChange to DebloaterTopBar and added four FilterChip components (System, User, Disabled, Uninstalled) with interaction handlers that update the shared filters state.
  • Implemented mutual exclusivity between System and User chips so enabling one disables the other while keeping the rest independent; changes are in app/src/main/kotlin/com/dev/debloater/MainActivity.kt.

Testing

  • Attempted to compile with ./gradlew :app:compileDebugKotlin, which failed in this environment due to wrapper execution/permission issues.
  • Attempted a direct Gradle invocation with Java 21 via JAVA_HOME=... PATH=... gradle :app:compileDebugKotlin, which failed because the Android Gradle Plugin com.android.application:8.13.2 could not be resolved from plugin repositories in this environment.
  • Verified the file compiles syntactically via local static inspection and ran gradle -v to confirm Gradle tooling version; no automated unit/UI tests were available or executed in this environment.

Codex Task

@Dev97633 Dev97633 merged commit c7e466e into main Feb 14, 2026
1 check passed
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 20e515378f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

var allAppData by remember { mutableStateOf<List<AppData>>(emptyList()) }
var query by rememberSaveable { mutableStateOf("") }
var active by rememberSaveable { mutableStateOf(false) }
var filters by rememberSaveable { mutableStateOf(AppFilters()) }
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Replace unsaveable filter state in rememberSaveable

filters is stored with rememberSaveable, but AppFilters is a plain data class and not Bundle-saveable (no Saver, Parcelable, or Serializable), so state saving during configuration change/background restore can throw IllegalArgumentException from the saveable state registry and crash the screen. This is introduced by the new filter state and is reproducible when Android tries to persist UI state (e.g., rotation or process recreation).

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant