Skip to content

Restore legacy Android UI and OBS plugin for V1.0.0 - #27

Merged
YashasVM merged 3 commits into
mainfrom
codex/restore-legacy-working-codebase
Aug 4, 2026
Merged

Restore legacy Android UI and OBS plugin for V1.0.0#27
YashasVM merged 3 commits into
mainfrom
codex/restore-legacy-working-codebase

Conversation

@YashasVM

@YashasVM YashasVM commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • Restores the screenshot-era Android operator UI: READY status, OBS camera slots, lens buttons, and Screen/STAY/Torch/Flip/Config controls.
  • Restores the matching legacy Android streaming/control path and working OBS plugin baseline.
  • Removes the Android auto-updater completely: updater code, prompts, settings action, install permission, update-only resources, CI metadata sidecars, and updater docs/tests.
  • Sets Android, OBS plugin, installer, website, documentation, and local build defaults to V1.0.0.
  • Removes the isolated dashboard and V4/build-stage CMake foundation, workflows, evidence tooling, and speculative documentation.

Validation

  • Python contracts: 28 passed.
  • Android unit tests, lint, native build, and debug APK: passed.
  • Website production build: passed.
  • OBS DLL/package build at version 1.0.0: passed.
  • ZIP migration smoke test: passed.
  • Required GitHub checks: Android APK and Windows OBS plugin/installer both passed.

Backups

  • backup/pre-legacy-restore-20260804
  • backup/dashboard-v4-20260804
  • backup/v4-build-stage-20260804
  • backup/pre-main-sync-v1.0.0-20260805
  • stash@{0} preserves the original dirty tracked/untracked worktree.

A live Android-device-to-OBS LAN test still requires the physical device and OBS session.

Summary by CodeRabbit

  • New Features

    • Released OpenStream V1.0.0 with a streamlined Android camera preview and streaming experience.
    • Added camera flip, lens selection, pinch-to-zoom, torch controls, and keep-screen-on behavior.
    • Simplified settings and OBS connection workflows.
    • Updated the website and documentation with V1.0.0 setup, compatibility, and release guidance.
  • Changes

    • Removed advanced monitoring overlays, telemetry displays, pairing controls, in-app updates, and SRT passphrase support.
    • Windows foundation tooling and related experimental workflows are no longer included.
    • Updated branding, installer, plugin, and release assets to version 1.0.0.

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4c9c0844-a57e-422a-af83-1fee0534df5e

📥 Commits

Reviewing files that changed from the base of the PR and between 6c65476 and 1ca64ed.

⛔ Files ignored due to path filters (3)
  • docs/benchmark-results-template.csv is excluded by !**/*.csv
  • website/package-lock.json is excluded by !**/package-lock.json
  • website/public/social-card.svg is excluded by !**/*.svg
📒 Files selected for processing (89)
  • .github/workflows/android.yml
  • .github/workflows/release.yml
  • .github/workflows/v4-windows-foundation.yml
  • .gitignore
  • CMakeLists.txt
  • CMakePresets.json
  • CMakeUserPresets.json.example
  • README.md
  • android/app/build.gradle.kts
  • android/app/src/main/AndroidManifest.xml
  • android/app/src/main/cpp/openstream_srt.cpp
  • android/app/src/main/java/dev/openstream/app/MainActivity.kt
  • android/app/src/main/java/dev/openstream/app/OpenStreamUiState.kt
  • android/app/src/main/java/dev/openstream/app/SettingsActivity.kt
  • android/app/src/main/java/dev/openstream/app/audio/AudioLevel.kt
  • android/app/src/main/java/dev/openstream/app/camera/Camera2Controller.kt
  • android/app/src/main/java/dev/openstream/app/camera/CameraLens.kt
  • android/app/src/main/java/dev/openstream/app/camera/CameraModels.kt
  • android/app/src/main/java/dev/openstream/app/camera/CameraStateStore.kt
  • android/app/src/main/java/dev/openstream/app/camera/FocusCoordinateMapper.kt
  • android/app/src/main/java/dev/openstream/app/control/CameraControlServer.kt
  • android/app/src/main/java/dev/openstream/app/control/PairingTokenStore.kt
  • android/app/src/main/java/dev/openstream/app/encoder/MediaCodecAudioEncoder.kt
  • android/app/src/main/java/dev/openstream/app/encoder/MediaCodecVideoEncoder.kt
  • android/app/src/main/java/dev/openstream/app/monitoring/AudioLevelMeterView.kt
  • android/app/src/main/java/dev/openstream/app/monitoring/MonitoringOverlayView.kt
  • android/app/src/main/java/dev/openstream/app/monitoring/ZebraAnalyzer.kt
  • android/app/src/main/java/dev/openstream/app/service/OpenStreamCameraService.kt
  • android/app/src/main/java/dev/openstream/app/stream/SrtStreamClient.kt
  • android/app/src/main/java/dev/openstream/app/telemetry/TelemetryFormatter.kt
  • android/app/src/main/java/dev/openstream/app/telemetry/TelemetrySampler.kt
  • android/app/src/main/java/dev/openstream/app/update/AppUpdater.kt
  • android/app/src/main/res/drawable/bg_camera_palette.xml
  • android/app/src/main/res/drawable/bg_focus_reticle.xml
  • android/app/src/main/res/drawable/bg_hud_chip.xml
  • android/app/src/main/res/layout/activity_main.xml
  • android/app/src/main/res/layout/activity_settings.xml
  • android/app/src/main/res/layout/dialog_custom_permission.xml
  • android/app/src/main/res/layout/dialog_custom_update.xml
  • android/app/src/main/res/values/colors.xml
  • android/app/src/main/res/values/strings.xml
  • android/app/src/main/res/values/styles.xml
  • android/app/src/test/java/dev/openstream/app/audio/Pcm16AudioLevelTest.kt
  • android/app/src/test/java/dev/openstream/app/camera/CameraLensDiscoveryTest.kt
  • android/app/src/test/java/dev/openstream/app/camera/CameraStateStoreTest.kt
  • android/app/src/test/java/dev/openstream/app/camera/FocusCoordinateMapperTest.kt
  • android/app/src/test/java/dev/openstream/app/monitoring/ZebraAnalyzerTest.kt
  • android/app/src/test/java/dev/openstream/app/telemetry/TelemetryFormatterTest.kt
  • build_plugin.bat
  • cmake/bootstrap-vcpkg.ps1
  • cmake/tests/foundation_smoke.cpp
  • cmake/verify-engine-isolation.ps1
  • cmake/write-third-party-notices.ps1
  • docs/architecture.md
  • docs/benchmark-run-template.json
  • docs/evidence/v4-00-media-smoke.md
  • docs/pro-camera-implementation-status.md
  • docs/protocol.md
  • docs/release-notes-template.md
  • docs/release.md
  • docs/set-up.md
  • docs/setup.md
  • docs/testing.md
  • docs/v4-execution-plan.md
  • docs/v4-gpu-pipeline.md
  • docs/v4-master-plan.md
  • docs/v4-performance-budget.md
  • docs/v4-phase0-status.md
  • docs/v4-recording-and-recovery.md
  • docs/v4-timestamp-model.md
  • docs/v4-transport-benchmark.md
  • docs/windows-build.md
  • obs-plugin/CMakeLists.txt
  • pytest.ini
  • tests/test_production_contracts.py
  • tests/test_repo_contract.py
  • tests/test_v4_phase0_tools.py
  • tools/installer/openstream-obs-plugin.iss
  • tools/network-impairment/README.md
  • tools/network-impairment/impair.py
  • tools/recording-validator/README.md
  • tools/recording-validator/validate.py
  • tools/stream-simulator/README.md
  • tools/stream-simulator/generate-media.ps1
  • tools/stream-simulator/generate.py
  • vcpkg.json
  • website/index.html
  • website/package.json
  • website/src/main.jsx

📝 Walkthrough

Walkthrough

OpenStream moves to a simplified V1.0.0 architecture. Android uses direct camera preview, local lens/zoom/torch control, lightweight HTTP controls, and SRT without passphrases. Release workflows publish APK checksums without update manifests. V2 camera, monitoring, updater, CMake foundation, and V4 tooling are removed.

Changes

V1.0.0 release and product transition

Layer / File(s) Summary
V1.0.0 packaging and release artifacts
.github/workflows/*, android/app/build.gradle.kts, build_plugin.bat, obs-plugin/CMakeLists.txt, tools/installer/*, website/package.json, tests/test_production_contracts.py, tests/test_repo_contract.py
Release metadata now uses version 1.0.0. Android releases publish the APK and SHA-256 checksum without update metadata. Contract tests validate the new artifacts and removed updater surface.
V1.0.0 product and protocol documentation
README.md, docs/architecture.md, docs/protocol.md, docs/set-up.md, docs/testing.md, docs/release*.md, docs/setup.md, website/*
Documentation and website branding describe the V1.0.0 transport, discovery, HTTP controls, compatibility, setup, testing, and release process.
Direct Android camera and preview flow
android/app/src/main/java/dev/openstream/app/MainActivity.kt, android/app/src/main/java/dev/openstream/app/camera/*, android/app/src/main/res/layout/activity_main.xml, android/app/src/main/res/values/*
The Android activity now manages direct preview and streaming controls. Camera lenses use fixed options with local zoom and torch state. The main layout uses simplified status, lens, utility, and screen controls.
Unauthenticated streaming and camera control
android/app/src/main/cpp/openstream_srt.cpp, android/app/src/main/java/dev/openstream/app/stream/SrtStreamClient.kt, android/app/src/main/java/dev/openstream/app/control/CameraControlServer.kt, docs/protocol.md
SRT connect and listen APIs no longer accept passphrases. The HTTP server exposes lightweight camera, reservation, release, identify, and status routes without pairing or bearer authentication.
Simplified settings, encoding, and telemetry
android/app/src/main/java/dev/openstream/app/SettingsActivity.kt, android/app/src/main/java/dev/openstream/app/encoder/*, android/app/src/main/java/dev/openstream/app/telemetry/TelemetrySampler.kt, android/app/src/main/res/layout/activity_settings.xml
Updater and advanced settings controls are removed. Audio level measurement is removed, AAC defaults to 192,000 bps, and telemetry reports direct Wi-Fi RSSI with fewer fields.

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related PRs

  • YashasVM/OpenStream#3: Overlaps in Android release workflows, SRT streaming, audio encoding, updater behavior, documentation, and tests.
  • YashasVM/OpenStream#6: Overlaps in Android streaming, SRT lifecycle, release workflows, MainActivity, and settings code.
  • YashasVM/OpenStream#13: Overlaps in the Android camera and control architecture that this change simplifies or removes.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/restore-legacy-working-codebase

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@YashasVM
YashasVM marked this pull request as ready for review August 4, 2026 19:31
@YashasVM YashasVM changed the title Restore legacy Android UI and working OBS plugin Restore legacy Android UI and OBS plugin for V1.0.0 Aug 4, 2026
@YashasVM
YashasVM merged commit 9b1438a into main Aug 4, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant