import: make it work most of the time with git repos

This includes real tests too.
This commit is contained in:
Hans-Christoph Steiner 2020-01-31 23:49:50 +01:00
parent e049a120f8
commit bfe587979d
28 changed files with 1184 additions and 42 deletions

View file

@ -0,0 +1,2 @@
configurations.maybeCreate("default")
artifacts.add("default", file('avenginekit.aar'))

View file

@ -0,0 +1,41 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven {
url "http://developer.huawei.com/repo/"
}
maven { url 'https://jitpack.io' }
maven { url 'https://dl.bintray.com/jenly/maven' }
}
configurations {
all {
resolutionStrategy {
//force "android.arch.lifecycle:runtime:1.1.1"
}
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}

View file

@ -0,0 +1,115 @@
apply plugin: 'com.android.application'
android {
signingConfigs {
wfc {
keyAlias 'wfc'
keyPassword 'wildfirechat'
storeFile file('../wfc.keystore')
storePassword 'wildfirechat'
}
}
compileSdkVersion 28
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
defaultConfig {
applicationId "cn.wildfirechat.chat"
minSdkVersion 16
targetSdkVersion 28 //targetversion大于23时使fileprovider
versionCode 23
versionName "0.6.9"
multiDexEnabled true
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath true
}
}
signingConfig signingConfigs.wfc
// buildConfigField("String", "BuglyId", '"34490ba79f"')
ndk {
abiFilters "armeabi-v7a", 'x86', 'x86_64' // 'armeabi', 'arm64-v8a', 'x86', 'x86_64'
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.wfc
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.wfc
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
lintOptions {
abortOnError false
}
sourceSets {
main {
// wfc kit start
jniLibs.srcDirs += ['libs', 'kit/libs']
res.srcDirs += ['kit/src/main/res', 'kit/src/main/res-av']
assets.srcDirs += ['kit/src/main/assets']
java.srcDirs += ['kit/src/main/java']
// wfc kit end
}
}
productFlavors {
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files('libs/TencentLocationSDK_v4.9.7.12_r247861_161205_1104.jar')
implementation files('libs/TencentMapSDK_Raster_v_1.2.7_51ae0e7.jar')
implementation files('libs/TencentSearch1.1.3.jar')
implementation 'com.tencent.bugly:crashreport:2.8.6.0'
implementation 'com.tencent.bugly:nativecrashreport:3.6.0.1'
implementation 'com.lqr.adapter:library:1.0.2'
implementation 'com.jaeger.statusbaruitl:library:1.3.5'
implementation project(':push')
// wfc kit start
implementation fileTree(include: ['*.jar'], dir: 'kit/libs')
implementation 'androidx.appcompat:appcompat:1.1.0-beta01'
implementation 'com.google.android.material:material:1.1.0-alpha10'
implementation 'cjt.library.wheel:camera:1.1.9'
implementation 'com.kyleduo.switchbutton:library:1.4.4'
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
implementation 'com.squareup.okio:okio:1.14.0'
implementation 'com.jakewharton:butterknife:10.2.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0'
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
implementation 'com.github.chrisbanes:PhotoView:2.3.0'
implementation 'org.webrtc:google-webrtc:1.0.21929'
implementation 'com.afollestad.material-dialogs:core:0.9.6.0'
implementation 'q.rorbin:badgeview:1.1.3'
implementation 'com.google.code.gson:gson:2.8.5'
// ViewModel and LiveData
def lifecycle_version = '2.2.0-alpha05'
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
implementation project(':client')
implementation project(':avenginekit')
implementation project(':emojilibrary')
implementation project(':imagepicker')
implementation 'com.king.zxing:zxing-lite:1.1.1'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0'
// kit wfc end
}

View file

@ -0,0 +1,57 @@
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
group = 'com.github.wildfirechat'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
// testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ndk {
// TODO: changes this for your application if needed
moduleName = "mmnet"
//abiFilter "armeabi" //armeabi架构armeabi-v7a可以兼容armeabi架构
abiFilter "armeabi-v7a"
abiFilter "arm64-v8a"
abiFilter "x86"
abiFilter "x86_64"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
lintOptions {
abortOnError false
}
compileOptions {
targetCompatibility 1.8
sourceCompatibility 1.8
}
}
dependencies {
api project(':mars-core-release')
def lifecycle_version = '2.0.0-beta01'
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
}

View file

@ -0,0 +1,26 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.wildfirechat.client">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<application>
<service
android:name="cn.wildfirechat.client.ClientService"
android:process=":marsservice" />
<receiver
android:name="com.tencent.mars.BaseEvent$ConnectionReceiver"
android:process=":marsservice" />
<!--must run in th main process-->
<receiver android:name="cn.wildfirechat.remote.RecoverReceiver" />
</application>
</manifest>

View file

@ -0,0 +1,34 @@
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
android {
lintOptions {
abortOnError false
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
}

View file

@ -0,0 +1,42 @@
def checkExecResult(execResult) {
if (execResult) {
if (execResult.getExitValue() != 0) {
throw new GradleException('Non-zero exit value: ' + execResult.getExitValue())
}
} else {
throw new GradleException('Returned a null execResult object')
}
}
task buildLibrariesForAndroid(type: Exec) {
workingDir '../'
def sdkDir = System.env.ANDROID_HOME
def ndkDir = System.env.ANDROID_NDK_HOME
if (rootProject.file("local.properties").exists()) {
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
sdkDir = properties.getProperty('sdk.dir')
ndkDir = properties.getProperty('ndk.dir')
}
def path = System.env.PATH
def envMap = [
'ANDROID_HOME' : sdkDir,
'ANDROID_NDK_HOME': ndkDir,
'_ARCH_' : 'armeabi',
'PATH' : ndkDir,
]
environment envMap
print envMap
commandLine 'python', 'build_android.py', '2', 'armeabi'
doLast {
checkExecResult(execResult)
}
}

View file

@ -0,0 +1,30 @@
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
abortOnError false
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
implementation 'com.github.chrisbanes.photoview:library:1.2.4'
implementation 'com.github.bumptech.glide:glide:4.8.0'
}

View file

@ -0,0 +1,2 @@
configurations.maybeCreate("default")
artifacts.add("default", file('mars-core-release.aar'))

View file

@ -0,0 +1,55 @@
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
manifestPlaceholders = [
MI_APP_ID : "2882303761517722456",
MI_APP_KEY : "5731772292456",
HMS_APP_ID : "100221325",
MEIZU_APP_ID : "113616",
MEIZU_APP_KEY: "fcd886f51c144b45b87a67a28e2934d1",
VIVO_APP_ID : "12918",
VIVO_APP_KEY : "c42feb05-de6c-427d-af55-4f902d9e0a75"
]
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.huawei.android.hms:push:2.5.3.305'
implementation 'com.huawei.android.hms:base:2.5.3.305'
implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
implementation project(':client')
implementation 'com.meizu.flyme.internet:push-internal:3.4.2@aar'
def lifecycle_version = '2.2.0-alpha05'
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
}

View file

@ -0,0 +1,7 @@
include ':client',
':push',
':chat',
':mars-core-release',
':emojilibrary',
':imagepicker',
':avenginekit'

View file

@ -0,0 +1,76 @@
/*
* Copyright 2015-2017 Hayai Software
* Copyright 2018 The KeikaiLauncher Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
plugins {
id 'com.android.application'
id 'pl.allegro.tech.build.axion-release' version '1.8.1'
}
scmVersion {
tag {
prefix = ''
}
}
/**
* Takes version {@code major.minor.patch[-suffix]} and returns numeric versionCode based on it
* Example: {@code 1.2.3-SNAPSHOT} will return {@code 1002003}
*/
static int versionCode(String versionName) {
def matcher = (versionName =~ /(\d+)\.(\d+)\.(\d+).*/)
return matcher.matches() ?
matcher.collect { version, major, minor, patch ->
major.toInteger() * 10000 + minor.toInteger() * 100 + patch.toInteger()
}.head() :
-1
}
def androidVersion = [
name: scmVersion.version,
code: versionCode(scmVersion.version),
]
android {
compileSdkVersion 28
defaultConfig {
applicationId 'com.anpmech.launcher'
minSdkVersion 15
targetSdkVersion 28
versionName androidVersion.name
versionCode androidVersion.code
}
lintOptions {
abortOnError false
}
buildTypes {
all {
buildConfigField("String", "GITHUB_USER", "\"KeikaiLauncher\"")
buildConfigField("String", "GITHUB_PROJECT", "\"KeikaiLauncher\"")
}
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.txt'
}
debug {
versionNameSuffix "-debug"
}
}
dependencies {
implementation 'com.android.support:support-annotations:28.0.0'
}
}
dependencies {
}

View file

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright 2015-2017 Hayai Software
~ Copyright 2018 The KeikaiLauncher Project
~
~ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
~ in compliance with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software distributed under the
~ License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND
~ either express or implied. See the License for the specific language governing permissions and
~ limitations under the License.
-->
<manifest package="com.anpmech.launcher"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<!--
~ This permission completely optional and set in the system settings menus. The following
~ declares intention to use, if available and granted.
-->
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:resizeableActivity="true"
android:theme="@style/AppBaseTheme"
tools:ignore="AllowBackup,GoogleAppIndexingWarning"
tools:targetApi="n">
<activity
android:name="com.anpmech.launcher.activities.SearchActivity"
android:alwaysRetainTaskState="true"
android:label="@string/title_activity_search"
android:launchMode="singleTask"
android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<action android:name="android.intent.action.ASSIST"/>
<category android:name="android.intent.category.LAUNCHER"/>
<category android:name="android.intent.category.HOME"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity
android:name="com.anpmech.launcher.activities.SettingsActivity"
android:label="@string/title_activity_settings"
android:theme="@style/AppSettingsTheme"/>
<activity
android:name=".activities.AboutActivity"
android:label="@string/about_header"
android:theme="@android:style/Theme.DeviceDefault.Light.Dialog"/>
<receiver
android:name=".monitor.PackageChangedReceiver"
android:enabled="false"/>
</application>
</manifest>

View file

@ -0,0 +1,45 @@
/*
* Copyright 2015-2017 Hayai Software
* Copyright 2018 The KeikaiLauncher Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
}
allprojects {
repositories {
jcenter()
google()
}
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.owasp:dependency-check-gradle:5.2.4'
}
}
apply plugin: 'org.owasp.dependencycheck'
dependencyCheck {
format='JSON'
}

View file

@ -0,0 +1,16 @@
/*
* Copyright 2015-2017 Hayai Software
* Copyright 2018 The KeikaiLauncher Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
include ':app'

View file

@ -0,0 +1,225 @@
import com.android.build.gradle.api.ApplicationVariant
plugins {
id("com.android.application")
id("checkstyle")
id("io.fabric")
id("com.cookpad.android.licensetools")
kotlin("android")
}
repositories {
jcenter()
google()
maven(url = "https://jitpack.io")
}
android {
bundle {
language {
enableSplit = false
}
}
dexOptions {
javaMaxHeapSize = "2g"
}
lintOptions {
setLintConfig(file("lint.xml"))
textOutput("stdout")
textReport = true
}
compileSdkVersion(Versions.targetSdk)
defaultConfig {
testApplicationId = "org.tasks.test"
applicationId = "org.tasks"
versionCode = 651
versionName = "7.6.1"
targetSdkVersion(Versions.targetSdk)
minSdkVersion(Versions.minSdk)
multiDexEnabled = true
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
javaCompileOptions {
annotationProcessorOptions {
arguments["room.schemaLocation"] = "$projectDir/schemas"
}
}
}
signingConfigs {
create("release") {
val tasksKeyAlias: String? by project
val tasksStoreFile: String? by project
val tasksStorePassword: String? by project
val tasksKeyPassword: String? by project
keyAlias = tasksKeyAlias
storeFile = file(tasksStoreFile?: "none")
storePassword = tasksStorePassword
keyPassword = tasksKeyPassword
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
@Suppress("LocalVariableName")
buildTypes {
getByName("debug") {
val tasks_mapbox_key_debug: String? by project
val tasks_google_key_debug: String? by project
applicationIdSuffix = ".debug"
resValue("string", "mapbox_key", tasks_mapbox_key_debug ?: "")
resValue("string", "google_key", tasks_google_key_debug ?: "")
isTestCoverageEnabled = true
}
getByName("release") {
val tasks_mapbox_key: String? by project
val tasks_google_key: String? by project
resValue("string", "mapbox_key", tasks_mapbox_key ?: "")
resValue("string", "google_key", tasks_google_key ?: "")
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard.pro")
signingConfig = signingConfigs.getByName("release")
}
}
applicationVariants.all(object : Action<ApplicationVariant> {
override fun execute(variant: ApplicationVariant) {
variant.resValue("string", "app_package", variant.applicationId)
}
})
flavorDimensions("store")
productFlavors {
create("generic") {
setDimension("store")
proguardFile("generic.pro")
}
create("googleplay") {
setDimension("store")
}
create("amazon") {
setDimension("store")
}
}
viewBinding {
isEnabled = true
}
dataBinding {
isEnabled = true
}
packagingOptions {
exclude("META-INF/*.kotlin_module")
}
}
configure<CheckstyleExtension> {
configFile = project.file("google_checks.xml")
toolVersion = "8.16"
}
configurations.all {
exclude(group = "com.google.guava", module = "guava-jdk5")
exclude(group = "org.apache.httpcomponents", module = "httpclient")
exclude(group = "com.google.http-client", module = "google-http-client-apache")
resolutionStrategy {
force("com.squareup.okhttp3:okhttp:" + Versions.okhttp)
}
}
val googleplayImplementation by configurations
val amazonImplementation by configurations
dependencies {
implementation("com.gitlab.bitfireAT:dav4jvm:1.0")
implementation("com.gitlab.bitfireAT:ical4android:be6d515db8") {
exclude(group = "org.threeten", module = "threetenbp")
}
implementation("com.gitlab.bitfireAT:cert4android:1488e39a66")
annotationProcessor("com.google.dagger:dagger-compiler:${Versions.dagger}")
implementation("com.google.dagger:dagger:${Versions.dagger}")
implementation("androidx.room:room-rxjava2:${Versions.room}")
annotationProcessor("androidx.room:room-compiler:${Versions.room}")
implementation("androidx.lifecycle:lifecycle-extensions:2.1.0")
implementation("io.reactivex.rxjava2:rxandroid:2.1.1")
implementation("androidx.paging:paging-runtime:2.1.1")
annotationProcessor("com.jakewharton:butterknife-compiler:${Versions.butterknife}")
implementation("com.jakewharton:butterknife:${Versions.butterknife}")
debugImplementation("com.facebook.flipper:flipper:${Versions.flipper}")
debugImplementation("com.facebook.flipper:flipper-network-plugin:${Versions.flipper}")
debugImplementation("com.facebook.soloader:soloader:0.8.0")
debugImplementation("com.squareup.leakcanary:leakcanary-android:${Versions.leakcanary}")
implementation("org.jetbrains.kotlin:kotlin-stdlib:${Versions.kotlin}")
implementation("io.github.luizgrp.sectionedrecyclerviewadapter:sectionedrecyclerviewadapter:2.0.0")
implementation("androidx.multidex:multidex:2.0.1")
implementation("me.saket:better-link-movement-method:2.2.0")
implementation("com.squareup.okhttp3:okhttp:${Versions.okhttp}")
implementation("com.google.code.gson:gson:2.8.5")
implementation("com.github.rey5137:material:1.2.5")
implementation("com.nononsenseapps:filepicker:4.2.1")
implementation("com.google.android.material:material:1.1.0-rc01")
implementation("androidx.annotation:annotation:1.1.0")
implementation("androidx.constraintlayout:constraintlayout:2.0.0-beta4")
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0")
implementation("com.jakewharton.timber:timber:4.7.1")
implementation("com.jakewharton.threetenabp:threetenabp:1.2.1")
implementation("com.google.guava:guava:27.1-android")
implementation("com.jakewharton:process-phoenix:2.0.0")
implementation("com.google.android.apps.dashclock:dashclock-api:2.0.0")
implementation("com.twofortyfouram:android-plugin-api-for-locale:1.0.2")
implementation("com.rubiconproject.oss:jchronic:0.2.6") {
isTransitive = false
}
implementation("org.scala-saddle:google-rfc-2445:20110304") {
isTransitive = false
}
implementation("com.wdullaer:materialdatetimepicker:4.0.1")
implementation("me.leolin:ShortcutBadger:1.1.22@aar")
implementation("com.google.apis:google-api-services-tasks:v1-rev59-1.25.0")
implementation("com.google.apis:google-api-services-drive:v3-rev188-1.25.0")
implementation("com.google.api-client:google-api-client-android:1.30.7")
implementation("androidx.work:work-runtime:${Versions.work}")
implementation("com.mapbox.mapboxsdk:mapbox-android-sdk:7.3.0")
implementation("com.mapbox.mapboxsdk:mapbox-sdk-services:4.6.0")
googleplayImplementation("com.crashlytics.sdk.android:crashlytics:${Versions.crashlytics}")
googleplayImplementation("com.google.firebase:firebase-analytics:${Versions.firebase}")
googleplayImplementation("com.google.android.gms:play-services-location:17.0.0")
googleplayImplementation("com.google.android.gms:play-services-maps:17.0.0")
googleplayImplementation("com.google.android.libraries.places:places:2.1.0")
googleplayImplementation("com.android.billingclient:billing:1.2.2")
amazonImplementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
amazonImplementation("com.crashlytics.sdk.android:crashlytics:${Versions.crashlytics}")
amazonImplementation("com.google.firebase:firebase-core:${Versions.firebase}")
androidTestAnnotationProcessor("com.google.dagger:dagger-compiler:${Versions.dagger}")
androidTestAnnotationProcessor("com.jakewharton:butterknife-compiler:${Versions.butterknife}")
androidTestImplementation("com.google.dexmaker:dexmaker-mockito:1.2")
androidTestImplementation("com.natpryce:make-it-easy:4.0.1")
androidTestImplementation("androidx.test:runner:1.2.0")
androidTestImplementation("androidx.test:rules:1.2.0")
androidTestImplementation("androidx.test.ext:junit:1.1.1")
androidTestImplementation("androidx.annotation:annotation:1.1.0")
}
apply(mapOf("plugin" to "com.google.gms.google-services"))

View file

@ -0,0 +1,13 @@
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.owasp:dependency-check-gradle:1.3.2.1'
}
}
apply plugin: 'org.owasp.dependencycheck'
dependencyCheck {
format='JSON'
}

View file

@ -0,0 +1,26 @@
buildscript {
repositories {
jcenter()
google()
maven("https://maven.fabric.io/public")
}
dependencies {
classpath("com.android.tools.build:gradle:3.6.0-rc01")
classpath("com.google.gms:google-services:4.3.3")
// https://docs.fabric.io/android/changelog.html#fabric-gradle-plugin
classpath("io.fabric.tools:gradle:1.31.2")
classpath("com.github.ben-manes:gradle-versions-plugin:0.27.0")
classpath("com.cookpad.android.licensetools:license-tools-plugin:1.7.0")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}")
}
}
plugins {
id("com.github.ben-manes.versions") version "0.21.0"
}
tasks.getByName<Wrapper>("wrapper") {
gradleVersion = "5.6.4"
distributionType = Wrapper.DistributionType.ALL
}

View file

@ -0,0 +1,7 @@
plugins {
`kotlin-dsl`
}
repositories {
jcenter()
}

View file

@ -0,0 +1 @@
include(":app")

View file

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ut.ewh.audiometrytest"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="ut.ewh.audiometrytest.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="ut.ewh.audiometrytest.PreTestInformation"
android:label="@string/title_activity_pre_test_information"
android:screenOrientation="portrait"
android:parentActivityName="ut.ewh.audiometrytest.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="ut.ewh.audiometrytest.MainActivity" />
</activity>
<activity
android:name="ut.ewh.audiometrytest.TestProctoring"
android:label="@string/title_activity_test_proctoring"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="ut.ewh.audiometrytest.TestComplete"
android:label="@string/title_activity_test_complete"
android:screenOrientation="portrait"
android:parentActivityName="ut.ewh.audiometrytest.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="ut.ewh.audiometrytest.MainActivity" />
</activity>
<activity
android:name="ut.ewh.audiometrytest.ExportData"
android:label="@string/title_activity_export_data"
android:parentActivityName="ut.ewh.audiometrytest.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="ut.ewh.audiometrytest.MainActivity" />
</activity>
<activity
android:name="ut.ewh.audiometrytest.Pre_Calibration"
android:label="@string/title_activity_pre__calibration"
android:screenOrientation="portrait"
android:parentActivityName="ut.ewh.audiometrytest.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="ut.ewh.audiometrytest.MainActivity" />
</activity>
<activity
android:name="ut.ewh.audiometrytest.Calibration"
android:label="@string/title_activity_calibration"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="ut.ewh.audiometrytest.ExportComplete"
android:label="@string/title_activity_export_complete"
android:screenOrientation="portrait"
android:parentActivityName="ut.ewh.audiometrytest.ExportData" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="ut.ewh.audiometrytest.ExportData" />
</activity>
<activity
android:name="ut.ewh.audiometrytest.CalibrationComplete"
android:label="@string/title_activity_calibration_complete"
android:screenOrientation="portrait"
android:parentActivityName="ut.ewh.audiometrytest.Pre_Calibration" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="ut.ewh.audiometrytest.Pre_Calibration" />
</activity>
<activity
android:name="ut.ewh.audiometrytest.Acknowledgements"
android:label="@string/title_activity_acknowledgements"
android:screenOrientation="portrait"
android:parentActivityName="ut.ewh.audiometrytest.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="ut.ewh.audiometrytest.MainActivity" />
</activity>
<activity
android:name="ut.ewh.audiometrytest.ExportError"
android:label="@string/title_activity_export_error"
android:parentActivityName="ut.ewh.audiometrytest.ExportData" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="ut.ewh.audiometrytest.ExportData" />
</activity>
<activity
android:name="ut.ewh.audiometrytest.TestLookup"
android:label="@string/title_activity_test_lookup"
android:parentActivityName="ut.ewh.audiometrytest.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="MainActivity" />
</activity>
<activity
android:name="ut.ewh.audiometrytest.TestData"
android:label="@string/title_activity_test_data"
android:parentActivityName="ut.ewh.audiometrytest.TestLookup">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="TestLookup" />
</activity>
</application>
</manifest>

View file

@ -0,0 +1,29 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0-rc4'
}
}
allprojects {
repositories {
mavenCentral()
}
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.owasp:dependency-check-gradle:1.3.2.1'
}
}
apply plugin: 'org.owasp.dependencycheck'
dependencyCheck {
format='JSON'
}

View file

@ -0,0 +1 @@
include ':app'