Skip to content
Merged
2 changes: 1 addition & 1 deletion manifestcheck/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ gradlePlugin {
id = "com.telefonica.manifestcheck"
displayName = "ManifestCheck"
description = "ManifestCheck is a Gradle plugin that helps you catch Android permission/feature regressions automatically."
implementationClass = "io.github.simonschiller.permissioncheck.PermissionCheckPlugin"
implementationClass = "com.telefonica.manifestcheck.PermissionCheckPlugin"
}
}
website = "https://github.com/Telefonica/android-permissioncheck"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.github.simonschiller.permissioncheck
package com.telefonica.manifestcheck

import com.android.build.gradle.AppPlugin
import io.github.simonschiller.permissioncheck.config.TaskConfiguratorV1
import com.telefonica.manifestcheck.config.TaskConfiguratorV1
import org.gradle.api.Plugin
import org.gradle.api.Project

Expand All @@ -21,4 +21,4 @@ class PermissionCheckPlugin : Plugin<Project> {
taskConfigurator.configureTasks(project, extension)
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package io.github.simonschiller.permissioncheck
package com.telefonica.manifestcheck

import io.github.simonschiller.permissioncheck.testutil.AndroidProjectExtension
import io.github.simonschiller.permissioncheck.testutil.TestVersions
import io.github.simonschiller.permissioncheck.testutil.outcomeOf
import com.telefonica.manifestcheck.testutil.AndroidProjectExtension
import com.telefonica.manifestcheck.testutil.TestVersions
import com.telefonica.manifestcheck.testutil.outcomeOf
import org.gradle.kotlin.dsl.support.normaliseLineSeparators
import org.gradle.testkit.runner.TaskOutcome
import org.junit.jupiter.api.Assertions.*
Expand All @@ -14,7 +14,8 @@ class MultiVariantPermissionCheckIntegrationTest {

@JvmField
@RegisterExtension
val androidProject = AndroidProjectExtension()
val androidProject =
AndroidProjectExtension()

@ParameterizedTest
@ArgumentsSource(TestVersions::class)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package io.github.simonschiller.permissioncheck
package com.telefonica.manifestcheck

import io.github.simonschiller.permissioncheck.testutil.AndroidProjectExtension
import io.github.simonschiller.permissioncheck.testutil.TestVersions
import io.github.simonschiller.permissioncheck.testutil.outcomeOf
import com.telefonica.manifestcheck.testutil.AndroidProjectExtension
import com.telefonica.manifestcheck.testutil.TestVersions
import com.telefonica.manifestcheck.testutil.outcomeOf
import org.gradle.kotlin.dsl.support.normaliseLineSeparators
import org.gradle.testkit.runner.TaskOutcome
import org.junit.jupiter.api.Assertions.*
Expand All @@ -14,7 +14,8 @@ class SingleVariantPermissionCheckIntegrationTest {

@JvmField
@RegisterExtension
val androidProject = AndroidProjectExtension()
val androidProject =
AndroidProjectExtension()

@ParameterizedTest
@ArgumentsSource(TestVersions::class)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.simonschiller.permissioncheck.testutil
package com.telefonica.manifestcheck.testutil

import org.gradle.kotlin.dsl.support.normaliseLineSeparators
import org.gradle.testkit.runner.BuildResult
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.simonschiller.permissioncheck.testutil
package com.telefonica.manifestcheck.testutil

import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.RegisterExtension
Expand All @@ -7,15 +7,16 @@ class AndroidProjectExtensionTest {

@JvmField
@RegisterExtension
val androidProject = AndroidProjectExtension()
val androidProject =
AndroidProjectExtension()

@Test
fun `AndroidProjectExtension creates project that works correctly`() {
androidProject.runTask(
"tasks",
"--all",
gradleVersion = TestVersions.LATEST_GRADLE_VERSION,
agpVersion = TestVersions.LATEST_AGP_VERSION
gradleVersion = TestVersions.Companion.LATEST_GRADLE_VERSION,
agpVersion = TestVersions.Companion.LATEST_AGP_VERSION
)
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.simonschiller.permissioncheck.testutil
package com.telefonica.manifestcheck.testutil

import org.junit.jupiter.api.extension.ExtensionContext
import org.junit.jupiter.params.provider.Arguments
Expand All @@ -7,6 +7,7 @@ import java.util.stream.Stream

class TestVersions : ArgumentsProvider {

@Suppress("DEPRECATION")
override fun provideArguments(context: ExtensionContext): Stream<out Arguments> {
val arguments = AGP_VERSIONS.flatMap { agpVersion ->
GRADLE_VERSIONS
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package io.github.simonschiller.permissioncheck.config
package com.telefonica.manifestcheck.config

import com.android.build.api.artifact.SingleArtifact
import com.android.build.api.variant.AndroidComponentsExtension
import io.github.simonschiller.permissioncheck.PermissionCheckExtension
import com.telefonica.manifestcheck.PermissionCheckExtension
import org.gradle.api.Project

/** Configures the tasks for AGP versions 7.0.0-alpha01 and above. */
Expand All @@ -24,4 +24,4 @@ class TaskConfiguratorV1 : TaskConfigurator() {
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.simonschiller.permissioncheck
package com.telefonica.manifestcheck

import org.gradle.api.file.*
import org.gradle.api.model.ObjectFactory
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package io.github.simonschiller.permissioncheck

import io.github.simonschiller.permissioncheck.internal.BaselineHandler
import io.github.simonschiller.permissioncheck.internal.ManifestParser
import io.github.simonschiller.permissioncheck.internal.PermissionChecker
import io.github.simonschiller.permissioncheck.internal.report.HtmlReporter
import io.github.simonschiller.permissioncheck.internal.report.LogReporter
import io.github.simonschiller.permissioncheck.internal.report.XmlReporter
package com.telefonica.manifestcheck

import com.telefonica.manifestcheck.internal.BaselineHandler
import com.telefonica.manifestcheck.internal.ManifestParser
import com.telefonica.manifestcheck.internal.PermissionChecker
import com.telefonica.manifestcheck.internal.report.HtmlReporter
import com.telefonica.manifestcheck.internal.report.LogReporter
import com.telefonica.manifestcheck.internal.report.XmlReporter
import org.gradle.api.DefaultTask
import org.gradle.api.GradleException
import org.gradle.api.file.RegularFile
Expand Down Expand Up @@ -66,7 +66,8 @@ open class PermissionCheckTask : DefaultTask() {
val permissions = variants.get().zip(manifestPermissions).toMap()

val baselineFile = baseline.get().asFile
val baselineHandler = BaselineHandler(baselineFile)
val baselineHandler =
BaselineHandler(baselineFile)

// Create (or recreate) the baseline if needed
if (recreate.get() || !baselineFile.exists()) {
Expand All @@ -87,7 +88,8 @@ open class PermissionCheckTask : DefaultTask() {
}

// Make sure the current permissions match the ones from the baseline
val permissionChecker = PermissionChecker()
val permissionChecker =
PermissionChecker()
val violations = permissions.mapValues { (variantName, variantPermissions) ->
permissionChecker.findViolations(baselinePermissions.getValue(variantName), variantPermissions, strict.get())
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package io.github.simonschiller.permissioncheck.config
package com.telefonica.manifestcheck.config

import io.github.simonschiller.permissioncheck.PermissionCheckExtension
import io.github.simonschiller.permissioncheck.PermissionCheckTask
import com.telefonica.manifestcheck.PermissionCheckExtension
import com.telefonica.manifestcheck.PermissionCheckTask
import org.gradle.api.Project
import org.gradle.api.tasks.TaskProvider
import org.gradle.language.base.plugins.LifecycleBasePlugin
import java.util.*
import java.util.Locale

/**
* Base class to configure the Gradle tasks, different implementations are used to stay compatible with older AGP
Expand Down Expand Up @@ -59,4 +59,4 @@ abstract class TaskConfigurator {
task.strict.set(extension.strict)
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package io.github.simonschiller.permissioncheck.internal

import io.github.simonschiller.permissioncheck.internal.data.BasePermission
import io.github.simonschiller.permissioncheck.internal.data.Feature
import io.github.simonschiller.permissioncheck.internal.data.Permission
import io.github.simonschiller.permissioncheck.internal.data.Sdk23Permission
import io.github.simonschiller.permissioncheck.internal.util.appendElement
import io.github.simonschiller.permissioncheck.internal.util.createDocumentBuilder
import io.github.simonschiller.permissioncheck.internal.util.forEach
import io.github.simonschiller.permissioncheck.internal.util.writeToFile
package com.telefonica.manifestcheck.internal

import com.telefonica.manifestcheck.internal.data.BasePermission
import com.telefonica.manifestcheck.internal.data.Feature
import com.telefonica.manifestcheck.internal.data.Permission
import com.telefonica.manifestcheck.internal.data.Sdk23Permission
import com.telefonica.manifestcheck.internal.util.appendElement
import com.telefonica.manifestcheck.internal.util.createDocumentBuilder
import com.telefonica.manifestcheck.internal.util.forEach
import com.telefonica.manifestcheck.internal.util.writeToFile
import java.io.File

internal class BaselineHandler(private val baselineFile: File) {
Expand All @@ -26,7 +26,8 @@ internal class BaselineHandler(private val baselineFile: File) {
}

// Package changes into a XML document
val document = createDocumentBuilder().newDocument()
val document = createDocumentBuilder()
.newDocument()
document.appendElement("baseline") {
baseline.toSortedMap().forEach { (variantName, variantPermissions) ->

Expand Down Expand Up @@ -68,23 +69,33 @@ internal class BaselineHandler(private val baselineFile: File) {
regularPermissions.forEach { element ->
val name = element.getAttribute("name")
val maxSdkVersion = element.getAttribute("maxSdkVersion").toIntOrNull()
variantPermissions += Permission(name, maxSdkVersion)
variantPermissions += Permission(
name,
maxSdkVersion
)
}

// Parse SDK 23 permissions for variant
val sdk23Permissions = variant.getElementsByTagName("uses-permission-sdk-23")
sdk23Permissions.forEach { element ->
val name = element.getAttribute("name")
val maxSdkVersion = element.getAttribute("maxSdkVersion").toIntOrNull()
variantPermissions += Sdk23Permission(name, maxSdkVersion)
variantPermissions += Sdk23Permission(
name,
maxSdkVersion
)
}

val features = variant.getElementsByTagName("uses-feature")
features.forEach { element ->
val name = element.getAttribute("name")
val required = element.getAttribute("required").toBooleanStrictOrNull()
val glEsVersion = element.getAttribute("glEsVersion").takeIf { it.isNotEmpty() }
variantPermissions += Feature(name, required, glEsVersion)
variantPermissions += Feature(
name,
required,
glEsVersion
)
}

permissions[variantName] = variantPermissions
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package io.github.simonschiller.permissioncheck.internal

import io.github.simonschiller.permissioncheck.internal.data.BasePermission
import io.github.simonschiller.permissioncheck.internal.data.Feature
import io.github.simonschiller.permissioncheck.internal.data.Permission
import io.github.simonschiller.permissioncheck.internal.data.Sdk23Permission
import io.github.simonschiller.permissioncheck.internal.util.createDocumentBuilder
import io.github.simonschiller.permissioncheck.internal.util.forEach
package com.telefonica.manifestcheck.internal

import com.telefonica.manifestcheck.internal.data.BasePermission
import com.telefonica.manifestcheck.internal.data.Feature
import com.telefonica.manifestcheck.internal.data.Permission
import com.telefonica.manifestcheck.internal.data.Sdk23Permission
import com.telefonica.manifestcheck.internal.util.createDocumentBuilder
import com.telefonica.manifestcheck.internal.util.forEach
import org.w3c.dom.Document
import java.io.File

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.github.simonschiller.permissioncheck.internal
package com.telefonica.manifestcheck.internal

import io.github.simonschiller.permissioncheck.internal.data.BasePermission
import io.github.simonschiller.permissioncheck.internal.data.Violation
import com.telefonica.manifestcheck.internal.data.BasePermission
import com.telefonica.manifestcheck.internal.data.Violation

internal class PermissionChecker {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.simonschiller.permissioncheck.internal.data
package com.telefonica.manifestcheck.internal.data

import org.w3c.dom.Document
import org.w3c.dom.Element
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.simonschiller.permissioncheck.internal.data
package com.telefonica.manifestcheck.internal.data

import org.w3c.dom.Document
import org.w3c.dom.Element
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package io.github.simonschiller.permissioncheck.internal.report
package com.telefonica.manifestcheck.internal.report

import io.github.simonschiller.permissioncheck.internal.data.Violation
import io.github.simonschiller.permissioncheck.internal.util.appendElement
import io.github.simonschiller.permissioncheck.internal.util.createDocumentBuilder
import io.github.simonschiller.permissioncheck.internal.util.writeToFile
import com.telefonica.manifestcheck.internal.data.Violation
import com.telefonica.manifestcheck.internal.util.appendElement
import com.telefonica.manifestcheck.internal.util.createDocumentBuilder
import com.telefonica.manifestcheck.internal.util.writeToFile
import org.w3c.dom.Element
import org.w3c.dom.Node
import java.io.File

internal class HtmlReporter(private val reportFile: File) : Reporter {
internal class HtmlReporter(private val reportFile: File) :
Reporter {

// Only HTML report files are allowed
init {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package io.github.simonschiller.permissioncheck.internal.report
package com.telefonica.manifestcheck.internal.report

import io.github.simonschiller.permissioncheck.internal.data.Violation
import com.telefonica.manifestcheck.internal.data.Violation
import org.gradle.api.logging.Logger

internal class LogReporter(private val logger: Logger) : Reporter {
internal class LogReporter(private val logger: Logger) :
Reporter {

override fun report(violations: Map<String, List<Violation>>) {
val faultyVariants = violations.filterValues { it.isNotEmpty() }
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.telefonica.manifestcheck.internal.report

import com.telefonica.manifestcheck.internal.data.Violation

internal interface Reporter {
fun report(violations: Map<String, List<Violation>>)
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package io.github.simonschiller.permissioncheck.internal.report
package com.telefonica.manifestcheck.internal.report

import io.github.simonschiller.permissioncheck.internal.data.Violation
import io.github.simonschiller.permissioncheck.internal.util.appendElement
import io.github.simonschiller.permissioncheck.internal.util.createDocumentBuilder
import io.github.simonschiller.permissioncheck.internal.util.writeToFile
import com.telefonica.manifestcheck.internal.data.Violation
import com.telefonica.manifestcheck.internal.util.appendElement
import com.telefonica.manifestcheck.internal.util.createDocumentBuilder
import com.telefonica.manifestcheck.internal.util.writeToFile
import java.io.File

internal class XmlReporter(private val reportFile: File) : Reporter {
internal class XmlReporter(private val reportFile: File) :
Reporter {

// Only XML report files are allowed
init {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.simonschiller.permissioncheck.internal.util
package com.telefonica.manifestcheck.internal.util

import org.w3c.dom.Document
import org.w3c.dom.Element
Expand Down

This file was deleted.

Loading