From 463c31641daeef81da4ae97ce550d4b445e93e99 Mon Sep 17 00:00:00 2001 From: Leendert de Borst Date: Wed, 28 May 2025 13:29:44 +0200 Subject: [PATCH] Make system bar transparent on android (#846) --- .../java/net/aliasvault/app/MainActivity.kt | 31 +++++++------------ .../app/src/main/res/values/styles.xml | 4 ++- .../app/(tabs)/credentials/index.tsx | 4 ++- apps/mobile-app/app/(tabs)/emails/index.tsx | 5 ++- apps/mobile-app/app/login.tsx | 3 +- apps/mobile-app/app/unlock.tsx | 1 - .../components/themed/ThemedContainer.tsx | 1 - 7 files changed, 23 insertions(+), 26 deletions(-) diff --git a/apps/mobile-app/android/app/src/main/java/net/aliasvault/app/MainActivity.kt b/apps/mobile-app/android/app/src/main/java/net/aliasvault/app/MainActivity.kt index 04ae3bce6..72f4d5a39 100644 --- a/apps/mobile-app/android/app/src/main/java/net/aliasvault/app/MainActivity.kt +++ b/apps/mobile-app/android/app/src/main/java/net/aliasvault/app/MainActivity.kt @@ -1,11 +1,13 @@ package net.aliasvault.app import expo.modules.splashscreen.SplashScreenManager -import android.os.Build import android.os.Bundle import android.content.Intent import android.net.Uri import android.provider.Settings +import android.view.WindowManager +import android.graphics.Color +import android.view.Window import com.facebook.react.ReactActivity import com.facebook.react.ReactActivityDelegate @@ -24,6 +26,14 @@ class MainActivity : ReactActivity() { SplashScreenManager.registerOnActivity(this) // @generated end expo-splashscreen + window.setDecorFitsSystemWindows(false) + window.setNavigationBarColor(Color.TRANSPARENT) + window.setStatusBarColor(Color.TRANSPARENT) + window.attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES + window.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS) + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION) + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) + // Initialize autofill service, this opens the set_autofill_service setting screen // to instruct user to enable AliasVault as autofill provider. // TODO: this should be triggerable from React Native instead so we can better control flow @@ -57,23 +67,4 @@ class MainActivity : ReactActivity() { fabricEnabled ){}) } - - /** - * Align the back button behavior with Android S - * where moving root activities to background instead of finishing activities. - * @see onBackPressed - */ - override fun invokeDefaultOnBackPressed() { - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) { - if (!moveTaskToBack(false)) { - // For non-root activities, use the default implementation to finish them. - super.invokeDefaultOnBackPressed() - } - return - } - - // Use the default back button implementation on Android S - // because it's doing more than [Activity.moveTaskToBack] in fact. - super.invokeDefaultOnBackPressed() - } } diff --git a/apps/mobile-app/android/app/src/main/res/values/styles.xml b/apps/mobile-app/android/app/src/main/res/values/styles.xml index 1011350b8..3e78648a9 100644 --- a/apps/mobile-app/android/app/src/main/res/values/styles.xml +++ b/apps/mobile-app/android/app/src/main/res/values/styles.xml @@ -3,7 +3,9 @@ @android:color/black @style/ResetEditText @color/colorPrimary - #ffffff + @android:color/transparent + @android:color/transparent + true