You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PerryActivity now requests all manifest permissions at startup — apps declare permissions in perry.toml (e.g. permissions = ["RECORD_AUDIO"]) and the system dialog appears automatically before native code runs. No manual permission handling needed.
Audio capture API (perry/system): audioStart(), audioStop(), audioGetLevel(), audioGetPeak() — real-time A-weighted dB(A) measurement via AudioRecord/JNI.
Android: Canvas rendering fixes
Fixed Canvas widget invisible on Android — CANVAS_STATES was thread_local (created on perry-native thread, drawn from UI thread). Now uses global Mutex<HashMap>.
Fixed drawLine JNI signature typo that silently broke all line drawing.
Canvas ImageView now gets explicit LayoutParams so it has visible dimensions.
Canvas Clear now uses PorterDuff.Mode.CLEAR instead of opaque white fill.
Android: Text rendering fix
Fixed set_font_weight() passing null Typeface to setTypeface(), which corrupted text to show "undefined". Now creates a valid Typeface via Typeface.defaultFromStyle().
Audio capture API (all platforms)
New perry/system audio functions: audioStart, audioStop, audioGetLevel, audioGetPeak, audioGetWaveformSamples, getDeviceModel.
macOS/iOS: AVAudioEngine with block-based tap callback
Android: AudioRecord via JNI with background Rust thread
Linux: PulseAudio simple API (libpulse-simple)
Windows: WASAPI shared-mode capture
Web: getUserMedia + AnalyserNode
All platforms share 48kHz A-weighting IIR filter, EMA smoothing, and atomic lock-free state.
perry run android pipeline
perry run android now compiles, packages (via Perry Hub), signs with debug keystore, installs via adb, and launches — full end-to-end workflow.
Fixed find_library() for cross-compile targets to search target/<triple>/release/ relative to the perry executable.
Other
Upgraded Cranelift from 0.113 to 0.121.
Windows: enabled geisterhand linking, registered all widget types.