Skip to content

evowizz/common

Repository files navigation

Common

Latest version

Common regroups various sets of tools to make Android development easier. Some of these tools are used within Inware.

Installation

To use one of the various sets of tools, add the libraries to your Gradle configuration. You can find the latest version at the top of this README, or here.

build.gradle.kts

implementation("dev.evowizz.common:core:$version")
implementation("dev.evowizz.common:hashing:$version")
implementation("dev.evowizz.common:mosaic:$version")

build.gradle

implementation 'dev.evowizz.common:core:$version'
implementation 'dev.evowizz.common:hashing:$version'
implementation 'dev.evowizz.common:mosaic:$version'

Usage

Core

Set of essential tools such as AndroidVersion, SystemProperties or even NavigationBar.

// ApplicationContext
val context = ApplicationContext.get()

// AndroidVersion
if (!AndroidVersion.isAtLeastT()) Log.d(TAG, "Who doesn't like Tiramisu?")
AndroidVersion.whenAtLeast(Build.VERSION_CODES.CUR_DEVELOPMENT) { Log.d(TAG, "Uhoh... Work in progress!") }

// SystemProperties
SystemProperties.getOrNull("ro.build.version.release")
SystemProperties.getOrThrow("ro.build.version.release")
SystemProperties.getOrElse("ro.build.version.release", Build.UNKNOWN)

// NavigationBar
val isGestural = NavigationBar.getMode(context) == NavigationBarMode.MODE_GESTURAL

Hashing

Set of tools to hash a String or a ByteArray using various algorithms.

Hashing.hash("Hello World!", Algorithm.MD5)
Hashing.hash("foo bar".toByteArray(), Algorithm.SHA1)

Mosaic

Set of tools to parse "Mosaic" text into a SpannedString. The name "Mosaic" is only used as a way to define text that is inspired from Markdown, but isn't quite Markdown either. Currently, only **Bold**, __Italic__ and [Links](https://example.org) are supported. But they can also be mixed together.

val mosaicText = "**bold**," + "\n" +
        "__italic__," + "\n" +
        "__**bold & italic**__," + "\n" +
        "**[__Link__](https://example.com)**"
MosaicBuilder().build(mosaicText)

Note: You can also provide your own URLSpan by using the urlSpanProvider parameter on MosaicBuilder.

License

This code is open source software licensed under the Apache 2.0 License.