The CommonsWare Android Components, or CWAC, are open source libraries to
help solve various tactical problems with Android development. Most CWAC
components are packaged as a tiny JAR file that you can add to your project
(e.g., drop it in
libs/), requiring at most other CWAC JARs as dependencies.
Most are also available as AAR artifacts in a CommonsWare repository, ready
for inclusion in your Gradle-based project build scripts.
The current supported CWAC components, and their GitHub repositories, are:
AdapterWrapper, a simple wrapper class that, by default, delegates all
ListAdaptermethods to a wrapped
ListAdapter. The idea is that you can extend
AdapterWrapperand only override certain
ListAdaptermethods, with the rest handled via the wrapped adapter.
Theme.Materialand native activities instead of
DocumentFilefor greater compatibility with more devices and types of content
ListAdapterthat blends multiple
ListAdaptersinto a single
ListAdapter. Use this for section headings, blending multiple sources of data together, etc.
ViewPager, notably the
Presentationengine in Android, for driving separate content to an external display (compared to what you shown on the device's own display)
StreamProvider, an extended version of Google's
FileProvider, for making files, resources, and assets available to other apps via a
WakefulIntentService, a refinement of the
IntentServicethat keeps the device awake while background tasks are being processed. This is useful for work to be scheduled via the
And, in case you were wondering, CWAC is pronounced like "quack".