initial commit

This commit is contained in:
2026-08-10 19:44:09 +09:00
commit fb7e3cede7
937 changed files with 85773 additions and 0 deletions
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/bg_card"/>
<corners android:radius="12dp"/>
</shape>
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/bg_dark">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="페어링된 장치 선택"
android:textColor="@color/text_primary"
android:textSize="24sp"
android:textStyle="bold"
android:padding="24dp"
android:background="@color/bg_card"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="HC-05 장치를 선택하세요"
android:textColor="@color/text_label"
android:textSize="16sp"
android:padding="16dp"/>
<ListView
android:id="@+id/lv_devices"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@color/divider"
android:dividerHeight="1dp"/>
</LinearLayout>
@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/bg_dark"
android:padding="24dp">
<!-- ─── BLUETOOTH STATUS ─── -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/card_bg"
android:padding="20dp"
android:layout_marginBottom="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="📡 블루투스 상태"
android:textColor="@color/text_label"
android:textSize="14sp"
android:textAllCaps="true"
android:letterSpacing="0.1"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="⚫ Not Connected"
android:textColor="@color/status_disconnected"
android:textSize="26sp"
android:textStyle="bold"/>
</LinearLayout>
<!-- ─── VOICE RESULT ─── -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:background="@drawable/card_bg"
android:padding="20dp"
android:layout_marginBottom="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="🎙 인식된 명령"
android:textColor="@color/text_label"
android:textSize="14sp"
android:textAllCaps="true"
android:letterSpacing="0.1"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_voice_result"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="—"
android:textColor="@color/text_primary"
android:textSize="40sp"
android:textStyle="bold"
android:gravity="center"/>
</LinearLayout>
<!-- ─── SENT COMMAND ─── -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:background="@drawable/card_bg"
android:padding="20dp"
android:layout_marginBottom="24dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="📤 전송된 명령"
android:textColor="@color/text_label"
android:textSize="14sp"
android:textAllCaps="true"
android:letterSpacing="0.1"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_sent_command"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="—"
android:textColor="@color/accent_green"
android:textSize="60sp"
android:textStyle="bold"
android:gravity="center"/>
</LinearLayout>
<!-- ─── CONNECT BUTTON ─── -->
<Button
android:id="@+id/btn_connect"
android:layout_width="match_parent"
android:layout_height="72dp"
android:text="블루투스 연결"
android:textSize="22sp"
android:textStyle="bold"
android:textColor="@color/white"
android:backgroundTint="@color/btn_connect"
android:layout_marginBottom="16dp"
android:stateListAnimator="@null"/>
<!-- ─── VOICE COMMAND BUTTON ─── -->
<Button
android:id="@+id/btn_voice"
android:layout_width="match_parent"
android:layout_height="96dp"
android:text="🎤 음성 명령"
android:textSize="28sp"
android:textStyle="bold"
android:textColor="@color/white"
android:backgroundTint="@color/btn_voice"
android:enabled="false"
android:alpha="0.4"
android:stateListAnimator="@null"/>
</LinearLayout>
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/bg_card"/>
<corners android:radius="12dp"/>
</shape>
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#FFFFFF"
android:pathData="M31,63.92V20.33h19.51v43.59h-19.51z M51.44,63.92V20.33h19.51v43.59h-19.51z" />
</vector>
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/bg_dark">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Select Paired Device"
android:textColor="@color/text_primary"
android:textSize="24sp"
android:textStyle="bold"
android:padding="24dp"
android:background="@color/bg_card"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Please select your HC-05 device"
android:textColor="@color/text_label"
android:textSize="16sp"
android:padding="16dp"/>
<ListView
android:id="@+id/lv_devices"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@color/divider"
android:dividerHeight="1dp"/>
</LinearLayout>
@@ -0,0 +1,132 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg_dark"
android:orientation="vertical"
android:padding="24dp">
<!-- ─── BLUETOOTH STATUS ─── -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:background="@drawable/card_bg"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:letterSpacing="0.1"
android:text="📡 Bluetooth Status"
android:textAllCaps="true"
android:textColor="@color/text_label"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="⚫ Not Connected"
android:textColor="@color/status_disconnected"
android:textSize="26sp"
android:textStyle="bold" />
</LinearLayout>
<!-- ─── VOICE RESULT ─── -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="16dp"
android:layout_weight="1.5"
android:background="@drawable/card_bg"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:letterSpacing="0.1"
android:text="🎙 Recognized commands"
android:textAllCaps="true"
android:textColor="@color/text_label"
android:textSize="14sp" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_voice_result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:text="—"
android:textColor="@color/text_primary"
android:textSize="16sp"
android:textStyle="normal" />
</ScrollView>
</LinearLayout>
<!-- ─── SENT COMMAND ─── -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="24dp"
android:layout_weight="1"
android:background="@drawable/card_bg"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:letterSpacing="0.1"
android:text="📤 Commands sent"
android:textAllCaps="true"
android:textColor="@color/text_label"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_sent_command"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="—"
android:textColor="@color/accent_green"
android:textSize="60sp"
android:textStyle="bold" />
</LinearLayout>
<!-- ─── CONNECT BUTTON ─── -->
<Button
android:id="@+id/btn_connect"
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_marginBottom="16dp"
android:backgroundTint="@color/btn_connect"
android:stateListAnimator="@null"
android:text="Bluetooth connect"
android:textColor="@color/white"
android:textSize="22sp"
android:textStyle="bold" />
<!-- ─── VOICE COMMAND BUTTON ─── -->
<Button
android:id="@+id/btn_voice"
android:layout_width="match_parent"
android:layout_height="96dp"
android:alpha="0.4"
android:backgroundTint="@color/btn_voice"
android:enabled="false"
android:stateListAnimator="@null"
android:text="🎤 Voice commands"
android:textColor="@color/white"
android:textSize="28sp"
android:textStyle="bold" />
</LinearLayout>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="accent_green">#00E676</color>
<color name="bg_card">#1A1A2E</color>
<color name="bg_dark">#0D0D0D</color>
<color name="btn_connect">#1565C0</color>
<color name="btn_disconnect">#B71C1C</color>
<color name="btn_voice">#6A1B9A</color>
<color name="divider">#333333</color>
<color name="ic_launcher_background">#0D0D0D</color>
<color name="status_connected">#00E676</color>
<color name="status_connecting">#FFD600</color>
<color name="status_disconnected">#FF5252</color>
<color name="text_label">#888888</color>
<color name="text_primary">#FFFFFF</color>
<color name="white">#FFFFFF</color>
<string name="app_name">Stage Control</string>
<style name="Theme.StageControl" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="colorPrimary">@color/btn_connect</item>
<item name="colorPrimaryVariant">@color/bg_card</item>
<item name="colorOnPrimary">@color/white</item>
<item name="android:windowBackground">@color/bg_dark</item>
<item name="android:statusBarColor">@color/bg_card</item>
<item name="android:navigationBarColor">@color/bg_dark</item>
</style>
</resources>
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="accent_green">#00E676</color>
<color name="bg_card">#1A1A2E</color>
<color name="bg_dark">#0D0D0D</color>
<color name="btn_connect">#1565C0</color>
<color name="btn_disconnect">#B71C1C</color>
<color name="btn_voice">#6A1B9A</color>
<color name="divider">#333333</color>
<color name="status_connected">#00E676</color>
<color name="status_connecting">#FFD600</color>
<color name="status_disconnected">#FF5252</color>
<color name="text_label">#888888</color>
<color name="text_primary">#FFFFFF</color>
<color name="white">#FFFFFF</color>
<string name="app_name">Stage Control</string>
<style name="Theme.StageControl" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="colorPrimary">@color/btn_connect</item>
<item name="colorPrimaryVariant">@color/bg_card</item>
<item name="colorOnPrimary">@color/white</item>
<item name="android:windowBackground">@color/bg_dark</item>
<item name="android:statusBarColor">@color/bg_card</item>
<item name="android:navigationBarColor">@color/bg_dark</item>
</style>
</resources>