Releases: SardorbekR/SafeMediaKit
Releases · SardorbekR/SafeMediaKit
0.2.1
VoiceOver now exposes the default overlay as one text element plus separately focusable Show/Report buttons, instead of a single combined element with custom actions. Matches the UIKit overlay's accessibility shape and makes the actions discoverable without the custom-actions gesture. Found during real-device VoiceOver QA.
0.2.0
Custom overlays
SafeMediaImageis now generic over its overlay: pass a trailingoverlay:closure receivingSafeMediaOverlayStateto fully brand the intervention UISafeMediaOverlayState: resolved copy,canReveal/canReportflags, and a policy-guardedreveal()— custom overlays cannot bypassblockor no-reveal policies- UIKit:
overlayProvider:onSafeMediaImageView.configure(...); the redaction blur always stays beneath custom overlays
Redesigned defaults
- Per-state SF Symbols (
eye.slash.fill,lock.fill,gearshape.fill), headline/footnote typography, capsule buttons - Adaptive layout: small frames drop the icon and tighten padding so text wraps instead of truncating
Source note
Explicit SafeMediaImage type annotations must become SafeMediaImage<SensitiveMediaOverlay>; initializer call sites are unaffected.
0.1.0
Initial release.
- Core engine with per-evaluation availability checks and verdict caching
- Apple SensitiveContentAnalysis adapter (iOS 17+, macOS 14+, Mac Catalyst 17+)
- Four policy presets: adultMinimal, teenMessaging, childStrict, classroomStrict
- SwiftUI
SafeMediaImageand UIKitSafeMediaImageViewwith fail-closed blur/reveal/block/report flows SafeMediaKitTestingwith mock analyzer and fixtures — test sensitive-media UI without explicit content- Xcode 27-gated
detectedTypescategory mapping - No telemetry, no network, media never leaves the device