Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions apps/flipcash/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@ val appNamespace = "${Gradle.flipcashNamespace}.app.android"
android {
// static namespace
namespace = appNamespace
compileSdk = Android.compileSdkVersion
compileSdk = libs.versions.android.compileSdk.get().toInt()

defaultConfig {
versionCode = Packaging.Flipcash.versionCode ?: gitVersionCode()
versionName = Packaging.Flipcash.versionName
applicationId = appNamespace
minSdk = Android.minSdkVersion
targetSdk = Android.targetSdkVersion
testInstrumentationRunner = Android.testInstrumentationRunner
minSdk = libs.versions.android.minSdk.get().toInt()
targetSdk = libs.versions.android.targetSdk.get().toInt()
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

buildConfigField("String", "VERSION_NAME", "\"${Packaging.Flipcash.versionName}\"")
buildConfigField("String", "MIXPANEL_API_KEY", "\"${tryReadProperty(rootProject.rootDir, "MIXPANEL_API_KEY")}\"")
Expand All @@ -65,6 +65,7 @@ android {
buildTypes {
getByName("release") {
resValue("string", "applicationId", appNamespace)
signingConfig = signingConfigs.getByName("contributors")
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
Expand All @@ -87,8 +88,8 @@ android {
}

compileOptions {
sourceCompatibility(Android.javaVersion)
targetCompatibility(Android.javaVersion)
sourceCompatibility(libs.versions.android.java.get())
targetCompatibility(libs.versions.android.java.get())
isCoreLibraryDesugaringEnabled = true
}

Expand Down Expand Up @@ -120,11 +121,11 @@ bugsnag {

kotlin {
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(Android.javaVersion))
languageVersion.set(JavaLanguageVersion.of(libs.versions.android.java.get()))
}

compilerOptions {
jvmTarget.set(JvmTarget.fromTarget(Android.javaVersion))
jvmTarget.set(JvmTarget.fromTarget(libs.versions.android.java.get()))
optIn.addAll(
"kotlin.time.ExperimentalTime",
"kotlin.ExperimentalUnsignedTypes",
Expand Down
23 changes: 1 addition & 22 deletions apps/flipcash/app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -1,18 +1,8 @@
-optimizationpasses 5
-dontusemixedcaseclassnames
-verbose
#-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable
-obfuscationdictionary shuffled-dictionary.txt
-classobfuscationdictionary shuffled-dictionary.txt

-keepclasseswithmembernames class * {
native <methods>;
}

-keepclassmembers class **.R$* {
public static <fields>;
}

# Keep screen names
-keepnames class * implements cafe.adriel.voyager.core.screen.Screen

Expand All @@ -23,19 +13,13 @@
# Protobuf — keep all generated message classes and their builders.
# Using type-hierarchy rules so new packages / updated gRPC stubs are
# caught automatically instead of listing every gen package.
-keep class com.google.protobuf.** { *; }
-keep class * extends com.google.protobuf.GeneratedMessageLite { *; }
-keep class * extends com.google.protobuf.GeneratedMessageLite$Builder { *; }

# gRPC — keep generated service stubs (abstract + concrete)
-keep class * extends io.grpc.stub.AbstractStub { *; }
-keep class * implements io.grpc.BindableService { *; }

# Flipcash services
-keep class com.flipcash.services.** { *; }
# Opencode services
-keep class com.getcode.opencode.** { *; }

# Keep our scan classes that interact with native
-keep class com.kik.scan.** { *; }

Expand All @@ -47,12 +31,7 @@
public static int e(...);
}

-keepattributes SourceFile,LineNumberTable # Keep file names and line numbers.
-keep public class * extends java.lang.Exception

# https://github.com/firebase/firebase-android-sdk/issues/3688
-keep class org.json.** { *; }
-keepclassmembers class org.json.** { *; }
-keep public class * extends java.lang.Throwable

# Keep generic signature of Call, Response (R8 full mode strips signatures from non-kept items).
-keep,allowobfuscation,allowshrinking interface retrofit2.Call
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,13 @@ private fun showOnRampFailure(resources: Resources, error: CoinbaseOnRampWebErro
)
}

is CoinbaseOnRampWebError.AssetNotTradableInRegion -> {
BottomBarManager.showAlert(
title = resources.getString(R.string.error_title_onrampRegionMismatch),
message = resources.getString(R.string.error_description_onrampRegionMismatch),
)
}

is CoinbaseOnRampWebError.GuestGooglePayError -> {
BottomBarManager.showError(
title = resources.getString(R.string.error_title_onrampTransactionFailed),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ internal class CoinbaseOnRampEventHandler(
}
}

sealed class CoinbaseOnRampWebError(val data: String? = null): Throwable() {
sealed class CoinbaseOnRampWebError(val data: String? = null): Throwable(data) {
class Unknown(data: String? = null) : CoinbaseOnRampWebError(data), NotifiableError
class MissingTransactionUuid(data: String? = null) : CoinbaseOnRampWebError(data), NotifiableError
class GuestCardNotDebit(data: String? = null) : CoinbaseOnRampWebError(data)
Expand All @@ -275,6 +275,7 @@ sealed class CoinbaseOnRampWebError(val data: String? = null): Throwable() {
class GuestTransactionAvsValidationFailed(data: String? = null) : CoinbaseOnRampWebError(data)
class GuestTransactionTransactionFailed(data: String? = null) : CoinbaseOnRampWebError(data), NotifiableError
class GuestRegionMismatch(data: String? = null) : CoinbaseOnRampWebError(data)
class AssetNotTradableInRegion(data: String? = null): CoinbaseOnRampWebError(data)
class GuestGooglePayNotReady(data: String? = null) : CoinbaseOnRampWebError(data)
class Internal(data: String? = null) : CoinbaseOnRampWebError(data), NotifiableError
class GooglePayButtonNotFound(data: String? = null) : CoinbaseOnRampWebError(data), NotifiableError
Expand All @@ -285,6 +286,7 @@ sealed class CoinbaseOnRampWebError(val data: String? = null): Throwable() {
fun fromErrorCode(errorCode: String, data: String? = null): CoinbaseOnRampWebError {
return when (errorCode) {
"ERROR_CODE_MISSING_TRANSACTION_UUID" -> MissingTransactionUuid(data)
"ERROR_CODE_ASSET_NOT_TRADABLE" -> AssetNotTradableInRegion(data)
"ERROR_CODE_GUEST_CARD_NOT_DEBIT" -> GuestCardNotDebit(data)
"ERROR_CODE_GUEST_GOOGLE_PAY_ERROR" -> GuestGooglePayError(data)
"ERROR_CODE_GUEST_TRANSACTION_BUY_FAILED" -> GuestTransactionBuyFailed(data)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,16 @@ class AndroidLibraryConventionPlugin : Plugin<Project> {
}
}

val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
val compileSdkVersion = libs.findVersion("android-compileSdk").get().requiredVersion.toInt()
val minSdkVersion = libs.findVersion("android-minSdk").get().requiredVersion.toInt()
val javaVersion = libs.findVersion("android-java").get().requiredVersion

extensions.configure<LibraryExtension> {
compileSdk = 36
compileSdk = compileSdkVersion

defaultConfig {
minSdk = 29
minSdk = minSdkVersion
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

Expand All @@ -34,18 +39,18 @@ class AndroidLibraryConventionPlugin : Plugin<Project> {
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
sourceCompatibility = JavaVersion.toVersion(javaVersion)
targetCompatibility = JavaVersion.toVersion(javaVersion)
}
}

extensions.configure<KotlinAndroidProjectExtension> {
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(21))
languageVersion.set(JavaLanguageVersion.of(javaVersion))
}

compilerOptions {
jvmTarget.set(JvmTarget.JVM_21)
jvmTarget.set(JvmTarget.fromTarget(javaVersion))
optIn.addAll(
"kotlin.time.ExperimentalTime",
"kotlin.ExperimentalUnsignedTypes",
Expand All @@ -54,8 +59,6 @@ class AndroidLibraryConventionPlugin : Plugin<Project> {
}
}

val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")

dependencies {
"implementation"(libs.findLibrary("timber").get())
"implementation"(libs.findLibrary("kotlinx-coroutines-core").get())
Expand Down
7 changes: 0 additions & 7 deletions buildSrc/src/main/java/Android.kt

This file was deleted.

1 change: 0 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,3 @@ android.experimental.enableTestFixturesKotlinSupport=true
android.suppressUnsupportedOptionWarnings=android.suppressUnsupportedOptionWarnings,android.experimental.enableTestFixturesKotlinSupport
android.uniquePackageNames=false
android.dependency.useConstraints=true
android.r8.strictFullModeForKeepRules=false
5 changes: 5 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
[versions]
android-compileSdk = "37"
android-minSdk = "29"
android-targetSdk = "37"
android-java = "21"

kotlin = "2.3.21"
ksp = "2.3.7"
kotlinx-coroutines = "1.11.0"
Expand Down
17 changes: 0 additions & 17 deletions libs/encryption/ed25519/proguard-rules.pro

This file was deleted.

2 changes: 1 addition & 1 deletion services/flipcash/consumer-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

# libsodium
-keep class com.ionspin.kotlin.crypto.** { *; }
-keep class com.sun.jna.** { *; }
-keep,allowoptimization class com.sun.jna.** { *; }
-dontwarn java.awt.Component
-dontwarn java.awt.GraphicsEnvironment
-dontwarn java.awt.HeadlessException
Expand Down
10 changes: 5 additions & 5 deletions vendor/opencv/sdk/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,11 @@ println "OpenCV: " +openCVersionName + " " + project.buildscript.sourceFile

android {
namespace 'org.opencv'
compileSdkVersion Android.compileSdkVersion
compileSdkVersion libs.versions.android.compileSdk.get().toInteger()

defaultConfig {
minSdkVersion Android.minSdkVersion
targetSdkVersion Android.targetSdkVersion
minSdkVersion libs.versions.android.minSdk.get().toInteger()
targetSdkVersion libs.versions.android.targetSdk.get().toInteger()


externalNativeBuild {
Expand All @@ -125,8 +125,8 @@ android {
}
}
compileOptions {
sourceCompatibility(Android.javaVersion)
targetCompatibility(Android.javaVersion)
sourceCompatibility(libs.versions.android.java.get())
targetCompatibility(libs.versions.android.java.get())
}

buildTypes {
Expand Down
Loading