diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 628e7234..d17111b0 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -84,8 +84,11 @@ include_directories(src/main/secp/secp256k1/src/) include_directories(src/main/secp/secp256k1/) include_directories(src/main/secp/) +# support compiling 16 KB-aligned: https://developer.android.com/guide/practices/page-sizes#cmake +target_link_options(core-lib PRIVATE "-Wl,-z,max-page-size=16384") + # add lib dependencies target_link_libraries( core-lib android - log) + log) \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 802fe2e6..66c1b24e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,12 +14,12 @@ val localProperties = gradleLocalProperties(rootDir, providers) android { namespace = "com.brainwallet" - compileSdk = 34 + compileSdk = 36 defaultConfig { applicationId = "ltd.grunt.brainwallet" minSdk = 29 - targetSdk = 34 + targetSdk = 36 versionCode = 202506271 versionName = "v4.6.2" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dd68f40a..303a4051 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -51,15 +51,16 @@ tools:ignore="GoogleAppIndexingWarning,UnusedAttribute" tools:replace="android:fullBackupContent,android:allowBackup"> + + - + - diff --git a/app/src/main/java/com/brainwallet/BrainwalletApp.kt b/app/src/main/java/com/brainwallet/BrainwalletApp.kt index 03fd029e..8a55523b 100644 --- a/app/src/main/java/com/brainwallet/BrainwalletApp.kt +++ b/app/src/main/java/com/brainwallet/BrainwalletApp.kt @@ -16,11 +16,6 @@ import com.brainwallet.tools.listeners.SyncReceiver import com.brainwallet.tools.manager.AnalyticsManager import com.brainwallet.tools.util.BRConstants import com.brainwallet.tools.util.Utils -import com.google.firebase.analytics.FirebaseAnalytics -import com.google.firebase.analytics.ktx.analytics -import com.google.firebase.analytics.setConsent -import com.google.firebase.crashlytics.FirebaseCrashlytics -import com.google.firebase.ktx.Firebase import org.koin.android.ext.koin.androidContext import org.koin.android.ext.koin.androidLogger import org.koin.core.context.GlobalContext.startKoin diff --git a/app/src/main/java/com/brainwallet/di/Module.kt b/app/src/main/java/com/brainwallet/di/Module.kt index b95bbeec..d8f47bd3 100644 --- a/app/src/main/java/com/brainwallet/di/Module.kt +++ b/app/src/main/java/com/brainwallet/di/Module.kt @@ -23,8 +23,8 @@ import com.brainwallet.ui.screens.yourseedwords.YourSeedWordsViewModel import com.brainwallet.util.cryptography.KeyStoreKeyGenerator import com.brainwallet.util.cryptography.KeyStoreManager import com.brainwallet.worker.CurrencyUpdateWorker -import com.google.firebase.ktx.Firebase -import com.google.firebase.remoteconfig.ktx.remoteConfig +import com.google.firebase.Firebase +import com.google.firebase.remoteconfig.remoteConfig import kotlinx.serialization.json.Json import okhttp3.MediaType.Companion.toMediaType import okhttp3.OkHttpClient @@ -35,7 +35,6 @@ import org.koin.core.component.inject import org.koin.core.module.dsl.viewModel import org.koin.core.module.dsl.viewModelOf import org.koin.dsl.module -import retrofit2.HttpException import retrofit2.Retrofit import retrofit2.converter.kotlinx.serialization.asConverterFactory diff --git a/app/src/main/java/com/brainwallet/ui/screens/welcome/WelcomeScreen.kt b/app/src/main/java/com/brainwallet/ui/screens/welcome/WelcomeScreen.kt index 845a9073..cec6d05a 100644 --- a/app/src/main/java/com/brainwallet/ui/screens/welcome/WelcomeScreen.kt +++ b/app/src/main/java/com/brainwallet/ui/screens/welcome/WelcomeScreen.kt @@ -7,12 +7,14 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.asPaddingValues import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.systemBars import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape @@ -93,39 +95,44 @@ fun WelcomeScreen( modifier = Modifier .fillMaxSize() .background(BrainwalletTheme.colors.surface) - .verticalScroll(rememberScrollState()), + .verticalScroll(rememberScrollState()) + .padding(WindowInsets.systemBars.asPaddingValues()), ) { - Image( - painterResource(R.drawable.brainwallet_logotype_white), - contentDescription = "brainwallet_logotype_white", - contentScale = ContentScale.Fit, - colorFilter = ColorFilter.tint( - BrainwalletTheme.colors.content, - ), + Column( modifier = Modifier .align(Alignment.TopCenter) - .fillMaxWidth() - .padding(horizontal = 55.dp) - .padding(vertical = 30.dp) - ) + .padding(vertical = 20.dp) + ) { + Image( + painterResource(R.drawable.brainwallet_logotype_white), + contentDescription = "brainwallet_logotype_white", + contentScale = ContentScale.Fit, + colorFilter = ColorFilter.tint( + BrainwalletTheme.colors.content, + ), + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 55.dp) + ) + + // Animation Placeholder + LottieAnimation( + modifier = Modifier + .fillMaxWidth() + .padding(leadTrailPadding.dp) + .background( + BrainwalletTheme.colors.surface, + BrainwalletTheme.shapes.large + ) + .height(thirdOfScreenHeight.dp) + .clip(BrainwalletTheme.shapes.large), + composition = composition, + contentScale = ContentScale.FillWidth, + alignment = Alignment.Center, + progress = { progress } + ) + } - // Animation Placeholder - LottieAnimation( - modifier = Modifier - .offset(y = 120.dp) - .fillMaxWidth() - .padding(leadTrailPadding.dp) - .background( - BrainwalletTheme.colors.surface, - BrainwalletTheme.shapes.large - ) - .height(thirdOfScreenHeight.dp) - .clip(BrainwalletTheme.shapes.large), - composition = composition, - contentScale = ContentScale.FillWidth, - alignment = Alignment.Center, - progress = { progress } - ) Column( modifier = Modifier.align(Alignment.BottomCenter), diff --git a/app/src/main/res/drawable-hdpi/brainwallet_logotype_white.png b/app/src/main/res/drawable-hdpi/brainwallet_logotype_white.png new file mode 100644 index 00000000..673e5859 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/brainwallet_logotype_white.png differ diff --git a/app/src/main/res/drawable-mdpi/brainwallet_logotype_white.png b/app/src/main/res/drawable-mdpi/brainwallet_logotype_white.png new file mode 100644 index 00000000..1f1ddde1 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/brainwallet_logotype_white.png differ diff --git a/app/src/main/res/drawable-xhdpi/brainwallet_logotype_white.png b/app/src/main/res/drawable-xhdpi/brainwallet_logotype_white.png new file mode 100644 index 00000000..fbeb2b26 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/brainwallet_logotype_white.png differ diff --git a/app/src/main/res/drawable-xxhdpi/brainwallet_logotype_white.png b/app/src/main/res/drawable-xxhdpi/brainwallet_logotype_white.png new file mode 100644 index 00000000..dc83ec43 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/brainwallet_logotype_white.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/brainwallet_logotype_white.png b/app/src/main/res/drawable-xxxhdpi/brainwallet_logotype_white.png new file mode 100644 index 00000000..83c8c67a Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/brainwallet_logotype_white.png differ diff --git a/app/src/main/res/drawable/brainwallet_logotype_black.png b/app/src/main/res/drawable/brainwallet_logotype_black.png deleted file mode 100644 index 6ce1d0b7..00000000 Binary files a/app/src/main/res/drawable/brainwallet_logotype_black.png and /dev/null differ diff --git a/app/src/main/res/drawable/brainwallet_logotype_color.png b/app/src/main/res/drawable/brainwallet_logotype_color.png deleted file mode 100644 index 2afba56d..00000000 Binary files a/app/src/main/res/drawable/brainwallet_logotype_color.png and /dev/null differ diff --git a/app/src/main/res/drawable/brainwallet_logotype_white.png b/app/src/main/res/drawable/brainwallet_logotype_white.png deleted file mode 100644 index cc0f84e7..00000000 Binary files a/app/src/main/res/drawable/brainwallet_logotype_white.png and /dev/null differ diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 90f8dedd..cd3b7691 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] kotlin = "2.0.0" -agp = "8.5.0" +agp = "8.5.1" androidx-core-ktx = "1.12.0" androidx-appcompat = "1.6.1" androidx-legacy-support = "1.0.0" @@ -25,7 +25,7 @@ google-play-feature-delivery = "2.1.0" google-play-review = "2.0.1" squareup-okhttp-bom = "4.12.0" squareup-retrofit = "2.11.0" -firebase-bom = "32.7.1" +firebase-bom = "34.0.0" jakewarthon-timber = "4.7.1" eclipse-jetty = "9.2.19.v20160908" junit = "4.13.2" @@ -87,7 +87,7 @@ firebase-analytics = { module = "com.google.firebase:firebase-analytics" } firebase-crashlytics = { module = "com.google.firebase:firebase-crashlytics" } firebase-crashlytics-ndk = { module = "com.google.firebase:firebase-crashlytics-ndk" } #firebase-iid = { module = "com.google.firebase:firebase-iid" } -firebase-config = { module = "com.google.firebase:firebase-config-ktx" } +firebase-config = { module = "com.google.firebase:firebase-config" } firebase-messaging = { module = "com.google.firebase:firebase-messaging" } firebase-inappmessaging = { module = "com.google.firebase:firebase-inappmessaging-display" } jakewarthon-timber = { module = "com.jakewharton.timber:timber", version.ref = "jakewarthon-timber" }