diff options
| author | Lena <lena@omega> | 2026-01-01 00:00:00 +0000 |
|---|---|---|
| committer | Lena <lena@omega> | 2026-06-24 22:14:50 +0300 |
| commit | eb0c8951196c637e44daf3c0617b131b997d5d2c (patch) | |
| tree | 2f83b6a41cee745467e53fc401942b82cea286ea /app/src/main/res/drawable | |
| download | scrcpy-android-eb0c8951196c637e44daf3c0617b131b997d5d2c.tar.gz | |
scrcpy-android: mirror an Android device over wireless ADB0.1
Native Java app for Android 12+ that mirrors another Android
device over wireless ADB, forwarding video, audio, touch input,
and clipboard. Bundles a pinned scrcpy-server.jar and the
vendored libadb-android stack. Supports h264/h265/av1 video and
raw/opus audio with in-app codec selection. No NDK, no Kotlin.
Includes JVM unit tests and a Docker-based emulator e2e rig.
Diffstat (limited to 'app/src/main/res/drawable')
| -rw-r--r-- | app/src/main/res/drawable/bg_card.xml | 8 | ||||
| -rw-r--r-- | app/src/main/res/drawable/bg_field.xml | 18 | ||||
| -rw-r--r-- | app/src/main/res/drawable/bg_status_pill.xml | 7 | ||||
| -rw-r--r-- | app/src/main/res/drawable/btn_primary.xml | 11 | ||||
| -rw-r--r-- | app/src/main/res/drawable/btn_secondary.xml | 12 | ||||
| -rw-r--r-- | app/src/main/res/drawable/ic_device.xml | 14 | ||||
| -rw-r--r-- | app/src/main/res/drawable/ic_launcher_background.xml | 7 | ||||
| -rw-r--r-- | app/src/main/res/drawable/ic_launcher_foreground.xml | 52 | ||||
| -rw-r--r-- | app/src/main/res/drawable/ic_notification.xml | 21 | ||||
| -rw-r--r-- | app/src/main/res/drawable/ic_settings.xml | 12 |
10 files changed, 162 insertions, 0 deletions
diff --git a/app/src/main/res/drawable/bg_card.xml b/app/src/main/res/drawable/bg_card.xml new file mode 100644 index 0000000..17a0cfa --- /dev/null +++ b/app/src/main/res/drawable/bg_card.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Rounded surface panel used to group related controls. --> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle"> + <solid android:color="@color/surface"/> + <stroke android:width="1dp" android:color="@color/stroke"/> + <corners android:radius="@dimen/card_radius"/> +</shape> diff --git a/app/src/main/res/drawable/bg_field.xml b/app/src/main/res/drawable/bg_field.xml new file mode 100644 index 0000000..e656ad4 --- /dev/null +++ b/app/src/main/res/drawable/bg_field.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Text-field box. Accent border when focused, neutral otherwise. --> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_focused="true"> + <shape android:shape="rectangle"> + <solid android:color="@color/surface_alt"/> + <stroke android:width="2dp" android:color="@color/accent"/> + <corners android:radius="@dimen/field_radius"/> + </shape> + </item> + <item> + <shape android:shape="rectangle"> + <solid android:color="@color/surface_alt"/> + <stroke android:width="1dp" android:color="@color/stroke"/> + <corners android:radius="@dimen/field_radius"/> + </shape> + </item> +</selector> diff --git a/app/src/main/res/drawable/bg_status_pill.xml b/app/src/main/res/drawable/bg_status_pill.xml new file mode 100644 index 0000000..ae91094 --- /dev/null +++ b/app/src/main/res/drawable/bg_status_pill.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Floating scrim pill behind the Mirror status text and buttons. --> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle"> + <solid android:color="@color/status_scrim"/> + <corners android:radius="@dimen/button_radius"/> +</shape> diff --git a/app/src/main/res/drawable/btn_primary.xml b/app/src/main/res/drawable/btn_primary.xml new file mode 100644 index 0000000..75aab01 --- /dev/null +++ b/app/src/main/res/drawable/btn_primary.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Filled accent button with the platform press ripple on top. --> +<ripple xmlns:android="http://schemas.android.com/apk/res/android" + android:color="?android:attr/colorControlHighlight"> + <item> + <shape android:shape="rectangle"> + <solid android:color="@color/accent"/> + <corners android:radius="@dimen/button_radius"/> + </shape> + </item> +</ripple> diff --git a/app/src/main/res/drawable/btn_secondary.xml b/app/src/main/res/drawable/btn_secondary.xml new file mode 100644 index 0000000..2c3a618 --- /dev/null +++ b/app/src/main/res/drawable/btn_secondary.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Outlined accent button (transparent fill, accent border). --> +<ripple xmlns:android="http://schemas.android.com/apk/res/android" + android:color="?android:attr/colorControlHighlight"> + <item> + <shape android:shape="rectangle"> + <solid android:color="@android:color/transparent"/> + <stroke android:width="1dp" android:color="@color/accent"/> + <corners android:radius="@dimen/button_radius"/> + </shape> + </item> +</ripple> diff --git a/app/src/main/res/drawable/ic_device.xml b/app/src/main/res/drawable/ic_device.xml new file mode 100644 index 0000000..f12a226 --- /dev/null +++ b/app/src/main/res/drawable/ic_device.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Small phone outline used as the leading glyph on saved-device rows. --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:strokeColor="@color/accent" + android:strokeWidth="2" + android:strokeLineJoin="round" + android:fillColor="#00000000" + android:pathData="M8,3 H16 A2,2 0 0 1 18,5 V19 A2,2 0 0 1 16,21 H8 A2,2 0 0 1 6,19 V5 A2,2 0 0 1 8,3 Z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..e26af1f --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Dark CRT-terminal blue. Plain solid colour so the adaptive icon + reads cleanly under any launcher crop (circle, squircle, square). --> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle"> + <solid android:color="#0E1E28"/> +</shape> diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..e5b7400 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Foreground: a fresh take on wireless screen mirroring. + 1. A small phone (source) and a larger phone (target display). + 2. Cyan wireless arcs rising from the small phone toward the large + one - the wireless ADB link / casting direction. + 3. A play triangle on the large screen - references scrcpy's + upstream identity ("playing what the device is showing"). + Geometry mirrors the AI-generated reference 1:1. The arcs carry the + one accent colour; everything else is the light foreground tone. + For the Android 13+ themed (monochrome) icon the same drawable is + reused: the system tints by coverage, so the colours here are + irrelevant in that mode. Adaptive viewport is 108x108; all content + stays inside the inner safe zone. --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="108dp" + android:height="108dp" + android:viewportWidth="108" + android:viewportHeight="108"> + + <!-- Phone outlines (source 20x34, target 28x50), stroke only. --> + <path + android:strokeColor="#E8E8E8" + android:strokeWidth="3" + android:strokeLineJoin="round" + android:fillColor="#00000000" + android:pathData="M57,29 H75 A5,5 0 0 1 80,34 V74 A5,5 0 0 1 75,79 H57 A5,5 0 0 1 52,74 V34 A5,5 0 0 1 57,29 Z + M30,47 H42 A4,4 0 0 1 46,51 V77 A4,4 0 0 1 42,81 H30 A4,4 0 0 1 26,77 V51 A4,4 0 0 1 30,47 Z"/> + + <!-- Speaker slits and home indicators on both phones. --> + <path + android:strokeColor="#E8E8E8" + android:strokeWidth="2" + android:strokeLineCap="round" + android:fillColor="#00000000" + android:pathData="M62,35 H70 M61,74 H71 M32,52 H40 M32,76 H40"/> + + <!-- Play triangle, filled, inside the large phone screen. --> + <path + android:fillColor="#E8E8E8" + android:pathData="M61,46 L61,62 L74,54 Z"/> + + <!-- Wireless arcs: three concentric quarter-arcs centred at (40,48), + sweeping from north to east so they fan up-right from the small + phone toward the large one. --> + <path + android:strokeColor="#3FD0D6" + android:strokeWidth="2.5" + android:strokeLineCap="round" + android:fillColor="#00000000" + android:pathData="M40,43 A5,5 0 0 1 45,48 M40,39.5 A8.5,8.5 0 0 1 48.5,48 M40,36 A12,12 0 0 1 52,48"/> + +</vector> diff --git a/app/src/main/res/drawable/ic_notification.xml b/app/src/main/res/drawable/ic_notification.xml new file mode 100644 index 0000000..f592b9d --- /dev/null +++ b/app/src/main/res/drawable/ic_notification.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Status-bar notification icon: white-on-transparent silhouette (the + launcher mipmap is the wrong shape and colour for a small icon). The + system tints it. Phone outline with a play triangle, matching the + app's visual identity. --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24" + android:tint="#FFFFFF"> + <path + android:strokeColor="#FFFFFF" + android:strokeWidth="1.8" + android:strokeLineJoin="round" + android:fillColor="#00000000" + android:pathData="M7,2 H17 A2,2 0 0 1 19,4 V20 A2,2 0 0 1 17,22 H7 A2,2 0 0 1 5,20 V4 A2,2 0 0 1 7,2 Z"/> + <path + android:fillColor="#FFFFFF" + android:pathData="M10,8 L10,16 L16,12 Z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_settings.xml b/app/src/main/res/drawable/ic_settings.xml new file mode 100644 index 0000000..696f6c2 --- /dev/null +++ b/app/src/main/res/drawable/ic_settings.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Gear glyph for the Settings action in the Main header. --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24" + android:tint="@color/on_surface_muted"> + <path + android:fillColor="#FFFFFF" + android:pathData="M19.14,12.94c0.04,-0.3 0.06,-0.61 0.06,-0.94c0,-0.32 -0.02,-0.64 -0.07,-0.94l2.03,-1.58c0.18,-0.14 0.23,-0.41 0.12,-0.61l-1.92,-3.32c-0.12,-0.22 -0.37,-0.29 -0.59,-0.22l-2.39,0.96c-0.5,-0.38 -1.03,-0.7 -1.62,-0.94l-0.36,-2.54c-0.04,-0.24 -0.24,-0.41 -0.48,-0.41h-3.84c-0.24,0 -0.43,0.17 -0.47,0.41l-0.36,2.54c-0.59,0.24 -1.13,0.57 -1.62,0.94l-2.39,-0.96c-0.22,-0.08 -0.47,0 -0.59,0.22L2.74,8.87C2.62,9.08 2.66,9.34 2.86,9.48l2.03,1.58C4.84,11.36 4.82,11.69 4.82,12s0.02,0.64 0.07,0.94l-2.03,1.58c-0.18,0.14 -0.23,0.41 -0.12,0.61l1.92,3.32c0.12,0.22 0.37,0.29 0.59,0.22l2.39,-0.96c0.5,0.38 1.03,0.7 1.62,0.94l0.36,2.54c0.05,0.24 0.24,0.41 0.48,0.41h3.84c0.24,0 0.44,-0.17 0.47,-0.41l0.36,-2.54c0.59,-0.24 1.13,-0.56 1.62,-0.94l2.39,0.96c0.22,0.08 0.47,0 0.59,-0.22l1.92,-3.32c0.12,-0.22 0.07,-0.47 -0.12,-0.61L19.14,12.94zM12,15.6c-1.98,0 -3.6,-1.62 -3.6,-3.6s1.62,-3.6 3.6,-3.6s3.6,1.62 3.6,3.6S13.98,15.6 12,15.6z"/> +</vector> |