allprojects {
	repositories {
		mavenCentral()
		maven { url 'https://jitpack.io' }
		// needed for 'com.microsoft.device.display' required by 'com.microsoft.graph:microsoft-graph'
		exclusiveContent {
			forRepository {
				maven {
					url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1'
					name 'Duo-SDK-Feed'
				}
			}
			filter {
				// this repository *only* contains artifacts with group "com.microsoft.device.display"
				includeGroup "com.microsoft.device.display"
			}
		}
	}
}

ext {
	androidBuildToolsVersion = "30.0.3"
	androidMinSdkVersion = 26
	androidTargetSdkVersion = 31
	androidCompileSdkVersion = 31

	// android and java libs
	androidVersion = '4.1.1.4'
	multidexVersion = '2.0.1'
	javaxAnnotationVersion = '1.0'

	// support lib
	androidSupportAnnotationsVersion = '1.3.0'
	androidSupportAppcompatVersion = '1.4.1'
	androidMaterialDesignVersion = '1.6.0'

	coreDesugaringVersion = '1.1.5'

	// app frameworks and utilities

	rxJavaVersion = '2.2.21'
	rxAndroidVersion = '2.1.1'
	rxBindingVersion = '2.2.0'

	daggerVersion = '2.42'

	gsonVersion = '2.9.0'

	okHttpVersion = '4.9.3'
	okHttpDigestVersion = '2.7'

	velocityVersion = '2.3'

	timberVersion = '5.0.1'

	zxcvbnVersion = '1.7.0'

	scaleImageViewVersion = '3.10.0'

	lruFileCacheVersion = '1.2'

	// KEEP IN SYNC WITH GENERATOR VERSION IN root build.gradle
	greenDaoVersion = '3.3.0'

	// cloud provider libs
	cryptolibVersion = '2.0.2'

	dropboxVersion = '5.2.0'

	googleApiServicesVersion = 'v3-rev20220508-1.32.1'
	googlePlayServicesVersion = '19.2.0'
	googleClientVersion = '1.35.0' // keep in sync with https://github.com/SailReal/google-http-java-client
	/*
		update using https://github.com/SailReal/google-http-java-client with `mvn clean install`,
		copying `google-http-client-*.jar` and `google-http-client-android-*.jar` into the lib folder of this project
	 */
	trackingFreeGoogleCLientVersion = '1.41.8'

	msgraphVersion = '5.25.0'
	msgraphAuthVersion = '3.0.2'

	minIoVersion = '8.4.1'
	staxVersion = '1.2.0' // needed for minIO

	commonsCodecVersion = '1.15'

	recyclerViewFastScrollVersion = '2.0.1'

	// testing dependencies

	jUnitVersion = '5.8.2'
	assertJVersion = '1.7.1'
	mockitoVersion = '4.6.1'
	mockitoKotlinVersion = '4.0.0'
	hamcrestVersion = '1.3'
	dexmakerVersion = '1.0'
	espressoVersion = '3.4.0'
	testingSupportLibVersion = '0.1'
	runnerVersion = '1.4.0'
	rulesVersion = '1.4.0'
	contributionVersion = '3.4.0'
	uiautomatorVersion = '2.2.0'
	androidxTestJunitKtlnVersion = '1.1.3'

	androidxCoreVersion = '1.7.0'
	androidxFragmentVersion = '1.4.1'
	androidxViewpagerVersion = '1.0.0'
	androidxSwiperefreshVersion = '1.1.0'
	androidxPreferenceVersion = '1.2.0'
	androidxRecyclerViewVersion = '1.2.1'
	androidxDocumentfileVersion = '1.0.1'
	androidxBiometricVersion = '1.1.0'
	androidxTestCoreVersion = '1.4.0'
	androidxSplashscreenVersion = '1.0.0-rc01'

	jsonWebTokenApiVersion = '0.11.5'

	dependencies = [
			android               : "com.google.android:android:${androidVersion}",
			androidAnnotations    : "androidx.annotation:annotation:${androidSupportAnnotationsVersion}",
			appcompat             : "androidx.appcompat:appcompat:${androidSupportAppcompatVersion}",
			androidxBiometric     : "androidx.biometric:biometric:${androidxBiometricVersion}",
			androidxCore          : "androidx.core:core-ktx:${androidxCoreVersion}",
			androidxFragment      : "androidx.fragment:fragment-ktx:${androidxFragmentVersion}",
			androidxViewpager     : "androidx.viewpager:viewpager:${androidxViewpagerVersion}",
			androidxSwiperefresh  : "androidx.swiperefreshlayout:swiperefreshlayout:${androidxSwiperefreshVersion}",
			androidxPreference    : "androidx.preference:preference:${androidxPreferenceVersion}",
			documentFile          : "androidx.documentfile:documentfile:${androidxDocumentfileVersion}",
			recyclerView          : "androidx.recyclerview:recyclerview:${androidxRecyclerViewVersion}",
			androidxSplashscreen  : "androidx.core:core-splashscreen:${androidxSplashscreenVersion}",
			androidxTestCore      : "androidx.test:core:${androidxTestCoreVersion}",
			androidxTestJunitKtln : "androidx.test.ext:junit-ktx:${androidxTestJunitKtlnVersion}",
			commonsCodec          : "commons-codec:commons-codec:${commonsCodecVersion}",
			cryptolib             : "org.cryptomator:cryptolib:${cryptolibVersion}",
			dagger                : "com.google.dagger:dagger:${daggerVersion}",
			daggerCompiler        : "com.google.dagger:dagger-compiler:${daggerVersion}",
			design                : "com.google.android.material:material:${androidMaterialDesignVersion}",
			coreDesugaring        : "com.android.tools:desugar_jdk_libs:${coreDesugaringVersion}",
			dropbox               : "com.dropbox.core:dropbox-core-sdk:${dropboxVersion}",
			espresso              : "androidx.test.espresso:espresso-core:${espressoVersion}",
			googleApiClientAndroid: "com.google.api-client:google-api-client-android:${googleClientVersion}",
			googleApiServicesDrive: "com.google.apis:google-api-services-drive:${googleApiServicesVersion}",
			googlePlayServicesAuth: "com.google.android.gms:play-services-auth:${googlePlayServicesVersion}",
			trackingFreeGoogleCLient       : files("lib/google-http-client-${trackingFreeGoogleCLientVersion}.jar"),
			trackingFreeGoogleAndroidCLient: files("lib/google-http-client-android-${trackingFreeGoogleCLientVersion}.jar"),
			greenDao              : "org.greenrobot:greendao:${greenDaoVersion}",
			gson                  : "com.google.code.gson:gson:${gsonVersion}",
			hamcrest              : "org.hamcrest:hamcrest-all:${hamcrestVersion}",
			javaxAnnotation       : "javax.annotation:jsr250-api:${javaxAnnotationVersion}",
			junit                 : "org.junit.jupiter:junit-jupiter:${jUnitVersion}",
			junitApi              : "org.junit.jupiter:junit-jupiter-api:${jUnitVersion}",
			junitEngine           : "org.junit.jupiter:junit-jupiter-engine:${jUnitVersion}",
			junitParams           : "org.junit.jupiter:junit-jupiter-params:${jUnitVersion}",
			junit4Engine          : "org.junit.vintage:junit-vintage-engine:${jUnitVersion}",
			minIo                 : "io.minio:minio:${minIoVersion}",
			mockito               : "org.mockito:mockito-core:${mockitoVersion}",
			mockitoInline         : "org.mockito:mockito-inline:${mockitoVersion}",
			mockitoKotlin         : "org.mockito.kotlin:mockito-kotlin:${mockitoKotlinVersion}",
			msgraph               : "com.microsoft.graph:microsoft-graph:${msgraphVersion}",
			msgraphAuth           : "com.microsoft.identity.client:msal:${msgraphAuthVersion}",
			multidex              : "androidx.multidex:multidex:${multidexVersion}",
			okHttp                : "com.squareup.okhttp3:okhttp:${okHttpVersion}",
			okHttpDigest          : "io.github.rburgst:okhttp-digest:${okHttpDigestVersion}",
			recyclerViewFastScroll: "com.simplecityapps:recyclerview-fastscroll:${recyclerViewFastScrollVersion}",
			rxJava                : "io.reactivex.rxjava2:rxjava:${rxJavaVersion}",
			rxAndroid             : "io.reactivex.rxjava2:rxandroid:${rxAndroidVersion}",
			rxBinding             : "com.jakewharton.rxbinding2:rxbinding:${rxBindingVersion}",
			stax                  : "stax:stax:${staxVersion}",
			testingSupportLib     : "com.android.support.test:testing-support-lib:${testingSupportLibVersion}",
			timber                : "com.jakewharton.timber:timber:${timberVersion}",
			velocity              : "org.apache.velocity:velocity-engine-core:${velocityVersion}",
			runner                : "androidx.test:runner:${runnerVersion}",
			rules                 : "androidx.test:rules:${rulesVersion}",
			contribution          : "androidx.test.espresso:espresso-contrib:${contributionVersion}",
			uiAutomator           : "androidx.test.uiautomator:uiautomator:${uiautomatorVersion}",
			zxcvbn                : "com.nulab-inc:zxcvbn:${zxcvbnVersion}",
			scaleImageView        : "com.davemorrissey.labs:subsampling-scale-image-view:${scaleImageViewVersion}",
			lruFileCache          : "com.github.solkin:disk-lru-cache:${lruFileCacheVersion}",
			jsonWebTokenApi       : "io.jsonwebtoken:jjwt-api:${jsonWebTokenApiVersion}",
			jsonWebTokenImpl      : "io.jsonwebtoken:jjwt-impl:${jsonWebTokenApiVersion}",
			jsonWebTokenJson      : "io.jsonwebtoken:jjwt-orgjson:${jsonWebTokenApiVersion}"
	]

}
