plugins {
    id "com.diffplug.spotless" version "6.11.0"
}
apply plugin: 'com.android.application'

android {
    compileSdkVersion 34
    defaultConfig {
        applicationId "org.mian.gitnex"
        minSdkVersion 23
        targetSdkVersion 34
        versionCode 521
        versionName "5.2.1"
        multiDexEnabled true
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    flavorDimensions "default"
    productFlavors {
        free {
            applicationId "org.mian.gitnex"
        }
        pro {
            applicationId "org.mian.gitnex.pro"
        }
    }
    buildFeatures {
        viewBinding true
    }
    buildTypes {
        release {
            minifyEnabled false
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        coreLibraryDesugaringEnabled true

        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_17
    }
    lint {
        abortOnError false
    }
    namespace 'org.mian.gitnex'
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}

configurations {
    cleanedAnnotations
    compile.exclude group: 'org.jetbrains', module: 'annotations'
}

dependencies {

    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.11.0-alpha03'
    implementation 'androidx.compose.material3:material3:1.2.0-alpha08'
    implementation 'androidx.compose.material3:material3-window-size-class:1.2.0-alpha08'
    implementation 'androidx.viewpager2:viewpager2:1.1.0-beta02'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    implementation "androidx.legacy:legacy-support-v4:1.0.0"
    implementation "androidx.lifecycle:lifecycle-viewmodel:2.6.2"
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
    implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.2'
    implementation 'com.google.code.gson:gson:2.10.1'
    implementation "com.squareup.picasso:picasso:2.71828"
    implementation 'com.github.ramseth001:TextDrawable:1.1.3'
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    implementation 'com.squareup.retrofit2:converter-scalars:2.9.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.2'
    implementation 'org.ocpsoft.prettytime:prettytime:5.0.7.Final'
    implementation 'com.github.Pes8:android-material-color-picker-dialog:master'
    implementation "io.noties.markwon:core:4.6.2"
    implementation "io.noties.markwon:ext-latex:4.6.2"
    implementation "io.noties.markwon:ext-strikethrough:4.6.2"
    implementation "io.noties.markwon:ext-tables:4.6.2"
    implementation "io.noties.markwon:ext-tasklist:4.6.2"
    implementation "io.noties.markwon:html:4.6.2"
    implementation "io.noties.markwon:image:4.6.2"
    implementation "io.noties.markwon:image-picasso:4.6.2"
    implementation "io.noties.markwon:linkify:4.6.2"
    implementation "io.noties.markwon:recycler:4.6.2"
    implementation "io.noties.markwon:recycler-table:4.6.2"
    implementation "io.noties.markwon:simple-ext:4.6.2"
    implementation 'com.google.guava:guava:32.1.2-jre'
    implementation "io.noties.markwon:image-picasso:4.6.2"
    implementation "com.github.HamidrezaAmz:BreadcrumbsView:0.2.9"
    //noinspection GradleDependency
    implementation 'commons-io:commons-io:2.5'
    implementation 'org.apache.commons:commons-lang3:3.13.0'
    implementation "com.github.chrisbanes:PhotoView:2.3.0"
    implementation 'ch.acra:acra-mail:5.11.2'
    implementation 'ch.acra:acra-limiter:5.11.2'
    implementation 'ch.acra:acra-notification:5.11.2'
    implementation 'androidx.room:room-runtime:2.5.2'
    annotationProcessor 'androidx.room:room-compiler:2.5.2'
    implementation "androidx.work:work-runtime:2.8.1"
    implementation "io.mikael:urlbuilder:2.0.9"
    implementation "org.codeberg.gitnex-garage:emoji-java:v5.1.2"
    //noinspection GradleDependency
    coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:1.1.5"
    implementation 'androidx.biometric:biometric:1.1.0'
    implementation 'com.github.chrisvest:stormpot:2.4.2'
    implementation 'androidx.browser:browser:1.6.0'
    implementation 'com.google.android.flexbox:flexbox:3.0.0'
    implementation('org.codeberg.gitnex:tea4j-autodeploy:65f700d036') {
        exclude module: 'org.apache.oltu.oauth2.common'
    }
    implementation 'io.github.amrdeveloper:codeview:1.3.8'

    constraints {
        implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0")
        implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0")
    }
}

spotless {
    java {
        target 'src/**/*.java'

        importOrder('android', 'androidx', 'com', 'junit', 'net', 'org', 'java', 'javax', '', '\\#')

        removeUnusedImports()
        googleJavaFormat().aosp()
        indentWithTabs()
        formatAnnotations()
    }
}
