private boolean setOverlayVisibility()

in android/tooling/rib-intellij-plugin/native/intellij-broadcast-rib/src/main/java/com/uber/debug/broadcast/rib/RibHierarchyDebugBroadcastHandler.java [328:359]


  private boolean setOverlayVisibility(UUID id, boolean isVisible) {
    if (isVisible) {
      setOverlayVisibility(highlightId, false);
    }
    if (!isVisible && highlightId.equals(id)) {
      highlightId = NULL_ID;
    }

    View view = getView(id);
    if (view != null) {
      if (isVisible) {
        RibDebugOverlay overlay = new RibDebugOverlay();
        view.getOverlay().add(overlay);
        view.invalidate();
        idsToOverlay.put(id, new WeakReference<>(overlay));
        highlightId = id;
      } else {
        WeakReference<RibDebugOverlay> overlayRef = idsToOverlay.get(id);
        if (overlayRef == null) {
          return false;
        }
        idsToOverlay.remove(id);
        RibDebugOverlay overlay = overlayRef.get();
        if (overlay == null) {
          return false;
        }
        view.getOverlay().remove(overlay);
        view.invalidate();
      }
    }
    return true;
  }