Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.android.build.gradle.api.BaseVariant
- import com.android.build.gradle.internal.dsl.ProductFlavor
- import static Libraries.*
- import static NetworkApiConfig.*
- buildscript {
- ext.KOTLIN_VERSION = '1.2.30'
- repositories {
- jcenter()
- mavenCentral()
- maven { url "https://jitpack.io" }
- maven { url 'https://maven.fabric.io/public' }
- google()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:3.0.1'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$KOTLIN_VERSION"
- //noinspection GradleDynamicVersion
- classpath 'io.fabric.tools:gradle:1.+'
- classpath 'com.akaita.android:easylauncher:1.1.0'
- }
- }
- repositories {
- mavenCentral()
- maven { url "https://jitpack.io" }
- maven { url 'https://maven.fabric.io/public' }
- google()
- }
- apply plugin: 'com.android.application'
- apply plugin: 'kotlin-android'
- apply plugin: 'kotlin-kapt'
- apply plugin: 'kotlin-android-extensions'
- apply plugin: 'io.fabric'
- apply plugin: 'com.akaita.android.easylauncher'
- class NetworkApiConfig {
- static
- final KIT_TEST_PARTNER_ID = "cf1ef832c94a129ad0e89e7fe9bf139eb8c158f87a5a3d88c4b0ea5fcb524f21"
- static
- final KIT_PROD_PARTNER_ID = "3a57bd0f86fb68f94f446aed1af60275b7723eed6475516129e99e7535fc1346"
- static
- final SI_TEST_PARTNER_ID = "a3f1f7b40cd04bc21573a2c81250d10dc69625ecc6263844f34f8c1865d9b643"
- static
- final SI_PROD_PARTNER_ID = "e2f622bff930e55729eeb7531a1391d2ab9b69ac64ed8e303e1751d65223b7c7"
- static
- final ABSOLUT_RETAIL_PROD_PARTNER_ID = "d65207eee5937bb02d36c797459a75e111f06a0b4e13320fdc895036f980387e"
- static
- final ABSOLUT_RETAIL_TEST_PARTNER_ID = "6a8f2be1d77ddb38c65c41d648a554b3819a516d5535d734524ddef744b19b51"
- static
- final ABSOLUT_VIP_PROD_PARTNER_ID = "e9ad5db2f3e740510e681598cc2fd13a756ed49641de1f5a45b77127b18d318e"
- static
- final ABSOLUT_VIP_TEST_PARTNER_ID = "31ec5c1f4a79fbbfc6b9daa73c92eb4fa550105246f05df34b85f20bb3603ec3"
- static final SI_BASE_RELEASE_URL = "https://prod.simple-invest.mobi/api/v1/"
- static final SI_BASE_TEST_URL = "https://test.simple-invest.mobi/api/v1/"
- private String apiUrl
- private String partnerId
- private boolean sslTrustAllCertificates
- static NetworkApiConfig create(Map params = [sslTrustAllCertificates: true]) {
- new NetworkApiConfig(params)
- }
- void apply(BaseVariant variant) {
- variant.buildConfigField "String", "API_BASE_URL", "\"$apiUrl\""
- variant.buildConfigField "String", "PARTNER_ID", "\"$partnerId\""
- variant.buildConfigField "boolean", "SSL_TRUST_ALL_CERTIFICATES", sslTrustAllCertificates.toString()
- }
- }
- class VersionConfig {
- private static final String VERSION_CODE_TEMPLATE = '%d%02d%02d%03d'
- private int sdkVersion, majorVersion, minorVersion, buildNumber
- static VersionConfig create(Map params) {
- new VersionConfig(params)
- }
- void apply(ProductFlavor flavor) {
- flavor.versionName = "$majorVersion.$minorVersion.$buildNumber"
- flavor.versionCode = String.format(VERSION_CODE_TEMPLATE,
- sdkVersion,
- majorVersion,
- minorVersion,
- buildNumber).toInteger()
- }
- }
- android {
- int sdkVersion = 27
- compileSdkVersion sdkVersion
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
- defaultConfig {
- minSdkVersion 16
- targetSdkVersion sdkVersion
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- }
- flavorDimensions "default"
- buildTypes {
- release {
- debuggable true
- shrinkResources true
- multiDexEnabled true
- useProguard true
- minifyEnabled true
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- beta {
- initWith debug
- multiDexEnabled true
- applicationIdSuffix '.beta'
- versionNameSuffix 'b'
- }
- }
- variantFilter { variant ->
- def buildName = variant.buildType.name
- if (buildName == 'debug') {
- setIgnore(true)
- }
- }
- applicationVariants.all { variant ->
- variant.outputs.all {
- outputFileName = "${variant.flavorName}-${variant.versionName}.apk"
- }
- String url = variant.buildType.name == 'release' ? SI_BASE_RELEASE_URL : SI_BASE_TEST_URL
- switch (variant.name) {
- case "KitFinanceRelease":
- NetworkApiConfig.create(apiUrl: url, partnerId: KIT_PROD_PARTNER_ID).apply(variant)
- break
- case "KitFinanceBeta":
- NetworkApiConfig.create(apiUrl: url, partnerId: KIT_TEST_PARTNER_ID).apply(variant)
- break
- case "SimpleInvestRelease":
- NetworkApiConfig.create(apiUrl: url, partnerId: SI_PROD_PARTNER_ID).apply(variant)
- break
- case "SimpleInvestBeta":
- NetworkApiConfig.create(apiUrl: url, partnerId: SI_TEST_PARTNER_ID).apply(variant)
- break
- case "AbsolutBankRelease":
- NetworkApiConfig.create(apiUrl: url, partnerId: ABSOLUT_VIP_PROD_PARTNER_ID).apply(variant)
- break
- case "AbsolutBankBeta":
- NetworkApiConfig.create(apiUrl: url, partnerId: ABSOLUT_VIP_TEST_PARTNER_ID).apply(variant)
- break
- }
- }
- productFlavors {
- KitFinance {
- dimension "default"
- resValue "string", "app_name", "КИТ Финанс"
- VersionConfig.create(sdkVersion: sdkVersion,
- majorVersion: 1,
- minorVersion: 0,
- buildNumber: 2)
- .apply(it)
- applicationId "ru.brokerkf.android"
- signingConfig signingConfigs.KitFinance
- }
- SimpleInvest {
- dimension "default"
- resValue "string", "app_name", "Simple Invest"
- VersionConfig.create(sdkVersion: sdkVersion,
- majorVersion: 2,
- minorVersion: 0,
- buildNumber: 0)
- .apply(it)
- applicationId "com.simpleinvest"
- signingConfig signingConfigs.SimpleInvest
- }
- AbsolutBank {
- dimension "default"
- resValue "string", "app_name", "AbsolutBank Invest"
- VersionConfig.create(sdkVersion: sdkVersion,
- majorVersion: 1,
- minorVersion: 0,
- buildNumber: 0)
- .apply(it)
- applicationId "ru.absolutbank.android"
- signingConfig signingConfigs.KitFinance
- }
- }
- dataBinding {
- enabled = true
- }
- packagingOptions {
- exclude 'META-INF/LICENSE'
- exclude 'META-INF/NOTICE'
- }
- lintOptions {
- disable('InvalidPackage', 'MissingTranslation', 'RtlSymmetry', 'HardcodedText')
- }
- dexOptions {
- javaMaxHeapSize "4g"
- }
- }
- easylauncher {
- productFlavors {
- KitFinance {
- filters = overlayFilter(new File("icons/beta_black.png"))
- }
- SimpleInvest {
- filters = overlayFilter(new File("icons/beta_white.png"))
- }
- AbsolutBank {
- filters = overlayFilter(new File("icons/beta_black.png"))
- }
- }
- buildTypes {
- release {
- enable false
- }
- }
- }
- kotlin {
- experimental {
- coroutines "enable"
- }
- }
- enum Libraries {
- SUPPORT_LIBRARY('27.1.0'),
- RETROFIT2('2.3.0'),
- REQUERY('1.5.0'),
- OKHTTP3('3.8.0'),
- DAGGER2('2.11'),
- MOCKITO('2.8.47'),
- LEAK_CANARY('1.5.4'),
- GLIDE('4.4.0')
- final String version
- Libraries(String version) {
- this.version = version
- }
- String toString() {
- return version
- }
- }
- dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
- //android
- implementation "com.android.support:appcompat-v7:$SUPPORT_LIBRARY"
- implementation "com.android.support:support-v13:$SUPPORT_LIBRARY"
- implementation "com.android.support:design:$SUPPORT_LIBRARY"
- implementation "com.android.support:cardview-v7:$SUPPORT_LIBRARY"
- implementation 'com.android.support.constraint:constraint-layout:1.0.2'
- implementation "com.android.support:customtabs:$SUPPORT_LIBRARY"
- kapt "com.android.databinding:compiler:3.0.1"
- //tests
- testImplementation 'junit:junit:4.12'
- testImplementation "org.mockito:mockito-inline:$MOCKITO"
- testImplementation "com.squareup.okhttp3:mockwebserver:$OKHTTP3"
- testImplementation 'com.nhaarman:mockito-kotlin-kt1.1:1.5.0', {
- exclude group: 'org.jetbrains.kotlin'
- }
- androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2', {
- exclude group: 'com.android.support', module: 'support-annotations'
- }
- //multidex
- implementation 'com.android.support:multidex:1.0.3'
- //di
- implementation "com.google.dagger:dagger:$DAGGER2"
- kapt "com.google.dagger:dagger-compiler:$DAGGER2"
- //rx
- implementation "io.reactivex.rxjava2:rxjava:2.1.10"
- implementation "io.reactivex.rxjava2:rxandroid:2.0.2"
- //network
- implementation "com.squareup.retrofit2:retrofit:$RETROFIT2"
- implementation "com.squareup.retrofit2:converter-gson:$RETROFIT2"
- implementation "com.squareup.retrofit2:adapter-rxjava2:$RETROFIT2"
- implementation "com.squareup.okhttp3:logging-interceptor:$OKHTTP3"
- //orm
- implementation "io.requery:requery:$REQUERY"
- implementation "io.requery:requery-android:$REQUERY"
- kapt "io.requery:requery-processor:$REQUERY"
- //flow
- implementation 'com.squareup.flow:flow:1.0.0-alpha3'
- //crypt
- implementation 'com.madgag.spongycastle:pkix:1.54.0.0'
- //kotlin
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$KOTLIN_VERSION"
- implementation 'io.reactivex.rxjava2:rxkotlin:2.2.0'
- implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:0.22.5"
- implementation "org.jetbrains.kotlinx:kotlinx-coroutines-rx2:0.22.5"
- //custom views
- implementation 'me.relex:circleindicator:1.2.2@aar'
- implementation 'net.cachapa.expandablelayout:expandablelayout:2.9.2'
- implementation 'com.github.PhilJay:MPAndroidChart:v3.0.2'
- implementation 'com.redmadrobot:inputmask:2.3.0'
- implementation 'com.github.chrisbanes:PhotoView:2.1.3'
- implementation 'com.aurelhubert:ahbottomnavigation:2.2.0'
- implementation "ru.tinkoff.scrollingpagerindicator:scrollingpagerindicator:1.0.3"
- implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
- //glide
- implementation "com.github.bumptech.glide:glide:$GLIDE"
- implementation "com.github.bumptech.glide:okhttp3-integration:$GLIDE"
- kapt "com.github.bumptech.glide:compiler:$GLIDE"
- //util
- implementation "org.jetbrains.anko:anko:0.10.1"
- implementation('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') { transitive = true }
- implementation('io.branch.sdk.android:library:2.11.0') { exclude module: 'answers-shim' }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement