apply plugin: 'com.android.application'
//apply plugin: 'com.android.library'


android {
    namespace "com.pdlive.plugins"
    compileSdk rootProject.ext.android.compileSdkVersion
    packagingOptions {
        pickFirst "lib/armeabi/libyuvutils.so"
        pickFirst "lib/arm64-v8a/libyuvutils.so"
        pickFirst "lib/armeabi-v7a/libyuvutils.so"
        pickFirst "lib/armeabi/libyuvtools.so"
        pickFirst "lib/arm64-v8a/libyuvtools.so"
        pickFirst "lib/armeabi-v7a/libyuvtools.so"
        exclude "lib/arm64-v8a/libmmcv_api_handgesture.so"
        exclude "lib/arm64-v8a/libmmcv_api_express.so"
        exclude "lib/arm64-v8a/libMediaEncoder.so"
        exclude "lib/arm64-v8a/libarcore_sdk_c.so"
        exclude "lib/arm64-v8a/libmediadecoder.so"
        exclude "lib/arm64-v8a/libMediaMuxer.so"
        exclude "lib/arm64-v8a/libarcore_sdk_jni.so"
        exclude "lib/arm64-v8a/libMediaUtils.so"
        exclude "lib/arm64-v8a/libcosmosffmpeg.so"
        //旧美颜so
        exclude 'lib/arm64-v8a/libxeengine.so'
        exclude 'lib/arm64-v8a/libmmcv_base.so'
        exclude 'lib/arm64-v8a/libmmcrypto.so'
        exclude 'lib/arm64-v8a/libMNN.so'
        exclude 'lib/arm64-v8a/libc++_shared.so'
        exclude 'lib/arm64-v8a/libmmcv_api_base.so'
        exclude 'lib/arm64-v8a/libmmcv_api_beauty.so'
        exclude 'lib/arm64-v8a/libmmcv_api_bodylandmark.so'
        exclude 'lib/arm64-v8a/libmmcv_api_express.so'
        exclude 'lib/arm64-v8a/libmmcv_api_faceattributes.so'
        exclude 'lib/arm64-v8a/libmmcv_api_facefeatures.so'
        exclude 'lib/arm64-v8a/libmmcv_api_faceprocessor.so'
        exclude 'lib/arm64-v8a/libmmcv_api_facerecognition.so'
        exclude 'lib/arm64-v8a/libmmcv_api_handgesture.so'
        exclude 'lib/arm64-v8a/libmmcv_api_imagequality.so'
        exclude 'lib/arm64-v8a/libmmcv_api_objectdetect.so'
        exclude 'lib/arm64-v8a/libmmcv_api_segmentation.so'
        exclude 'lib/arm64-v8a/libmmcv_api_videoprocessor.so'
        exclude 'lib/arm64-v8a/libmmlic.so'
        exclude 'lib/arm64-v8a/libMNN_CL.so'
        exclude 'lib/arm64-v8a/libMNN_Express.so'
        exclude 'lib/armeabi-v7a/libxeengine.so'
        exclude 'lib/armeabi-v7a/libmmcv_base.so'
        exclude 'lib/armeabi-v7a/libmmcrypto.so'
        exclude 'lib/armeabi-v7a/libMNN.so'
        exclude 'lib/armeabi-v7a/libc++_shared.so'
        exclude 'lib/armeabi-v7a/libmmcv_api_base.so'
        exclude 'lib/armeabi-v7a/libmmcv_api_beauty.so'
        exclude 'lib/armeabi-v7a/libmmcv_api_bodylandmark.so'
        exclude 'lib/armeabi-v7a/libmmcv_api_express.so'
        exclude 'lib/armeabi-v7a/libmmcv_api_faceattributes.so'
        exclude 'lib/armeabi-v7a/libmmcv_api_facefeatures.so'
        exclude 'lib/armeabi-v7a/libmmcv_api_faceprocessor.so'
        exclude 'lib/armeabi-v7a/libmmcv_api_facerecognition.so'
        exclude 'lib/armeabi-v7a/libmmcv_api_handgesture.so'
        exclude 'lib/armeabi-v7a/libmmcv_api_imagequality.so'
        exclude 'lib/armeabi-v7a/libmmcv_api_objectdetect.so'
        exclude 'lib/armeabi-v7a/libmmcv_api_segmentation.so'
        exclude 'lib/armeabi-v7a/libmmcv_api_videoprocessor.so'
        exclude 'lib/armeabi-v7a/libmmlic.so'
        exclude 'lib/armeabi-v7a/libMNN_CL.so'
        exclude 'lib/armeabi-v7a/libMNN_Express.so'

    }
    applicationVariants.all { variant ->
        String variantName = variant.name.capitalize()
        def processManifestTask = project.tasks.getByName("process${variantName}Manifest")
        processManifestTask.doLast { pm ->
            String manifestPath = "build/intermediates/bundle_manifest/release/bundle-manifest/AndroidManifest.xml"
            def isGooglePlay = rootProject.ext.manifestPlaceholders.isGooglePlay
            if (file(manifestPath).exists() && isGooglePlay) {
                def manifestContent = file(manifestPath).getText()

                manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />', '')
                file(manifestPath).write(manifestContent)
            } else {
                print "not Exists = " + manifestPath
            }
        }
        variant.mergeAssetsProvider.configure {
            doLast {
                delete(fileTree(dir: outputDir, includes: [
                        'model/ai_bgseg_green.bundle',
                        //'model/ai_face_processor.bundle',
                        //'model/ai_face_processor_lite.bundle',
                        'model/ai_hairseg.bundle',
                        'model/ai_hand_processor.bundle',
                        'model/ai_human_processor.bundle',
                        'model/ai_human_processor_gpu.bundle',
                        'model/ai_human_processor_mb_fast.bundle',
                        'graphics/body_slim.bundle',
                        'graphics/controller_cpp.bundle',
                        //'graphics/face_beautification.bundle',
                        'graphics/face_makeup.bundle',
                        'graphics/fuzzytoonfilter.bundle',
                        'graphics/fxaa.bundle',
                        'graphics/tongue.bundle',
                        //旧美颜
                        'model-all.zip',
                        'filterData.zip',
                        'KSYResource/*',
                        'Resources/*',
                        'Asset/*',
                        'image_effect_shaders/*',
                        'internal/*',
                ]))
            }
        }
    }
    defaultConfig {
        applicationId "com.pdlive.plugins"
        minSdkVersion rootProject.ext.android.minSdkVersion
        targetSdkVersion rootProject.ext.android.targetSdkVersion
        versionCode rootProject.ext.android.versionCode
        versionName rootProject.ext.android.versionName
        manifestPlaceholders = rootProject.ext.manifestPlaceholders
        ndk {
            abiFilters "armeabi-v7a", "arm64-v8a","x86","x86_64"
        }
    }
    aaptOptions {
        cruncherEnabled = false
        useNewCruncher = false
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

}
repositories {
    flatDir {
        dirs 'libs', '../libs'
    }
}
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.faceunity:core:8.3.1'
    implementation 'com.faceunity:model:8.3.1'
    //implementation 'com.faceunity:nama:8.3.1' //底层库-标准版


}