Skip to content

docs: catalog 12 pending enhancements and library upgrades as structured issue reports#178

Open
Copilot wants to merge 1 commit intomasterfrom
copilot/update-library-versions-and-enhancements
Open

docs: catalog 12 pending enhancements and library upgrades as structured issue reports#178
Copilot wants to merge 1 commit intomasterfrom
copilot/update-library-versions-and-enhancements

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 2, 2026

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

  • Kotlin 1.9.22 → 2.1.x — K2 compiler, new Compose compiler Gradle plugin model
  • ExoPlayer 2.19.1 → Media3 — ExoPlayer 2.x is deprecated; migrate to androidx.media3
  • Coil 2.5.0 → 3.x — new artifact group (io.coil-kt.coil3), OkHttp sub-artifact required
  • Lifecycle 2.7.0 → 2.8.xLifecycleEventEffect, KMP ViewModel
  • Navigation 2.7.7 → 2.8.x — type-safe @Serializable routes replacing string paths

Build / tooling

  • KAPT → KSP for Room annotation processing (~2× faster builds)
  • targetSdk/compileSdk 34 → 35 — Google Play requires API 35 targeting by Aug 2025
  • Compose BOM adoption to eliminate per-artifact version pinning
  • Gradle Version Catalog (libs.versions.toml) replacing buildSrc Kotlin constants

Missing features (README "Coming Soon")

  • Pull-to-Refresh — Material3 PullToRefreshBox
  • Swipe-to-Dismiss — Material3 SwipeToDismissBox with undo Snackbar
  • Adaptive layoutsNavigationSuiteScaffold + ListDetailPaneScaffold for tablets/foldables

Each file is self-contained with motivation, proposed changes, and reference links — ready to be opened as a GitHub Issue.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants