From 212dd5110c63530be317737a2f3fdf5dc777f3e0 Mon Sep 17 00:00:00 2001 From: ajp_anton Date: Wed, 1 Jul 2026 20:12:38 +0000 Subject: [PATCH] Improve AOSP stock statusbar suppression --- .../layout/StockLayoutCanvasController.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/app/src/main/java/se/ajpanton/statusbartweak/runtime/layout/StockLayoutCanvasController.java b/app/src/main/java/se/ajpanton/statusbartweak/runtime/layout/StockLayoutCanvasController.java index ac25410..1266d72 100644 --- a/app/src/main/java/se/ajpanton/statusbartweak/runtime/layout/StockLayoutCanvasController.java +++ b/app/src/main/java/se/ajpanton/statusbartweak/runtime/layout/StockLayoutCanvasController.java @@ -80,6 +80,7 @@ final class StockLayoutCanvasController { "entries" }; private static final Set TARGET_ID_NAMES = Set.of( + "clock", "left_clock_container", "notification_icon_area", "notification_icon_area_inner", @@ -99,6 +100,7 @@ final class StockLayoutCanvasController { ); private static final Set LAYOUT_OFF_UNLOCKED_ONLY_IDS = Set.of( + "clock", "left_clock_container", "notification_icon_area", "notification_icon_area_inner", @@ -2424,6 +2426,7 @@ final class StockLayoutCanvasController { renderResult.layoutChanged(), false, activeScene); + hideTrackedUnlockedStockSurfaces(root); hideTrackedStatusChipSources(root); if (renderResult.chipSourcesChanged() && !scanTree @@ -2453,6 +2456,35 @@ final class StockLayoutCanvasController { }); } + private void hideTrackedUnlockedStockSurfaces(View root) { + if (root == null || trackedUnlockedStockSurfaces.isEmpty()) { + return; + } + ArrayDeque staleViews = new ArrayDeque<>(); + for (View view : trackedUnlockedStockSurfaces) { + if (view == null || !view.isAttachedToWindow()) { + staleViews.add(view); + continue; + } + if (!isDescendantOf(view, root)) { + continue; + } + if (ownedIconHostManager.isOwnedHost(view)) { + staleViews.add(view); + continue; + } + if (isTrackableStatusChipSurface(view)) { + hideStatusChipSurface(root, view); + } else if (shouldHideNonChipView(view)) { + hideView(view, true); + } else { + restoreView(view); + staleViews.add(view); + } + } + removeStaleViews(trackedUnlockedStockSurfaces, staleViews); + } + private void applyLayoutOffRoot( View root, SbtSettings settings,