First version bumps for Android 12
This commit is contained in:
parent
b029b0b029
commit
7f4b565d2a
41 changed files with 130 additions and 136 deletions
|
@ -1,13 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="RunConfigurationProducerService">
|
|
||||||
<option name="ignoredProducers">
|
|
||||||
<set>
|
|
||||||
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
|
|
||||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
|
|
||||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
|
|
||||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
|
|
||||||
</set>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
|
@ -27,6 +27,7 @@ android_app {
|
||||||
"kotlin-stdlib-jdk8",
|
"kotlin-stdlib-jdk8",
|
||||||
"androidx.core_core-ktx",
|
"androidx.core_core-ktx",
|
||||||
"androidx.preference_preference",
|
"androidx.preference_preference",
|
||||||
|
"androidx.documentfile_documentfile",
|
||||||
"androidx.lifecycle_lifecycle-viewmodel-ktx",
|
"androidx.lifecycle_lifecycle-viewmodel-ktx",
|
||||||
"androidx.lifecycle_lifecycle-livedata-ktx",
|
"androidx.lifecycle_lifecycle-livedata-ktx",
|
||||||
"androidx-constraintlayout_constraintlayout",
|
"androidx-constraintlayout_constraintlayout",
|
||||||
|
@ -37,9 +38,8 @@ android_app {
|
||||||
"androidx.room_room-runtime",
|
"androidx.room_room-runtime",
|
||||||
"libprotobuf-java-lite",
|
"libprotobuf-java-lite",
|
||||||
// koin
|
// koin
|
||||||
"seedvault-lib-koin-core", // did not manage to add this as transitive dependency
|
"seedvault-lib-koin-core-jvm", // did not manage to add this as transitive dependency
|
||||||
"seedvault-lib-koin-android",
|
"seedvault-lib-koin-android",
|
||||||
"seedvault-lib-koin-androidx-viewmodel",
|
|
||||||
// bip39
|
// bip39
|
||||||
"seedvault-lib-kotlin-bip39",
|
"seedvault-lib-kotlin-bip39",
|
||||||
],
|
],
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
import groovy.xml.XmlUtil
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id "com.android.application"
|
id "com.android.application"
|
||||||
id "kotlin-android"
|
id "kotlin-android"
|
||||||
id "org.jlleitschuh.gradle.ktlint" version "9.4.0"
|
id "org.jlleitschuh.gradle.ktlint" version "10.2.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
def gitDescribe = { ->
|
def gitDescribe = { ->
|
||||||
|
@ -34,7 +32,9 @@ android {
|
||||||
}
|
}
|
||||||
|
|
||||||
lintOptions {
|
lintOptions {
|
||||||
disable "CheckedExceptions"
|
disable "DialogFragmentCallbacksDetector",
|
||||||
|
"InvalidFragmentVersionForActivityResult",
|
||||||
|
"CheckedExceptions"
|
||||||
abortOnError true
|
abortOnError true
|
||||||
}
|
}
|
||||||
compileOptions {
|
compileOptions {
|
||||||
|
@ -43,7 +43,7 @@ android {
|
||||||
}
|
}
|
||||||
kotlinOptions {
|
kotlinOptions {
|
||||||
jvmTarget = JavaVersion.VERSION_1_8.toString()
|
jvmTarget = JavaVersion.VERSION_1_8.toString()
|
||||||
languageVersion = "1.3"
|
languageVersion = "1.4"
|
||||||
}
|
}
|
||||||
testOptions {
|
testOptions {
|
||||||
unitTests.all {
|
unitTests.all {
|
||||||
|
@ -98,6 +98,7 @@ dependencies {
|
||||||
implementation rootProject.ext.std_libs.androidx_core
|
implementation rootProject.ext.std_libs.androidx_core
|
||||||
// A newer version gets pulled in with AOSP via core, so we include fragment here explicitly
|
// A newer version gets pulled in with AOSP via core, so we include fragment here explicitly
|
||||||
implementation rootProject.ext.std_libs.androidx_fragment
|
implementation rootProject.ext.std_libs.androidx_fragment
|
||||||
|
implementation rootProject.ext.std_libs.androidx_activity
|
||||||
implementation rootProject.ext.std_libs.androidx_preference
|
implementation rootProject.ext.std_libs.androidx_preference
|
||||||
implementation rootProject.ext.std_libs.androidx_lifecycle_viewmodel_ktx
|
implementation rootProject.ext.std_libs.androidx_lifecycle_viewmodel_ktx
|
||||||
implementation rootProject.ext.std_libs.androidx_lifecycle_livedata_ktx
|
implementation rootProject.ext.std_libs.androidx_lifecycle_livedata_ktx
|
||||||
|
@ -119,12 +120,15 @@ dependencies {
|
||||||
* If the dependencies below are updated,
|
* If the dependencies below are updated,
|
||||||
* please make sure to update the prebuilt libraries and the Android.bp files
|
* please make sure to update the prebuilt libraries and the Android.bp files
|
||||||
* in the top-level `libs` folder to reflect that.
|
* in the top-level `libs` folder to reflect that.
|
||||||
* You can copy these libraries from ~/.gradle/caches/modules-2
|
* You can copy these libraries from ~/.gradle/caches/modules-2/files-2.1
|
||||||
*/
|
*/
|
||||||
// later versions than 2.1.1 require newer kotlin version
|
// later versions than 2.1.1 require newer kotlin version
|
||||||
|
// implementation "io.insert-koin:koin-core-jvm:3.1.2"
|
||||||
|
// implementation "io.insert-koin:koin-android:3.1.2"
|
||||||
implementation fileTree(include: ['*.jar'], dir: "${rootProject.rootDir}/libs/koin-android")
|
implementation fileTree(include: ['*.jar'], dir: "${rootProject.rootDir}/libs/koin-android")
|
||||||
implementation fileTree(include: ['*.aar'], dir: "${rootProject.rootDir}/libs/koin-android")
|
implementation fileTree(include: ['*.aar'], dir: "${rootProject.rootDir}/libs/koin-android")
|
||||||
|
|
||||||
|
// implementation "cash.z.ecc.android:kotlin-bip39:1.0.2"
|
||||||
implementation fileTree(include: ['kotlin-bip39-1.0.2.jar'], dir: "${rootProject.rootDir}/libs")
|
implementation fileTree(include: ['kotlin-bip39-1.0.2.jar'], dir: "${rootProject.rootDir}/libs")
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -134,7 +138,7 @@ dependencies {
|
||||||
|
|
||||||
// anything less than 'implementation' fails tests run with gradlew
|
// anything less than 'implementation' fails tests run with gradlew
|
||||||
testImplementation rootProject.ext.aosp_libs
|
testImplementation rootProject.ext.aosp_libs
|
||||||
testImplementation 'androidx.test.ext:junit:1.1.2'
|
testImplementation 'androidx.test.ext:junit:1.1.3'
|
||||||
testImplementation('org.robolectric:robolectric:4.3.1') { // 4.4 has issue with non-idle Looper
|
testImplementation('org.robolectric:robolectric:4.3.1') { // 4.4 has issue with non-idle Looper
|
||||||
// https://github.com/robolectric/robolectric/issues/5245
|
// https://github.com/robolectric/robolectric/issues/5245
|
||||||
exclude group: "com.google.auto.service", module: "auto-service"
|
exclude group: "com.google.auto.service", module: "auto-service"
|
||||||
|
@ -146,9 +150,9 @@ dependencies {
|
||||||
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit5_version"
|
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit5_version"
|
||||||
testRuntimeOnly "org.junit.vintage:junit-vintage-engine:$junit5_version"
|
testRuntimeOnly "org.junit.vintage:junit-vintage-engine:$junit5_version"
|
||||||
|
|
||||||
androidTestImplementation 'androidx.test:runner:1.3.0'
|
androidTestImplementation 'androidx.test:runner:1.4.0'
|
||||||
androidTestImplementation 'androidx.test:rules:1.3.0'
|
androidTestImplementation 'androidx.test:rules:1.4.0'
|
||||||
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
|
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
||||||
androidTestImplementation "io.mockk:mockk-android:$mockk_version"
|
androidTestImplementation "io.mockk:mockk-android:$mockk_version"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -163,30 +167,6 @@ gradle.projectsEvaluated {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// http://www.31mins.com/android-studio-build-system-application/
|
|
||||||
preBuild.doLast {
|
|
||||||
def imlFile = file(project.name + ".iml")
|
|
||||||
|
|
||||||
try {
|
|
||||||
def parsedXml = (new XmlParser()).parse(imlFile)
|
|
||||||
def jdkNode = parsedXml.component[1].orderEntry.find { it.'@type' == 'jdk' }
|
|
||||||
parsedXml.component[1].remove(jdkNode)
|
|
||||||
|
|
||||||
def apiString = android.compileSdkVersion.substring("android-".length())
|
|
||||||
def sdkString = "Android API " + apiString + " Platform"
|
|
||||||
//noinspection GroovyResultOfObjectAllocationIgnored // the note gets inserted
|
|
||||||
new Node(parsedXml.component[1], 'orderEntry', [
|
|
||||||
'type' : 'jdk',
|
|
||||||
'jdkName': sdkString,
|
|
||||||
'jdkType': 'Android SDK'
|
|
||||||
])
|
|
||||||
XmlUtil.serialize(parsedXml, new FileOutputStream(imlFile))
|
|
||||||
|
|
||||||
} catch (NullPointerException | FileNotFoundException ex) {
|
|
||||||
ex.printStackTrace()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
all {
|
all {
|
||||||
resolutionStrategy {
|
resolutionStrategy {
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -23,8 +23,8 @@ import org.junit.Assert.assertTrue
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.koin.core.KoinComponent
|
import org.koin.core.component.KoinComponent
|
||||||
import org.koin.core.inject
|
import org.koin.core.component.inject
|
||||||
|
|
||||||
@RunWith(AndroidJUnit4::class)
|
@RunWith(AndroidJUnit4::class)
|
||||||
@Suppress("BlockingMethodInNonBlockingContext")
|
@Suppress("BlockingMethodInNonBlockingContext")
|
||||||
|
|
|
@ -32,8 +32,8 @@ import org.junit.Assert.assertTrue
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.koin.core.KoinComponent
|
import org.koin.core.component.KoinComponent
|
||||||
import org.koin.core.inject
|
import org.koin.core.component.inject
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import kotlin.random.Random
|
import kotlin.random.Random
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,8 @@ import android.util.Log
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.koin.core.KoinComponent
|
import org.koin.core.component.KoinComponent
|
||||||
import org.koin.core.inject
|
import org.koin.core.component.inject
|
||||||
|
|
||||||
@RunWith(AndroidJUnit4::class)
|
@RunWith(AndroidJUnit4::class)
|
||||||
class PackageServiceTest : KoinComponent {
|
class PackageServiceTest : KoinComponent {
|
||||||
|
|
|
@ -129,7 +129,8 @@
|
||||||
</receiver>
|
</receiver>
|
||||||
|
|
||||||
<receiver
|
<receiver
|
||||||
android:name=".SecretCodeReceiver">
|
android:name=".SecretCodeReceiver"
|
||||||
|
android:exported="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.telephony.action.SECRET_CODE" />
|
<action android:name="android.telephony.action.SECRET_CODE" />
|
||||||
<!-- *#*#RESTORE#*#* -->
|
<!-- *#*#RESTORE#*#* -->
|
||||||
|
|
|
@ -7,6 +7,7 @@ import android.content.Context.BACKUP_SERVICE
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.ServiceManager.getService
|
import android.os.ServiceManager.getService
|
||||||
import android.os.StrictMode
|
import android.os.StrictMode
|
||||||
|
import org.koin.core.logger.Level
|
||||||
import com.stevesoltys.seedvault.crypto.cryptoModule
|
import com.stevesoltys.seedvault.crypto.cryptoModule
|
||||||
import com.stevesoltys.seedvault.header.headerModule
|
import com.stevesoltys.seedvault.header.headerModule
|
||||||
import com.stevesoltys.seedvault.metadata.MetadataManager
|
import com.stevesoltys.seedvault.metadata.MetadataManager
|
||||||
|
@ -77,7 +78,7 @@ open class App : Application() {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected open fun startKoin() = startKoin {
|
protected open fun startKoin() = startKoin {
|
||||||
androidLogger()
|
androidLogger(Level.ERROR)
|
||||||
androidContext(this@App)
|
androidContext(this@App)
|
||||||
modules(
|
modules(
|
||||||
listOf(
|
listOf(
|
||||||
|
|
|
@ -22,7 +22,7 @@ import com.stevesoltys.seedvault.storage.StorageBackupService
|
||||||
import com.stevesoltys.seedvault.storage.StorageBackupService.Companion.EXTRA_START_APP_BACKUP
|
import com.stevesoltys.seedvault.storage.StorageBackupService.Companion.EXTRA_START_APP_BACKUP
|
||||||
import com.stevesoltys.seedvault.transport.requestBackup
|
import com.stevesoltys.seedvault.transport.requestBackup
|
||||||
import com.stevesoltys.seedvault.ui.storage.AUTHORITY_STORAGE
|
import com.stevesoltys.seedvault.ui.storage.AUTHORITY_STORAGE
|
||||||
import org.koin.core.context.KoinContextHandler.get
|
import org.koin.core.context.GlobalContext.get
|
||||||
import java.util.concurrent.TimeUnit.HOURS
|
import java.util.concurrent.TimeUnit.HOURS
|
||||||
|
|
||||||
private val TAG = UsbIntentReceiver::class.java.simpleName
|
private val TAG = UsbIntentReceiver::class.java.simpleName
|
||||||
|
@ -32,8 +32,8 @@ private const val HOURS_AUTO_BACKUP: Long = 24
|
||||||
class UsbIntentReceiver : UsbMonitor() {
|
class UsbIntentReceiver : UsbMonitor() {
|
||||||
|
|
||||||
// using KoinComponent would crash robolectric tests :(
|
// using KoinComponent would crash robolectric tests :(
|
||||||
private val settingsManager: SettingsManager by lazy { get().get<SettingsManager>() }
|
private val settingsManager: SettingsManager by lazy { get().get() }
|
||||||
private val metadataManager: MetadataManager by lazy { get().get<MetadataManager>() }
|
private val metadataManager: MetadataManager by lazy { get().get() }
|
||||||
|
|
||||||
override fun shouldMonitorStatus(context: Context, action: String, device: UsbDevice): Boolean {
|
override fun shouldMonitorStatus(context: Context, action: String, device: UsbDevice): Boolean {
|
||||||
if (action != ACTION_USB_DEVICE_ATTACHED) return false
|
if (action != ACTION_USB_DEVICE_ATTACHED) return false
|
||||||
|
|
|
@ -6,7 +6,7 @@ import android.content.Intent
|
||||||
import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
|
import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
|
||||||
import androidx.core.net.toUri
|
import androidx.core.net.toUri
|
||||||
import com.stevesoltys.seedvault.ui.notification.BackupNotificationManager
|
import com.stevesoltys.seedvault.ui.notification.BackupNotificationManager
|
||||||
import org.koin.core.context.KoinContextHandler.get
|
import org.koin.core.context.GlobalContext.get
|
||||||
|
|
||||||
internal const val ACTION_RESTORE_ERROR_UNINSTALL = "com.stevesoltys.seedvault.action.UNINSTALL"
|
internal const val ACTION_RESTORE_ERROR_UNINSTALL = "com.stevesoltys.seedvault.action.UNINSTALL"
|
||||||
internal const val EXTRA_PACKAGE_NAME = "com.stevesoltys.seedvault.extra.PACKAGE_NAME"
|
internal const val EXTRA_PACKAGE_NAME = "com.stevesoltys.seedvault.extra.PACKAGE_NAME"
|
||||||
|
|
|
@ -14,8 +14,8 @@ import com.stevesoltys.seedvault.settings.SettingsActivity
|
||||||
import com.stevesoltys.seedvault.transport.backup.BackupCoordinator
|
import com.stevesoltys.seedvault.transport.backup.BackupCoordinator
|
||||||
import com.stevesoltys.seedvault.transport.restore.RestoreCoordinator
|
import com.stevesoltys.seedvault.transport.restore.RestoreCoordinator
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import org.koin.core.KoinComponent
|
import org.koin.core.component.KoinComponent
|
||||||
import org.koin.core.inject
|
import org.koin.core.component.inject
|
||||||
|
|
||||||
// If we ever change this, we should use a ComponentName like the other backup transports.
|
// If we ever change this, we should use a ComponentName like the other backup transports.
|
||||||
val TRANSPORT_ID: String = ConfigurableBackupTransport::class.java.name
|
val TRANSPORT_ID: String = ConfigurableBackupTransport::class.java.name
|
||||||
|
|
|
@ -14,9 +14,9 @@ import com.stevesoltys.seedvault.crypto.KeyManager
|
||||||
import com.stevesoltys.seedvault.transport.backup.PackageService
|
import com.stevesoltys.seedvault.transport.backup.PackageService
|
||||||
import com.stevesoltys.seedvault.ui.notification.BackupNotificationManager
|
import com.stevesoltys.seedvault.ui.notification.BackupNotificationManager
|
||||||
import com.stevesoltys.seedvault.ui.notification.NotificationBackupObserver
|
import com.stevesoltys.seedvault.ui.notification.NotificationBackupObserver
|
||||||
import org.koin.core.KoinComponent
|
import org.koin.core.component.KoinComponent
|
||||||
import org.koin.core.context.KoinContextHandler.get
|
import org.koin.core.component.inject
|
||||||
import org.koin.core.inject
|
import org.koin.core.context.GlobalContext.get
|
||||||
|
|
||||||
private val TAG = ConfigurableBackupTransportService::class.java.simpleName
|
private val TAG = ConfigurableBackupTransportService::class.java.simpleName
|
||||||
|
|
||||||
|
|
|
@ -11,8 +11,8 @@ import com.stevesoltys.seedvault.MAGIC_PACKAGE_MANAGER
|
||||||
import com.stevesoltys.seedvault.R
|
import com.stevesoltys.seedvault.R
|
||||||
import com.stevesoltys.seedvault.metadata.MetadataManager
|
import com.stevesoltys.seedvault.metadata.MetadataManager
|
||||||
import com.stevesoltys.seedvault.transport.backup.ExpectedAppTotals
|
import com.stevesoltys.seedvault.transport.backup.ExpectedAppTotals
|
||||||
import org.koin.core.KoinComponent
|
import org.koin.core.component.KoinComponent
|
||||||
import org.koin.core.inject
|
import org.koin.core.component.inject
|
||||||
|
|
||||||
private val TAG = NotificationBackupObserver::class.java.simpleName
|
private val TAG = NotificationBackupObserver::class.java.simpleName
|
||||||
|
|
||||||
|
|
|
@ -166,6 +166,7 @@ class RecoveryCodeInputFragment : Fragment() {
|
||||||
|
|
||||||
@RequiresApi(30)
|
@RequiresApi(30)
|
||||||
private fun storeNewCodeAfterAuth(input: List<CharSequence>) {
|
private fun storeNewCodeAfterAuth(input: List<CharSequence>) {
|
||||||
|
val context = requireContext()
|
||||||
val biometricPrompt = BiometricPrompt.Builder(context)
|
val biometricPrompt = BiometricPrompt.Builder(context)
|
||||||
.setConfirmationRequired(true)
|
.setConfirmationRequired(true)
|
||||||
.setTitle(getString(R.string.recovery_code_auth_title))
|
.setTitle(getString(R.string.recovery_code_auth_title))
|
||||||
|
|
|
@ -10,11 +10,11 @@
|
||||||
android:layout_width="32dp"
|
android:layout_width="32dp"
|
||||||
android:layout_height="32dp"
|
android:layout_height="32dp"
|
||||||
android:layout_margin="16dp"
|
android:layout_margin="16dp"
|
||||||
android:tint="?android:colorAccent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:srcCompat="@drawable/ic_cloud_restore"
|
app:srcCompat="@drawable/ic_cloud_restore"
|
||||||
|
app:tint="?android:colorAccent"
|
||||||
tools:ignore="ContentDescription" />
|
tools:ignore="ContentDescription" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
|
@ -23,11 +23,11 @@
|
||||||
android:layout_width="32dp"
|
android:layout_width="32dp"
|
||||||
android:layout_height="32dp"
|
android:layout_height="32dp"
|
||||||
android:layout_margin="16dp"
|
android:layout_margin="16dp"
|
||||||
android:tint="?android:colorAccent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/progressBar"
|
app:layout_constraintTop_toBottomOf="@+id/progressBar"
|
||||||
app:srcCompat="@drawable/ic_cloud_download"
|
app:srcCompat="@drawable/ic_cloud_download"
|
||||||
|
app:tint="?android:colorAccent"
|
||||||
tools:ignore="ContentDescription" />
|
tools:ignore="ContentDescription" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
|
@ -10,11 +10,11 @@
|
||||||
android:layout_width="32dp"
|
android:layout_width="32dp"
|
||||||
android:layout_height="32dp"
|
android:layout_height="32dp"
|
||||||
android:layout_margin="16dp"
|
android:layout_margin="16dp"
|
||||||
android:tint="?android:colorAccent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:srcCompat="@drawable/ic_cloud_download"
|
app:srcCompat="@drawable/ic_cloud_download"
|
||||||
|
app:tint="?android:colorAccent"
|
||||||
tools:ignore="ContentDescription" />
|
tools:ignore="ContentDescription" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
|
@ -10,11 +10,11 @@
|
||||||
android:layout_width="32dp"
|
android:layout_width="32dp"
|
||||||
android:layout_height="32dp"
|
android:layout_height="32dp"
|
||||||
android:layout_margin="16dp"
|
android:layout_margin="16dp"
|
||||||
android:tint="?android:colorAccent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:srcCompat="@drawable/ic_storage"
|
app:srcCompat="@drawable/ic_storage"
|
||||||
|
app:tint="?android:colorAccent"
|
||||||
tools:ignore="ContentDescription" />
|
tools:ignore="ContentDescription" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
|
@ -10,11 +10,11 @@
|
||||||
android:layout_width="32dp"
|
android:layout_width="32dp"
|
||||||
android:layout_height="32dp"
|
android:layout_height="32dp"
|
||||||
android:layout_margin="16dp"
|
android:layout_margin="16dp"
|
||||||
android:tint="?android:colorAccent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:srcCompat="@drawable/ic_storage"
|
app:srcCompat="@drawable/ic_storage"
|
||||||
|
app:tint="?android:colorAccent"
|
||||||
tools:ignore="ContentDescription" />
|
tools:ignore="ContentDescription" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
|
@ -10,11 +10,11 @@
|
||||||
android:layout_width="32dp"
|
android:layout_width="32dp"
|
||||||
android:layout_height="32dp"
|
android:layout_height="32dp"
|
||||||
android:layout_margin="16dp"
|
android:layout_margin="16dp"
|
||||||
android:tint="?android:colorAccent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:srcCompat="@drawable/ic_cloud_download"
|
app:srcCompat="@drawable/ic_cloud_download"
|
||||||
|
app:tint="?android:colorAccent"
|
||||||
tools:ignore="ContentDescription" />
|
tools:ignore="ContentDescription" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
17
build.gradle
17
build.gradle
|
@ -1,29 +1,31 @@
|
||||||
buildscript {
|
buildscript {
|
||||||
// 1.3.21 Android 10
|
// 1.3.21 Android 10
|
||||||
// 1.3.61 Android 11
|
// 1.3.61 Android 11
|
||||||
|
// 1.4.30 Android 12
|
||||||
// Check:
|
// Check:
|
||||||
// https://android.googlesource.com/platform/external/kotlinc/+/refs/tags/android-11.0.0_r3/build.txt
|
// https://android.googlesource.com/platform/external/kotlinc/+/refs/tags/android-12.0.0_r2/build.txt
|
||||||
ext.aosp_kotlin_version = '1.3.61'
|
ext.aosp_kotlin_version = '1.4.31' // 1.4.30 breaks Kotlin plugin in Android Studio
|
||||||
ext.kotlin_version = '1.4.31'
|
ext.kotlin_version = '1.4.31'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
//noinspection JcenterRepositoryObsolete
|
||||||
jcenter()
|
jcenter()
|
||||||
google()
|
google()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
//noinspection DifferentKotlinGradleVersion
|
//noinspection DifferentKotlinGradleVersion
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.14"
|
classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.17"
|
||||||
classpath 'com.android.tools.build:gradle:4.2.1'
|
classpath 'com.android.tools.build:gradle:7.0.2'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ext {
|
ext {
|
||||||
buildToolsVersion = '30.0.2'
|
buildToolsVersion = '31.0.0'
|
||||||
compileSdkVersion = 30
|
compileSdkVersion = 31
|
||||||
minSdkVersion = 29
|
minSdkVersion = 29
|
||||||
targetSdkVersion = 30
|
targetSdkVersion = 31
|
||||||
}
|
}
|
||||||
|
|
||||||
apply from: 'gradle/dependencies.gradle'
|
apply from: 'gradle/dependencies.gradle'
|
||||||
|
@ -31,6 +33,7 @@ apply from: 'gradle/dependencies.gradle'
|
||||||
allprojects {
|
allprojects {
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
//noinspection JcenterRepositoryObsolete
|
||||||
jcenter()
|
jcenter()
|
||||||
google()
|
google()
|
||||||
maven { url 'https://jitpack.io' }
|
maven { url 'https://jitpack.io' }
|
||||||
|
|
|
@ -2,15 +2,16 @@ apply plugin: 'com.android.application'
|
||||||
apply plugin: 'kotlin-android'
|
apply plugin: 'kotlin-android'
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 30
|
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||||
buildToolsVersion "30.0.2"
|
buildToolsVersion rootProject.ext.buildToolsVersion
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "org.calyxos.backup.contacts"
|
applicationId "org.calyxos.backup.contacts"
|
||||||
minSdkVersion 30
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion 30
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
testInstrumentationRunnerArguments disableAnalytics: 'true'
|
||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
|
@ -18,6 +19,10 @@ android {
|
||||||
targetCompatibility = 1.8
|
targetCompatibility = 1.8
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kotlinOptions {
|
||||||
|
jvmTarget = '1.8'
|
||||||
|
}
|
||||||
|
|
||||||
testOptions {
|
testOptions {
|
||||||
unitTests.returnDefaultValues = true
|
unitTests.returnDefaultValues = true
|
||||||
}
|
}
|
||||||
|
@ -55,7 +60,7 @@ dependencies {
|
||||||
testImplementation "io.mockk:mockk:$mockk_version"
|
testImplementation "io.mockk:mockk:$mockk_version"
|
||||||
|
|
||||||
androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
|
androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
|
||||||
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
|
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
||||||
androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version"
|
androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version"
|
||||||
androidTestImplementation "io.mockk:mockk-android:$mockk_version"
|
androidTestImplementation "io.mockk:mockk-android:$mockk_version"
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
|
@ -1,12 +1,12 @@
|
||||||
ext {
|
ext {
|
||||||
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#2713
|
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-12.0.0_r2/current/androidx/Android.bp#2943
|
||||||
ext.room_version = "2.3.0-alpha02"
|
ext.room_version = "2.3.0-beta02"
|
||||||
// http://aosp.opersys.com/xref/android-11.0.0_r27/xref/external/protobuf/java/pom.xml#7
|
// https://android.googlesource.com/platform/external/protobuf/+/refs/tags/android-12.0.0_r2/java/pom.xml#7
|
||||||
ext.protobuf_version = "3.9.1"
|
ext.protobuf_version = "3.9.1"
|
||||||
junit4_version = "4.13.2"
|
junit4_version = "4.13.2"
|
||||||
junit5_version = "5.5.2" // careful, upgrading this can change a Cipher's IV size in tests!?
|
junit5_version = "5.5.2" // careful, upgrading this can change a Cipher's IV size in tests!?
|
||||||
mockk_version = "1.10.2" // higher versions get us a kotlin version conflict
|
mockk_version = "1.12.0"
|
||||||
espresso_version = "3.3.0"
|
espresso_version = "3.4.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
// To produce these binaries, in latest AOSP source tree, run
|
// To produce these binaries, in latest AOSP source tree, run
|
||||||
|
@ -19,7 +19,7 @@ ext.aosp_libs = fileTree(include: [
|
||||||
//
|
//
|
||||||
// out/target/common/obj/JAVA_LIBRARIES/framework-minus-apex_intermediates/classes.jar
|
// out/target/common/obj/JAVA_LIBRARIES/framework-minus-apex_intermediates/classes.jar
|
||||||
'android.jar',
|
'android.jar',
|
||||||
// out/target/common/obj/JAVA_LIBRARIES/core-libart.com.android.art.release_intermediates/classes.jar
|
// out/target/common/obj/JAVA_LIBRARIES/core-libart.com.android.art_intermediates/classes.jar
|
||||||
'libcore.jar',
|
'libcore.jar',
|
||||||
], dir: "$projectDir/app/libs")
|
], dir: "$projectDir/app/libs")
|
||||||
|
|
||||||
|
@ -36,66 +36,74 @@ ext.kotlin_libs = [
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
coroutines: [
|
coroutines: [
|
||||||
dependencies.create('org.jetbrains.kotlinx:kotlinx-coroutines-core') {
|
dependencies.create('org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm') {
|
||||||
// https://android.googlesource.com/platform/prebuilts/tools/+/refs/tags/android-11.0.0_r3/common/m2/Android.bp#326
|
// https://android.googlesource.com/platform/prebuilts/tools/+/refs/tags/android-12.0.0_r2/common/m2/Android.bp#273
|
||||||
version { strictly '1.3.0' }
|
version { strictly '1.4.2' }
|
||||||
},
|
},
|
||||||
dependencies.create('org.jetbrains.kotlinx:kotlinx-coroutines-android') {
|
dependencies.create('org.jetbrains.kotlinx:kotlinx-coroutines-android') {
|
||||||
// https://android.googlesource.com/platform/prebuilts/tools/+/refs/tags/android-11.0.0_r3/common/m2/Android.bp#340
|
// https://android.googlesource.com/platform/prebuilts/tools/+/refs/tags/android-12.0.0_r2/common/m2/Android.bp#288
|
||||||
version { strictly '1.3.0' }
|
version { strictly '1.3.0' }
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
]
|
]
|
||||||
|
|
||||||
ext.std_libs = [
|
ext.std_libs = [
|
||||||
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#610
|
androidx_core: [
|
||||||
androidx_core: dependencies.create('androidx.core:core-ktx') {
|
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-12.0.0_r2/current/androidx/Android.bp#867
|
||||||
version { strictly '1.5.0-alpha01' }
|
dependencies.create('androidx.core:core') {
|
||||||
},
|
version { strictly '1.6.0' } // should be 1.6.0-beta03, but that is not even released, yet
|
||||||
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#930
|
},
|
||||||
|
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-12.0.0_r2/current/androidx/Android.bp#833
|
||||||
|
dependencies.create('androidx.core:core-ktx') {
|
||||||
|
version { strictly '1.5.0-beta02' }
|
||||||
|
},
|
||||||
|
],
|
||||||
|
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-12.0.0_r2/current/androidx/Android.bp#1189
|
||||||
androidx_fragment: dependencies.create('androidx.fragment:fragment-ktx') {
|
androidx_fragment: dependencies.create('androidx.fragment:fragment-ktx') {
|
||||||
version { strictly '1.3.0-alpha07' }
|
version { strictly '1.4.0-alpha01' }
|
||||||
},
|
},
|
||||||
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#2412
|
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-12.0.0_r2/current/androidx/Android.bp#20
|
||||||
|
androidx_activity: dependencies.create('androidx.activity:activity-ktx') {
|
||||||
|
version { strictly '1.3.0-alpha03' }
|
||||||
|
},
|
||||||
|
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-12.0.0_r2/current/androidx/Android.bp#2695
|
||||||
androidx_preference: dependencies.create('androidx.preference:preference') {
|
androidx_preference: dependencies.create('androidx.preference:preference') {
|
||||||
version { strictly '1.1.1' } // should be 1.2.0-alpha01, but that is not even released, yet
|
version { strictly '1.1.1' } // should be 1.2.0-alpha01, but that is not even released, yet
|
||||||
},
|
},
|
||||||
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#1553
|
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-12.0.0_r2/current/androidx/Android.bp#1820
|
||||||
androidx_lifecycle_viewmodel_ktx: dependencies.create('androidx.lifecycle:lifecycle-viewmodel-ktx') {
|
androidx_lifecycle_viewmodel_ktx: dependencies.create('androidx.lifecycle:lifecycle-viewmodel-ktx') {
|
||||||
version { strictly '2.3.0-alpha05' }
|
version { strictly '2.4.0-alpha01' }
|
||||||
},
|
},
|
||||||
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#1353
|
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-12.0.0_r2/current/androidx/Android.bp#1618
|
||||||
androidx_lifecycle_livedata_ktx: dependencies.create('androidx.lifecycle:lifecycle-livedata-ktx') {
|
androidx_lifecycle_livedata_ktx: dependencies.create('androidx.lifecycle:lifecycle-livedata-ktx') {
|
||||||
version { strictly '2.3.0-alpha05' }
|
version { strictly '2.4.0-alpha01' }
|
||||||
},
|
},
|
||||||
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/extras/constraint-layout-x/Android.bp#30
|
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-12.0.0_r2/current/extras/constraint-layout-x/Android.bp#39
|
||||||
androidx_constraintlayout: dependencies.create('androidx.constraintlayout:constraintlayout') {
|
androidx_constraintlayout: dependencies.create('androidx.constraintlayout:constraintlayout') {
|
||||||
version { strictly '2.0.0-beta7' }
|
version { strictly '2.0.0-beta7' }
|
||||||
},
|
},
|
||||||
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#708
|
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-12.0.0_r2/current/androidx/Android.bp#969
|
||||||
androidx_documentfile: dependencies.create('androidx.documentfile:documentfile') {
|
androidx_documentfile: dependencies.create('androidx.documentfile:documentfile') {
|
||||||
version { strictly '1.0.1' } // should be 1.1.0-alpha01, but that is not even released, yet
|
version { strictly '1.1.0-alpha01' }
|
||||||
},
|
},
|
||||||
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/extras/material-design-x/Android.bp#6
|
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-12.0.0_r2/current/extras/material-design-x/Android.bp#6
|
||||||
com_google_android_material: dependencies.create('com.google.android.material:material') {
|
com_google_android_material: dependencies.create('com.google.android.material:material') {
|
||||||
version { strictly '1.1.0-alpha05' }
|
version { strictly '1.4.0' }
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
ext.lint_libs = [
|
ext.lint_libs = [
|
||||||
exceptions: 'com.github.thirdegg:lint-rules:0.0.7-beta'
|
exceptions: 'com.github.thirdegg:lint-rules:0.0.6-beta'
|
||||||
]
|
]
|
||||||
|
|
||||||
ext.storage_libs = [
|
ext.storage_libs = [
|
||||||
// https://android.googlesource.com/platform/prebuilts/sdk/+/refs/tags/android-11.0.0_r3/current/androidx/Android.bp#2711
|
|
||||||
androidx_room_runtime: dependencies.create('androidx.room:room-runtime') {
|
androidx_room_runtime: dependencies.create('androidx.room:room-runtime') {
|
||||||
version { strictly "$room_version" }
|
version { strictly "$room_version" }
|
||||||
},
|
},
|
||||||
// http://aosp.opersys.com/xref/android-11.0.0_r27/xref/external/protobuf/java/pom.xml#7
|
|
||||||
com_google_protobuf_javalite: dependencies.create('com.google.protobuf:protobuf-javalite') {
|
com_google_protobuf_javalite: dependencies.create('com.google.protobuf:protobuf-javalite') {
|
||||||
version { strictly "$protobuf_version" }
|
version { strictly "$protobuf_version" }
|
||||||
},
|
},
|
||||||
com_google_crypto_tink_android: dependencies.create('com.google.crypto.tink:tink-android') {
|
com_google_crypto_tink_android: dependencies.create('com.google.crypto.tink:tink-android') {
|
||||||
version { strictly '1.5.0' }
|
version { strictly '1.6.1' }
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
ktlint {
|
ktlint {
|
||||||
version = "0.40.0"
|
version = "0.42.1"
|
||||||
android = true
|
android = true
|
||||||
enableExperimentalRules = false
|
enableExperimentalRules = false
|
||||||
verbose = true
|
verbose = true
|
||||||
disabledRules = [
|
disabledRules = [
|
||||||
"import-ordering",
|
"import-ordering",
|
||||||
"no-blank-line-before-rbrace",
|
"no-blank-line-before-rbrace",
|
||||||
"indent", // remove in 0.41 https://github.com/pinterest/ktlint/issues/764
|
"indent",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -3,5 +3,5 @@ distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
|
||||||
distributionSha256Sum=22449f5231796abd892c98b2a07c9ceebe4688d192cd2d6763f8e3bf8acbedeb
|
distributionSha256Sum=a8da5b02437a60819cad23e10fc7e9cf32bcb57029d9cb277e26eeff76ce014b
|
||||||
|
|
|
@ -1,17 +1,11 @@
|
||||||
android_library_import {
|
|
||||||
name: "seedvault-lib-koin-androidx-viewmodel",
|
|
||||||
aars: ["koin-androidx-viewmodel-2.1.1.aar"],
|
|
||||||
sdk_version: "current",
|
|
||||||
}
|
|
||||||
|
|
||||||
android_library_import {
|
android_library_import {
|
||||||
name: "seedvault-lib-koin-android",
|
name: "seedvault-lib-koin-android",
|
||||||
aars: ["koin-android-2.1.1.aar"],
|
aars: ["koin-android-3.1.2.aar"],
|
||||||
sdk_version: "current",
|
sdk_version: "current",
|
||||||
}
|
}
|
||||||
|
|
||||||
java_import {
|
java_import {
|
||||||
name: "seedvault-lib-koin-core",
|
name: "seedvault-lib-koin-core-jvm",
|
||||||
jars: ["koin-core-2.1.1.jar"],
|
jars: ["koin-core-jvm-3.1.2.jar"],
|
||||||
sdk_version: "current",
|
sdk_version: "current",
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
BIN
libs/koin-android/koin-android-3.1.2.aar
Normal file
BIN
libs/koin-android/koin-android-3.1.2.aar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
libs/koin-android/koin-core-jvm-3.1.2.jar
Normal file
BIN
libs/koin-android/koin-core-jvm-3.1.2.jar
Normal file
Binary file not shown.
|
@ -34,6 +34,10 @@ android {
|
||||||
jvmTarget = '1.8'
|
jvmTarget = '1.8'
|
||||||
freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn"
|
freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn"
|
||||||
}
|
}
|
||||||
|
lintOptions {
|
||||||
|
disable "DialogFragmentCallbacksDetector",
|
||||||
|
"InvalidFragmentVersionForActivityResult"
|
||||||
|
}
|
||||||
packagingOptions {
|
packagingOptions {
|
||||||
exclude 'META-INF/*.kotlin_module'
|
exclude 'META-INF/*.kotlin_module'
|
||||||
exclude 'META-INF/androidx.*.version'
|
exclude 'META-INF/androidx.*.version'
|
||||||
|
@ -45,9 +49,12 @@ android {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(':storage:lib')
|
implementation project(':storage:lib')
|
||||||
|
|
||||||
|
implementation rootProject.ext.kotlin_libs.std
|
||||||
|
|
||||||
implementation rootProject.ext.std_libs.androidx_core
|
implementation rootProject.ext.std_libs.androidx_core
|
||||||
// A newer version gets pulled in with AOSP via core, so we include fragment here explicitly
|
// A newer version gets pulled in with AOSP via core, so we include fragment here explicitly
|
||||||
implementation rootProject.ext.std_libs.androidx_fragment
|
implementation rootProject.ext.std_libs.androidx_fragment
|
||||||
|
implementation rootProject.ext.std_libs.androidx_activity
|
||||||
implementation rootProject.ext.std_libs.androidx_lifecycle_viewmodel_ktx
|
implementation rootProject.ext.std_libs.androidx_lifecycle_viewmodel_ktx
|
||||||
implementation rootProject.ext.std_libs.androidx_lifecycle_livedata_ktx
|
implementation rootProject.ext.std_libs.androidx_lifecycle_livedata_ktx
|
||||||
implementation rootProject.ext.std_libs.androidx_constraintlayout
|
implementation rootProject.ext.std_libs.androidx_constraintlayout
|
||||||
|
|
|
@ -11,7 +11,9 @@
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/Theme.StorageBackupTester">
|
android:theme="@style/Theme.StorageBackupTester">
|
||||||
|
|
||||||
<activity android:name=".MainActivity">
|
<activity
|
||||||
|
android:name=".MainActivity"
|
||||||
|
android:exported="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,6 @@ android_library_import {
|
||||||
|
|
||||||
java_import {
|
java_import {
|
||||||
name: "seedvault-lib-tink-android",
|
name: "seedvault-lib-tink-android",
|
||||||
jars: ["libs/tink-android-1.5.0.jar"],
|
jars: ["libs/tink-android-1.6.1.jar"],
|
||||||
sdk_version: "current",
|
sdk_version: "current",
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ plugins {
|
||||||
id 'com.google.protobuf'
|
id 'com.google.protobuf'
|
||||||
id 'kotlin-android'
|
id 'kotlin-android'
|
||||||
id 'kotlin-kapt'
|
id 'kotlin-kapt'
|
||||||
id "org.jlleitschuh.gradle.ktlint" version "9.4.0"
|
id "org.jlleitschuh.gradle.ktlint" version "10.2.0"
|
||||||
id 'org.jetbrains.dokka' version '1.4.20'
|
id 'org.jetbrains.dokka' version '1.4.20'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,8 +14,6 @@ android {
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode 1
|
|
||||||
versionName "0.1"
|
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
testInstrumentationRunnerArguments disableAnalytics: 'true'
|
testInstrumentationRunnerArguments disableAnalytics: 'true'
|
||||||
|
@ -40,6 +38,7 @@ android {
|
||||||
}
|
}
|
||||||
kotlinOptions {
|
kotlinOptions {
|
||||||
jvmTarget = '1.8'
|
jvmTarget = '1.8'
|
||||||
|
languageVersion = "1.4"
|
||||||
freeCompilerArgs += '-Xopt-in=kotlin.RequiresOptIn'
|
freeCompilerArgs += '-Xopt-in=kotlin.RequiresOptIn'
|
||||||
freeCompilerArgs += '-Xexplicit-api=strict'
|
freeCompilerArgs += '-Xexplicit-api=strict'
|
||||||
}
|
}
|
||||||
|
@ -57,6 +56,11 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
lintOptions {
|
||||||
|
disable "DialogFragmentCallbacksDetector",
|
||||||
|
"InvalidFragmentVersionForActivityResult",
|
||||||
|
"CheckedExceptions"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
|
@ -64,11 +68,12 @@ kotlin {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
implementation rootProject.ext.kotlin_libs.std
|
||||||
|
|
||||||
implementation rootProject.ext.std_libs.androidx_core
|
implementation rootProject.ext.std_libs.androidx_core
|
||||||
// A newer version gets pulled in with AOSP via core, so we include fragment here explicitly
|
// A newer version gets pulled in with AOSP via core, so we include fragment here explicitly
|
||||||
implementation rootProject.ext.std_libs.androidx_fragment
|
implementation rootProject.ext.std_libs.androidx_fragment
|
||||||
|
implementation rootProject.ext.std_libs.androidx_activity
|
||||||
implementation rootProject.ext.std_libs.androidx_lifecycle_viewmodel_ktx
|
implementation rootProject.ext.std_libs.androidx_lifecycle_viewmodel_ktx
|
||||||
implementation rootProject.ext.std_libs.androidx_lifecycle_livedata_ktx
|
implementation rootProject.ext.std_libs.androidx_lifecycle_livedata_ktx
|
||||||
implementation rootProject.ext.std_libs.androidx_constraintlayout
|
implementation rootProject.ext.std_libs.androidx_constraintlayout
|
||||||
|
@ -88,7 +93,7 @@ dependencies {
|
||||||
testImplementation "io.mockk:mockk:$mockk_version"
|
testImplementation "io.mockk:mockk:$mockk_version"
|
||||||
testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
|
testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
|
||||||
|
|
||||||
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
|
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
||||||
androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version"
|
androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
BIN
storage/lib/libs/tink-android-1.6.1.jar
Normal file
BIN
storage/lib/libs/tink-android-1.6.1.jar
Normal file
Binary file not shown.
Loading…
Reference in a new issue