plugins {
	id 'com.android.application'
}

java {
	toolchain {
		languageVersion = JavaLanguageVersion.of(17)
	}
}

android {
	compileSdk 33
	defaultConfig {
		manifestPlaceholders = [oAuthScheme:"moshidon-android-auth"]
		archivesBaseName = "moshidon"
		applicationId "org.joinmastodon.android.moshinda"
		minSdk 23
		targetSdk 34
		versionCode 108
		versionName "2.3.0+fork.108.moshinda"
		testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        resourceConfigurations += ['ar-rSA', 'ar-rDZ', 'be-rBY', 'bn-rBD', 'bs-rBA', 'ca-rES', 'cs-rCZ', 'da-rDK', 'de-rDE', 'el-rGR', 'es-rES', 'eu-rES', 'fa-rIR', 'fi-rFI', 'fil-rPH', 'fr-rFR', 'ga-rIE', 'gd-rGB', 'gl-rES', 'hi-rIN', 'hr-rHR', 'hu-rHU', 'hy-rAM', 'ig-rNG', 'in-rID', 'is-rIS', 'it-rIT', 'iw-rIL', 'ja-rJP', 'kab', 'ko-rKR', 'my-rMM', 'nl-rNL', 'no-rNO', 'oc-rFR', 'pl-rPL', 'pt-rBR', 'pt-rPT', 'ro-rRO', 'ru-rRU', 'si-rLK', 'sl-rSI', 'sv-rSE', 'th-rTH', 'tr-rTR', 'uk-rUA', 'ur-rIN', 'vi-rVN', 'zh-rCN', 'zh-rTW']
    }

	dependenciesInfo {
		// Disables dependency metadata when building APKs.
		includeInApk = false
		// Disables dependency metadata when building Android App Bundles.
		includeInBundle = false
	}

	signingConfigs {
		nightly{
			storeFile = file("keystore/nightly_keystore.jks")
			storePassword System.getenv("SIGNING_STORE_PASSWORD")
			if (storePassword == null) {
				Properties properties = new Properties()
				properties.load(project.rootProject.file('local.properties').newDataInputStream())
				storePassword = properties.getProperty('SIGNING_STORE_PASSWORD')
			}
			keyAlias System.getenv("SIGNING_KEY_ALIAS")
			if (keyAlias == null) {
				Properties properties = new Properties()
				properties.load(project.rootProject.file('local.properties').newDataInputStream())
				keyAlias = properties.getProperty('SIGNING_KEY_ALIAS')
			}
			keyPassword System.getenv("SIGNING_KEY_PASSWORD")
			if (keyPassword == null) {
				Properties properties = new Properties()
				properties.load(project.rootProject.file('local.properties').newDataInputStream())
				keyPassword = properties.getProperty('SIGNING_KEY_PASSWORD')
			}
		}

//		release{
//			storeFile = file("keystore/release_keystore.jks")
//			storePassword System.getenv("RELEASE_SIGNING_STORE_PASSWORD")
//			if (storePassword == null) {
//				Properties properties = new Properties()
//				properties.load(project.rootProject.file('local.properties').newDataInputStream())
//				storePassword = properties.getProperty('RELEASE_SIGNING_STORE_PASSWORD')
//			}
//			keyAlias System.getenv("RELEASE_SIGNING_KEY_ALIAS")
//			if (keyAlias == null) {
//				Properties properties = new Properties()
//				properties.load(project.rootProject.file('local.properties').newDataInputStream())
//				keyAlias = properties.getProperty('RELEASE_SIGNING_KEY_ALIAS')
//			}
//			keyPassword System.getenv("RELEASE_SIGNING_KEY_PASSWORD")
//			if (keyPassword == null) {
//				Properties properties = new Properties()
//				properties.load(project.rootProject.file('local.properties').newDataInputStream())
//				keyPassword = properties.getProperty('RELEASE_SIGNING_KEY_PASSWORD')
//			}
//		}
	}

	buildTypes {
		release {
			minifyEnabled true
			shrinkResources true
			proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
		}
		debug{
			debuggable true
			versionNameSuffix '-debug'
			applicationIdSuffix '.debug'
			manifestPlaceholders = [oAuthScheme:"moshidon-android-debug-auth"]
		}
		githubRelease{
			initWith release
		}
		nightly{
			if(System.getenv("CURRENT_DATE") != null){
				versionNameSuffix '-nightly+@' + System.getenv("CURRENT_DATE")
			} else {
				Properties properties = new Properties()
				properties.load(project.rootProject.file('local.properties').newDataInputStream())
				versionNameSuffix '-nightly+@' + properties.getProperty('CURRENT_DATE')
			}
			applicationIdSuffix '.nightly'

			signingConfig signingConfigs.nightly
			manifestPlaceholders = [oAuthScheme:"moshidon-android-nightly-auth"]
		}
		playRelease{
			initWith release
			minifyEnabled true
			shrinkResources true
			versionNameSuffix '-play'
		}
		githubRelease {
			initWith release
			versionNameSuffix '-github'
		}
		fdroidRelease {
			initWith release
			vcsInfo.include false
			// The F-droid build system doesn't like this at all for some reason.
//			versionNameSuffix '-fdroid'
//			signingConfig signingConfigs.release
		}
	}
	compileOptions {
		sourceCompatibility JavaVersion.VERSION_17
		targetCompatibility JavaVersion.VERSION_17
		coreLibraryDesugaringEnabled true
	}
	sourceSets{
		githubRelease{
			setRoot "src/github"
		}
		debug {
			setRoot "src/debug"
		}
	}
	namespace 'org.joinmastodon.android'
	lint {
		abortOnError false
		checkReleaseBuilds false
	}

	buildFeatures {
		buildConfig true
	}
}

dependencies {
	api 'androidx.annotation:annotation:1.6.0'
	implementation 'com.squareup.okhttp3:okhttp:3.14.9'
	implementation 'me.grishka.litex:recyclerview:1.2.1.1'
	implementation 'me.grishka.litex:swiperefreshlayout:1.1.0.1'
	implementation 'me.grishka.litex:browser:1.4.0'
	implementation 'me.grishka.litex:dynamicanimation:1.1.0-alpha03'
	implementation 'me.grishka.litex:viewpager:1.0.0'
	implementation 'me.grishka.litex:viewpager2:1.0.0'
	implementation 'me.grishka.litex:palette:1.0.0'
	implementation 'me.grishka.appkit:appkit:1.2.16'
	implementation 'com.google.code.gson:gson:2.9.0'
	implementation 'org.jsoup:jsoup:1.14.3'
	implementation 'com.squareup:otto:1.3.8'
	implementation 'de.psdev:async-otto:1.0.3'
	implementation 'org.parceler:parceler-api:1.1.12'
	implementation 'com.github.bottom-software-foundation:bottom-java:2.1.0'
	annotationProcessor 'org.parceler:parceler:1.1.12'
	coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
	implementation 'org.unifiedpush.android:connector:3.0.2'

	androidTestImplementation 'androidx.test:core:1.5.0'
	androidTestImplementation 'androidx.test.ext:junit:1.1.5'
	androidTestImplementation 'androidx.test:runner:1.5.2'
	androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}
