diff --git a/mobile/capacitor.config.json b/mobile/capacitor.config.json index d70d9e2..79d1fd8 100644 --- a/mobile/capacitor.config.json +++ b/mobile/capacitor.config.json @@ -14,7 +14,9 @@ "SafeArea": { "detectViewportFitCoverChanges": true, "initialViewportFitCover": true, - "offsetForKeyboardInsetBug": true + "offsetForKeyboardInsetBug": true, + "statusBarStyle": "LIGHT", + "navigationBarStyle": "LIGHT" }, "SystemBars": { "insetsHandling": "disable" diff --git a/server/public/home.html b/server/public/home.html index 3a5ab46..32a9ab9 100644 --- a/server/public/home.html +++ b/server/public/home.html @@ -1311,6 +1311,11 @@ function twemojify(_el){ /* native emoji: nothing to do */ } // juggling here — we only tag so CSS can make small native-only tweaks if needed. (function(){ try{ var C=window.Capacitor; if(!C||!C.isNativePlatform||!C.isNativePlatform()) return; var p=(C.getPlatform&&C.getPlatform())||''; var r=document.documentElement; r.classList.add('native-app'); if(p) r.classList.add('native-'+p); + // Android edge-to-edge: the system-bar icons default to LIGHT (white) → invisible on our white app (the + // clock/battery/nav icons vanish). Set them to DARK content — in @capacitor-community/safe-area, style + // 'LIGHT' means "dark content on a light background". Also mirrored in capacitor.config.json (statusBarStyle/ + // navigationBarStyle) for a permanent fix on the next build; this runtime call fixes already-installed APKs. + if(p==='android'){ try{ var SA=C.Plugins&&C.Plugins.SafeArea; if(SA&&SA.setSystemBarsStyle){ SA.setSystemBarsStyle({ style:'LIGHT', type:'STATUS_BAR' }); SA.setSystemBarsStyle({ style:'LIGHT', type:'NAVIGATION_BAR' }); } }catch(_){} } // Keyboard. The device log proved that on our build (resize:none) the WebView does NOT resize and // VisualViewport does NOT reflect the keyboard (clientHeight & vvHeight both stay full) — so the ONLY // reliable signal is the Capacitor Keyboard plugin's reported height. Now that the iOS auto-zoom is