Meters and notices on the CallOverlay surface; gate the new tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 files changed,
+5
−7
Makefile+2 −1native/apple/Sources/CallsKit/AudioMeter.swift+3 −6
CI passed — run details
CI log
=== vet === go vet ./... === fmt === === test === go test ./... ok amadan.net/oficina/calls/callscore 6.677s ? amadan.net/oficina/calls/cmd/calls [no test files] ok amadan.net/oficina/calls/internal/calls 1.420s ok amadan.net/oficina/calls/internal/calls/apns 0.006s ok amadan.net/oficina/calls/internal/calls/hub 0.275s ? amadan.net/oficina/calls/internal/calls/icons [no test files] ok amadan.net/oficina/calls/internal/calls/relay 0.003s ok amadan.net/oficina/calls/internal/calls/seal 0.002s ok amadan.net/oficina/calls/internal/callstest 8.393s ? amadan.net/oficina/calls/protocol [no test files] === migration-check === go run amadan.net/rastrillo/rastrillo/cmd/rastrillo migration check rastrillo migration check: models and migrations agree === race === CGO_ENABLED=1 go test -race ./internal/... ok amadan.net/oficina/calls/internal/calls 8.470s ok amadan.net/oficina/calls/internal/calls/apns 1.019s ok amadan.net/oficina/calls/internal/calls/hub 2.692s ? amadan.net/oficina/calls/internal/calls/icons [no test files] ok amadan.net/oficina/calls/internal/calls/relay 1.015s ok amadan.net/oficina/calls/internal/calls/seal 1.011s ok amadan.net/oficina/calls/internal/callstest 23.982s
diff --git a/Makefile b/Makefile| index 04c8cb5..eb72cda 100644 |
| --- a/Makefile |
| +++ b/Makefile |
| @@ -149,6 +149,7 @@ browser: |
| node --test test/browser/room-share.test.mjs |
| node --test test/browser/room-mute.test.mjs |
| node --test test/browser/room-space.test.mjs |
| + node --test test/browser/room-hearing.test.mjs |
| node --test test/browser/room-lane.test.mjs |
| node --test test/browser/media.test.mjs |
| node --test test/browser/audio.test.mjs |
| @@ -171,7 +172,7 @@ native-browser: native-mac |
| # The gate runs CallsInterop, which native-mac does not build; without |
| # this it runs whatever binary a previous build left behind. |
| swift build --package-path native/apple --product CallsInterop |
| - CALLS_DEEPFILTER_MODEL=$(CURDIR)/native/build/DeepFilterNet3_onnx.tar.gz CGO_ENABLED=0 go test -tags browser -count=1 -timeout 10m -run 'TestNative(MacCallsBrowser|MacChat|MacScreenMotion|BrowserAuthentication)' -v ./internal/callstest/ |
| + CALLS_DEEPFILTER_MODEL=$(CURDIR)/native/build/DeepFilterNet3_onnx.tar.gz CGO_ENABLED=0 go test -tags browser -count=1 -timeout 10m -run 'TestNative(MacCallsBrowser|MacChat|MacScreenMotion|BrowserAuthentication|MacAudioSelfTest)' -v ./internal/callstest/ |
| # Two apps in one call, sharing screens to each other. Separate from |
| # native-browser because two unsigned apps on one Mac do not reliably |
diff --git a/native/apple/Sources/CallsKit/AudioMeter.swift b/native/apple/Sources/CallsKit/AudioMeter.swift| index bc62e7c..c8e48d6 100644 |
| --- a/native/apple/Sources/CallsKit/AudioMeter.swift |
| +++ b/native/apple/Sources/CallsKit/AudioMeter.swift |
| @@ -233,7 +233,7 @@ public struct AudioLevelBars: View { |
| HStack(alignment: .bottom, spacing: 2) { |
| ForEach(0..<MeterScale.steps, id: \.self) { bar in |
| RoundedRectangle(cornerRadius: 1) |
| - .fill(bar < step ? Color.white : Color.white.opacity(0.3)) |
| + .fill(bar < step ? Color.white : CallOverlay.secondaryText.opacity(0.4)) |
| .frame(width: 3, height: height * CGFloat(bar + 2) / CGFloat(MeterScale.steps + 1)) |
| } |
| } |
| @@ -253,7 +253,7 @@ public struct TileAudioStatus: View { |
| case .meter(let step)?: |
| AudioLevelBars(step: step) |
| .padding(.horizontal, 7).padding(.vertical, 5) |
| - .background(.black.opacity(0.7), in: Capsule()) |
| + .callOverlaySurface(Capsule()) |
| case .noSound(let name)?: |
| AudioLine( |
| text: AudioWords.noSound(from: name), systemImage: "speaker.slash.fill", |
| @@ -315,10 +315,7 @@ struct AudioLine: View { |
| } |
| .font(.caption.weight(.semibold)).foregroundStyle(.white) |
| .padding(.horizontal, 8).padding(.vertical, 4) |
| - .background(.black.opacity(0.7), in: RoundedRectangle(cornerRadius: 8, style: .continuous)) |
| - .overlay( |
| - RoundedRectangle(cornerRadius: 8, style: .continuous).strokeBorder( |
| - .white.opacity(0.18), lineWidth: 1)) |
| + .callOverlaySurface(RoundedRectangle(cornerRadius: 8, style: .continuous)) |
| } |
| } |