Skip to content

Feature: Update to Android API 36 and update dependencies#106

Merged
jacob-derynk merged 12 commits into
masterfrom
chore/update-dependencies
Aug 20, 2025
Merged

Feature: Update to Android API 36 and update dependencies#106
jacob-derynk merged 12 commits into
masterfrom
chore/update-dependencies

Conversation

@jacob-derynk

Copy link
Copy Markdown
Contributor

Overview

This PR updates the Donut library to target Android API 36 and modernizes the entire build system with the latest Android development practices.

Major Changes

Android API 36 Compatibility

  • Target SDK updated to 36 - Full compatibility with latest Android version
  • Handler deprecation fixed - Replaced deprecated Handler() with Handler(Looper.getMainLooper())
  • Android Manifest updated - Added explicit android:exported attributes for API 36 compliance
  • Gradle properties optimized - Enabled nonTransitiveRClass and nonFinalResIds for better performance

Build System Modernization

  • Gradle Version Catalog - Migrated all dependencies to centralized libs.versions.toml
  • Gradle Wrapper 8.5 - Updated to latest stable Gradle version
  • Namespace declarations - Added proper namespace declarations for all modules
  • AndroidManifest cleanup - Removed deprecated package attributes

Code Quality & Linting

  • Detekt configuration updated - Fixed deprecated rules and modernized configuration
  • EditorConfig cleaned up - Removed unsupported KTLint properties
  • Dangerfile simplified - Removed JIRA integration for public library workflow
  • Lint configurations - Updated lint rules for modern Android development

Dependencies Updated

  • Compose BOM 2025.08.00 - Latest stable Compose version
  • AndroidX libraries - Updated to latest versions
  • Build tools - Updated AGP, Kotlin, and other build dependencies

This commit introduces a Gradle version catalog (`gradle/libs.versions.toml`) to manage project dependencies.

The existing `Versions.kt` and `Deps.kt` files in `buildSrc` are now marked as deprecated.
Target SDK updated from 33 to 36 to ensure compatibility with newer Android versions and features.
The `package` attribute in the `manifest` tag of `AndroidManifest.xml` files is deprecated. This commit removes it from all modules.
This commit migrates the project to use Gradle version catalogs for dependency management and introduces convention plugins for shared build logic.

Key changes include:
- Replaced `Deps.kt` and `Versions.kt` with `gradle/libs.versions.toml`.
- Created `convention-plugins` module for reusable build configurations, including a linting convention plugin.
- Updated `build.gradle.kts` files to use version catalog aliases and apply convention plugins.
- Updated Gradle wrapper to version 8.14.3.
- Modified GitHub Actions workflows to use `setup-kotlin` instead of `setup-java`.
- Refactored `LintCheck` task to `LintCheckTask` and improved its logic for identifying relevant subprojects.
- Minor code reordering in `DonutProgressLine.kt`.
- Updated `gradle.properties` with new Android build feature flags.
- Add Material Components library
- Implement Toolbar component
- Update app theme to use `NoActionBar`
- Integrate Toolbar into sample screens
- Adjust layout constraints to accommodate Toolbar
…API 36

- Updated Detekt configuration for better linting and code style enforcement.
- Fixed Handler instantiation in Playground activities.
- Set `exported="false"` for Playground activities in AndroidManifest.
- Enabled `nonTransitiveRClass` and `nonFinalResIds` in gradle.properties.
- Updated the link to the Engineering Handbook in CONTRIBUTING.md.
- Moved `lint.xml` from module-level to project-level and added more lint checks.
- Updated `.editorconfig` with more specific rules for Kotlin files, including line length, indentation, and trailing commas.
- Added exclusions for generated files in `.editorconfig` to disable ktlint for them.
@jacob-derynk jacob-derynk self-assigned this Aug 18, 2025
@jacob-derynk
jacob-derynk enabled auto-merge August 18, 2025 12:21
gradle autoupdate changed too much
@jacob-derynk
jacob-derynk marked this pull request as draft August 18, 2025 12:27
auto-merge was automatically disabled August 18, 2025 12:27

Pull request was converted to draft

gradle autoupdate changed too much
@jacob-derynk
jacob-derynk marked this pull request as ready for review August 18, 2025 12:42
@jacob-derynk
jacob-derynk merged commit 5ed9421 into master Aug 20, 2025
1 check passed
@jacob-derynk
jacob-derynk deleted the chore/update-dependencies branch August 20, 2025 14:12
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.

2 participants