build.gradle 5.54 KB
apply plugin: 'com.android.library'

ext {
    PUBLISH_GROUP_ID = 'ly.warp'
    PUBLISH_VERSION = '4.5.5.4r38'
    PUBLISH_ARTIFACT_ID = 'warply-android-sdk'
}

apply from: "${rootProject.projectDir}/scripts/publish-module.gradle"

android {
    compileSdkVersion 34
    buildToolsVersion "34.0.0"

    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        minSdkVersion 23
        targetSdkVersion 34
        consumerProguardFiles 'proguard-rules.pro'
        vectorDrawables.useSupportLibrary = true
    }
    splits {
        abi {
            reset()
            enable false
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }
    lintOptions {
        abortOnError false
    }

    sourceSets {
        main {
            jniLibs.srcDirs = ['src/main/jniLibs']
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    //------------------------------ Support -----------------------------//
    implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
    implementation 'androidx.appcompat:appcompat:1.4.1'
    implementation 'androidx.recyclerview:recyclerview:1.2.1'
    implementation 'androidx.cardview:cardview:1.0.0'
    api "androidx.security:security-crypto:1.1.0-alpha03"
    // For minSDK 23 use 1.0.0, for minSDK 21 use 1.1.0 that is currently in alpha
    api 'org.altbeacon:android-beacon-library:2.19.3'
    api 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
    implementation 'de.hdodenhof:circleimageview:3.1.0'
    api group: 'io.reactivex.rxjava2', name: 'rxjava', version: '2.2.21'
    implementation 'com.google.android.material:material:1.5.0'
    api group: 'com.google.zxing', name: 'core', version: '3.4.1'
    api group: 'com.google.zxing', name: 'javase', version: '3.4.1'
    api 'com.github.siyamed:android-shape-imageview:0.9.3'
    implementation 'org.greenrobot:eventbus:3.3.1'
    api 'org.apmem.tools:layouts:1.10'
    api 'com.google.guava:guava:30.1-android'

    //------------------------------ Firebase -----------------------------//
    api platform('com.google.firebase:firebase-bom:29.0.3')
    implementation('com.google.firebase:firebase-messaging') {
        exclude group: 'com.google.android.gms', module: 'play-services-location'
    }

    //------------------------------ GMS -----------------------------//
    api 'com.google.android.gms:play-services-base:18.1.0'
    implementation 'com.google.android.gms:play-services-location:19.0.1'
    implementation 'com.google.android.gms:play-services-maps:18.0.2'
    api 'com.google.maps.android:android-maps-utils:0.5'

    //------------------------------ Work Manager -----------------------------//
    api 'androidx.work:work-runtime:2.7.1'

    //------------------------------ Glide -----------------------------//
    implementation 'com.github.bumptech.glide:glide:4.12.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'

    //------------------------------ Huawei -----------------------------//
    implementation 'com.huawei.agconnect:agconnect-core:1.7.2.300'
    implementation 'com.huawei.hms:base:6.6.0.300'
    implementation 'com.huawei.hms:push:6.7.0.300'
    implementation 'com.huawei.hms:ads-identifier:3.4.56.300'
    implementation 'com.huawei.hms:maps:6.9.0.300'
    implementation 'com.huawei.hms:maps-basic:6.9.0.300'

    //------------------------------ SQLCipher -----------------------------//
    api "net.zetetic:android-database-sqlcipher:4.5.2"
    api "androidx.sqlite:sqlite:2.2.0"
    api 'com.getkeepsafe.relinker:relinker:1.4.4'

    //------------------------------ Calligraphy -----------------------------//
//    api 'io.github.inflationx:calligraphy3:3.1.1'
//    api 'io.github.inflationx:viewpump:2.0.3'

    //------------------------------ Retrofit -----------------------------//
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

    //------------------------------ Lifecycle -----------------------------//
    implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"

    //------------------------------ Retrofit Logs -----------------------------//
//    implementation 'com.squareup.okhttp3:logging-interceptor:4.12.0'
}

// In every export please update the version number
task deleteJarLibrary(type: Delete) {
    delete 'jar/warply_android_sdk_v4.5.0.jar'
}

//from('build/intermediates/compile_library_classes/release/')

//Old version
// Gradle Tasks -> warply_android_sdk -> Tasks -> other -> createJarLibrary
//task createJarLibrary(type: Copy) {
//    from fileTree('build/intermediates/bundles/release/')
//    into('jar/')
//    include('classes.jar')
//    rename('classes.jar', 'warply_android_sdk_v4.4.2.jar')
//}

// New version
// Gradle -> warplyDemo -> libraries -> warply_android_sdk -> Run Configurations -> assembleRelease
// When finished it copies the .jar into
// warply_android_sdk -> build -> intermediates -> full_jar -> release/debug -> full.jar

// 24 - Jan - 2022
// Gradle -> warplyDemo -> libraries -> warply_android_sdk -> Tasks -> build -> build
// When finished it copies the .aar into
// warply_android_sdk -> build -> outputs -> aar -> warply_android_sdk-release.aar

task createJarLibrary(type: Jar, dependsOn: 'assembleRelease') {
    from fileTree('build/intermediates/bundles/release/')
}

createJarLibrary.dependsOn(deleteJarLibrary, build)