1
0
mirror of git://f0xx.org/ac/ac-mobile-android synced 2026-08-12 18:12:13 +03:00

19 Commits

Author SHA1 Message Date
Anton Afanasyeu
da821cf0bc OTA channel selector with dev/staging/prod presets.
Developer settings spinner prefills manifest URL from selected channel; prod is default.
2026-08-12 14:08:17 +02:00
Anton Afanasyeu
3e170646f0 SFU M2: MediaProjection screen share publish in lab.
Add ScreenCapturerAndroid path with foreground service, ICE servers from
SFU health API (coturn), and unit tests for SfuIceServers parsing.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 22:45:52 +02:00
Anton Afanasyeu
f7d9c0632f SFU M1: libwebrtc Janus publish/subscribe behind dev gate.
Add stream-webrtc lab activity with REST join + Janus WS trickle,
WebView issues login for session cookies, and developer settings toggle
without lifting ALPHA_FEATURE_FREEZE.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 22:28:03 +02:00
Anton Afanasyeu
47eb316d17 Fix unified tray notification and reverse live-cast receiver flow.
Use a single CastTrayNotifier FGS for receiver/sender status combined with
VPN and dev ADB/HTTP discovery lines; remove duplicate ID_RECEIVER tray.
Receiver accepts live casts from background, prompts join then sender PIN,
hides manual Receive button, and adds select-all-nearby on sender.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 11:43:27 +02:00
Anton Afanasyeu
7d87f3c5c1 Align iodine dev defaults and UI hint with live tunnel domain.
Use iod.airie.me (iodined on FE); t0.f0xx.org returns NXDOMAIN.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 19:46:06 +02:00
Anton Afanasyeu
2619848d1b Implement native iodine client and fix RA heartbeat URL resolution.
Bundle iodine 0.7.0 with JNI TUN bridge; apply BE iodine credentials on connect; canonical heartbeat URL fallback.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 19:44:38 +02:00
Anton Afanasyeu
cd520cadd1 Add QR scan target frame and tap-to-refocus in scanner.
Track detected QR bounds with animated corner brackets; tap overlay to trigger CameraX AF/AE with focus pulse feedback.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 15:40:38 +02:00
Anton Afanasyeu
194e558260 Add in-app QR scanner with internal routing for auth links.
CameraX + ML Kit scan from settings; 2FA approve and verify-email URLs open in-app WebView, others use the system browser.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 14:21:14 +02:00
Anton Afanasyeu
2a5b46a212 feat(dev): improve wireless ADB reconnect and mDNS probing
Align in-app dev helpers with adb-reconnect pairing flow and expand tests
for Android 11+ TLS wireless debugging.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 15:36:53 +02:00
Anton Afanasyeu
4c15be763b Add adaptive jitter buffer, BWE, and mid-session codec renegotiation.
Receiver pipeline gets configurable jitter buffering with live stats in the debug overlay; sender/receiver share AdaptiveNetworkControlPlane for congestion-aware bitrate and codec switches without a protocol version bump.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-08 14:55:13 +02:00
Anton Afanasyeu
fb8b0c43e7 codecs: add native build scripts for libvpx/opus/speex + fix CMake includes
- scripts/build-native-codecs.sh: cross-compile libvpx, opus, speex for
  Android ABIs (arm64-v8a, armeabi-v7a, x86_64) using NDK clang with -fPIC
- scripts/android-ndk.sh: NDK root detection helper
- scripts/native-build-cache.sh: ccache detection helper
- scripts/init-third-party-submodules.sh: init codec submodules
- scripts/ensure-gradle-wrapper.sh: gradle wrapper sanity check
- scripts/adb-reconnect.sh: ADB device discovery helpers
- ndk/CMakeLists.txt: per-ABI include dirs for opus/ and speex_config_types.h

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 23:07:17 +02:00
Anton Afanasyeu
f6e69153ca codecs: real Opus + Speex JNI encode/decode; SFU gate enabled
- opus_bridge.c / speex_bridge.c: full encoder + decoder JNI (libopus/libspeex)
- NativeCodecBridge: add Opus/Speex encode/decode/release public Java API
- OpusAudioEncoderSink / SpeexAudioEncoderSink: real AudioEncoderSink impls
- AudioCodecFactory: route OPUS_NATIVE → OpusAudioEncoderSink, SPEEX_NATIVE → SpeexAudioEncoderSink
- AudioDecoderSink interface; NativeAudioDecoder (JNI decode → AudioTrack)
- ReceiverCastService: swap to NativeAudioDecoder when negotiated codec is Opus/Speex
- SfuRelayGate: PREVIEW_ENABLED=true; add API_BASE, WS_PATH, healthUrl()
- Unit tests: OpusAudioEncoderSinkTest, SpeexAudioEncoderSinkTest, SfuRelayGateTest (19 pass)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 22:27:44 +02:00
Anton Afanasyeu
43f3014f2c mobile: IodineVpnServiceTest lifecycle coverage + ndkVersion 29
- IodineVpnServiceTest: action constants, extras, IodineTunnelBridge state, config sanitize, RemoteAccessMode iodine round-trips
- app/build.gradle: ndkVersion 29.0.14206865 (27 had corrupt empty dir)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-25 17:49:07 +02:00
Anton Afanasyev
719148a3ea Dev remote access: iodine DNS tunnel mode (UDP 5350, VpnService).
Settings, diagnostics/self-test, heartbeat capability iodine, and unit tests.
Default lab password zxc123 in dev prefs (overridable).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 22:57:48 +02:00
Anton Afanasyeu
fb9c10b48c docs: AGENTS deps path for url-shortener submodule
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 17:48:26 +02:00
Anton Afanasyeu
459f75b41c submodules: register third-party codecs and deps/ac-ms-url-shortener
.gitmodules listed paths but no gitlinks were committed (third-party/ was an
empty tree). External codecs under third-party/; url-shortener moved to
deps/ac-ms-url-shortener (git://f0xx.org/ac/ac-ms-url-shortener).
2026-06-24 17:45:12 +02:00
Anton Afanasyeu
4daefd7dd0 mobile: default crash upload URL via BackendEndpoints /issues/
Point DEFAULT_UPLOAD_URL at canonical issues API path instead of legacy /crashes/.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-23 17:08:16 +02:00
Anton Afanasyeu
bfb605ba35 path refs sync 2026-06-23 12:33:03 +02:00
Anton Afanasyeu
8675c2df3a initial 2026-06-23 12:30:10 +02:00