Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
# Conflicts:
#	appexample/build.gradle.kts
  • Loading branch information
tabere-ubique committed Sep 6, 2024
1 parent 4aa63fd commit dc2e27f
Show file tree
Hide file tree
Showing 5 changed files with 92 additions and 2 deletions.
1 change: 0 additions & 1 deletion appexample/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ dependencies {
}

linthPlugin {
//apkFile = getLayout().buildDirectory.file("outputs/apk/dev/debug/example.apk")
uploadKey = "f1c8846e-0c3a-44ac-b56a-53feb91d6383"
flavors = "dev"

Expand Down
48 changes: 48 additions & 0 deletions plugin-build/plugin/src/main/java/ch/ubique/linth/IconTask.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package ch.ubique.linth

import ch.ubique.linth.common.getMergedManifestFile
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.TaskAction
import java.io.File
import kotlin.math.max

abstract class IconTask : DefaultTask() {

init {
description = "Generates App Icon"
group = "linth"
}

@get:Input
abstract var flavors: Set<String>

@TaskAction
fun iconAction() {
val moduleDir = File(project.rootDir, project.name)
val buildDir = project.layout.buildDirectory.asFile.get()

val gradleLastModified = max(
File(moduleDir, "build.gradle").lastModified(),
File(project.rootDir, "build.gradle").lastModified()
)

val generatedResDir = File("$buildDir/generated/res/launcher-icon/")

flavors.forEach { flavor ->
// get banner label
val defaultLabelEnabled = false//android.defaultConfig.launcherIconLabelEnabled
val flavorLabelEnabled = true//flavor.launcherIconLabelEnabled

val bannerLabel = if (flavorLabelEnabled) {
flavor
} else {
null
}

val manifestFile = project.getMergedManifestFile(flavor, "debug")
println("ManifestFile: ${manifestFile.path}")
}
}

}
27 changes: 27 additions & 0 deletions plugin-build/plugin/src/main/java/ch/ubique/linth/LinthPlugin.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package ch.ubique.linth
import ch.ubique.linth.common.capitalize
import ch.ubique.linth.model.UploadRequest
import com.android.build.gradle.AppExtension
import com.android.build.gradle.internal.tasks.factory.dependsOn
import org.gradle.api.Plugin
import org.gradle.api.Project

Expand All @@ -13,7 +14,33 @@ abstract class LinthPlugin : Plugin<Project> {

val androidExtension = getAndroidExtension(project)

val iconTask = project.tasks.register("generateAppIcon", IconTask::class.java) { iconTask ->

val flavors = mutableSetOf<String>()

androidExtension.applicationVariants.forEach { variant ->
val flavor = variant.flavorName.capitalize()
flavors.add(flavor)
}

iconTask.flavors = flavors
}

//hook iconTask into android build process
project.afterEvaluate {
androidExtension.applicationVariants.forEach { variant ->
val variantName = variant.name.capitalize()
variant.outputs.forEach { output ->
iconTask.dependsOn(output.processManifestProvider)
project.tasks.named("generate${variantName}Resources") {
it.dependsOn(iconTask)
}
}
}
}

project.tasks.register("uploadToUbDiag", UploadToUbDiagTask::class.java) { uploadTask ->

uploadTask.uploadKey = extension.uploadKey.get()
uploadTask.proxy = extension.proxy.orNull

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ abstract class UploadToUbDiagTask : DefaultTask() {

init {
description = "Uploads Apk to UbDiag"
group = "publish"
group = "linth"
}

@get:Input
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package ch.ubique.linth.common


import org.gradle.api.Project
import java.io.File

/**
* returns File with merged manifest
*/
fun Project.getMergedManifestFile(flavor: String, buildType: String): File {
val variantName = flavor + buildType
return File(
layout.buildDirectory.asFile.get(),
"intermediates/merged_manifests/${variantName}/process${variantName}Manifest/AndroidManifest.xml"
)
}

0 comments on commit dc2e27f

Please sign in to comment.