Skip to content
CAI
Software that uses CAICheck a score

ssseasonnn/RxDownload

60.4

Adequate · 25 September 2026

3.1k

lines of production code

Kotlin

with Java

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Features

Add demo app with task management and batch controls

The demo application now includes a full set of activities and utilities to demonstrate the library's capabilities. This includes a main entry point, a basic download activity, and a list view for multiple tasks. A new 'Download Manager' screen allows users to view all tasks, with each item showing status and progress. Additionally, the manager screen provides batch controls to start all, stop all, or delete all tasks simultaneously via the menu bar.

demo · high confidence

Add notification management for downloads

A new \rxdownload4-notification\ module has been introduced to handle download status notifications. This adds a background service (\NotificationActionService\) that processes start, stop, and cancel actions triggered from the notification bar. Users can now control downloads directly from the notification, with the UI reflecting the current state (pending, downloading, paused, failed, completed) and providing appropriate action buttons.

rxdownload4-notification · high confidence

Add task recording with Room database and bulk control APIs

The rxdownload4-recorder module introduces a new task recording system backed by an Android Room database. This adds the ability to persist, retrieve, and manage download task states (including status, progress, and extra info) via the TaskEntity and TaskDao. It also exposes bulk control APIs (startAll, stopAll, deleteAll) and query methods (getTask, getTaskList, getAllTask) to interact with the recorded tasks.

rxdownload4-recorder · high confidence

Initial release of RxDownload4 with changelog and documentation

The repository now includes a comprehensive CHANGELOG.md documenting the history of RxDownload4, starting from v1.0.0 through v1.1.4, including adaptations for Android 10 and 12, migration to AndroidX, and various bug fixes. Additionally, the project adds a .gitconfig file for the author 'Season' and updates the .gitignore to exclude Gradle properties and specific build directories. The README files (English and Chinese) are also included, providing usage examples for the download library.

(repo-wide) · high confidence

Introduce RxDownload4 library for RxJava2-based downloads

The rxdownload4 module introduces a new download library built on RxJava2, providing a reactive API for managing download tasks. The update adds core components including a Task model with extraInfo support, a Progress data class for tracking download status, and a Dispatcher pattern that routes requests to either a NormalDownloader or a RangeDownloader for multi-part downloads. It also introduces a Storage interface with MemoryStorage and SimpleStorage implementations, alongside Validator and Watcher abstractions to manage task lifecycle and state.

rxdownload4 · high confidence

Introduce task limitation and status tracking to the download manager

The download manager now supports limiting the number of concurrent tasks, defaulting to three. This is implemented via the new TaskLimitation interface and BasicTaskLimitation class, which manage task states (Pending, Started, Downloading, Paused, Completed, Failed, Deleted) and handle queuing when the limit is reached. Additionally, the manager now supports recording task status changes through the TaskRecorder interface, allowing for persistent state tracking of downloads.

rxdownload4-manager · high confidence

Removals

Removed legacy download implementation classes

The legacy download components have been removed from the library. Specifically, the \DownloadApi\, \DownloadRange\, \DownloadStatus\, \HeaderInterceptor\, \RetrofitProvider\, and \RxDownload\ classes have been deleted. This eliminates the old single-threaded and basic multi-threaded download logic that relied on the previous Retrofit and RxJava integration, signaling a shift in how download functionality is exposed or implemented within the library.

rxdownload/src/main/java · high confidence

Behavioural changes

Gradle wrapper upgraded to 5.4.1

The project's Gradle wrapper has been updated from version 2.14.1 to 5.4.1. This upgrade ensures the project uses a modern, supported version of the Gradle build tool, which may bring performance improvements, new build features, and better compatibility with current Android development practices.

gradle · high confidence

Removed legacy MainActivity using Butterknife and RxJava 1

The main activity file (MainActivity.java) was removed from the app module. This change eliminates the previous implementation that relied on Butterknife for view binding and RxJava 1 for asynchronous download handling, likely as part of a broader migration to a newer architecture or UI toolkit.

app/src/main/java · high confidence

Dependencies

Migrate to RxDownload4 with Kotlin and AndroidX

The project has been refactored from the legacy 'rxdownload' module to 'rxdownload4', introducing a modular architecture with separate components for the core library, manager, notification handling, and database recording. The build system has been upgraded to use Kotlin (version 1.3.50) and AndroidX libraries, replacing the older Android Support libraries. The demo application has been rewritten in Kotlin, and the project structure now includes new modules (rxdownload4-manager, rxdownload4-notification, rxdownload4-recorder) alongside the main rxdownload4 library, all configured with updated Gradle and dependency versions.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 48 → 60 (+12.4)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (-0.1)
  • Architecture 94 → 99 (+5.4)
  • Maturity 51 → 49 (-2.5)
  • Readiness 17 → 43 (+26.1)
  • Security 97 → 100 (+2.5)
  • Domain Modelling 100 → 100 (+0.0)

Resolved (6)

  • Coverage not measured — test suite did not build
  • Dimension evaluation failed
  • Medium: security finding (details withheld)
  • No exposed public API
  • No tests found
  • Test reliability not included

New (6)

  • Change coupling: RxDownload.kt ↔ NormalDownloader.kt (rxdownload4/src/main/java/zlc/season/rxdownload4/RxDownload.kt)
  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (10 lines × 2) (rxdownload4/src/main/java/zlc/season/rxdownload4/downloader/NormalDownloader.kt)
  • Orphaned files with no living knowledge

Architecture

  • Containers 0 added · 0 removed · contexts 5 added · 0 removed · edges 8 added · 0 removed

Added bounded contexts (5)

  • demo
  • rxdownload4
  • rxdownload4-manager
  • rxdownload4-notification
  • rxdownload4-recorder

Added dependency edges (8)

  • demo → rxdownload4
  • demo → rxdownload4-manager
  • demo → rxdownload4-recorder
  • rxdownload4-manager → rxdownload4
  • rxdownload4-notification → rxdownload4
  • rxdownload4-notification → rxdownload4-manager
  • rxdownload4-recorder → rxdownload4
  • rxdownload4-recorder → rxdownload4-manager

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

ssseasonnn/RxDownload was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 25 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 0275362c850c81d70ee1b730597e39b6e4bd2040 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-9630dbd8b4f7.