Android tablet remote UI: styling pass, color picker, arrange mode indicator, connection gating
- Button styling standardization with green ring state indicators (Connect, Rescan, Log, Clear Layout, Reset ALL) - Input field labels with proper DP-based padding and spacing - Feedback & title widget color picker with 7-color palette and persistence layer - Font weight selection for text widgets (deferred visual implementation) - Hide/Show and Reset Size buttons in context menu - Flashing pink border around entire app when Arrange mode is ON (500ms fade in/out cycle) - Arrange button disabled until connected to desktop app, with alpha indicator - WidgetLayoutState now persists color and fontWeight properties - Arrange mode visual debugging with smooth fade animation instead of harsh strobe Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
+88
@@ -0,0 +1,88 @@
|
||||
1<?xml version="1.0" encoding="utf-8"?>
|
||||
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
3 package="com.virtualcontroller.remote"
|
||||
4 android:versionCode="1"
|
||||
5 android:versionName="0.1-stage1" >
|
||||
6
|
||||
7 <uses-sdk
|
||||
8 android:minSdkVersion="24"
|
||||
9 android:targetSdkVersion="34" />
|
||||
10
|
||||
11 <uses-permission android:name="android.permission.INTERNET" />
|
||||
11-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:4:5-67
|
||||
11-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:4:22-64
|
||||
12 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
12-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:5:5-76
|
||||
12-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:5:22-73
|
||||
13 <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
|
||||
13-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:6:5-86
|
||||
13-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:6:22-83
|
||||
14
|
||||
15 <permission
|
||||
15-->[androidx.core:core:1.9.0] C:\Users\paul\.gradle\caches\transforms-3\f2fad28c1c5d2c61b5fd790a54a73678\transformed\core-1.9.0\AndroidManifest.xml:22:5-24:47
|
||||
16 android:name="com.virtualcontroller.remote.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"
|
||||
16-->[androidx.core:core:1.9.0] C:\Users\paul\.gradle\caches\transforms-3\f2fad28c1c5d2c61b5fd790a54a73678\transformed\core-1.9.0\AndroidManifest.xml:23:9-81
|
||||
17 android:protectionLevel="signature" />
|
||||
17-->[androidx.core:core:1.9.0] C:\Users\paul\.gradle\caches\transforms-3\f2fad28c1c5d2c61b5fd790a54a73678\transformed\core-1.9.0\AndroidManifest.xml:24:9-44
|
||||
18
|
||||
19 <uses-permission android:name="com.virtualcontroller.remote.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" />
|
||||
19-->[androidx.core:core:1.9.0] C:\Users\paul\.gradle\caches\transforms-3\f2fad28c1c5d2c61b5fd790a54a73678\transformed\core-1.9.0\AndroidManifest.xml:26:5-97
|
||||
19-->[androidx.core:core:1.9.0] C:\Users\paul\.gradle\caches\transforms-3\f2fad28c1c5d2c61b5fd790a54a73678\transformed\core-1.9.0\AndroidManifest.xml:26:22-94
|
||||
20
|
||||
21 <application
|
||||
21-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:8:5-21:19
|
||||
22 android:allowBackup="true"
|
||||
22-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:9:9-35
|
||||
23 android:appComponentFactory="androidx.core.app.CoreComponentFactory"
|
||||
23-->[androidx.core:core:1.9.0] C:\Users\paul\.gradle\caches\transforms-3\f2fad28c1c5d2c61b5fd790a54a73678\transformed\core-1.9.0\AndroidManifest.xml:28:18-86
|
||||
24 android:debuggable="true"
|
||||
25 android:extractNativeLibs="false"
|
||||
26 android:label="VC Remote"
|
||||
26-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:10:9-34
|
||||
27 android:testOnly="true"
|
||||
28 android:theme="@style/Theme.AppCompat.NoActionBar"
|
||||
28-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:11:9-59
|
||||
29 android:usesCleartextTraffic="true" >
|
||||
29-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:12:9-44
|
||||
30 <activity
|
||||
30-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:13:9-20:20
|
||||
31 android:name="com.virtualcontroller.remote.arrange.ArrangeActivity"
|
||||
31-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:14:13-52
|
||||
32 android:exported="true" >
|
||||
32-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:15:13-36
|
||||
33 <intent-filter>
|
||||
33-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:16:13-19:29
|
||||
34 <action android:name="android.intent.action.MAIN" />
|
||||
34-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:17:17-69
|
||||
34-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:17:25-66
|
||||
35
|
||||
36 <category android:name="android.intent.category.LAUNCHER" />
|
||||
36-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:18:17-77
|
||||
36-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:18:27-74
|
||||
37 </intent-filter>
|
||||
38 </activity>
|
||||
39
|
||||
40 <provider
|
||||
40-->[androidx.emoji2:emoji2:1.2.0] C:\Users\paul\.gradle\caches\transforms-3\fc9eaa3b98f9058478d5dc9f0fd73d1a\transformed\emoji2-1.2.0\AndroidManifest.xml:24:9-32:20
|
||||
41 android:name="androidx.startup.InitializationProvider"
|
||||
41-->[androidx.emoji2:emoji2:1.2.0] C:\Users\paul\.gradle\caches\transforms-3\fc9eaa3b98f9058478d5dc9f0fd73d1a\transformed\emoji2-1.2.0\AndroidManifest.xml:25:13-67
|
||||
42 android:authorities="com.virtualcontroller.remote.androidx-startup"
|
||||
42-->[androidx.emoji2:emoji2:1.2.0] C:\Users\paul\.gradle\caches\transforms-3\fc9eaa3b98f9058478d5dc9f0fd73d1a\transformed\emoji2-1.2.0\AndroidManifest.xml:26:13-68
|
||||
43 android:exported="false" >
|
||||
43-->[androidx.emoji2:emoji2:1.2.0] C:\Users\paul\.gradle\caches\transforms-3\fc9eaa3b98f9058478d5dc9f0fd73d1a\transformed\emoji2-1.2.0\AndroidManifest.xml:27:13-37
|
||||
44 <meta-data
|
||||
44-->[androidx.emoji2:emoji2:1.2.0] C:\Users\paul\.gradle\caches\transforms-3\fc9eaa3b98f9058478d5dc9f0fd73d1a\transformed\emoji2-1.2.0\AndroidManifest.xml:29:13-31:52
|
||||
45 android:name="androidx.emoji2.text.EmojiCompatInitializer"
|
||||
45-->[androidx.emoji2:emoji2:1.2.0] C:\Users\paul\.gradle\caches\transforms-3\fc9eaa3b98f9058478d5dc9f0fd73d1a\transformed\emoji2-1.2.0\AndroidManifest.xml:30:17-75
|
||||
46 android:value="androidx.startup" />
|
||||
46-->[androidx.emoji2:emoji2:1.2.0] C:\Users\paul\.gradle\caches\transforms-3\fc9eaa3b98f9058478d5dc9f0fd73d1a\transformed\emoji2-1.2.0\AndroidManifest.xml:31:17-49
|
||||
47 <meta-data
|
||||
47-->[androidx.lifecycle:lifecycle-process:2.4.1] C:\Users\paul\.gradle\caches\transforms-3\fd7cc8aedcacab326b1297905d9395c4\transformed\lifecycle-process-2.4.1\AndroidManifest.xml:31:13-33:52
|
||||
48 android:name="androidx.lifecycle.ProcessLifecycleInitializer"
|
||||
48-->[androidx.lifecycle:lifecycle-process:2.4.1] C:\Users\paul\.gradle\caches\transforms-3\fd7cc8aedcacab326b1297905d9395c4\transformed\lifecycle-process-2.4.1\AndroidManifest.xml:32:17-78
|
||||
49 android:value="androidx.startup" />
|
||||
49-->[androidx.lifecycle:lifecycle-process:2.4.1] C:\Users\paul\.gradle\caches\transforms-3\fd7cc8aedcacab326b1297905d9395c4\transformed\lifecycle-process-2.4.1\AndroidManifest.xml:33:17-49
|
||||
50 </provider>
|
||||
51 </application>
|
||||
52
|
||||
53</manifest>
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
1<?xml version="1.0" encoding="utf-8"?>
|
||||
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
3 package="com.virtualcontroller.remote"
|
||||
4 android:versionCode="1"
|
||||
5 android:versionName="0.1-stage1" >
|
||||
6
|
||||
7 <uses-sdk
|
||||
8 android:minSdkVersion="24"
|
||||
9 android:targetSdkVersion="34" />
|
||||
10
|
||||
11 <uses-permission android:name="android.permission.INTERNET" />
|
||||
11-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:4:5-67
|
||||
11-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:4:22-64
|
||||
12 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
12-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:5:5-76
|
||||
12-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:5:22-73
|
||||
13 <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
|
||||
13-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:6:5-86
|
||||
13-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:6:22-83
|
||||
14 <uses-permission android:name="android.permission.VIBRATE" />
|
||||
14-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:7:5-66
|
||||
14-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:7:22-63
|
||||
15
|
||||
16 <permission
|
||||
16-->[androidx.core:core:1.9.0] C:\Users\paul\.gradle\caches\transforms-4\f0d3566678117a732b42c141a9708ee7\transformed\core-1.9.0\AndroidManifest.xml:22:5-24:47
|
||||
17 android:name="com.virtualcontroller.remote.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"
|
||||
17-->[androidx.core:core:1.9.0] C:\Users\paul\.gradle\caches\transforms-4\f0d3566678117a732b42c141a9708ee7\transformed\core-1.9.0\AndroidManifest.xml:23:9-81
|
||||
18 android:protectionLevel="signature" />
|
||||
18-->[androidx.core:core:1.9.0] C:\Users\paul\.gradle\caches\transforms-4\f0d3566678117a732b42c141a9708ee7\transformed\core-1.9.0\AndroidManifest.xml:24:9-44
|
||||
19
|
||||
20 <uses-permission android:name="com.virtualcontroller.remote.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" />
|
||||
20-->[androidx.core:core:1.9.0] C:\Users\paul\.gradle\caches\transforms-4\f0d3566678117a732b42c141a9708ee7\transformed\core-1.9.0\AndroidManifest.xml:26:5-97
|
||||
20-->[androidx.core:core:1.9.0] C:\Users\paul\.gradle\caches\transforms-4\f0d3566678117a732b42c141a9708ee7\transformed\core-1.9.0\AndroidManifest.xml:26:22-94
|
||||
21
|
||||
22 <application
|
||||
22-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:9:5-22:19
|
||||
23 android:allowBackup="true"
|
||||
23-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:10:9-35
|
||||
24 android:appComponentFactory="androidx.core.app.CoreComponentFactory"
|
||||
24-->[androidx.core:core:1.9.0] C:\Users\paul\.gradle\caches\transforms-4\f0d3566678117a732b42c141a9708ee7\transformed\core-1.9.0\AndroidManifest.xml:28:18-86
|
||||
25 android:debuggable="true"
|
||||
26 android:extractNativeLibs="false"
|
||||
27 android:label="VC Remote"
|
||||
27-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:11:9-34
|
||||
28 android:testOnly="true"
|
||||
29 android:theme="@style/Theme.AppCompat.NoActionBar"
|
||||
29-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:12:9-59
|
||||
30 android:usesCleartextTraffic="true" >
|
||||
30-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:13:9-44
|
||||
31 <activity
|
||||
31-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:14:9-21:20
|
||||
32 android:name="com.virtualcontroller.remote.arrange.ArrangeActivity"
|
||||
32-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:15:13-52
|
||||
33 android:exported="true" >
|
||||
33-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:16:13-36
|
||||
34 <intent-filter>
|
||||
34-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:17:13-20:29
|
||||
35 <action android:name="android.intent.action.MAIN" />
|
||||
35-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:18:17-69
|
||||
35-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:18:25-66
|
||||
36
|
||||
37 <category android:name="android.intent.category.LAUNCHER" />
|
||||
37-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:19:17-77
|
||||
37-->E:\20260608-virtual-controller-py\remote-client-android\app\src\main\AndroidManifest.xml:19:27-74
|
||||
38 </intent-filter>
|
||||
39 </activity>
|
||||
40
|
||||
41 <provider
|
||||
41-->[androidx.emoji2:emoji2:1.2.0] C:\Users\paul\.gradle\caches\transforms-4\8a4da37dc5a2167e0075ee7012655367\transformed\emoji2-1.2.0\AndroidManifest.xml:24:9-32:20
|
||||
42 android:name="androidx.startup.InitializationProvider"
|
||||
42-->[androidx.emoji2:emoji2:1.2.0] C:\Users\paul\.gradle\caches\transforms-4\8a4da37dc5a2167e0075ee7012655367\transformed\emoji2-1.2.0\AndroidManifest.xml:25:13-67
|
||||
43 android:authorities="com.virtualcontroller.remote.androidx-startup"
|
||||
43-->[androidx.emoji2:emoji2:1.2.0] C:\Users\paul\.gradle\caches\transforms-4\8a4da37dc5a2167e0075ee7012655367\transformed\emoji2-1.2.0\AndroidManifest.xml:26:13-68
|
||||
44 android:exported="false" >
|
||||
44-->[androidx.emoji2:emoji2:1.2.0] C:\Users\paul\.gradle\caches\transforms-4\8a4da37dc5a2167e0075ee7012655367\transformed\emoji2-1.2.0\AndroidManifest.xml:27:13-37
|
||||
45 <meta-data
|
||||
45-->[androidx.emoji2:emoji2:1.2.0] C:\Users\paul\.gradle\caches\transforms-4\8a4da37dc5a2167e0075ee7012655367\transformed\emoji2-1.2.0\AndroidManifest.xml:29:13-31:52
|
||||
46 android:name="androidx.emoji2.text.EmojiCompatInitializer"
|
||||
46-->[androidx.emoji2:emoji2:1.2.0] C:\Users\paul\.gradle\caches\transforms-4\8a4da37dc5a2167e0075ee7012655367\transformed\emoji2-1.2.0\AndroidManifest.xml:30:17-75
|
||||
47 android:value="androidx.startup" />
|
||||
47-->[androidx.emoji2:emoji2:1.2.0] C:\Users\paul\.gradle\caches\transforms-4\8a4da37dc5a2167e0075ee7012655367\transformed\emoji2-1.2.0\AndroidManifest.xml:31:17-49
|
||||
48 <meta-data
|
||||
48-->[androidx.lifecycle:lifecycle-process:2.4.1] C:\Users\paul\.gradle\caches\transforms-4\4b7f719f1ae848b3b60d2b53f0bdb6d9\transformed\lifecycle-process-2.4.1\AndroidManifest.xml:31:13-33:52
|
||||
49 android:name="androidx.lifecycle.ProcessLifecycleInitializer"
|
||||
49-->[androidx.lifecycle:lifecycle-process:2.4.1] C:\Users\paul\.gradle\caches\transforms-4\4b7f719f1ae848b3b60d2b53f0bdb6d9\transformed\lifecycle-process-2.4.1\AndroidManifest.xml:32:17-78
|
||||
50 android:value="androidx.startup" />
|
||||
50-->[androidx.lifecycle:lifecycle-process:2.4.1] C:\Users\paul\.gradle\caches\transforms-4\4b7f719f1ae848b3b60d2b53f0bdb6d9\transformed\lifecycle-process-2.4.1\AndroidManifest.xml:33:17-49
|
||||
51 </provider>
|
||||
52 </application>
|
||||
53
|
||||
54</manifest>
|
||||
Reference in New Issue
Block a user