All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.holoeverywhere.plugin.extension.ResbuilderContainer.groovy Maven / Gradle / Ivy

package org.holoeverywhere.plugin.extension

import com.android.build.gradle.BaseExtension
import org.gradle.api.NamedDomainObjectContainer
import org.gradle.api.Project
import org.gradle.api.internal.project.ProjectInternal
import org.gradle.api.tasks.SourceSet
import org.gradle.internal.reflect.Instantiator
import org.gradle.util.Configurable
import org.gradle.util.ConfigureUtil
import org.holoeverywhere.resbuilder.dsl.ResbuilderSourceSet
import org.holoeverywhere.resbuilder.dsl.ResbuilderSourceSetFactory

class ResbuilderContainer implements Configurable {
    ResbuilderContainer(Project project, Instantiator instantiator) {
        String resourcesDir = null;
        try {
            BaseExtension androidExtension = project.extensions.getByName('android') as BaseExtension
            Iterator iterator = androidExtension.sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME).res.srcDirs.iterator()
            resourcesDir = iterator.hasNext() ? (project as ProjectInternal).fileResolver.resolveAsRelativePath(iterator.next()) : null
        } catch (Exception e) {
        }

        sourceSets = project.container(ResbuilderSourceSet, ResbuilderSourceSetFactory.fromProject(project, instantiator, resourcesDir))
        sourceSets.create(SourceSet.MAIN_SOURCE_SET_NAME)
    }

    final NamedDomainObjectContainer sourceSets
    def boolean enable = true
    def boolean formatTask = true

    def sourceSets(Closure closure) {
        sourceSets.configure closure
    }

    @Override
    ResbuilderContainer configure(Closure closure) {
        ConfigureUtil.configure(closure, this, false)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy