Files
discord-decomp/modules/video_calls/native/VoiceCallOverlayUtils.tsx
T
2026-11-01 12:12:55 +02:00

65 lines
4.3 KiB
TypeScript

// Metro module 10535 (f10536).
import { MIN_MARGIN_BETWEEN_OVERLAYS, VoiceCallOverlayType } from "./ChannelCallConstants";
import Dispatcher from "../../../Dispatcher";
let doRectanglesIntersectWorklet;
const doRectanglesIntersectWorklet2 = function doRectanglesIntersectWorklet(a0, a1, a2) {
if (a0 != null && a0.x != null && a0.y != null && a0.width != null && a0.height != null && a1 != null && a1.x != null && a1.y != null && a1.width != null && a1.height != null) {
const r7 = a0.x - a2;
const r9 = a0.x + a0.width + a2;
const r22 = a0.y - a2;
const r26 = a0.y + a0.height + a2;
const r8 = a1.x;
const r29 = a1.x + a1.width;
const r30 = a1.y;
const r32 = a1.y + a1.height;
return !(r9 < r8 || r7 > r29 || r26 < r30 || r22 > r32);
}
return false;
};
doRectanglesIntersectWorklet2.__closure = {};
doRectanglesIntersectWorklet2.__workletHash = 697248006216;
doRectanglesIntersectWorklet2.__initData = {
code: "function doRectanglesIntersectWorklet_VoiceCallOverlayUtilsTsx1(rectA,rectB,minMarginBetweenOverlays){if(rectA==null||rectA.x==null||rectA.y==null||rectA.width==null||rectA.height==null||rectB==null||rectB.x==null||rectB.y==null||rectB.width==null||rectB.height==null){return false;}const minAx=rectA.x-minMarginBetweenOverlays;const maxAx=rectA.x+rectA.width+minMarginBetweenOverlays;const minAy=rectA.y-minMarginBetweenOverlays;const maxAy=rectA.y+rectA.height+minMarginBetweenOverlays;const minBx=rectB.x;const maxBx=rectB.x+rectB.width;const minBy=rectB.y;const maxBy=rectB.y+rectB.height;const aLeftOfB=maxAx<minBx;const aRightOfB=minAx>maxBx;const aBelowB=minAy>maxBy;const aAboveB=maxAy<minBy;return!(aLeftOfB||aRightOfB||aAboveB||aBelowB);}"
};
doRectanglesIntersectWorklet = doRectanglesIntersectWorklet2;
export function doesTargetPositionIntersectOtherOverlaysWorklet(a0, a1, a2) {
if (VoiceCallOverlayType.VOICE_CONTROLS_TOGGLE_BUTTON === a1) {
if (!a0[VoiceCallOverlayType.CAMERA_PREVIEW_PICTURE_IN_PICTURE].isVisible) {
return false;
}
if (doRectanglesIntersectWorklet(a2, a0[VoiceCallOverlayType.CAMERA_PREVIEW_PICTURE_IN_PICTURE], MIN_MARGIN_BETWEEN_OVERLAYS)) {
return true;
}
} else if (VoiceCallOverlayType.CAMERA_PREVIEW_PICTURE_IN_PICTURE === a1) {
if (!a0[VoiceCallOverlayType.VOICE_CONTROLS_TOGGLE_BUTTON].isVisible) {
return false;
}
if (doRectanglesIntersectWorklet(a2, a0[VoiceCallOverlayType.VOICE_CONTROLS_TOGGLE_BUTTON], MIN_MARGIN_BETWEEN_OVERLAYS)) {
return true;
}
}
return false;
}
doesTargetPositionIntersectOtherOverlaysWorklet.__closure = {
VoiceCallOverlayType,
doRectanglesIntersectWorklet,
MIN_MARGIN_BETWEEN_OVERLAYS
};
doesTargetPositionIntersectOtherOverlaysWorklet.__workletHash = 4190950618494;
doesTargetPositionIntersectOtherOverlaysWorklet.__initData = {
code: "function doesTargetPositionIntersectOtherOverlaysWorklet_VoiceCallOverlayUtilsTsx2(voiceCallOverlayLayoutStates,voiceCallOverlayType,targetRectangle){const{VoiceCallOverlayType,doRectanglesIntersectWorklet,MIN_MARGIN_BETWEEN_OVERLAYS}=this.__closure;switch(voiceCallOverlayType){case VoiceCallOverlayType.VOICE_CONTROLS_TOGGLE_BUTTON:{if(!voiceCallOverlayLayoutStates[VoiceCallOverlayType.CAMERA_PREVIEW_PICTURE_IN_PICTURE].isVisible){return false;}const doRectanglesIntersect=doRectanglesIntersectWorklet(targetRectangle,voiceCallOverlayLayoutStates[VoiceCallOverlayType.CAMERA_PREVIEW_PICTURE_IN_PICTURE],MIN_MARGIN_BETWEEN_OVERLAYS);if(doRectanglesIntersect){return true;}break;}case VoiceCallOverlayType.CAMERA_PREVIEW_PICTURE_IN_PICTURE:{if(!voiceCallOverlayLayoutStates[VoiceCallOverlayType.VOICE_CONTROLS_TOGGLE_BUTTON].isVisible){return false;}const doRectanglesIntersect=doRectanglesIntersectWorklet(targetRectangle,voiceCallOverlayLayoutStates[VoiceCallOverlayType.VOICE_CONTROLS_TOGGLE_BUTTON],MIN_MARGIN_BETWEEN_OVERLAYS);if(doRectanglesIntersect){return true;}break;}}return false;}"
};
export function updateVoiceCallOverlayLayoutState(a0, a1) {
Dispatcher.dispatch({
type: "VOICE_CALL_OVERLAY_LAYOUT_STATE_UPDATE",
voiceCallOverlayType: a0,
voiceCallOverlayLayoutState: a1
});
}
export function setPipEnabledWhileFocusedOnActivityOrStream(a0) {
Dispatcher.dispatch({
type: "VOICE_CALL_SET_PIP_ENABLED_FOR_ACTIVITY_OR_STREAM",
pipEnabledWhileFocusedOnActivityOrStream: a0
});
}