diff --git a/app/src/main/java/com/valterc/ki2/karoo/overlay/OverlayWindowHandler.kt b/app/src/main/java/com/valterc/ki2/karoo/overlay/OverlayWindowHandler.kt index a354e51..887c973 100644 --- a/app/src/main/java/com/valterc/ki2/karoo/overlay/OverlayWindowHandler.kt +++ b/app/src/main/java/com/valterc/ki2/karoo/overlay/OverlayWindowHandler.kt @@ -62,6 +62,13 @@ class OverlayWindowHandler( } } + private val receiverScreenOn: BroadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + Timber.d("Received Screen On") + overlayManager?.refreshOverlays() + } + } + init { extensionContext.serviceClient.registerPreferencesWeakListener(preferencesListener) extensionContext.karooSystem.addConsumer { rideState: RideState -> @@ -82,6 +89,12 @@ class OverlayWindowHandler( IntentFilter("io.hammerhead.hx.intent.action.RIDE_STOP"), RECEIVER_EXPORTED ) + + service.registerReceiver( + receiverScreenOn, + IntentFilter(Intent.ACTION_SCREEN_ON), + RECEIVER_EXPORTED + ) } private fun open(){ diff --git a/app/src/main/java/com/valterc/ki2/karoo/overlay/manager/BaseOverlayManager.java b/app/src/main/java/com/valterc/ki2/karoo/overlay/manager/BaseOverlayManager.java index 4475799..5315cf6 100644 --- a/app/src/main/java/com/valterc/ki2/karoo/overlay/manager/BaseOverlayManager.java +++ b/app/src/main/java/com/valterc/ki2/karoo/overlay/manager/BaseOverlayManager.java @@ -276,4 +276,14 @@ protected void toggleOverlay() { } } + protected void refreshOverlay() { + if (!overlayEnabled || parentViewGroup == null) { + return; + } + + handler.post(() -> { + parentViewGroup.setVisibility(View.INVISIBLE); + handler.post(() -> parentViewGroup.setVisibility(View.VISIBLE)); + }); + } } diff --git a/app/src/main/java/com/valterc/ki2/karoo/overlay/manager/OverlayManager.java b/app/src/main/java/com/valterc/ki2/karoo/overlay/manager/OverlayManager.java index 5f56094..4a79a3c 100644 --- a/app/src/main/java/com/valterc/ki2/karoo/overlay/manager/OverlayManager.java +++ b/app/src/main/java/com/valterc/ki2/karoo/overlay/manager/OverlayManager.java @@ -29,4 +29,9 @@ public void dispose() { primaryOverlayManager.dispose(); secondaryOverlayManager.dispose(); } + + public void refreshOverlays() { + primaryOverlayManager.refreshOverlay(); + secondaryOverlayManager.refreshOverlay(); + } }