plugins {
	id 'com.android.application'
}

def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
if (keystorePropertiesFile.exists()) {
	keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
	namespace 'com.libremobileos.facedetect'
	compileSdk 33

	defaultConfig {
		applicationId "com.libremobileos.facedetect"
		minSdk 29
		targetSdk 33
		versionCode 1
		versionName "1.0"
	}

	buildTypes {
		release {
			minifyEnabled false
			proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
		}
	}
	compileOptions {
		sourceCompatibility JavaVersion.VERSION_11
		targetCompatibility JavaVersion.VERSION_11
	}
	signingConfigs {
		debug {
			if (keystorePropertiesFile.exists()) {
				keyAlias keystoreProperties['keyAlias']
				keyPassword keystoreProperties['keyPassword']
				storeFile file("../" + keystoreProperties['storeFile'])
				storePassword keystoreProperties['storePassword']
			}
		}
	}
}

dependencies {
	implementation files('system_libs/android.hardware.biometrics.face-V1.0-java.jar')
	compileOnly files('system_libs/framework.jar')

	implementation(project(':FaceShared'))

	implementation "androidx.annotation:annotation:1.5.0"
	implementation "androidx.appcompat:appcompat:1.6.0"
	implementation "com.google.android.material:material:1.7.0"
	implementation "androidx.constraintlayout:constraintlayout:2.1.4"
	implementation "androidx.preference:preference:1.2.0"
}
