Skip to content

Commit e32005b

Browse files
feat: add Human Operator companion app with WebRTC P2P connection
1 parent 32f04a6 commit e32005b

13 files changed

Lines changed: 853 additions & 0 deletions

File tree

ho_build_result.txt

58 Bytes
Binary file not shown.

humanoperator/build.gradle.kts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
plugins {
2+
id("com.android.application")
3+
id("org.jetbrains.kotlin.android")
4+
}
5+
6+
android {
7+
namespace = "com.screenoperator.humanoperator"
8+
compileSdk = 35
9+
10+
defaultConfig {
11+
applicationId = "com.screenoperator.humanoperator"
12+
minSdk = 26
13+
targetSdk = 35
14+
versionCode = 1
15+
versionName = "1.0"
16+
17+
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
18+
vectorDrawables {
19+
useSupportLibrary = true
20+
}
21+
}
22+
23+
buildTypes {
24+
release {
25+
isMinifyEnabled = false
26+
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
27+
}
28+
}
29+
30+
compileOptions {
31+
sourceCompatibility = JavaVersion.VERSION_1_8
32+
targetCompatibility = JavaVersion.VERSION_1_8
33+
}
34+
kotlinOptions {
35+
jvmTarget = "1.8"
36+
}
37+
buildFeatures {
38+
compose = true
39+
}
40+
composeOptions {
41+
kotlinCompilerExtensionVersion = "1.5.4"
42+
}
43+
}
44+
45+
dependencies {
46+
implementation("androidx.core:core-ktx:1.9.0")
47+
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
48+
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2")
49+
implementation("androidx.activity:activity-compose:1.8.1")
50+
51+
implementation(platform("androidx.compose:compose-bom:2024.02.01"))
52+
implementation("androidx.compose.ui:ui")
53+
implementation("androidx.compose.ui:ui-graphics")
54+
implementation("androidx.compose.ui:ui-tooling-preview")
55+
implementation("androidx.compose.material3:material3")
56+
implementation("androidx.compose.material:material-icons-extended")
57+
58+
// WebRTC
59+
implementation("io.getstream:stream-webrtc-android:1.1.1")
60+
61+
// WebSocket for signaling
62+
implementation("com.squareup.okhttp3:okhttp:4.12.0")
63+
64+
// JSON
65+
implementation("com.google.code.gson:gson:2.10.1")
66+
67+
debugImplementation("androidx.compose.ui:ui-tooling")
68+
debugImplementation("androidx.compose.ui:ui-test-manifest")
69+
}

humanoperator/proguard-rules.pro

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Add project specific ProGuard rules here.
2+
-keep class org.webrtc.** { *; }
3+
-dontwarn org.webrtc.**
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
3+
4+
<uses-permission android:name="android.permission.INTERNET" />
5+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
6+
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
7+
8+
<application
9+
android:allowBackup="true"
10+
android:icon="@mipmap/ic_launcher"
11+
android:label="Human Operator"
12+
android:supportsRtl="true"
13+
android:theme="@style/Theme.HumanOperator"
14+
android:usesCleartextTraffic="true">
15+
16+
<activity
17+
android:name=".MainActivity"
18+
android:exported="true"
19+
android:theme="@style/Theme.HumanOperator">
20+
<intent-filter>
21+
<action android:name="android.intent.action.MAIN" />
22+
<category android:name="android.intent.category.LAUNCHER" />
23+
</intent-filter>
24+
</activity>
25+
</application>
26+
</manifest>

0 commit comments

Comments
 (0)