2016-08-15 19:29:41 +00:00
|
|
|
apply plugin: 'com.android.application'
|
|
|
|
|
2019-09-07 19:17:32 +00:00
|
|
|
def getCmdOutput = { cmd ->
|
|
|
|
def stdout = new ByteArrayOutputStream()
|
|
|
|
exec {
|
|
|
|
commandLine cmd
|
|
|
|
standardOutput = stdout
|
|
|
|
}
|
|
|
|
return stdout.toString().trim()
|
|
|
|
}
|
|
|
|
|
|
|
|
def getGitHash = { -> return getCmdOutput(["git", "rev-parse", "--short", "HEAD"]) }
|
|
|
|
def getGitBranch = { -> return getCmdOutput(["git", "rev-parse", "--abbrev-ref", "HEAD"]) }
|
|
|
|
|
2016-08-15 19:29:41 +00:00
|
|
|
android {
|
2019-09-14 13:20:02 +00:00
|
|
|
compileSdkVersion 29
|
2016-08-15 19:29:41 +00:00
|
|
|
|
|
|
|
defaultConfig {
|
2019-02-07 21:39:33 +00:00
|
|
|
applicationId "com.beemdevelopment.aegis"
|
2016-11-13 17:00:13 +00:00
|
|
|
minSdkVersion 19
|
2019-09-14 13:20:02 +00:00
|
|
|
targetSdkVersion 29
|
2020-02-29 09:27:31 +00:00
|
|
|
versionCode 29
|
2020-01-22 19:42:22 +00:00
|
|
|
versionName "1.1.4"
|
2019-12-26 19:47:28 +00:00
|
|
|
multiDexEnabled true
|
2019-09-07 19:17:32 +00:00
|
|
|
buildConfigField "String", "GIT_HASH", "\"${getGitHash()}\""
|
|
|
|
buildConfigField "String", "GIT_BRANCH", "\"${getGitBranch()}\""
|
2016-08-15 19:29:41 +00:00
|
|
|
}
|
Introduce UUIDMap for storing objects that are keyed by a UUID
This patch introduces the new ``UUIDMap`` type, reducing code duplication and
making UUID lookups faster. We currently already use UUIDs as the identifier for
the ``DatabaseEntry`` and ``Slot`` types, but the way lookups by UUID work are
kind of ugly, as we simply iterate over the list until we find a match. As we're
probably going to have more types like this soon (groups and icons, for
example), I figured it'd be good to abstract this away into a separate type and
make it a map instead of a list.
The only thing that has gotten slower is the ``swap`` method. The internal
``LinkedHashMap`` retains insertion order with a linked list, but does not know
about the position of the values, so we basically have to copy the entire map to
simply swap two values. I don't think it's too big of a deal, because swap
operations still take less than a millisecond even with large vaults, but
suggestions for improving this are welcome.
I had to update gradle and JUnit to be able to use the new ``assertThrows``
assertion method, so this patch includes that as well.
2019-06-10 16:25:44 +00:00
|
|
|
|
2019-05-15 20:01:47 +00:00
|
|
|
lintOptions {
|
|
|
|
abortOnError true
|
|
|
|
disable "MissingTranslation"
|
|
|
|
}
|
|
|
|
|
Introduce UUIDMap for storing objects that are keyed by a UUID
This patch introduces the new ``UUIDMap`` type, reducing code duplication and
making UUID lookups faster. We currently already use UUIDs as the identifier for
the ``DatabaseEntry`` and ``Slot`` types, but the way lookups by UUID work are
kind of ugly, as we simply iterate over the list until we find a match. As we're
probably going to have more types like this soon (groups and icons, for
example), I figured it'd be good to abstract this away into a separate type and
make it a map instead of a list.
The only thing that has gotten slower is the ``swap`` method. The internal
``LinkedHashMap`` retains insertion order with a linked list, but does not know
about the position of the values, so we basically have to copy the entire map to
simply swap two values. I don't think it's too big of a deal, because swap
operations still take less than a millisecond even with large vaults, but
suggestions for improving this are welcome.
I had to update gradle and JUnit to be able to use the new ``assertThrows``
assertion method, so this patch includes that as well.
2019-06-10 16:25:44 +00:00
|
|
|
testOptions {
|
|
|
|
unitTests.all {
|
|
|
|
useJUnitPlatform()
|
2019-05-15 20:01:47 +00:00
|
|
|
|
|
|
|
ignoreFailures false
|
|
|
|
testLogging {
|
|
|
|
events "passed", "skipped", "failed", "standardOut", "standardError"
|
|
|
|
}
|
Introduce UUIDMap for storing objects that are keyed by a UUID
This patch introduces the new ``UUIDMap`` type, reducing code duplication and
making UUID lookups faster. We currently already use UUIDs as the identifier for
the ``DatabaseEntry`` and ``Slot`` types, but the way lookups by UUID work are
kind of ugly, as we simply iterate over the list until we find a match. As we're
probably going to have more types like this soon (groups and icons, for
example), I figured it'd be good to abstract this away into a separate type and
make it a map instead of a list.
The only thing that has gotten slower is the ``swap`` method. The internal
``LinkedHashMap`` retains insertion order with a linked list, but does not know
about the position of the values, so we basically have to copy the entire map to
simply swap two values. I don't think it's too big of a deal, because swap
operations still take less than a millisecond even with large vaults, but
suggestions for improving this are welcome.
I had to update gradle and JUnit to be able to use the new ``assertThrows``
assertion method, so this patch includes that as well.
2019-06-10 16:25:44 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-08-15 19:29:41 +00:00
|
|
|
buildTypes {
|
2017-12-12 11:25:55 +00:00
|
|
|
debug {
|
2017-12-13 21:19:43 +00:00
|
|
|
minifyEnabled false
|
2017-12-12 11:25:55 +00:00
|
|
|
applicationIdSuffix ".debug"
|
2019-06-19 12:19:49 +00:00
|
|
|
manifestPlaceholders = [title: "AegisDev", iconName: "ic_launcher_debug"]
|
|
|
|
resValue "bool", "pref_secure_screen_default", "false"
|
2017-12-12 11:25:55 +00:00
|
|
|
}
|
2016-08-15 19:29:41 +00:00
|
|
|
release {
|
|
|
|
minifyEnabled false
|
|
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
2019-06-19 12:19:49 +00:00
|
|
|
manifestPlaceholders = [title: "Aegis", iconName: "ic_launcher"]
|
|
|
|
resValue "bool", "pref_secure_screen_default", "true"
|
2016-08-15 19:29:41 +00:00
|
|
|
}
|
|
|
|
}
|
Introduce UUIDMap for storing objects that are keyed by a UUID
This patch introduces the new ``UUIDMap`` type, reducing code duplication and
making UUID lookups faster. We currently already use UUIDs as the identifier for
the ``DatabaseEntry`` and ``Slot`` types, but the way lookups by UUID work are
kind of ugly, as we simply iterate over the list until we find a match. As we're
probably going to have more types like this soon (groups and icons, for
example), I figured it'd be good to abstract this away into a separate type and
make it a map instead of a list.
The only thing that has gotten slower is the ``swap`` method. The internal
``LinkedHashMap`` retains insertion order with a linked list, but does not know
about the position of the values, so we basically have to copy the entire map to
simply swap two values. I don't think it's too big of a deal, because swap
operations still take less than a millisecond even with large vaults, but
suggestions for improving this are welcome.
I had to update gradle and JUnit to be able to use the new ``assertThrows``
assertion method, so this patch includes that as well.
2019-06-10 16:25:44 +00:00
|
|
|
|
2016-10-25 21:53:33 +00:00
|
|
|
compileOptions {
|
|
|
|
targetCompatibility 1.8
|
|
|
|
sourceCompatibility 1.8
|
|
|
|
}
|
2016-08-15 19:29:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2019-09-14 13:20:02 +00:00
|
|
|
def libsuVersion = '2.5.1'
|
2018-05-08 17:31:47 +00:00
|
|
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
|
|
|
implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
|
2019-09-14 13:20:02 +00:00
|
|
|
implementation 'androidx.appcompat:appcompat:1.1.0'
|
2019-12-26 12:23:00 +00:00
|
|
|
implementation "androidx.biometric:biometric:1.0.1"
|
2018-09-25 14:26:57 +00:00
|
|
|
implementation 'androidx.cardview:cardview:1.0.0'
|
2019-09-14 13:20:02 +00:00
|
|
|
implementation 'androidx.preference:preference:1.1.0'
|
2018-09-25 14:26:57 +00:00
|
|
|
implementation 'com.google.android.material:material:1.0.0'
|
2019-12-26 12:23:00 +00:00
|
|
|
implementation 'androidx.recyclerview:recyclerview:1.1.0'
|
2019-12-26 19:47:28 +00:00
|
|
|
implementation 'com.google.guava:guava:28.2-android'
|
2018-05-08 17:31:47 +00:00
|
|
|
implementation 'com.getbase:floatingactionbutton:1.10.1'
|
2019-09-14 13:20:02 +00:00
|
|
|
implementation 'com.github.apl-devs:appintro:5.1.0'
|
2019-05-15 19:56:14 +00:00
|
|
|
implementation 'com.github.avito-tech:krop:0.44'
|
2018-09-12 18:04:59 +00:00
|
|
|
implementation 'com.madgag.spongycastle:core:1.58.0.0'
|
2019-09-14 13:20:02 +00:00
|
|
|
implementation 'de.hdodenhof:circleimageview:3.0.1'
|
|
|
|
implementation 'me.dm7.barcodescanner:zxing:1.9.8'
|
2019-03-23 19:48:02 +00:00
|
|
|
implementation "com.github.topjohnwu.libsu:core:${libsuVersion}"
|
|
|
|
implementation "com.github.topjohnwu.libsu:io:${libsuVersion}"
|
2019-12-26 12:23:00 +00:00
|
|
|
implementation 'com.github.bumptech.glide:annotations:4.10.0'
|
|
|
|
implementation 'com.github.bumptech.glide:glide:4.10.0'
|
2019-09-04 22:24:33 +00:00
|
|
|
implementation "com.mikepenz:iconics-core:3.2.5"
|
|
|
|
implementation 'com.mikepenz:material-design-iconic-typeface:2.2.0.5@aar'
|
|
|
|
implementation 'de.psdev.licensesdialog:licensesdialog:2.1.0'
|
|
|
|
implementation("com.github.bumptech.glide:recyclerview-integration:4.9.0") {
|
2019-06-23 08:18:10 +00:00
|
|
|
transitive = false
|
|
|
|
}
|
2020-03-12 17:34:17 +00:00
|
|
|
implementation 'net.zetetic:android-database-sqlcipher:4.3.0'
|
2019-06-23 08:18:10 +00:00
|
|
|
annotationProcessor 'androidx.annotation:annotation:1.1.0'
|
2019-12-26 12:23:00 +00:00
|
|
|
annotationProcessor 'com.github.bumptech.glide:compiler:4.10.0'
|
2019-09-14 13:20:02 +00:00
|
|
|
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.5.2'
|
2019-12-26 19:47:28 +00:00
|
|
|
testImplementation 'com.google.guava:guava:28.2-jre"'
|
2019-09-14 13:20:02 +00:00
|
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.5.2'
|
|
|
|
}
|