Update code to v1.0.14 (10)

This commit is contained in:
Caten
2024-02-29 19:35:00 +08:00
parent c2ee3b694c
commit a956d26f6d
3188 changed files with 2317293 additions and 146 deletions

View File

@@ -0,0 +1,195 @@
<!--
~ Copyright (c) 2020 Gaurav Ujjwal.
~
~ SPDX-License-Identifier: GPL-3.0-or-later
~
~ See COPYING.txt for more details.
-->
<resources>
<string-array name="theme_entries">
<item>@string/pref_theme_option_system</item>
<item>@string/pref_theme_option_dark</item>
<item>@string/pref_theme_option_light</item>
</string-array>
<string-array name="theme_values">
<item>system</item>
<item>dark</item>
<item>light</item>
</string-array>
<string-array name="orientation_entries">
<item>@string/pref_orientation_option_auto</item>
<item>@string/pref_orientation_option_portrait</item>
<item>@string/pref_orientation_option_landscape</item>
</string-array>
<string-array name="orientation_values">
<item>auto</item>
<item>portrait</item>
<item>landscape</item>
</string-array>
<string-array name="toolbar_alignment_entries">
<item>@string/pref_toolbar_alignment_option_start</item>
<item>@string/pref_toolbar_alignment_option_end</item>
</string-array>
<string-array name="toolbar_alignment_values">
<item>start</item>
<item>end</item>
</string-array>
<string-array name="gesture_style_entries">
<item>@string/pref_gesture_style_touchscreen</item>
<item>@string/pref_gesture_style_touchpad</item>
</string-array>
<string-array name="gesture_style_values">
<item>touchscreen</item>
<item>touchpad</item>
</string-array>
<string-array name="tap2_action_entries">
<item>@string/pref_gesture_action_none</item>
<item>@string/pref_gesture_action_right_click</item>
<item>@string/pref_gesture_action_open_keyboard</item>
</string-array>
<string-array name="tap2_action_values">
<item>none</item>
<item>right-click</item>
<item>open-keyboard</item>
</string-array>
<string-array name="double_tap_action_entries">
<item>@string/pref_gesture_action_none</item>
<item>@string/pref_gesture_action_double_click</item>
<item>@string/pref_gesture_action_middle_click</item>
<item>@string/pref_gesture_action_right_click</item>
</string-array>
<string-array name="double_tap_action_values">
<item>none</item>
<item>double-click</item>
<item>middle-click</item>
<item>right-click</item>
</string-array>
<string-array name="long_press_action_entries">
<item>@string/pref_gesture_action_none</item>
<item>@string/pref_gesture_action_double_click</item>
<item>@string/pref_gesture_action_middle_click</item>
<item>@string/pref_gesture_action_right_click</item>
</string-array>
<string-array name="long_press_action_values">
<item>none</item>
<item>double-click</item>
<item>middle-click</item>
<item>right-click</item>
</string-array>
<string-array name="swipe1_action_entries">
<item>@string/pref_gesture_action_none</item>
<item>@string/pref_gesture_action_pan</item>
<item>@string/pref_gesture_action_remote_scroll</item>
<item>@string/pref_gesture_action_remote_drag</item>
</string-array>
<string-array name="swipe1_action_values">
<item>none</item>
<item>pan</item>
<item>remote-scroll</item>
<item>remote-drag</item>
</string-array>
<string-array name="swipe2_action_entries">
<item>@string/pref_gesture_action_none</item>
<item>@string/pref_gesture_action_pan</item>
<item>@string/pref_gesture_action_remote_scroll</item>
</string-array>
<string-array name="swipe2_action_values">
<item>none</item>
<item>pan</item>
<item>remote-scroll</item>
</string-array>
<string-array name="double_tap_swipe_action_entries">
<item>@string/pref_gesture_action_none</item>
<item>@string/pref_gesture_action_remote_drag</item>
<item>@string/pref_gesture_action_remote_drag_middle</item>
<item>@string/pref_gesture_action_pan</item>
<item>@string/pref_gesture_action_remote_scroll</item>
</string-array>
<string-array name="double_tap_swipe_action_values">
<item>none</item>
<item>remote-drag</item>
<item>remote-drag-middle</item>
<item>pan</item>
<item>remote-scroll</item>
</string-array>
<string-array name="long_press_swipe_action_entries">
<item>@string/pref_gesture_action_none</item>
<item>@string/pref_gesture_action_remote_drag</item>
<item>@string/pref_gesture_action_remote_drag_middle</item>
<item>@string/pref_gesture_action_pan</item>
<item>@string/pref_gesture_action_remote_scroll</item>
</string-array>
<string-array name="long_press_swipe_action_values">
<item>none</item>
<item>remote-drag</item>
<item>remote-drag-middle</item>
<item>pan</item>
<item>remote-scroll</item>
</string-array>
<string-array name="mouse_back_action_entries">
<item>@string/pref_mouse_back_action_default</item>
<item>@string/pref_gesture_action_middle_click</item>
<item>@string/pref_gesture_action_right_click</item>
</string-array>
<string-array name="mouse_back_action_values">
<item>default</item>
<item>middle-click</item>
<item>right-click</item>
</string-array>
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~ Arrays for profile editor ~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
<!--Values for gesture style-->
<string-array name="profile_editor_gesture_style_labels">
<item>@string/pref_gesture_style_auto</item>
<item>@string/pref_gesture_style_touchscreen</item>
<item>@string/pref_gesture_style_touchpad</item>
</string-array>
<string-array name="profile_editor_gesture_style_descriptions">
<item>@string/pref_gesture_style_auto_summary</item>
<item>@string/pref_gesture_style_touchscreen_summary</item>
<item>@string/pref_gesture_style_touchpad_summary</item>
</string-array>
<string-array name="profile_editor_gesture_style_values">
<item>auto</item>
<item>touchscreen</item>
<item>touchpad</item>
</string-array>
<!--Values for security types-->
<string-array name="profile_editor_security_labels">
<item>@string/title_automatic</item>
<item>@string/title_none</item>
<item>VncAuth</item>
<item>AnonTLS</item>
<item>VeNCrypt</item>
</string-array>
<string-array name="profile_editor_security_values">
<item>0</item>
<item>1</item>
<item>2</item>
<item>18</item>
<item>19</item>
</string-array>
<!--Dummy string array used for testing-->
<string-array name="dummy_array">
<item>Item 1</item>
<item>Item 2</item>
<item>Item 3</item>
</string-array>
</resources>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright (c) 2020 Gaurav Ujjwal.
~
~ SPDX-License-Identifier: GPL-3.0-or-later
~
~ See COPYING.txt for more details.
-->
<resources>
<color name="colorBorder">#E8E8E8</color>
<color name="colorUrlBarBackground">#E8E8E8</color>
</resources>

View File

@@ -0,0 +1,21 @@
<!--
~ Copyright (c) 2020 Gaurav Ujjwal.
~
~ SPDX-License-Identifier: GPL-3.0-or-later
~
~ See COPYING.txt for more details.
-->
<resources>
<dimen name="margin_normal">10dp</dimen>
<dimen name="margin_small">5dp</dimen>
<dimen name="margin_large">20dp</dimen>
<dimen name="padding_normal">10dp</dimen>
<dimen name="padding_small">5dp</dimen>
<dimen name="action_btn_size">48dp</dimen>
<dimen name="urlbar_height">48dp</dimen>
<dimen name="urlbar_bg_corner_radius">24dp</dimen>
<dimen name="server_card_elevation">2dp</dimen>
<dimen name="server_card_min_height">68dp</dimen>
<dimen name="server_card_stroke_width">0dp</dimen>
</resources>

View File

@@ -0,0 +1,218 @@
<!--
~ Copyright (c) 2020 Gaurav Ujjwal.
~
~ SPDX-License-Identifier: GPL-3.0-or-later
~
~ See COPYING.txt for more details.
-->
<resources>
<string name="app_name" translatable="false">AVNC</string>
<string name="title_add_server_profile">Add server</string>
<string name="title_edit_server_profile">Edit server</string>
<string name="title_duplicate">Duplicate</string>
<string name="title_edit">Edit</string>
<string name="title_delete">Delete</string>
<string name="title_clear">Clear</string>
<string name="title_copy_host">Copy host</string>
<string name="title_copy_name">Copy name</string>
<string name="title_advanced">Advanced</string>
<string name="title_cancel">Cancel</string>
<string name="title_save">Save</string>
<string name="title_undo">Undo</string>
<string name="title_settings">Settings</string>
<string name="title_vnc_login">VNC login</string>
<string name="title_ssh_login">SSH login</string>
<string name="title_unlock_private_key">Unlock private key</string>
<string name="title_remember">Remember</string>
<string name="title_export">Export</string>
<string name="title_import">Import</string>
<string name="title_view_only_mode">View-only</string>
<string name="title_hide_remote_cursor">Hide remote pointer</string>
<string name="title_key_compat_mode">Send legacy key events</string>
<string name="title_button_up_delay">Send delayed click events</string>
<string name="title_resize_remote_desktop">Resize remote session to local window</string>
<string name="title_image_quality">Image quality</string>
<string name="title_orientation">Orientation</string>
<string name="title_image_quality_raw">Raw</string>
<string name="title_vnc_security">Security</string>
<string name="title_use_ssh_tunnel">Use SSH tunnel</string>
<string name="title_unknown_ssh_host">Unknown SSH host</string>
<string name="title_ssh_host_key_changed">SSH host key changed</string>
<string name="title_continue">Continue</string>
<string name="title_delete_servers_before_import">Delete current servers before import</string>
<string name="title_password">Password</string>
<string name="title_use_repeater">Use repeater</string>
<string name="title_private_key">Private key</string>
<string name="title_change">Change</string>
<string name="title_about">About</string>
<string name="title_license">Licence</string>
<string name="title_open_source_libraries">Open source libraries</string>
<string name="title_report_bug">Report an issue</string>
<string name="title_source_code">Source code</string>
<string name="title_unlock_dialog">Unlock to continue</string>
<string name="title_automatic">Automatic</string>
<string name="title_none">None</string>
<string name="hint_urlbar">Connect to a Server</string>
<string name="hint_server_name">Name (e.g. Work PC)</string>
<string name="hint_host">Host</string>
<string name="hint_repeater_host">Repeater host</string>
<string name="hint_port">Port</string>
<string name="hint_server_id">Server ID</string>
<string name="hint_username">Username</string>
<string name="hint_password">Password</string>
<string name="hint_ssh_host">SSH host</string>
<string name="hint_ssh_port">SSH port</string>
<string name="hint_key_password">Key password</string>
<string name="msg_about_app">A fast and secure VNC client. Remotely view and control any device running a VNC server.\n\n\nAVNC is an open source and copyleft software — made with help from many contributors.</string>
<string name="msg_server_profile_added">Server added</string>
<string name="msg_server_profile_deleted">Server deleted</string>
<string name="msg_zoom_locked">Zoom locked</string>
<string name="msg_zoom_unlocked">Zoom unlocked</string>
<string name="msg_zoom_reset">Zoom reset to 100%</string>
<string name="msg_zoom_reset_default">Zoom reset to default</string>
<string name="msg_zoom_saved">Saved current zoom as default</string>
<string name="msg_pip_not_supported">Not supported on this device</string>
<string name="msg_ptr_hiding_not_supported">Not supported on this device</string>
<string name="msg_loading">Loading…</string>
<string name="msg_imported">Imported</string>
<string name="msg_exported">Exported</string>
<string name="msg_export_auth_required">Authenticate to export servers</string>
<string name="msg_invalid_key_file">Invalid private key file</string>
<string name="msg_invalid_vnc_uri">Invalid VNC URI</string>
<string name="msg_copied_to_clipboard">Copied</string>
<string name="msg_pk_password_not_saved">AVNC no longer saves private key passwords to improve security.</string>
<string name="msg_key_compat_mode_help">Some servers have limited Unicode support. Legacy key events can help input non-English text.</string>
<string name="msg_button_up_delay_help">Delaying click events can help in some rare cases if an app is not responding to clicks.</string>
<string name="msg_drag_gesture_help">Assigning an action to this gesture will change Long press detection:\n\n<b>Press-hold-release</b> → Long press\n<b>Press-hold-swipe</b> → Long press and swipe</string>
<string name="msg_shortcut_server_deleted">This server has been deleted</string>
<string name="tip_empty_server_list">Server list is empty.\nClick \'<b>+</b>\' to add a server, or\nuse the top address bar to connect directly.</string>
<string name="tip_urlbar">You can enter IP address, hostname, or \'vnc://\' URI.</string>
<string name="tip_discovery">Discovery can automatically find supported servers\nrunning on your network.</string>
<!-- Accessibility descriptions -->
<string name="desc_navigation_btn">Open navigation drawer</string>
<string name="desc_settings_btn">Settings</string>
<string name="desc_saved_servers_tab">Saved servers</string>
<string name="desc_discovered_servers_tab">Discovered servers</string>
<string name="desc_add_new_server_btn">Add server</string>
<string name="desc_save_discovered_server_btn">Save</string>
<string name="desc_discovery_btn">Discover servers</string>
<string name="desc_discovery_stop_btn">Stop discovering servers</string>
<string name="desc_discovery_running">Discovering servers on you network</string>
<string name="desc_keyboard_btn">Open keyboard</string>
<string name="desc_virtual_keys_btn">Show virtual keys</string>
<string name="desc_zoom_options_btn">Zoom options</string>
<string name="desc_reset_zoom_btn">Reset zoom</string>
<string name="desc_lock_zoom_btn">Lock zoom</string>
<string name="desc_save_zoom_btn">Save current zoom as default</string>
<string name="desc_retry_connection_btn">Reconnect</string>
<string name="desc_back_btn">Back</string>
<string name="desc_clear_url_btn">Clear</string>
<string name="desc_server_url">Server address</string>
<string name="desc_help_btn">Help</string>
<string name="desc_discovered_list">List of automatically discovered servers</string>
<string name="desc_saved_servers_list">List of saved Servers</string>
<!-- Preference -->
<string name="pref_ui">Interface</string>
<string name="pref_ui_summary">Look and feel</string>
<string name="pref_viewer">Viewer</string>
<string name="pref_viewer_summary">Picture-in-picture, zoom</string>
<string name="pref_input">Input</string>
<string name="pref_input_summary">Gestures, mouse, virtual keys</string>
<string name="pref_servers">Servers</string>
<string name="pref_server_summary">Login, discovery</string>
<string name="pref_tools">Tools</string>
<string name="pref_tools_summary">Import/Export, debugging</string>
<string name="pref_experimental">Experimental</string>
<string name="pref_experimental_summary">Extra goodies</string>
<string name="pref_gesture_action_none" translatable="false">@string/title_none</string>
<string name="pref_gesture_action_left_click">Left-click</string>
<string name="pref_gesture_action_middle_click">Middle-click</string>
<string name="pref_gesture_action_right_click">Right-click</string>
<string name="pref_gesture_action_double_click">Double-click</string>
<string name="pref_gesture_action_move_pointer">Move pointer</string>
<string name="pref_gesture_action_pan">Pan local frame</string>
<string name="pref_gesture_action_remote_scroll">Scroll remote content</string>
<string name="pref_gesture_action_remote_drag">Drag remote content</string>
<string name="pref_gesture_action_remote_drag_middle">Drag with middle button</string>
<string name="pref_gesture_action_open_keyboard">Open keyboard</string>
<string name="pref_theme">Theme</string>
<string name="pref_theme_option_system">System</string>
<string name="pref_theme_option_dark">Dark</string>
<string name="pref_theme_option_light">Light</string>
<string name="pref_prefer_advanced_editor">Directly open advanced server options</string>
<string name="pref_sort_server_list">Sort saved servers by name</string>
<string name="pref_gesture">Gestures</string>
<string name="pref_gesture_style">Gesture style</string>
<string name="pref_gesture_style_auto" translatable="false">@string/title_automatic</string>
<string name="pref_gesture_style_auto_summary">Based on app Settings</string>
<string name="pref_gesture_style_touchscreen">Touchscreen</string>
<string name="pref_gesture_style_touchscreen_summary">Do actions at touch-point</string>
<string name="pref_gesture_style_touchpad">Touchpad</string>
<string name="pref_gesture_style_touchpad_summary">Do actions at pointer</string>
<string name="pref_single_tap">Single tap</string>
<string name="pref_two_finger_tap">Two-finger tap</string>
<string name="pref_double_tap">Double tap</string>
<string name="pref_long_press">Long press</string>
<string name="pref_swipe1">One-finger swipe</string>
<string name="pref_swipe2">Two-finger swipe</string>
<string name="pref_double_tap_swipe">Double tap and swipe</string>
<string name="pref_long_press_swipe">Long press and swipe</string>
<string name="pref_swipe_sensitivity">Swipe sensitivity</string>
<string name="pref_invert_vertical_scrolling">Invert vertical scrolling</string>
<string name="pref_mouse">Mouse</string>
<string name="pref_mouse_passthrough">Mouse passthrough</string>
<string name="pref_mouse_passthrough_summary_off">Use mouse events for local gestures</string>
<string name="pref_mouse_passthrough_summary_on">Send mouse events directly to server</string>
<string name="pref_hide_local_cursor">Hide local pointer</string>
<string name="pref_mouse_back">Back button</string>
<string name="pref_mouse_back_action_default">Default</string>
<string name="pref_vk">Virtual keys</string>
<string name="pref_vk_show_all">Show all keys</string>
<string name="pref_vk_open_with_keyboard">Open with keyboard</string>
<string name="pref_km">Key mappings</string>
<string name="pref_km_right_alt_to_super">Right Alt → Super</string>
<string name="pref_km_language_switch_to_super">Language Switch → Super</string>
<string name="pref_km_back_to_escape">Back → Escape</string>
<string name="pref_km_back_to_escape_summary">Does not affect the navigation bar</string>
<string name="pref_orientation">Screen orientation</string>
<string name="pref_orientation_option_auto">Automatic</string>
<string name="pref_orientation_option_portrait">Portrait</string>
<string name="pref_orientation_option_landscape">Landscape</string>
<string name="pref_fullscreen">Fullscreen</string>
<string name="pref_display_cutout">Draw behind display cutout (experimental)</string>
<string name="pref_enable_pip">Picture-in-picture</string>
<string name="pref_keep_screen_on">Keep screen on</string>
<string name="pref_toolbar">Toolbar</string>
<string name="pref_toolbar_alignment">Alignment</string>
<string name="pref_toolbar_alignment_option_start">Start</string>
<string name="pref_toolbar_alignment_option_end">End</string>
<string name="pref_toolbar_open_with_swipe">Swipe-in from edge to open</string>
<string name="pref_show_gesture_style_toggle">Show gesture style toggle</string>
<string name="pref_zoom">Zoom</string>
<string name="pref_zoom_min">Minimum</string>
<string name="pref_zoom_max">Maximum</string>
<string name="pref_per_orientation_zoom">Separate zoom for each orientation</string>
<string name="pref_clipboard_sync">Clipboard sync</string>
<string name="pref_saved_server_lock_summary">Require biometric/password unlock to connect</string>
<string name="pref_saved_server_lock">Lock saved servers</string>
<string name="pref_auto_reconnect">Reconnect automatically</string>
<string name="pref_discovery">Discovery</string>
<string name="pref_discovery_autorun">Autorun</string>
<string name="pref_discovery_autorun_summary">Discover servers while on homepage</string>
<string name="pref_rediscovery_indicator">Highlight rediscovered servers</string>
<string name="pref_import_export">Import/Export servers</string>
<string name="pref_debugging">Debugging</string>
<string name="pref_logs">Logs</string>
<string name="pref_keycode_map">Keycode map</string>
<string name="pref_touch_test">Touch test</string>
<string name="pref_key_test">Key test</string>
</resources>

View File

@@ -15,4 +15,148 @@
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
<!--
When app is launched, Android shows a temporary window until the app is ready.
The background color for this temporary window is selected from the theme specified
for the activity in app manifest. E.g. it will be white for a Light theme.
If we specify DayNight theme in manifest for startup activity, but user has selected
dark theme in AVNC, they may see a white flash before activity starts drawing. To
workaround this, we use App.SplashTheme.Dark in the manifest to get a dark window,
but switch to main theme in Activity's onCreate().
Since API 31, Android provides SplashScreen API to change splash theme at runtime,
which we use to match the splash theme with user's prefs (see HomeActivity).
Note: Some custom ROMs don't respect/support the splash theme introduced in API 31.
On such devices, we still rely on the above mentioned workaround.
-->
<style name="App.SplashTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar" />
<style name="App.SplashTheme.Light" parent="Theme.MaterialComponents.Light.NoActionBar" />
<style name="App.SplashTheme.Dark" parent="Theme.MaterialComponents.NoActionBar" />
<!--
This base theme is used for configuration-specific styling (e.g. night mode, API 23)
-->
<style name="App.BaseTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar" />
<!--
This is the main theme.
-->
<style name="App.Theme" parent="App.BaseTheme">
<item name="appBarLayoutStyle">@style/Widget.MaterialComponents.AppBarLayout.Surface</item>
</style>
<style name="AlertDialog.Dimmed" parent="ThemeOverlay.MaterialComponents.MaterialAlertDialog">
<item name="android:backgroundDimAmount">.6</item>
</style>
<style name="UrlBar" parent="Widget.MaterialComponents.Toolbar">
<item name="android:background">@drawable/bg_urlbar</item>
<item name="android:layout_marginStart">@dimen/margin_normal</item>
<item name="android:layout_marginEnd">@dimen/margin_normal</item>
<item name="android:layout_marginTop">@dimen/margin_large</item>
<item name="android:layout_marginBottom">@dimen/margin_normal</item>
</style>
<style name="TipView" parent="Widget.AppCompat.TextView">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_gravity">center</item>
<item name="android:gravity">center</item>
<item name="android:drawableTop">@drawable/ic_lightbulb</item>
</style>
<style name="FormField">
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_margin">@dimen/margin_small</item>
</style>
<style name="FormField.EditText">
<item name="android:paddingTop">15dp</item>
<item name="android:drawablePadding">15dp</item>
</style>
<style name="FormField.LabelWithIcon">
<item name="android:layout_width">wrap_content</item>
<item name="android:drawablePadding">15dp</item>
<item name="android:gravity">center_vertical</item>
<item name="android:paddingStart">@dimen/padding_small</item>
</style>
<style name="FormField.CheckBox">
<item name="android:paddingStart">11dp</item>
</style>
<style name="ImageButton">
<item name="android:layout_width">@dimen/action_btn_size</item>
<item name="android:layout_height">@dimen/action_btn_size</item>
<item name="android:background">?attr/selectableItemBackgroundBorderless</item>
</style>
<style name="ImageButton.Toggle">
<item name="android:background">@drawable/bg_toggle_button</item>
<item name="android:foreground">?selectableItemBackground</item>
<item name="android:gravity">center</item>
<item name="android:textOff" />
<item name="android:textOn" />
</style>
<style name="ServerList">
<item name="android:paddingBottom">@dimen/server_card_min_height</item>
<item name="android:clipToPadding">false</item>
</style>
<style name="ServerCard">
<item name="android:layout_marginTop">@dimen/margin_normal</item>
<item name="android:layout_marginStart">@dimen/margin_normal</item>
<item name="android:layout_marginEnd">@dimen/margin_normal</item>
<item name="android:focusable">true</item>
<item name="android:minHeight">@dimen/server_card_min_height</item>
<item name="cardElevation">@dimen/server_card_elevation</item>
<item name="strokeWidth">@dimen/server_card_stroke_width</item>
<item name="contentPadding">@dimen/padding_normal</item>
<item name="strokeColor">@color/colorBorder</item>
</style>
<style name="ServerCardHintIcon">
<item name="android:layout_width">16dp</item>
<item name="android:layout_height">16dp</item>
<item name="android:layout_marginStart">@dimen/margin_normal</item>
<item name="android:layout_marginEnd">@dimen/margin_normal</item>
<item name="android:layout_gravity">center_vertical</item>
<item name="tint">?android:textColorSecondary</item>
<item name="tintMode">src_in</item>
</style>
<style name="VirtualKey">
<item name="android:layout_height">36dp</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:minWidth">50dp</item>
<item name="android:gravity">center</item>
<item name="android:background">?attr/selectableItemBackgroundBorderless</item>
<item name="android:textAppearance">@style/TextAppearance.MaterialComponents.Body2</item>
</style>
<style name="VirtualKey.Compact">
<item name="android:minWidth">36dp</item>
</style>
<style name="VirtualKey.Image">
<item name="android:minWidth">46dp</item>
</style>
<style name="VirtualKey.Toggle">
<item name="android:background">@drawable/bg_toggle_button</item>
</style>
<style name="VirtualKey.Toggle.Image">
<item name="android:minWidth">48dp</item>
<item name="android:textOff" />
<item name="android:textOn" />
<item name="android:padding">12dp</item>
</style>
</resources>