Modify the launcher icon of each of your app-variants using simple Gradle rules. Add ribbons of any color, overlay your own images, customize it according to your needs!
Circle | RoundedRectangle | Teardrop |
---|---|---|
This library heavily relies on the original Akaita's easylauncher plugin, but introduces supports for modern build tools and Vector icons
// in app/build.gradle
plugins {
id "com.starter.easylauncher" version "${{version}}"
}
see Gradle Plugin Portal for details
You can customize the filters applied to each type, flavor and variant of your app.
Imagine these are the type and flavors of your app:
// in app/build.gradle
android {
buildTypes {
debug {
//Debuggable, will get a default ribbon in the launcher icon
}
beta {
//Debuggable, will get a default ribbon in the launcher icon
debuggable true
}
canary {
//Non-debuggable, will not get any default ribbon
debuggable false
}
release {
//Non-debuggable, will not get any default ribbon
}
}
productFlavors {
local {}
qa {}
staging {}
production {}
}
}
You could customize the plugin's behaviour like this:
easylauncher {
defaultFlavorNaming = true // Use flavor name for default ribbon, instead of the type name
productFlavors {
local {}
qa {
// Add one more filter to all `qa` variants
filters redRibbonFilter()
}
staging {}
production {}
}
buildTypes {
beta {
// Add two more filters to all `beta` variants
filters = [
customRibbon(ribbonColor: "#0000FF"),
overlayFilter(new File("example-custom/launcherOverlay/beta.png"))
]
}
canary {
// Remove ALL filters to `canary` variants
enable false
}
release {}
}
variants {
productionDebug {
// OVERRIDE all previous filters defined for `productionDebug` variant
filters = orangeRibbonFilter("custom")
}
}
}
Command | Result |
---|---|
overlayFilter(new File("example-custom/launcherOverlay/beta.png")) |
defaultFlavorNaming
: use flavor name in default ribbons, instead of using buildTypeenable
: enable/disable all filters for a flavor/type/variantproductFlavors
: define filters for flavors (will be added to filters defined for types)buildTypes
: define filters for types (will be added to filter defined for flavors)variants
: define filters for variants (will override any other filters)
Minimal requirements for the plugin are:
- Gradle: 6.1.1
- Android Gradle Plugin: 4.0.0
- minSdkVersion: 21 (theoretically there should be no lower boundary - it just hasn't been tested)
easylauncher/ - source code of Gradle plugin
sample/ - root directory of supported Android applications which serve as test projects
Credits to Akaita's easylauncher plugin which this project heavily relies on