Try Groovy
This commit is contained in:
parent
72c6ce30b6
commit
688f6f6f89
12 changed files with 479 additions and 677 deletions
208
husky/app/build.gradle
Normal file
208
husky/app/build.gradle
Normal file
|
@ -0,0 +1,208 @@
|
||||||
|
plugins {
|
||||||
|
id "com.android.application"
|
||||||
|
|
||||||
|
id "kotlin-android"
|
||||||
|
id "kotlin-kapt"
|
||||||
|
|
||||||
|
id "kotlin-android-extensions"
|
||||||
|
//id "kotlin-parcelize"
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdkVersion buildVersions.compileSdk
|
||||||
|
buildToolsVersion buildVersions.buildTools
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
applicationId buildVersions.applicationId
|
||||||
|
|
||||||
|
minSdkVersion buildVersions.minSdk
|
||||||
|
targetSdkVersion buildVersions.targetSdk
|
||||||
|
|
||||||
|
versionCode buildVersions.versionCode
|
||||||
|
versionName buildVersions.versionName
|
||||||
|
|
||||||
|
testInstrumentationRunner deps.testinstrunner
|
||||||
|
|
||||||
|
buildConfigField("String", "APPLICATION_NAME", "\"$APP_NAME\"")
|
||||||
|
buildConfigField("String", "CUSTOM_LOGO_URL", "\"$CUSTOM_LOGO_URL\"")
|
||||||
|
buildConfigField("String", "CUSTOM_INSTANCE", "\"$CUSTOM_INSTANCE\"")
|
||||||
|
buildConfigField("String", "SUPPORT_ACCOUNT_URL", "\"$SUPPORT_ACCOUNT_URL\"")
|
||||||
|
}
|
||||||
|
|
||||||
|
kapt {
|
||||||
|
arguments {
|
||||||
|
arg("room.schemaLocation", "$projectDir/schemas")
|
||||||
|
arg("room.incremental", "true")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
buildTypes {
|
||||||
|
debug {
|
||||||
|
debuggable true
|
||||||
|
|
||||||
|
minifyEnabled false
|
||||||
|
shrinkResources false
|
||||||
|
zipAlignEnabled false
|
||||||
|
|
||||||
|
// TODO: signing debug key
|
||||||
|
}
|
||||||
|
|
||||||
|
release {
|
||||||
|
debuggable false
|
||||||
|
|
||||||
|
minifyEnabled true
|
||||||
|
shrinkResources true
|
||||||
|
zipAlignEnabled true
|
||||||
|
|
||||||
|
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
flavorDimensions "husky", "release"
|
||||||
|
productFlavors {
|
||||||
|
husky {
|
||||||
|
dimension "husky"
|
||||||
|
}
|
||||||
|
|
||||||
|
beta {
|
||||||
|
dimension "release"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility = buildVersions.javaCompat
|
||||||
|
targetCompatibility = buildVersions.javaCompat
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlinOptions {
|
||||||
|
jvmTarget = buildVersions.javaCompat.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
androidExtensions {
|
||||||
|
experimental = true
|
||||||
|
}
|
||||||
|
buildFeatures {
|
||||||
|
viewBinding true
|
||||||
|
}
|
||||||
|
|
||||||
|
testOptions {
|
||||||
|
unitTests {
|
||||||
|
returnDefaultValues = true
|
||||||
|
includeAndroidResources = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
|
||||||
|
}
|
||||||
|
|
||||||
|
packagingOptions {
|
||||||
|
exclude "META-INF/DEPENDENCIES"
|
||||||
|
exclude "META-INF/LICENSE"
|
||||||
|
exclude "META-INF/LICENSE.txt"
|
||||||
|
exclude "META-INF/license.txt"
|
||||||
|
exclude "META-INF/NOTICE"
|
||||||
|
exclude "META-INF/NOTICE.txt"
|
||||||
|
exclude "META-INF/notice.txt"
|
||||||
|
exclude "META-INF/ASL2.0"
|
||||||
|
exclude "META-INF/*.kotlin_module"
|
||||||
|
exclude "LICENSE_OFL"
|
||||||
|
exclude "LICENSE_UNICODE"
|
||||||
|
}
|
||||||
|
|
||||||
|
bundle {
|
||||||
|
language {
|
||||||
|
// bundle all languages in every apk so the dynamic language switching works
|
||||||
|
enableSplit = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||||
|
|
||||||
|
implementation deps.androidx.appCompat
|
||||||
|
implementation deps.androidx.browser
|
||||||
|
implementation deps.androidx.cardView
|
||||||
|
implementation deps.androidx.constraintLayout
|
||||||
|
implementation deps.androidx.coreKtx
|
||||||
|
implementation deps.androidx.emoji
|
||||||
|
implementation deps.androidx.emojiAppCompat
|
||||||
|
implementation deps.androidx.emojiBundled
|
||||||
|
implementation deps.androidx.exifInterface
|
||||||
|
implementation deps.androidx.fragmentKtx
|
||||||
|
implementation deps.androidx.pagingRuntimeKtx
|
||||||
|
implementation deps.androidx.preferenceKtx
|
||||||
|
implementation deps.androidx.recyclerView
|
||||||
|
kapt deps.androidx.roomCompiler
|
||||||
|
implementation deps.androidx.roomRuntime
|
||||||
|
implementation deps.androidx.roomRxJava
|
||||||
|
implementation deps.androidx.shareTarget
|
||||||
|
implementation deps.androidx.swipeRefreshLayout
|
||||||
|
implementation deps.androidx.viewpager2
|
||||||
|
implementation deps.androidx.workRuntime
|
||||||
|
implementation deps.androidx.lifecycle.commonJava
|
||||||
|
implementation deps.androidx.lifecycle.liveDataKtx
|
||||||
|
implementation deps.androidx.lifecycle.reactiveStreamsKtx
|
||||||
|
implementation deps.androidx.lifecycle.viewmodelKtx
|
||||||
|
|
||||||
|
implementation deps.dagger.dagger
|
||||||
|
implementation deps.dagger.daggerAndroid
|
||||||
|
kapt deps.dagger.daggerCompiler
|
||||||
|
kapt deps.dagger.daggerProcessor
|
||||||
|
implementation deps.dagger.daggerSupport
|
||||||
|
|
||||||
|
implementation deps.glide.glide
|
||||||
|
kapt deps.glide.glideCompiler
|
||||||
|
implementation deps.glide.glideImage
|
||||||
|
implementation deps.glide.glideImageViewFactory
|
||||||
|
implementation deps.glide.glideOkhttp
|
||||||
|
|
||||||
|
implementation deps.google.flexbox
|
||||||
|
implementation deps.google.exoplayer
|
||||||
|
implementation deps.google.materialDesign
|
||||||
|
|
||||||
|
implementation deps.kotlin.stdlib
|
||||||
|
implementation deps.kotlin.stdlibJdk
|
||||||
|
|
||||||
|
implementation deps.rxjava.rxAndroid
|
||||||
|
implementation deps.rxjava.rxJava
|
||||||
|
implementation deps.rxjava.rxKotlin
|
||||||
|
|
||||||
|
implementation deps.simplestack.ext
|
||||||
|
implementation deps.simplestack.lib
|
||||||
|
|
||||||
|
implementation deps.square.retrofit
|
||||||
|
implementation deps.square.retrofitAdapterRxJ2
|
||||||
|
implementation deps.square.retrofitConvGson
|
||||||
|
implementation deps.square.logginInterceptor
|
||||||
|
implementation deps.square.okhttp
|
||||||
|
implementation deps.square.okhttpBrotli
|
||||||
|
|
||||||
|
implementation deps.acraMail
|
||||||
|
implementation deps.acraNotification
|
||||||
|
implementation deps.androidImageCropper
|
||||||
|
implementation deps.androidSvg
|
||||||
|
implementation deps.autodispose
|
||||||
|
implementation deps.autodisposeAndroidArchComp
|
||||||
|
implementation deps.bigImageViewer
|
||||||
|
implementation deps.conscryptAndroid
|
||||||
|
implementation deps.filemojiCompat
|
||||||
|
implementation deps.fragmentviewbindingdelegateKt
|
||||||
|
implementation deps.markdownEdit
|
||||||
|
implementation deps.materialDrawer
|
||||||
|
implementation deps.materialDrawerIconics
|
||||||
|
implementation deps.materialDrawerTypeface
|
||||||
|
implementation deps.sparkButton
|
||||||
|
implementation deps.timber
|
||||||
|
|
||||||
|
testImplementation deps.testing.extJunit
|
||||||
|
testImplementation deps.testing.junit
|
||||||
|
testImplementation deps.testing.mockitoInline
|
||||||
|
testImplementation deps.testing.mockitoKotlin
|
||||||
|
testImplementation deps.testing.roboelectric
|
||||||
|
|
||||||
|
androidTestImplementation deps.testing.espresso
|
||||||
|
androidTestImplementation deps.testing.junit
|
||||||
|
androidTestImplementation deps.testing.roomTesting
|
||||||
|
}
|
|
@ -1,313 +0,0 @@
|
||||||
import com.android.build.gradle.internal.api.BaseVariantOutputImpl
|
|
||||||
import com.project.starter.easylauncher.filter.ColorRibbonFilter
|
|
||||||
|
|
||||||
plugins {
|
|
||||||
id(AppPlugins.androidApplication)
|
|
||||||
|
|
||||||
kotlin(AppPlugins.androidBase)
|
|
||||||
kotlin(AppPlugins.kapt)
|
|
||||||
id(AppPlugins.kotlinExtensions)
|
|
||||||
// id(AppPlugins.kotlinParcelize)
|
|
||||||
|
|
||||||
id(AppPlugins.easylauncher) version (AppPlugins.Versions.easylauncher)
|
|
||||||
}
|
|
||||||
|
|
||||||
android {
|
|
||||||
compileSdk = AndroidSDK.compileSdk
|
|
||||||
buildToolsVersion = AndroidSDK.buildTools
|
|
||||||
|
|
||||||
defaultConfig {
|
|
||||||
applicationId = DefaultConfig.applicationID
|
|
||||||
|
|
||||||
minSdk = DefaultConfig.minSdk
|
|
||||||
targetSdk = DefaultConfig.targetSdk
|
|
||||||
|
|
||||||
versionCode = DefaultConfig.versionCodeRel
|
|
||||||
versionName = DefaultConfig.versionNameRel
|
|
||||||
|
|
||||||
testInstrumentationRunner = DefaultConfig.instrumentationRunner
|
|
||||||
|
|
||||||
vectorDrawables.useSupportLibrary = true
|
|
||||||
|
|
||||||
kapt {
|
|
||||||
arguments {
|
|
||||||
arg("room.schemaLocation", "$projectDir/schemas")
|
|
||||||
arg("room.incremental", true)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: remove, just for compiling
|
|
||||||
buildConfigField(
|
|
||||||
"String", "APPLICATION_NAME",
|
|
||||||
"\"${CustomHuskyBuild.applicationName}\""
|
|
||||||
)
|
|
||||||
buildConfigField(
|
|
||||||
"String", "CUSTOM_LOGO_URL",
|
|
||||||
"\"${CustomHuskyBuild.customLogo}\""
|
|
||||||
)
|
|
||||||
buildConfigField(
|
|
||||||
"String", "CUSTOM_INSTANCE",
|
|
||||||
"\"${CustomHuskyBuild.customInstance}\""
|
|
||||||
)
|
|
||||||
buildConfigField(
|
|
||||||
"String", "SUPPORT_ACCOUNT_URL",
|
|
||||||
"\"${CustomHuskyBuild.supportAccountUrl}\""
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
signingConfigs {
|
|
||||||
getByName(DefaultConfig.DebugSign.signingDebug) {
|
|
||||||
storeFile = file("$rootDir/${DefaultConfig.DebugSign.keystoreFile}")
|
|
||||||
storePassword = DefaultConfig.DebugSign.keystorePassword
|
|
||||||
keyAlias = DefaultConfig.DebugSign.keyAlias
|
|
||||||
keyPassword = DefaultConfig.DebugSign.keyPassword
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
buildTypes {
|
|
||||||
getByName(BuildTypes.debug) {
|
|
||||||
isDebuggable = true
|
|
||||||
isMinifyEnabled = false
|
|
||||||
isShrinkResources = false
|
|
||||||
|
|
||||||
signingConfig = signingConfigs.getByName(DefaultConfig.DebugSign.signingDebug)
|
|
||||||
}
|
|
||||||
|
|
||||||
getByName(BuildTypes.release) {
|
|
||||||
isDebuggable = false
|
|
||||||
isMinifyEnabled = true
|
|
||||||
isShrinkResources = true
|
|
||||||
|
|
||||||
proguardFiles(
|
|
||||||
getDefaultProguardFile(ProguardFile.defaultFile),
|
|
||||||
ProguardFile.defaultRules
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
flavorDimensions.addAll(
|
|
||||||
listOf(
|
|
||||||
Flavors.Dimensions.husky,
|
|
||||||
Flavors.Dimensions.release
|
|
||||||
)
|
|
||||||
)
|
|
||||||
productFlavors {
|
|
||||||
create(Flavors.newhusky) {
|
|
||||||
dimension = Flavors.Dimensions.release
|
|
||||||
|
|
||||||
applicationId = DefaultConfig.NewHusky.applicationID
|
|
||||||
|
|
||||||
minSdk = DefaultConfig.minSdk
|
|
||||||
targetSdk = DefaultConfig.targetSdk
|
|
||||||
|
|
||||||
versionCode = DefaultConfig.NewHusky.versionCode
|
|
||||||
versionName = DefaultConfig.NewHusky.versionName
|
|
||||||
}
|
|
||||||
|
|
||||||
create(Flavors.husky) {
|
|
||||||
dimension = Flavors.Dimensions.husky
|
|
||||||
}
|
|
||||||
|
|
||||||
create(Flavors.dev) {
|
|
||||||
dimension = Flavors.Dimensions.release
|
|
||||||
|
|
||||||
applicationId = DefaultConfig.Dev.applicationID
|
|
||||||
|
|
||||||
minSdk = DefaultConfig.minSdk
|
|
||||||
targetSdk = DefaultConfig.targetSdk
|
|
||||||
|
|
||||||
versionCode = DefaultConfig.Dev.versionCode
|
|
||||||
versionName = DefaultConfig.Dev.versionName
|
|
||||||
}
|
|
||||||
|
|
||||||
create(Flavors.beta) {
|
|
||||||
dimension = Flavors.Dimensions.release
|
|
||||||
|
|
||||||
versionNameSuffix = "-${BetaConfig.betaSuffix}${BetaConfig.betaSuffixVersion}"
|
|
||||||
}
|
|
||||||
|
|
||||||
create(Flavors.stable) {
|
|
||||||
dimension = Flavors.Dimensions.release
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
applicationVariants.all {
|
|
||||||
outputs.forEach { output ->
|
|
||||||
if(output is BaseVariantOutputImpl) {
|
|
||||||
output.outputFileName =
|
|
||||||
"husky_${versionName}.${output.outputFile.extension}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
lint {
|
|
||||||
// abortOnError = true
|
|
||||||
disable.addAll(
|
|
||||||
listOf(
|
|
||||||
"MissingTranslation",
|
|
||||||
"ExtraTranslation",
|
|
||||||
"AppCompatCustomView",
|
|
||||||
"UseRequireInsteadOfGet"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
compileOptions {
|
|
||||||
sourceCompatibility = DefaultConfig.javaVersion
|
|
||||||
targetCompatibility = DefaultConfig.javaVersion
|
|
||||||
}
|
|
||||||
|
|
||||||
kotlinOptions {
|
|
||||||
jvmTarget = DefaultConfig.jvmTarget
|
|
||||||
}
|
|
||||||
|
|
||||||
buildFeatures {
|
|
||||||
viewBinding = true
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: remove this, only for compiling
|
|
||||||
androidExtensions {
|
|
||||||
isExperimental = true
|
|
||||||
}
|
|
||||||
|
|
||||||
testOptions {
|
|
||||||
unitTests {
|
|
||||||
isReturnDefaultValues = true
|
|
||||||
isIncludeAndroidResources = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceSets {
|
|
||||||
getByName("androidTest").assets.srcDirs("$projectDir/schemas")
|
|
||||||
}
|
|
||||||
|
|
||||||
packagingOptions {
|
|
||||||
resources.excludes.addAll(
|
|
||||||
listOf(
|
|
||||||
"LICENSE_OFL",
|
|
||||||
"LICENSE_UNICODE"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
bundle {
|
|
||||||
language {
|
|
||||||
enableSplit = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar", "*.aar"))))
|
|
||||||
|
|
||||||
implementation(ApplicationLibs.AndroidX.appCompat)
|
|
||||||
implementation(ApplicationLibs.AndroidX.browser)
|
|
||||||
implementation(ApplicationLibs.AndroidX.cardView)
|
|
||||||
implementation(ApplicationLibs.AndroidX.constraintLayout)
|
|
||||||
implementation(ApplicationLibs.AndroidX.coreKtx)
|
|
||||||
implementation(ApplicationLibs.AndroidX.emoji)
|
|
||||||
implementation(ApplicationLibs.AndroidX.emojiAppCompat)
|
|
||||||
implementation(ApplicationLibs.AndroidX.emojiBundled)
|
|
||||||
implementation(ApplicationLibs.AndroidX.exifInterface)
|
|
||||||
implementation(ApplicationLibs.AndroidX.fragmentKtx)
|
|
||||||
implementation(ApplicationLibs.AndroidX.pagingRuntimeKtx)
|
|
||||||
implementation(ApplicationLibs.AndroidX.preferenceKtx)
|
|
||||||
implementation(ApplicationLibs.AndroidX.recyclerView)
|
|
||||||
kapt(ApplicationLibs.AndroidX.roomCompiler)
|
|
||||||
implementation(ApplicationLibs.AndroidX.roomRuntime)
|
|
||||||
implementation(ApplicationLibs.AndroidX.roomRxJava)
|
|
||||||
implementation(ApplicationLibs.AndroidX.shareTarget)
|
|
||||||
implementation(ApplicationLibs.AndroidX.swipeRefreshLayout)
|
|
||||||
implementation(ApplicationLibs.AndroidX.viewpager2)
|
|
||||||
implementation(ApplicationLibs.AndroidX.workRuntime)
|
|
||||||
implementation(ApplicationLibs.AndroidX.Lifecycle.commonJava)
|
|
||||||
implementation(ApplicationLibs.AndroidX.Lifecycle.liveDataKtx)
|
|
||||||
implementation(ApplicationLibs.AndroidX.Lifecycle.reactiveStreamsKtx)
|
|
||||||
implementation(ApplicationLibs.AndroidX.Lifecycle.viewmodelKtx)
|
|
||||||
|
|
||||||
implementation(ApplicationLibs.Dagger.dagger)
|
|
||||||
implementation(ApplicationLibs.Dagger.daggerAndroid)
|
|
||||||
kapt(ApplicationLibs.Dagger.daggerCompiler)
|
|
||||||
kapt(ApplicationLibs.Dagger.daggerProcessor)
|
|
||||||
implementation(ApplicationLibs.Dagger.daggerSupport)
|
|
||||||
|
|
||||||
implementation(ApplicationLibs.Glide.glide)
|
|
||||||
kapt(ApplicationLibs.Glide.glideCompiler)
|
|
||||||
implementation(ApplicationLibs.Glide.glideImage)
|
|
||||||
implementation(ApplicationLibs.Glide.glideImageViewFactory)
|
|
||||||
implementation(ApplicationLibs.Glide.glideOkhttp)
|
|
||||||
|
|
||||||
implementation(ApplicationLibs.Google.flexbox)
|
|
||||||
implementation(ApplicationLibs.Google.exoplayer)
|
|
||||||
implementation(ApplicationLibs.Google.materialDesign)
|
|
||||||
|
|
||||||
implementation(ApplicationLibs.Kotlin.stdlib)
|
|
||||||
implementation(ApplicationLibs.Kotlin.stdlibJdk)
|
|
||||||
|
|
||||||
implementation(ApplicationLibs.RxJava.rxAndroid)
|
|
||||||
implementation(ApplicationLibs.RxJava.rxJava)
|
|
||||||
implementation(ApplicationLibs.RxJava.rxKotlin)
|
|
||||||
|
|
||||||
implementation(ApplicationLibs.SimpleStack.ext)
|
|
||||||
implementation(ApplicationLibs.SimpleStack.lib)
|
|
||||||
|
|
||||||
implementation(ApplicationLibs.Square.retrofit)
|
|
||||||
implementation(ApplicationLibs.Square.retrofitAdapterRxJ2)
|
|
||||||
implementation(ApplicationLibs.Square.retrofitConvGson)
|
|
||||||
implementation(ApplicationLibs.Square.logginInterceptor)
|
|
||||||
implementation(ApplicationLibs.Square.okhttp)
|
|
||||||
implementation(ApplicationLibs.Square.okhttpBrotli)
|
|
||||||
|
|
||||||
implementation(ApplicationLibs.acraMail)
|
|
||||||
implementation(ApplicationLibs.acraNotification)
|
|
||||||
implementation(ApplicationLibs.androidImageCropper)
|
|
||||||
implementation(ApplicationLibs.androidSvg)
|
|
||||||
implementation(ApplicationLibs.autodispose)
|
|
||||||
implementation(ApplicationLibs.autodisposeAndroidArchComp)
|
|
||||||
implementation(ApplicationLibs.bigImageViewer)
|
|
||||||
implementation(ApplicationLibs.conscryptAndroid)
|
|
||||||
implementation(ApplicationLibs.filemojiCompat)
|
|
||||||
implementation(ApplicationLibs.fragmentviewbindingdelegateKt)
|
|
||||||
implementation(ApplicationLibs.markdownEdit)
|
|
||||||
implementation(ApplicationLibs.materialDrawer)
|
|
||||||
implementation(ApplicationLibs.materialDrawerIconics)
|
|
||||||
implementation(ApplicationLibs.materialDrawerTypeface)
|
|
||||||
implementation(ApplicationLibs.sparkButton)
|
|
||||||
implementation(ApplicationLibs.timber)
|
|
||||||
|
|
||||||
testImplementation(TestLibs.extJunit)
|
|
||||||
testImplementation(TestLibs.junit)
|
|
||||||
testImplementation(TestLibs.mockitoInline)
|
|
||||||
testImplementation(TestLibs.mockitoKotlin)
|
|
||||||
testImplementation(TestLibs.roboelectric)
|
|
||||||
|
|
||||||
androidTestImplementation(TestLibs.espresso)
|
|
||||||
androidTestImplementation(TestLibs.junit)
|
|
||||||
androidTestImplementation(TestLibs.roomTesting)
|
|
||||||
}
|
|
||||||
|
|
||||||
easylauncher {
|
|
||||||
productFlavors {
|
|
||||||
register(Flavors.beta) {
|
|
||||||
filters(
|
|
||||||
customRibbon(
|
|
||||||
label = "Beta",
|
|
||||||
gravity = ColorRibbonFilter.Gravity.TOPRIGHT,
|
|
||||||
ribbonColor = "#DCDCDC",
|
|
||||||
labelColor = "#000000"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
register(Flavors.newhusky) {
|
|
||||||
filters(
|
|
||||||
customRibbon(
|
|
||||||
label = "NEW",
|
|
||||||
gravity = ColorRibbonFilter.Gravity.TOPRIGHT,
|
|
||||||
ribbonColor = "#DCDCDC",
|
|
||||||
labelColor = "#000000"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
34
husky/build.gradle
Normal file
34
husky/build.gradle
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
buildscript {
|
||||||
|
apply from: "versions.gradle"
|
||||||
|
apply from: "dependencies.gradle"
|
||||||
|
|
||||||
|
apply from: "instance.gradle"
|
||||||
|
|
||||||
|
addRepos(repositories)
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
classpath deps.androidGradlePlugin
|
||||||
|
classpath deps.kotlinGradlePlugin
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
allprojects {
|
||||||
|
addRepos(repositories)
|
||||||
|
|
||||||
|
tasks.withType(JavaCompile) {
|
||||||
|
options.encoding(buildVersions.encoding)
|
||||||
|
options.compilerArgs += [
|
||||||
|
"-Xlint:all",
|
||||||
|
"-Xlint:unchecked",
|
||||||
|
"-Xlint:-deprecation",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
task clean(type: Delete) {
|
||||||
|
delete(rootProject.buildDir)
|
||||||
|
delete("${rootProject.buildDir}/app/huskyBeta")
|
||||||
|
delete("${rootProject.buildDir}/app/huskyStable")
|
||||||
|
delete("${rootProject.buildDir}/app/huskyDev")
|
||||||
|
delete("${rootProject.buildDir}/app/huskyNewhusky")
|
||||||
|
}
|
|
@ -1,50 +0,0 @@
|
||||||
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
|
|
||||||
|
|
||||||
buildscript {
|
|
||||||
addRepos(repositories)
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
// Base
|
|
||||||
classpath(GradlePlugins.android)
|
|
||||||
classpath(GradlePlugins.kotlin)
|
|
||||||
|
|
||||||
// Plugins
|
|
||||||
classpath(GradlePlugins.gradleVersions)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
allprojects {
|
|
||||||
addRepos(repositories)
|
|
||||||
|
|
||||||
tasks.withType<JavaCompile> {
|
|
||||||
options.encoding = DefaultConfig.encoding
|
|
||||||
options.compilerArgs.addAll(
|
|
||||||
listOf(
|
|
||||||
"-Xlint:all",
|
|
||||||
"-Xlint:unchecked",
|
|
||||||
"-Xlint:-deprecation"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
apply {
|
|
||||||
plugin(AppPlugins.manesVersions)
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.withType<DependencyUpdatesTask> {
|
|
||||||
gradleReleaseChannel = "current"
|
|
||||||
|
|
||||||
rejectVersionIf {
|
|
||||||
!isNonStable(candidate.version)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.register<Delete>(BuildTasks.taskTypeClean) {
|
|
||||||
delete(buildDir)
|
|
||||||
delete("${projectDir}/buildSrc/build")
|
|
||||||
delete("${projectDir}/app/huskyBeta")
|
|
||||||
delete("${projectDir}/app/huskyStable")
|
|
||||||
delete("${projectDir}/app/huskyDev")
|
|
||||||
delete("${projectDir}/app/huskyNewhusky")
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
plugins {
|
|
||||||
`kotlin-dsl`
|
|
||||||
}
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
|
@ -1,183 +0,0 @@
|
||||||
object AppPlugins {
|
|
||||||
object Versions {
|
|
||||||
const val easylauncher = "5.0.0"
|
|
||||||
}
|
|
||||||
|
|
||||||
const val androidApplication = "com.android.application"
|
|
||||||
const val androidBase = "android"
|
|
||||||
const val easylauncher = "com.starter.easylauncher"
|
|
||||||
const val kapt = "kapt"
|
|
||||||
const val kotlinExtensions = "kotlin-android-extensions"
|
|
||||||
const val kotlinParcelize = "kotlin-parcelize"
|
|
||||||
const val manesVersions = "com.github.ben-manes.versions"
|
|
||||||
}
|
|
||||||
|
|
||||||
object ApplicationLibs {
|
|
||||||
private object Versions {
|
|
||||||
const val acra = "5.8.4"
|
|
||||||
const val androidImageCropper = "2.8.0"
|
|
||||||
const val androidSvg = "1.4"
|
|
||||||
const val appcompat = "1.3.1"
|
|
||||||
const val autodispose = "1.4.0"
|
|
||||||
const val bigImageViewer = "1.7.0"
|
|
||||||
const val browser = "1.3.0"
|
|
||||||
const val cardView = "1.0.0"
|
|
||||||
const val conscryptAndroid = "2.5.2"
|
|
||||||
const val constraintlayout = "2.1.3"
|
|
||||||
const val coreKtx = "1.3.2"
|
|
||||||
const val dagger = "2.38.1"
|
|
||||||
const val emoji = "1.1.0"
|
|
||||||
const val exifInterface = "1.3.3"
|
|
||||||
const val exoplayer = "2.16.0"
|
|
||||||
const val filemojiCompat = "1.0.17"
|
|
||||||
const val flexbox = "2.0.1"
|
|
||||||
const val fragmentKtx = "1.2.5"
|
|
||||||
const val fragmentviewbindingdelegateKt = "1.0.0"
|
|
||||||
const val glide = "4.12.0"
|
|
||||||
const val glideImage = "1.8.1"
|
|
||||||
const val lifecycle = "2.3.1"
|
|
||||||
const val markdownEdit = "1.0.0"
|
|
||||||
const val materialDesign = "1.4.0"
|
|
||||||
const val materialDrawer = "8.4.5"
|
|
||||||
const val materialDrawerTypeface = "3.0.1.4.original-kotlin@aar"
|
|
||||||
const val pagingRuntimeKtx = "2.1.2"
|
|
||||||
const val preferenceKtx = "1.1.1"
|
|
||||||
const val okhttpVersion = "4.9.3"
|
|
||||||
const val recyclerView = "1.2.1"
|
|
||||||
const val retrofit = "2.9.0"
|
|
||||||
const val room = "2.2.5"
|
|
||||||
const val rxAndroid = "2.1.1"
|
|
||||||
const val rxJava = "2.2.21"
|
|
||||||
const val rxKotlin = "2.4.0"
|
|
||||||
const val shareTarget = "1.0.0"
|
|
||||||
const val simplestack = "2.6.2"
|
|
||||||
const val simplestackExt = "2.2.2"
|
|
||||||
const val sparkButton = "4.1.0"
|
|
||||||
const val swipeRefreshLayout = "1.1.0"
|
|
||||||
const val timber = "5.0.1"
|
|
||||||
const val viewpager2 = "1.0.0"
|
|
||||||
const val workRuntime = "2.4.0"
|
|
||||||
}
|
|
||||||
|
|
||||||
object AndroidX {
|
|
||||||
const val appCompat = "androidx.appcompat:appcompat:${Versions.appcompat}"
|
|
||||||
const val browser = "androidx.browser:browser:${Versions.browser}"
|
|
||||||
const val cardView = "androidx.cardview:cardview:${Versions.cardView}"
|
|
||||||
const val constraintLayout =
|
|
||||||
"androidx.constraintlayout:constraintlayout:${Versions.constraintlayout}"
|
|
||||||
const val coreKtx = "androidx.core:core-ktx:${Versions.coreKtx}"
|
|
||||||
const val emoji = "androidx.emoji:emoji:${Versions.emoji}"
|
|
||||||
const val emojiAppCompat = "androidx.emoji:emoji-appcompat:${Versions.emoji}"
|
|
||||||
const val emojiBundled = "androidx.emoji:emoji-bundled:${Versions.emoji}"
|
|
||||||
const val exifInterface = "androidx.exifinterface:exifinterface:${Versions.exifInterface}"
|
|
||||||
const val fragmentKtx = "androidx.fragment:fragment-ktx:${Versions.fragmentKtx}"
|
|
||||||
const val pagingRuntimeKtx =
|
|
||||||
"androidx.paging:paging-runtime-ktx:${Versions.pagingRuntimeKtx}"
|
|
||||||
const val preferenceKtx = "androidx.preference:preference-ktx:${Versions.preferenceKtx}"
|
|
||||||
const val recyclerView = "androidx.recyclerview:recyclerview:${Versions.recyclerView}"
|
|
||||||
const val roomCompiler = "androidx.room:room-compiler:${Versions.room}"
|
|
||||||
const val roomRuntime = "androidx.room:room-runtime:${Versions.room}"
|
|
||||||
const val roomRxJava = "androidx.room:room-rxjava2:${Versions.room}"
|
|
||||||
const val shareTarget = "androidx.sharetarget:sharetarget:${Versions.shareTarget}"
|
|
||||||
const val swipeRefreshLayout =
|
|
||||||
"androidx.swiperefreshlayout:swiperefreshlayout:${Versions.swipeRefreshLayout}"
|
|
||||||
const val viewpager2 = "androidx.viewpager2:viewpager2:${Versions.viewpager2}"
|
|
||||||
const val workRuntime = "androidx.work:work-runtime:${Versions.workRuntime}"
|
|
||||||
|
|
||||||
object Lifecycle {
|
|
||||||
const val commonJava = "androidx.lifecycle:lifecycle-common-java8:${Versions.lifecycle}"
|
|
||||||
const val liveDataKtx =
|
|
||||||
"androidx.lifecycle:lifecycle-livedata-ktx:${Versions.lifecycle}"
|
|
||||||
const val reactiveStreamsKtx =
|
|
||||||
"androidx.lifecycle:lifecycle-reactivestreams-ktx:${Versions.lifecycle}"
|
|
||||||
const val viewmodelKtx =
|
|
||||||
"androidx.lifecycle:lifecycle-viewmodel-ktx:${Versions.lifecycle}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
object Dagger {
|
|
||||||
const val dagger = "com.google.dagger:dagger:${Versions.dagger}"
|
|
||||||
const val daggerAndroid = "com.google.dagger:dagger-android:${Versions.dagger}"
|
|
||||||
const val daggerCompiler = "com.google.dagger:dagger-compiler:${Versions.dagger}"
|
|
||||||
const val daggerProcessor = "com.google.dagger:dagger-android-processor:${Versions.dagger}"
|
|
||||||
const val daggerSupport = "com.google.dagger:dagger-android-support:${Versions.dagger}"
|
|
||||||
}
|
|
||||||
|
|
||||||
object Glide {
|
|
||||||
const val glide = "com.github.bumptech.glide:glide:${Versions.glide}"
|
|
||||||
const val glideCompiler = "com.github.bumptech.glide:compiler:${Versions.glide}"
|
|
||||||
const val glideImage = "com.github.piasy:GlideImageLoader:${Versions.glideImage}"
|
|
||||||
const val glideImageViewFactory =
|
|
||||||
"com.github.piasy:GlideImageViewFactory:${Versions.glideImage}"
|
|
||||||
const val glideOkhttp = "com.github.bumptech.glide:okhttp3-integration:${Versions.glide}"
|
|
||||||
}
|
|
||||||
|
|
||||||
object Google {
|
|
||||||
const val flexbox = "com.google.android:flexbox:${Versions.flexbox}"
|
|
||||||
const val exoplayer = "com.google.android.exoplayer:exoplayer:${Versions.exoplayer}"
|
|
||||||
const val materialDesign = "com.google.android.material:material:${Versions.materialDesign}"
|
|
||||||
}
|
|
||||||
|
|
||||||
object Kotlin {
|
|
||||||
const val reflect = "org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}"
|
|
||||||
const val stdlib = "org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}"
|
|
||||||
const val stdlibJdk = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlinVersion}"
|
|
||||||
}
|
|
||||||
|
|
||||||
object RxJava {
|
|
||||||
const val rxAndroid = "io.reactivex.rxjava2:rxandroid:${Versions.rxAndroid}"
|
|
||||||
const val rxJava = "io.reactivex.rxjava2:rxjava:${Versions.rxJava}"
|
|
||||||
const val rxKotlin = "io.reactivex.rxjava2:rxkotlin:${Versions.rxKotlin}"
|
|
||||||
}
|
|
||||||
|
|
||||||
object SimpleStack {
|
|
||||||
const val lib = "com.github.Zhuinden:simple-stack:${Versions.simplestack}"
|
|
||||||
const val ext = "com.github.Zhuinden:simple-stack-extensions:${Versions.simplestackExt}"
|
|
||||||
}
|
|
||||||
|
|
||||||
object Square {
|
|
||||||
const val retrofit = "com.squareup.retrofit2:retrofit:${Versions.retrofit}"
|
|
||||||
const val retrofitAdapterRxJ2 =
|
|
||||||
"com.squareup.retrofit2:adapter-rxjava2:${Versions.retrofit}"
|
|
||||||
const val retrofitConvGson = "com.squareup.retrofit2:converter-gson:${Versions.retrofit}"
|
|
||||||
|
|
||||||
const val logginInterceptor =
|
|
||||||
"com.squareup.okhttp3:logging-interceptor:${Versions.okhttpVersion}"
|
|
||||||
const val okhttp = "com.squareup.okhttp3:okhttp:${Versions.okhttpVersion}"
|
|
||||||
const val okhttpBrotli = "com.squareup.okhttp3:okhttp-brotli:${Versions.okhttpVersion}"
|
|
||||||
}
|
|
||||||
|
|
||||||
const val acraMail = "ch.acra:acra-mail:${Versions.acra}"
|
|
||||||
const val acraNotification = "ch.acra:acra-notification:${Versions.acra}"
|
|
||||||
const val androidSvg = "com.caverock:androidsvg-aar:${Versions.androidSvg}"
|
|
||||||
const val androidImageCropper =
|
|
||||||
"com.theartofdev.edmodo:android-image-cropper:${Versions.androidImageCropper}"
|
|
||||||
const val autodispose = "com.uber.autodispose:autodispose:${Versions.autodispose}"
|
|
||||||
const val autodisposeAndroidArchComp =
|
|
||||||
"com.uber.autodispose:autodispose-android-archcomponents:${Versions.autodispose}"
|
|
||||||
const val bigImageViewer = "com.github.piasy:BigImageViewer:${Versions.bigImageViewer}"
|
|
||||||
const val conscryptAndroid = "org.conscrypt:conscrypt-android:${Versions.conscryptAndroid}"
|
|
||||||
const val filemojiCompat = "de.c1710:filemojicompat:${Versions.filemojiCompat}"
|
|
||||||
const val fragmentviewbindingdelegateKt =
|
|
||||||
"com.github.Zhuinden:fragmentviewbindingdelegate-kt:${Versions.fragmentviewbindingdelegateKt}"
|
|
||||||
const val markdownEdit = "com.github.Tunous:MarkdownEdit:${Versions.markdownEdit}"
|
|
||||||
const val materialDrawer = "com.mikepenz:materialdrawer:${Versions.materialDrawer}"
|
|
||||||
const val materialDrawerIconics =
|
|
||||||
"com.mikepenz:materialdrawer-iconics:${Versions.materialDrawer}"
|
|
||||||
const val materialDrawerTypeface =
|
|
||||||
"com.mikepenz:google-material-typeface:${Versions.materialDrawerTypeface}"
|
|
||||||
const val sparkButton = "com.github.connyduck:sparkbutton:${Versions.sparkButton}"
|
|
||||||
const val timber = "com.jakewharton.timber:timber:${Versions.timber}"
|
|
||||||
}
|
|
||||||
|
|
||||||
object GradlePlugins {
|
|
||||||
object Versions {
|
|
||||||
const val gradle = "7.1.0"
|
|
||||||
const val gradleVersions = "0.39.0"
|
|
||||||
}
|
|
||||||
|
|
||||||
const val android = "com.android.tools.build:gradle:${Versions.gradle}"
|
|
||||||
const val kotlin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}"
|
|
||||||
const val gradleVersions =
|
|
||||||
"com.github.ben-manes:gradle-versions-plugin:${Versions.gradleVersions}"
|
|
||||||
}
|
|
|
@ -1,103 +0,0 @@
|
||||||
import java.util.Locale
|
|
||||||
import org.gradle.api.JavaVersion
|
|
||||||
import org.gradle.api.artifacts.dsl.RepositoryHandler
|
|
||||||
import org.gradle.kotlin.dsl.maven
|
|
||||||
|
|
||||||
const val kotlinVersion = "1.5.32"
|
|
||||||
|
|
||||||
object AndroidSDK {
|
|
||||||
const val compileSdk = 30
|
|
||||||
const val buildTools = "32.0.0"
|
|
||||||
}
|
|
||||||
|
|
||||||
object CustomHuskyBuild {
|
|
||||||
const val applicationName = "Husky"
|
|
||||||
const val customLogo = ""
|
|
||||||
const val customInstance = ""
|
|
||||||
const val supportAccountUrl = "https://huskyapp.dev/users/husky"
|
|
||||||
}
|
|
||||||
|
|
||||||
object DefaultConfig {
|
|
||||||
const val applicationID = "su.xash.husky"
|
|
||||||
const val minSdk = 23
|
|
||||||
const val targetSdk = 30
|
|
||||||
const val versionCodeRel = 175
|
|
||||||
const val versionNameRel = "1.1.0"
|
|
||||||
|
|
||||||
val javaVersion = JavaVersion.VERSION_11
|
|
||||||
val jvmTarget = javaVersion.toString()
|
|
||||||
|
|
||||||
const val instrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
||||||
|
|
||||||
const val encoding = "UTF-8"
|
|
||||||
|
|
||||||
object DebugSign {
|
|
||||||
const val signingDebug = "debug"
|
|
||||||
const val keystoreFile = "debug.keystore"
|
|
||||||
const val keystorePassword = "android"
|
|
||||||
const val keyAlias = "androiddebugkey"
|
|
||||||
const val keyPassword = "android"
|
|
||||||
}
|
|
||||||
|
|
||||||
object Dev {
|
|
||||||
const val applicationID = "su.xash.husky.dev"
|
|
||||||
|
|
||||||
const val versionCode = 1
|
|
||||||
const val versionName = "1.0.0"
|
|
||||||
}
|
|
||||||
|
|
||||||
object NewHusky {
|
|
||||||
const val applicationID = "su.xash.husky.alpha"
|
|
||||||
|
|
||||||
const val versionCode = 1
|
|
||||||
const val versionName = "2.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
object BetaConfig {
|
|
||||||
const val betaSuffix = "beta"
|
|
||||||
const val betaSuffixVersion = "3"
|
|
||||||
}
|
|
||||||
|
|
||||||
object BuildTypes {
|
|
||||||
const val debug = "debug"
|
|
||||||
const val release = "release"
|
|
||||||
}
|
|
||||||
|
|
||||||
object Flavors {
|
|
||||||
object Dimensions {
|
|
||||||
const val husky = "husky"
|
|
||||||
const val release = "release"
|
|
||||||
}
|
|
||||||
|
|
||||||
const val husky = "husky"
|
|
||||||
const val dev = "dev"
|
|
||||||
const val beta = "beta"
|
|
||||||
const val stable = "stable"
|
|
||||||
|
|
||||||
const val newhusky = "newhusky"
|
|
||||||
}
|
|
||||||
|
|
||||||
object ProguardFile {
|
|
||||||
const val defaultFile = "proguard-android-optimize.txt"
|
|
||||||
const val defaultRules = "proguard-rules.pro"
|
|
||||||
}
|
|
||||||
|
|
||||||
object BuildTasks {
|
|
||||||
const val taskTypeClean = "clean"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Function to add repositories to the project.
|
|
||||||
fun addRepos(handler: RepositoryHandler) {
|
|
||||||
handler.google()
|
|
||||||
handler.gradlePluginPortal()
|
|
||||||
handler.maven(url = "https://jitpack.io")
|
|
||||||
handler.maven(url = "https://plugins.gradle.org/m2/")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Function to check stable versions
|
|
||||||
fun isNonStable(version: String): Boolean {
|
|
||||||
val stableKeyword = listOf("a", "alpha", "beta", "final", "ga", "m", "release", "rc")
|
|
||||||
.any { version.toLowerCase(Locale.ROOT).contains(it) }
|
|
||||||
return stableKeyword.not()
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
object TestLibs {
|
|
||||||
|
|
||||||
private object Versions {
|
|
||||||
const val espresso = "3.4.0"
|
|
||||||
const val extJunit = "1.1.3"
|
|
||||||
const val junit = "4.13.2"
|
|
||||||
const val mockitoInline = "3.6.28"
|
|
||||||
const val mockitoKotlin = "2.1.0"
|
|
||||||
const val roboelectric = "4.4"
|
|
||||||
const val roomTesting = "2.2.5"
|
|
||||||
}
|
|
||||||
|
|
||||||
const val extJunit = "androidx.test.ext:junit:${Versions.extJunit}"
|
|
||||||
const val espresso = "androidx.test.espresso:espresso-core:${Versions.espresso}"
|
|
||||||
const val junit = "junit:junit:${Versions.junit}"
|
|
||||||
const val mockitoInline = "org.mockito:mockito-inline:${Versions.mockitoInline}"
|
|
||||||
const val mockitoKotlin = "com.nhaarman.mockitokotlin2:mockito-kotlin:${Versions.mockitoKotlin}"
|
|
||||||
const val roboelectric = "org.robolectric:robolectric:${Versions.roboelectric}"
|
|
||||||
const val roomTesting = "androidx.room:room-testing:${Versions.roomTesting}"
|
|
||||||
}
|
|
137
husky/dependencies.gradle
Normal file
137
husky/dependencies.gradle
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
ext.deps = [:]
|
||||||
|
|
||||||
|
def deps = [:]
|
||||||
|
deps.androidGradlePlugin = "com.android.tools.build:gradle:${versions.gradle.androidGradlePlugin}"
|
||||||
|
deps.kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_version}"
|
||||||
|
deps.testinstrunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
ext.deps = deps
|
||||||
|
|
||||||
|
def androidx = [:]
|
||||||
|
androidx.appCompat = "androidx.appcompat:appcompat:${versions.appcompat}"
|
||||||
|
androidx.browser = "androidx.browser:browser:${versions.browser}"
|
||||||
|
androidx.cardView = "androidx.cardview:cardview:${versions.cardView}"
|
||||||
|
androidx.constraintLayout =
|
||||||
|
"androidx.constraintlayout:constraintlayout:${versions.constraintlayout}"
|
||||||
|
androidx.coreKtx = "androidx.core:core-ktx:${versions.coreKtx}"
|
||||||
|
androidx.emoji = "androidx.emoji:emoji:${versions.emoji}"
|
||||||
|
androidx.emojiAppCompat = "androidx.emoji:emoji-appcompat:${versions.emoji}"
|
||||||
|
androidx.emojiBundled = "androidx.emoji:emoji-bundled:${versions.emoji}"
|
||||||
|
androidx.exifInterface = "androidx.exifinterface:exifinterface:${versions.exifInterface}"
|
||||||
|
androidx.fragmentKtx = "androidx.fragment:fragment-ktx:${versions.fragmentKtx}"
|
||||||
|
androidx.pagingRuntimeKtx =
|
||||||
|
"androidx.paging:paging-runtime-ktx:${versions.pagingRuntimeKtx}"
|
||||||
|
androidx.preferenceKtx = "androidx.preference:preference-ktx:${versions.preferenceKtx}"
|
||||||
|
androidx.recyclerView = "androidx.recyclerview:recyclerview:${versions.recyclerView}"
|
||||||
|
androidx.roomCompiler = "androidx.room:room-compiler:${versions.room}"
|
||||||
|
androidx.roomRuntime = "androidx.room:room-runtime:${versions.room}"
|
||||||
|
androidx.roomRxJava = "androidx.room:room-rxjava2:${versions.room}"
|
||||||
|
androidx.shareTarget = "androidx.sharetarget:sharetarget:${versions.shareTarget}"
|
||||||
|
androidx.swipeRefreshLayout =
|
||||||
|
"androidx.swiperefreshlayout:swiperefreshlayout:${versions.swipeRefreshLayout}"
|
||||||
|
androidx.viewpager2 = "androidx.viewpager2:viewpager2:${versions.viewpager2}"
|
||||||
|
androidx.workRuntime = "androidx.work:work-runtime:${versions.workRuntime}"
|
||||||
|
|
||||||
|
def lifecycle = [:]
|
||||||
|
lifecycle.commonJava = "androidx.lifecycle:lifecycle-common-java8:${versions.lifecycle}"
|
||||||
|
lifecycle.liveDataKtx =
|
||||||
|
"androidx.lifecycle:lifecycle-livedata-ktx:${versions.lifecycle}"
|
||||||
|
lifecycle.reactiveStreamsKtx =
|
||||||
|
"androidx.lifecycle:lifecycle-reactivestreams-ktx:${versions.lifecycle}"
|
||||||
|
lifecycle.viewmodelKtx =
|
||||||
|
"androidx.lifecycle:lifecycle-viewmodel-ktx:${versions.lifecycle}"
|
||||||
|
androidx.lifecycle = lifecycle
|
||||||
|
deps.androidx = androidx
|
||||||
|
|
||||||
|
def dagger = [:]
|
||||||
|
dagger.dagger = "com.google.dagger:dagger:${versions.dagger}"
|
||||||
|
dagger.daggerAndroid = "com.google.dagger:dagger-android:${versions.dagger}"
|
||||||
|
dagger.daggerCompiler = "com.google.dagger:dagger-compiler:${versions.dagger}"
|
||||||
|
dagger.daggerProcessor = "com.google.dagger:dagger-android-processor:${versions.dagger}"
|
||||||
|
dagger.daggerSupport = "com.google.dagger:dagger-android-support:${versions.dagger}"
|
||||||
|
deps.dagger = dagger
|
||||||
|
|
||||||
|
def glide = [:]
|
||||||
|
glide.glide = "com.github.bumptech.glide:glide:${versions.glide}"
|
||||||
|
glide.glideCompiler = "com.github.bumptech.glide:compiler:${versions.glide}"
|
||||||
|
glide.glideImage = "com.github.piasy:GlideImageLoader:${versions.glideImage}"
|
||||||
|
glide.glideImageViewFactory =
|
||||||
|
"com.github.piasy:GlideImageViewFactory:${versions.glideImage}"
|
||||||
|
glide.glideOkhttp = "com.github.bumptech.glide:okhttp3-integration:${versions.glide}"
|
||||||
|
deps.glide = glide
|
||||||
|
|
||||||
|
def google = [:]
|
||||||
|
google.flexbox = "com.google.android:flexbox:${versions.flexbox}"
|
||||||
|
google.exoplayer = "com.google.android.exoplayer:exoplayer:${versions.exoplayer}"
|
||||||
|
google.materialDesign = "com.google.android.material:material:${versions.materialDesign}"
|
||||||
|
deps.google = google
|
||||||
|
|
||||||
|
def kotlin = [:]
|
||||||
|
kotlin.reflect = "org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}"
|
||||||
|
kotlin.stdlib = "org.jetbrains.kotlin:kotlin-stdlib:${kotlin_version}"
|
||||||
|
kotlin.stdlibJdk = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlin_version}"
|
||||||
|
deps.kotlin = kotlin
|
||||||
|
|
||||||
|
def rxjava = [:]
|
||||||
|
rxjava.rxAndroid = "io.reactivex.rxjava2:rxandroid:${versions.rxAndroid}"
|
||||||
|
rxjava.rxJava = "io.reactivex.rxjava2:rxjava:${versions.rxJava}"
|
||||||
|
rxjava.rxKotlin = "io.reactivex.rxjava2:rxkotlin:${versions.rxKotlin}"
|
||||||
|
deps.rxjava = rxjava
|
||||||
|
|
||||||
|
def simplestack = [:]
|
||||||
|
simplestack.lib = "com.github.Zhuinden:simple-stack:${versions.simplestack}"
|
||||||
|
simplestack.ext = "com.github.Zhuinden:simple-stack-extensions:${versions.simplestackext}"
|
||||||
|
deps.simplestack = simplestack
|
||||||
|
|
||||||
|
def square = [:]
|
||||||
|
square.retrofit = "com.squareup.retrofit2:retrofit:${versions.retrofit}"
|
||||||
|
square.retrofitAdapterRxJ2 =
|
||||||
|
"com.squareup.retrofit2:adapter-rxjava2:${versions.retrofit}"
|
||||||
|
square.retrofitConvGson = "com.squareup.retrofit2:converter-gson:${versions.retrofit}"
|
||||||
|
|
||||||
|
square.logginInterceptor =
|
||||||
|
"com.squareup.okhttp3:logging-interceptor:${versions.okhttpVersion}"
|
||||||
|
square.okhttp = "com.squareup.okhttp3:okhttp:${versions.okhttpVersion}"
|
||||||
|
square.okhttpBrotli = "com.squareup.okhttp3:okhttp-brotli:${versions.okhttpVersion}"
|
||||||
|
deps.square = square
|
||||||
|
|
||||||
|
def testing = [:]
|
||||||
|
testing.extJunit = "androidx.test.ext:junit:${versions.testing.extJunit}"
|
||||||
|
testing.espresso = "androidx.test.espresso:espresso-core:${versions.testing.espresso}"
|
||||||
|
testing.junit = "junit:junit:${versions.testing.junit}"
|
||||||
|
testing.mockitoInline = "org.mockito:mockito-inline:${versions.testing.mockitoInline}"
|
||||||
|
testing.mockitoKotlin = "com.nhaarman.mockitokotlin2:mockito-kotlin:${versions.testing.mockitoKotlin}"
|
||||||
|
testing.roboelectric = "org.robolectric:robolectric:${versions.testing.roboelectric}"
|
||||||
|
testing.roomTesting = "androidx.room:room-testing:${versions.testing.roomTesting}"
|
||||||
|
deps.testing = testing
|
||||||
|
|
||||||
|
deps.acraMail = "ch.acra:acra-mail:${versions.acra}"
|
||||||
|
deps.acraNotification = "ch.acra:acra-notification:${versions.acra}"
|
||||||
|
deps.androidSvg = "com.caverock:androidsvg-aar:${versions.androidSvg}"
|
||||||
|
deps.androidImageCropper =
|
||||||
|
"com.theartofdev.edmodo:android-image-cropper:${versions.androidImageCropper}"
|
||||||
|
deps.autodispose = "com.uber.autodispose:autodispose:${versions.autodispose}"
|
||||||
|
deps.autodisposeAndroidArchComp =
|
||||||
|
"com.uber.autodispose:autodispose-android-archcomponents:${versions.autodispose}"
|
||||||
|
deps.bigImageViewer = "com.github.piasy:BigImageViewer:${versions.bigImageViewer}"
|
||||||
|
deps.conscryptAndroid = "org.conscrypt:conscrypt-android:${versions.conscryptAndroid}"
|
||||||
|
deps.filemojiCompat = "de.c1710:filemojicompat:${versions.filemojiCompat}"
|
||||||
|
deps.fragmentviewbindingdelegateKt =
|
||||||
|
"com.github.Zhuinden:fragmentviewbindingdelegate-kt:${versions.fragmentviewbindingdelegateKt}"
|
||||||
|
deps.markdownEdit = "com.github.Tunous:MarkdownEdit:${versions.markdownEdit}"
|
||||||
|
deps.materialDrawer = "com.mikepenz:materialdrawer:${versions.materialDrawer}"
|
||||||
|
deps.materialDrawerIconics =
|
||||||
|
"com.mikepenz:materialdrawer-iconics:${versions.materialDrawer}"
|
||||||
|
deps.materialDrawerTypeface =
|
||||||
|
"com.mikepenz:google-material-typeface:${versions.materialDrawerTypeface}"
|
||||||
|
deps.sparkButton = "com.github.connyduck:sparkbutton:${versions.sparkButton}"
|
||||||
|
deps.timber = "com.jakewharton.timber:timber:${versions.timber}"
|
||||||
|
|
||||||
|
// Repository handler
|
||||||
|
static def addRepos(RepositoryHandler handler) {
|
||||||
|
handler.google()
|
||||||
|
handler.jcenter()
|
||||||
|
handler.maven { url "https://jitpack.io" }
|
||||||
|
handler.maven { url "https://plugins.gradle.org/m2/" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ext.addRepos = this.&addRepos
|
19
husky/instance.gradle
Normal file
19
husky/instance.gradle
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/**
|
||||||
|
Edit this file to create a Tusky build that is customized for your Fediverse instance.
|
||||||
|
Note: Publishing a custom build on Google Play may violate the Google Play developer policy (Repetetive Content)
|
||||||
|
*/
|
||||||
|
|
||||||
|
// The app name
|
||||||
|
ext.APP_NAME = "Husky"
|
||||||
|
|
||||||
|
// The application id. Must be unique, e.g. based on your domain
|
||||||
|
ext.APP_ID = "su.xash.husky"
|
||||||
|
|
||||||
|
// url of a custom app logo. Recommended size at least 600x600. Keep empty to use the Tusky elephant friend.
|
||||||
|
ext.CUSTOM_LOGO_URL = ""
|
||||||
|
|
||||||
|
// e.g. mastodon.social. Keep empty to not suggest any instance on the signup screen
|
||||||
|
ext.CUSTOM_INSTANCE = ""
|
||||||
|
|
||||||
|
// link to your support account. Will be linked on the about page when not empty.
|
||||||
|
ext.SUPPORT_ACCOUNT_URL = "https://huskyapp.dev/users/husky"
|
|
@ -1,3 +1,3 @@
|
||||||
rootProject.name = "husky"
|
rootProject.name = "husky"
|
||||||
|
|
||||||
include(":app")
|
include ":app"
|
80
husky/versions.gradle
Normal file
80
husky/versions.gradle
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
ext.kotlin_version = "1.6.10"
|
||||||
|
|
||||||
|
def buildVersions = [:]
|
||||||
|
buildVersions.applicationId = "com.captainepoch.basemvvm"
|
||||||
|
buildVersions.compileSdk = 30
|
||||||
|
buildVersions.minSdk = 23
|
||||||
|
buildVersions.targetSdk = 30
|
||||||
|
buildVersions.buildTools = "30.0.3"
|
||||||
|
buildVersions.javaCompat = JavaVersion.VERSION_11
|
||||||
|
buildVersions.jdkVersion = 11
|
||||||
|
|
||||||
|
buildVersions.encoding = "UTF-8"
|
||||||
|
|
||||||
|
buildVersions.versionName = "1.0.0"
|
||||||
|
buildVersions.versionCode = 1
|
||||||
|
ext.buildVersions = buildVersions
|
||||||
|
|
||||||
|
def versions = [:]
|
||||||
|
|
||||||
|
def gradle = [:]
|
||||||
|
gradle.androidGradlePlugin = "7.1.1"
|
||||||
|
gradle.gradleVersions = "0.39.0"
|
||||||
|
versions.gradle = gradle
|
||||||
|
|
||||||
|
versions.acra = "5.8.4"
|
||||||
|
versions.androidImageCropper = "2.8.0"
|
||||||
|
versions.androidSvg = "1.4"
|
||||||
|
versions.appcompat = "1.3.1"
|
||||||
|
versions.autodispose = "1.4.0"
|
||||||
|
versions.bigImageViewer = "1.7.0"
|
||||||
|
versions.browser = "1.3.0"
|
||||||
|
versions.cardView = "1.0.0"
|
||||||
|
versions.conscryptAndroid = "2.5.2"
|
||||||
|
versions.constraintlayout = "2.1.3"
|
||||||
|
versions.coreKtx = "1.3.2"
|
||||||
|
versions.dagger = "2.38.1"
|
||||||
|
versions.emoji = "1.1.0"
|
||||||
|
versions.exifInterface = "1.3.3"
|
||||||
|
versions.exoplayer = "2.16.0"
|
||||||
|
versions.filemojiCompat = "1.0.17"
|
||||||
|
versions.flexbox = "2.0.1"
|
||||||
|
versions.fragmentKtx = "1.2.5"
|
||||||
|
versions.fragmentviewbindingdelegateKt = "1.0.0"
|
||||||
|
versions.glide = "4.12.0"
|
||||||
|
versions.glideImage = "1.8.1"
|
||||||
|
versions.kotlin = "1.6.10"
|
||||||
|
versions.lifecycle = "2.3.1"
|
||||||
|
versions.markdownEdit = "1.0.0"
|
||||||
|
versions.materialDesign = "1.4.0"
|
||||||
|
versions.materialDrawer = "8.4.5"
|
||||||
|
versions.materialDrawerTypeface = "3.0.1.4.original-kotlin@aar"
|
||||||
|
versions.pagingRuntimeKtx = "2.1.2"
|
||||||
|
versions.preferenceKtx = "1.1.1"
|
||||||
|
versions.okhttpVersion = "4.9.3"
|
||||||
|
versions.recyclerView = "1.2.1"
|
||||||
|
versions.retrofit = "2.9.0"
|
||||||
|
versions.room = "2.2.5"
|
||||||
|
versions.rxAndroid = "2.1.1"
|
||||||
|
versions.rxJava = "2.2.21"
|
||||||
|
versions.rxKotlin = "2.4.0"
|
||||||
|
versions.shareTarget = "1.0.0"
|
||||||
|
versions.simplestack = "2.6.2"
|
||||||
|
versions.simplestackext = "2.2.2"
|
||||||
|
versions.sparkButton = "4.1.0"
|
||||||
|
versions.swipeRefreshLayout = "1.1.0"
|
||||||
|
versions.timber = "5.0.1"
|
||||||
|
versions.viewpager2 = "1.0.0"
|
||||||
|
versions.workRuntime = "2.4.0"
|
||||||
|
|
||||||
|
def testing = [:]
|
||||||
|
testing.espresso = "3.4.0"
|
||||||
|
testing.extJunit = "1.1.3"
|
||||||
|
testing.junit = "4.13.2"
|
||||||
|
testing.mockitoInline = "3.6.28"
|
||||||
|
testing.mockitoKotlin = "2.1.0"
|
||||||
|
testing.roboelectric = "4.4"
|
||||||
|
testing.roomTesting = "2.2.5"
|
||||||
|
versions.testing = testing
|
||||||
|
|
||||||
|
ext.versions = versions
|
Loading…
Reference in a new issue