diff --git a/build.gradle b/build.gradle index 25f5f9e0..1167f066 100644 --- a/build.gradle +++ b/build.gradle @@ -1,171 +1,171 @@ import com.android.build.gradle.AppExtension import com.android.build.gradle.api.ApkVariantOutput import com.android.build.gradle.api.ApplicationVariant apply plugin: 'com.android.application' buildscript { repositories { jcenter() google() } dependencies { - classpath 'com.android.tools.build:gradle:3.6.1' + classpath 'com.android.tools.build:gradle:3.6.3' } } android { compileSdkVersion 29 defaultConfig { minSdkVersion 14 targetSdkVersion 29 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } dexOptions { javaMaxHeapSize "2g" } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['resources'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } test { java.srcDirs = ['tests'] } } packagingOptions { merge "META-INF/DEPENDENCIES" merge "META-INF/LICENSE" merge "META-INF/NOTICE" } lintOptions { abortOnError false checkReleaseBuilds false } signingConfigs { debug { storeFile file("debug.keystore") storePassword 'android' keyAlias 'androiddebugkey' keyPassword 'android' } } buildTypes { debug { minifyEnabled true signingConfig signingConfigs.debug } // keep minifyEnabled false above for faster builds; set to 'true' // when testing to make sure ProGuard/R8 is not deleting important stuff release { minifyEnabled true } } } /** * This is a special on-demand Gradle object. * * Its value will not be determined until someone calls one of the gitHashProvider.getXXX() methods. * * If it does not encounter an explicit 'return' statement, getHashProvider.isPresent() will return false. */ Provider gitHashProvider = project.provider { Process gitCommand = null try { // This invokes 'git' immediately, but does not wait for it to finish gitCommand = 'git rev-parse --short HEAD'.execute([], project.rootDir) } catch (IOException ignored) { } if (gitCommand == null) { logger.log(LogLevel.WARN, "Could not make use of the 'git' command-line tool. Output filenames will not be customized.") } else if (gitCommand.waitFor() == 0) { // This call to '::getText' (using the 'text' Groovy accessor syntax) collects the // output stream return '-' + gitCommand.text.trim() } else { logger.log( LogLevel.WARN, "Could not determine which commit is currently checked out -" + " did you download this code without the .git directory?" ) } } // We know we can safely cast the 'android' type to the 'AppExtension' class because // we used the 'com.android.application' plugin at the top of the file. // // Note the use of the '::all' extension method; unlike '::each', it can detect every // object added to the collection, no matter in which build phase that happens. (android as AppExtension).applicationVariants.all { ApplicationVariant v -> logger.log(LogLevel.INFO, "Found a variant called '${v.name}'.") if (v.buildType.debuggable) { // We're looking at variants made from android.buildTypes.debug! This one // might have multiple outputs, but only one output will be an APK file. v.outputs.matching { it instanceof ApkVariantOutput }.all { // Default output filename is "${project.name}-${v.name}.apk". We want // the Git commit short-hash to be added onto that default filename. (it as ApkVariantOutput).outputFileName = "${project.name}-${v.name}${gitHashProvider.getOrElse("")}.apk" } } } dependencies { repositories { jcenter() google() /* Needed for org.apache.sshd debugging maven { url "https://jitpack.io" } */ } implementation 'androidx.media:media:1.1.0' implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'androidx.preference:preference:1.1.0' + implementation 'androidx.preference:preference:1.1.1' implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0' implementation 'androidx.documentfile:documentfile:1.0.1' implementation 'androidx.lifecycle:lifecycle-runtime:2.2.0' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" implementation 'androidx.lifecycle:lifecycle-common-java8:2.2.0' implementation 'androidx.gridlayout:gridlayout:1.0.0' implementation 'com.google.android.material:material:1.1.0' implementation 'com.jakewharton:disklrucache:2.0.2' //For caching album art bitmaps implementation 'com.jaredrummler:android-device-names:1.1.9' //To get a human-friendly device name implementation 'org.apache.sshd:sshd-core:0.14.0' implementation 'org.apache.mina:mina-core:2.0.19' //For some reason, makes sshd-core:0.14.0 work without NIO, which isn't available until Android 8 (api 26) //implementation('com.github.bright:slf4android:0.1.6') { transitive = true } // For org.apache.sshd debugging implementation 'com.madgag.spongycastle:bcpkix-jdk15on:1.58.0.0' //For SSL certificate generation //noinspection AnnotationProcessorOnCompilePath - c.f. https://issuetracker.google.com/issues/140881211 implementation 'com.jakewharton:butterknife:10.2.1' annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0' implementation 'org.atteo.classindex:classindex:3.6' annotationProcessor 'org.atteo.classindex:classindex:3.6' // Testing testImplementation 'junit:junit:4.12' testImplementation 'org.powermock:powermock-core:2.0.0' testImplementation 'org.powermock:powermock-module-junit4:2.0.0' testImplementation 'org.powermock:powermock-api-mockito2:2.0.0' testImplementation 'org.mockito:mockito-core:2.23.0' testImplementation 'org.skyscreamer:jsonassert:1.3.0' } repositories { google() }