Files
BizGaze_Remote/mobile
Sravan bdd0058c5c Hole-punch: render native video BEHIND a transparent WebView
Permanent fix for the z-order whack-a-mole (controls/menus/panels hiding
behind the native video). Instead of drawing native video ON TOP of the
WebView, draw it BEHIND a transparent WebView so ALL web UI floats on top
naturally — no suppressing, no clamping, no docked-only bar.

Plugin:
- setHolePunch(on): webView.isOpaque=false + black layer bg + clear scroll
  bg (restored on off / call end). Tiles inserted belowSubview:scrollView.
- Dropped native name/mute overlays (the web tile's own .nm/.meet-mute/avatar
  render on top now) and the PaddingLabel.
- Zoom re-plumbed: touches hit the WebView, so native gesture zoom can't work;
  new setTileZoom({uid,scale,tx,ty}) applies a web-forwarded transform to the
  tile's inner video. TileVideoView simplified to a container + applyZoom.

Web:
- bzNativeStartTiles/StopTiles toggle NC.setHolePunch + a body.bz-hp class
  (only when the plugin supports it — old builds keep the suppress fallback).
- Tiles with live native video get .bz-hasvid → CSS makes them transparent +
  hides the web avatar so the video shows through; name/mute/border stay.
- New web-forwarded pinch/pan/double-tap on the shared screen → setTileZoom.
- Suppress-on-overlay + the height clamp now only apply when NOT hole-punched.

Needs a Codemagic build (plugin). Web deployed; no-ops to the prior behavior
on builds without setHolePunch.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-07 11:34:09 +05:30
..

Biz Connect — Mobile app (Capacitor)

A Capacitor shell that loads the live Connect web UI (server.url in capacitor.config.json) and adds native push, camera/mic, and store distribution. See the overall plan in ../CLIENTS.md.

Android: follow the step-by-step in ANDROID_SETUP.md (project generation, icons/splash, permissions, Firebase/FCM, run, and Play Store build).

Prerequisites

  • Node + npm install here.
  • Android: Android Studio + SDK.
  • iOS: macOS + Xcode (+ an Apple Developer account to run on device / ship).

Setup

npm install
npm run assets           # generate app icons + splash from resources/
npx cap add android
npx cap add ios          # macOS only
npx cap sync

Run / build

npx cap open android     # build & run from Android Studio
npx cap open ios         # build & run from Xcode

Server origin

The app loads server.url from capacitor.config.json (default https://remote.bizgaze.com). For a local device test against a dev server, set it to your machine's LAN URL (and allow cleartext for plain http).

Native push (next step)

Native push uses the Capacitor Push Notifications plugin (FCM on Android, APNs on iOS) and a server endpoint to register device tokens — tracked in ../CLIENTS.md Phase B. This is separate from the existing Web Push (VAPID) the PWA already uses. Needs Google/Apple credentials to test end-to-end.

Shipping (gated on accounts)

  • Google Play: one-time $25; upload an AAB; signing key.
  • App Store: Apple Developer $99/yr; archive via Xcode; App Store Connect listing.