docs: catalog 12 pending enhancements and library upgrades as structured issue reports#178
Open
docs: catalog 12 pending enhancements and library upgrades as structured issue reports#178
Conversation
…pdates Agent-Logs-Url: https://github.com/Gurupreet/ComposeCookBook/sessions/e621a54a-423b-4b8f-821f-7e0985b98cf8 Co-authored-by: Gurupreet <4903762+Gurupreet@users.noreply.github.com>
Copilot created this pull request from a session on behalf of
Gurupreet
May 2, 2026 19:06
View session
There was a problem hiding this comment.
Pull request overview
This PR adds a structured backlog under .github/PENDING_ISSUES/ so future maintenance and feature work can be opened as ready-made GitHub issues. It fits the codebase by documenting overdue dependency/tooling upgrades and README-promised UI demos in a consistent, issue-friendly format.
Changes:
- Add issue reports for major dependency and tooling upgrades across Kotlin, Media3, KSP, SDK, Compose, version catalogs, Coil, Lifecycle, and Navigation.
- Add issue reports for missing or incomplete showcase features called out in the README, including pull-to-refresh, swipe interactions, and adaptive layouts.
- Standardize each backlog item with summary, proposed changes, and reference links for future contributors.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
.github/PENDING_ISSUES/01-upgrade-kotlin-2.md |
Documents a Kotlin 2.x / Compose compiler migration plan. |
.github/PENDING_ISSUES/02-migrate-exoplayer-to-media3.md |
Captures the planned ExoPlayer 2.x to Media3 migration. |
.github/PENDING_ISSUES/03-migrate-kapt-to-ksp.md |
Describes replacing Room's KAPT processing with KSP. |
.github/PENDING_ISSUES/04-bump-target-sdk-to-35.md |
Tracks raising compileSdk/targetSdk to API 35. |
.github/PENDING_ISSUES/05-adopt-compose-bom.md |
Proposes moving Compose dependency management to the BOM. |
.github/PENDING_ISSUES/06-feature-pull-to-refresh.md |
Adds a backlog item for a pull-to-refresh demo/update. |
.github/PENDING_ISSUES/07-feature-swipe-to-dismiss.md |
Adds a backlog item for swipe-to-dismiss / swipe actions UI. |
.github/PENDING_ISSUES/08-migrate-to-version-catalog.md |
Proposes replacing custom buildSrc dependency constants with a Gradle version catalog. |
.github/PENDING_ISSUES/09-feature-adaptive-layouts.md |
Adds a backlog item for adaptive/large-screen Compose layouts. |
.github/PENDING_ISSUES/10-upgrade-coil-3.md |
Documents the planned Coil 3 migration. |
.github/PENDING_ISSUES/11-upgrade-lifecycle-2.8.md |
Captures an AndroidX Lifecycle 2.8 upgrade plan. |
.github/PENDING_ISSUES/12-upgrade-navigation-2.8-type-safe.md |
Documents upgrading Navigation Compose and adopting type-safe routes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+20
to
+23
| 2. In `buildSrc/src/main/kotlin/.../Versions.kt`, update `kotlin = "1.9.22"` → `"2.1.20"`. | ||
| 3. Switch the Compose compiler from `kotlinCompilerExtensionVersion` to the new `org.jetbrains.kotlin.plugin.compose` Gradle plugin (see [official migration guide](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-compiler.html)). | ||
| 4. Remove the now-redundant `composeCompiler` version constant from `Versions.kt` and `ProjectConfigs.kt`. | ||
| 5. Verify all modules compile and tests pass. |
Comment on lines
+22
to
+23
| 4. Remove the now-redundant `composeCompiler` version constant from `Versions.kt` and `ProjectConfigs.kt`. | ||
| 5. Verify all modules compile and tests pass. |
Comment on lines
+15
to
+16
| - The project's `demos/youtube` and any other screens using ExoPlayer will need updating. | ||
|
|
| 3. Test for any behavior changes introduced by targeting API 35: | ||
| - **Edge-to-edge** is enforced by default on Android 15; ensure all screens handle window insets correctly using `WindowInsets` composables. | ||
| - Verify the app handles the predictive back gesture where applicable. | ||
| 4. Update the README badge which references an old Compose version. |
Comment on lines
+15
to
+24
| - Works seamlessly with `buildSrc` convention plugins if those are kept. | ||
| - Reduces boilerplate: `libs.compose.ui` instead of `Dependencies.composeUi`. | ||
|
|
||
| ## Proposed Changes | ||
|
|
||
| 1. Create `gradle/libs.versions.toml` with all versions, libraries, and plugins currently defined in `buildSrc/src/main/kotlin/.../Versions.kt` and `Dependencies.kt`. | ||
| 2. Migrate `app/build.gradle.kts` and all module `build.gradle.kts` files to reference `libs.<alias>` instead of `Dependencies.*`. | ||
| 3. Keep the convention plugins in `buildSrc` (`common-kotlin-module-configs-script-plugin.gradle.kts`, `common-compose-module-configs-script-plugin.gradle.kts`) but have them call `libs.*` instead of the Kotlin constants. | ||
| 4. Delete `buildSrc/src/main/kotlin/.../Versions.kt`, `Dependencies.kt`, `GroupedDependencies.kt`, and `DependencyHandlerExtensions.kt`. | ||
| 5. Update `settings.gradle.kts` to enable the version catalog feature (already on by default in AGP 8+). |
Comment on lines
+14
to
+15
| - `WindowSizeClass` (from `androidx.compose.material3:material3-window-size-class`) — already in `Dependencies.kt`. | ||
| - `androidx.compose.material3.adaptive` — new adaptive navigation and scaffold APIs. |
Comment on lines
+20
to
+29
| Add the demo to one of: | ||
| - **Home screen list** — as a new list item under "Advance Lists & Animations." | ||
| - **A new screen** in `components/` — `components/pullrefresh/`. | ||
|
|
||
| ## Acceptance Criteria | ||
|
|
||
| - [ ] A composable screen demonstrating `PullToRefreshBox` (or `PullToRefresh` with `rememberPullToRefreshState()`). | ||
| - [ ] Simulates a network delay (e.g. `delay(1500)`) to show the indicator in action. | ||
| - [ ] Supports both light and dark themes. | ||
| - [ ] Registered in the app's navigation/home screen list. |
Comment on lines
+2
to
+31
| title: "Feature: Add Swipe-to-Dismiss / Swipe Actions list demo" | ||
| labels: feature request, enhancement | ||
| --- | ||
|
|
||
| ## Summary | ||
|
|
||
| The README lists "Swipe lists" under "Coming Soon." Compose Material3 provides `SwipeToDismissBox`, the recommended API for implementing swipe-to-dismiss and swipe actions on list items. | ||
|
|
||
| ## Description | ||
|
|
||
| This feature would add a demo showcasing: | ||
|
|
||
| 1. **Basic SwipeToDismissBox** — swipe an item left to delete it from a `LazyColumn`. | ||
| 2. **Swipe with reveal actions** — swipe right to reveal an action button (e.g. "Archive"). | ||
| 3. **Undo delete** — a `Snackbar` with an "Undo" action after dismissal, demonstrating the interaction pattern recommended by Material Design 3 guidelines. | ||
|
|
||
| ## Proposed Location | ||
|
|
||
| - New component in `components/swipedismiss/` or as a section within an existing "Lists" demo screen. | ||
| - Exposed from the Home screen under "Advance Lists & Animations." | ||
|
|
||
| ## Acceptance Criteria | ||
|
|
||
| - [ ] `SwipeToDismissBox` demo with directional thresholds configured. | ||
| - [ ] Background shown during swipe (e.g. red "Delete" background with icon). | ||
| - [ ] Item is removed from the list on full swipe. | ||
| - [ ] Undo `Snackbar` appears after deletion. | ||
| - [ ] Supports dark mode. | ||
| - [ ] Added to navigation and the Home screen list. | ||
| - [ ] README updated. |
| const val navCompose = "2.8.x" // e.g. "2.8.9" | ||
| ``` | ||
| 2. Add `kotlinx-serialization-json` to `Dependencies.kt` and `kotlinDependencies` in `GroupedDependencies.kt`. | ||
| 3. Apply the `kotlin("plugin.serialization")` Gradle plugin in `build.gradle.kts` (root). |
Comment on lines
+8
to
+13
| The project currently targets **Android 14 (API 34)**. Android 15 (API 35) is now stable and Google Play requires apps to target it by August 2025. | ||
|
|
||
| ## Motivation | ||
|
|
||
| - Apps targeting API 35 unlock Android 15 features (edge-to-edge enforcement, predictive back, photo picker improvements, health connect). | ||
| - Google Play's target API level policy requires apps to target API 35 by **August 31, 2025** for updates to existing apps. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The repo has accumulated significant staleness across library versions, missing platform features, and unimplemented "Coming Soon" items. This adds
.github/PENDING_ISSUES/with 12 ready-to-file GitHub issue reports documenting each gap.Library upgrades
androidx.media3io.coil-kt.coil3), OkHttp sub-artifact requiredLifecycleEventEffect, KMP ViewModel@Serializableroutes replacing string pathsBuild / tooling
targetSdk/compileSdk34 → 35 — Google Play requires API 35 targeting by Aug 2025libs.versions.toml) replacingbuildSrcKotlin constantsMissing features (README "Coming Soon")
PullToRefreshBoxSwipeToDismissBoxwith undoSnackbarNavigationSuiteScaffold+ListDetailPaneScaffoldfor tablets/foldablesEach file is self-contained with motivation, proposed changes, and reference links — ready to be opened as a GitHub Issue.