apply plugin: 'com.android.application' android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } defaultConfig { applicationId "org.fox.ttrss" buildConfigField "long", "TIMESTAMP", System.currentTimeMillis() + "L" minSdkVersion 24 //noinspection ExpiredTargetSdkVersion targetSdkVersion 31 compileSdk 35 versionCode getGitVersionCode() versionName getVersion() vectorDrawables.useSupportLibrary = true manifestPlaceholders = [ appIcon: "@mipmap/ic_launcher" ] } signingConfigs { signed { if (project.hasProperty("SIGNING_STORE_FILE")) { storeFile file(SIGNING_STORE_FILE) storePassword SIGNING_STORE_PASSWORD keyAlias SIGNING_KEY_ALIAS keyPassword SIGNING_KEY_PASSWORD } } } lintOptions { abortOnError false checkReleaseBuilds false disable 'MissingTranslation' } buildTypes { debug { minifyEnabled false versionNameSuffix "-debug" applicationIdSuffix ".debug" debuggable true resValue "string", "app_name", "Tiny Tiny RSS (debug)" manifestPlaceholders = [ appIcon: "@mipmap/ic_launcher_variant" ] } release { minifyEnabled false versionNameSuffix "-release-unsigned" proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } signed { minifyEnabled false versionNameSuffix "-signed" proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' signingConfig signingConfigs.signed } branch { minifyEnabled false versionNameSuffix "-signed-branch" proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' signingConfig signingConfigs.signed applicationIdSuffix ".branch" resValue "string", "app_name", "Tiny Tiny RSS (branch)" manifestPlaceholders = [ appIcon: "@mipmap/ic_launcher_variant" ] } } namespace 'org.fox.ttrss' buildFeatures { buildConfig true } } def getGitVersionCode() { return new Date(getGitTimestamp()).format('yyyyMMdd').toInteger() } def getGitTimestampFormatted() { return new Date(getGitTimestamp()).format('YY.MM') } def getGitTimestamp() { // gitlab CI iso-8601 timestamp if (System.getenv("CI_COMMIT_TIMESTAMP")) { return Date.parse("yyyy-MM-dd'T'HH:mm:ssXXX", System.getenv("CI_COMMIT_TIMESTAMP")).getTime(); } // try to get version from git repo in current dir try { def stdout = new ByteArrayOutputStream() exec { commandLine 'git', '--no-pager', 'log', '--pretty=%ct', '-n1', 'HEAD' standardOutput = stdout } return stdout.toString().trim().toLong() * 1000; } catch (ignored) { return 0; } } def getGitCommitHash() { // gitlab CI if (System.getenv("CI_COMMIT_SHORT_SHA")) return System.getenv("CI_COMMIT_SHORT_SHA"); // try to get version from git repo in current dir try { def stdout = new ByteArrayOutputStream() exec { commandLine 'git', '--no-pager', 'log', '--pretty=%h', '-n1', 'HEAD' standardOutput = stdout } return stdout.toString().trim() } catch (ignored) { return 'UNKNOWN'; } } def getVersion() { return getGitTimestampFormatted() + '-' + getGitCommitHash(); } dependencies { implementation 'com.squareup.okhttp3:okhttp:3.12.5' implementation 'org.jsoup:jsoup:1.11.3' implementation 'com.bogdwellers:pinchtozoom:0.1' implementation 'com.github.bumptech.glide:glide:4.14.2' implementation 'com.github.bumptech.glide:okhttp3-integration:4.14.2' annotationProcessor 'com.github.bumptech.glide:compiler:4.14.2' implementation 'androidx.recyclerview:recyclerview:1.4.0' implementation 'androidx.activity:activity:1.10.1' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.appcompat:appcompat:1.7.0' implementation 'androidx.appcompat:appcompat-resources:1.7.0' implementation 'androidx.browser:browser:1.8.0' implementation 'androidx.coordinatorlayout:coordinatorlayout:1.3.0' implementation 'com.github.natario1:NestedScrollCoordinatorLayout:5a33a7dbd8' implementation 'com.google.android.material:material:1.12.0' implementation 'com.google.code.gson:gson:2.10.1' implementation 'me.relex:circleindicator:2.1.6' implementation 'com.github.amulyakhare:TextDrawable:558677ea31' implementation 'com.telefonica:nestedscrollwebview:0.1.6' implementation 'androidx.preference:preference:1.2.1' } java { toolchain { languageVersion = JavaLanguageVersion.of(17) } }