Thanks for your interest in CountTimeProgressView. Contributions of all kinds are welcome.
- Search Issues for an existing report.
- If no matching issue exists, create one and include:
- Problem description
- Steps to reproduce
- Expected behavior vs actual behavior
- Device information, including Android version and device model
- Relevant code snippets or screenshots
- Fork this repository.
- Create a feature branch:
git checkout -b feature/your-feature. - Make your changes and ensure:
- Code follows the existing Kotlin style.
- Comments and public messages are written in English.
- New public APIs include KDoc when needed.
- New features update README and CHANGELOG as appropriate.
- Run build verification:
./gradlew :library:assembleDebug :library:testDebugUnitTest. - Commit changes:
git commit -m "feat: your feature description". - Push your branch and open a pull request.
Recommended prefixes:
feat:new featurefix:bug fixdocs:documentation updaterefactor:refactor without behavior changesperf:performance improvementtest:testschore:build or tooling change
- Android Studio Hedgehog or newer
- JDK 17
- Gradle 7.6+
- Kotlin 1.8.22+
CountTimeProgressView/
├── library/ # Core library module with no third-party runtime dependency
│ └── src/main/java/com/sfyc/ctpv/
│ ├── CountTimeProgressView.kt # Core custom view
│ ├── CountTimeProgressViewCompose.kt # Compose helper
│ └── ClockTimeFormatter.kt # Clock formatting utility
├── app/ # Sample app module
└── .AI/ # Refactor analysis notes
- Prefer Kotlin for new code.
- Add KDoc to public APIs when it clarifies usage.
- Document dp/sp conversion behavior when adding public size APIs.
- Avoid allocating objects in
onDraw. - Update
attrs.xmlwhen adding XML attributes.
Contributed code follows this project's Apache License 2.0.