mirror of
https://github.com/Cateners/tiny_computer.git
synced 2026-05-21 08:55:48 +08:00
Update code to v1.0.14 (10)
This commit is contained in:
17
android/app/src/main/res/color/control_icon.xml
Normal file
17
android/app/src/main/res/color/control_icon.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
~ Copyright (c) 2021 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<!--
|
||||
This color can be used for the icon of controls (e.g. EditText).
|
||||
It is only valid for API >= 23
|
||||
-->
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:alpha="?android:disabledAlpha" android:color="?colorControlNormal" android:state_enabled="false" />
|
||||
<item android:color="?colorControlNormal" android:state_focused="false" android:state_pressed="false" />
|
||||
<item android:color="?colorControlActivated" />
|
||||
</selector>
|
||||
25
android/app/src/main/res/drawable/bg_circular_button.xml
Normal file
25
android/app/src/main/res/drawable/bg_circular_button.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="?colorControlHighlight">
|
||||
<item>
|
||||
|
||||
<shape android:shape="oval">
|
||||
<solid android:color="?attr/colorSurface" />
|
||||
<size
|
||||
|
||||
android:width="@dimen/action_btn_size"
|
||||
android:height="@dimen/action_btn_size" />
|
||||
<stroke
|
||||
android:width="1dp"
|
||||
android:color="@color/colorBorder" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||
14
android/app/src/main/res/drawable/bg_frame_view.xml
Normal file
14
android/app/src/main/res/drawable/bg_frame_view.xml
Normal file
@@ -0,0 +1,14 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<!-- Custom background for FrameView. Used to avoid white overlay when not in touch-mode-->
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@android:color/transparent" android:state_focused="true" />
|
||||
<item android:drawable="@android:color/transparent" android:state_window_focused="true" />
|
||||
<item android:drawable="@android:color/transparent" />
|
||||
</selector>
|
||||
16
android/app/src/main/res/drawable/bg_round_rect.xml
Normal file
16
android/app/src/main/res/drawable/bg_round_rect.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="?attr/colorSurface" />
|
||||
<corners android:radius="5dp" />
|
||||
<stroke
|
||||
android:width="1dp"
|
||||
android:color="@color/colorBorder" />
|
||||
</shape>
|
||||
13
android/app/src/main/res/drawable/bg_toggle_button.xml
Normal file
13
android/app/src/main/res/drawable/bg_toggle_button.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_checked="true">
|
||||
<color android:color="?colorControlHighlight" />
|
||||
</item>
|
||||
</selector>
|
||||
18
android/app/src/main/res/drawable/bg_urlbar.xml
Normal file
18
android/app/src/main/res/drawable/bg_urlbar.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="?colorControlHighlight">
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="@dimen/urlbar_bg_corner_radius" />
|
||||
<solid android:color="@color/colorUrlBarBackground" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||
10
android/app/src/main/res/drawable/ic_arrow_back.xml
Normal file
10
android/app/src/main/res/drawable/ic_arrow_back.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:autoMirrored="true"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_bookmark.xml
Normal file
9
android/app/src/main/res/drawable/ic_bookmark.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M17,3H7c-1.1,0 -1.99,0.9 -1.99,2L5,21l7,-3 7,3V5c0,-1.1 -0.9,-2 -2,-2z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_bug.xml
Normal file
9
android/app/src/main/res/drawable/ic_bug.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M20,8h-2.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96L17,4.41 15.59,3l-2.17,2.17C12.96,5.06 12.49,5 12,5c-0.49,0 -0.96,0.06 -1.41,0.17L8.41,3 7,4.41l1.62,1.63C7.88,6.55 7.26,7.22 6.81,8L4,8v2h2.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L4,12v2h2v1c0,0.34 0.04,0.67 0.09,1L4,16v2h2.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L20,18v-2h-2.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h2v-2h-2v-1c0,-0.34 -0.04,-0.67 -0.09,-1L20,10L20,8zM14,16h-4v-2h4v2zM14,12h-4v-2h4v2z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_clear.xml
Normal file
9
android/app/src/main/res/drawable/ic_clear.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_computer.xml
Normal file
9
android/app/src/main/res/drawable/ic_computer.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M20,18c1.1,0 1.99,-0.9 1.99,-2L22,6c0,-1.1 -0.9,-2 -2,-2H4c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2H0v2h24v-2h-4zM4,6h16v10H4V6z" />
|
||||
</vector>
|
||||
22
android/app/src/main/res/drawable/ic_computer_shortcut.xml
Normal file
22
android/app/src/main/res/drawable/ic_computer_shortcut.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<shape android:shape="oval">
|
||||
<solid android:color="#f5f5f5" />
|
||||
</shape>
|
||||
</item>
|
||||
<item
|
||||
android:bottom="16dp"
|
||||
android:left="16dp"
|
||||
android:right="16dp"
|
||||
android:top="16dp">
|
||||
<vector
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#2128ab"
|
||||
android:pathData="M20,18c1.1,0 1.99,-0.9 1.99,-2L22,6c0,-1.1 -0.9,-2 -2,-2H4c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2H0v2h24v-2h-4zM4,6h16v10H4V6z" />
|
||||
</vector>
|
||||
</item>
|
||||
</layer-list>
|
||||
9
android/app/src/main/res/drawable/ic_download.xml
Normal file
9
android/app/src/main/res/drawable/ic_download.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_experimental.xml
Normal file
9
android/app/src/main/res/drawable/ic_experimental.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M19.8,18.4L14,10.67V6.5l1.35,-1.69C15.61,4.48 15.38,4 14.96,4H9.04C8.62,4 8.39,4.48 8.65,4.81L10,6.5v4.17L4.2,18.4C3.71,19.06 4.18,20 5,20h14C19.82,20 20.29,19.06 19.8,18.4z" />
|
||||
</vector>
|
||||
10
android/app/src/main/res/drawable/ic_file.xml
Normal file
10
android/app/src/main/res/drawable/ic_file.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:autoMirrored="true"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M6,2c-1.1,0 -1.99,0.9 -1.99,2L4,20c0,1.1 0.89,2 1.99,2L18,22c1.1,0 2,-0.9 2,-2L20,8l-6,-6L6,2zM13,9L13,3.5L18.5,9L13,9z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_gesture.xml
Normal file
9
android/app/src/main/res/drawable/ic_gesture.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M4.59,6.89c0.7,-0.71 1.4,-1.35 1.71,-1.22 0.5,0.2 0,1.03 -0.3,1.52 -0.25,0.42 -2.86,3.89 -2.86,6.31 0,1.28 0.48,2.34 1.34,2.98 0.75,0.56 1.74,0.73 2.64,0.46 1.07,-0.31 1.95,-1.4 3.06,-2.77 1.21,-1.49 2.83,-3.44 4.08,-3.44 1.63,0 1.65,1.01 1.76,1.79 -3.78,0.64 -5.38,3.67 -5.38,5.37 0,1.7 1.44,3.09 3.21,3.09 1.63,0 4.29,-1.33 4.69,-6.1L21,14.88v-2.5h-2.47c-0.15,-1.65 -1.09,-4.2 -4.03,-4.2 -2.25,0 -4.18,1.91 -4.94,2.84 -0.58,0.73 -2.06,2.48 -2.29,2.72 -0.25,0.3 -0.68,0.84 -1.11,0.84 -0.45,0 -0.72,-0.83 -0.36,-1.92 0.35,-1.09 1.4,-2.86 1.85,-3.52 0.78,-1.14 1.3,-1.92 1.3,-3.28C8.95,3.69 7.31,3 6.44,3 5.12,3 3.97,4 3.72,4.25c-0.36,0.36 -0.66,0.66 -0.88,0.93l1.75,1.71zM13.88,18.55c-0.31,0 -0.74,-0.26 -0.74,-0.72 0,-0.6 0.73,-2.2 2.87,-2.76 -0.3,2.69 -1.43,3.48 -2.13,3.48z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_github.xml
Normal file
9
android/app/src/main/res/drawable/ic_github.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="m11.999,1c-6.0742,-0 -10.999,5.0495 -10.999,11.2787 0,4.983 3.1515,9.2099 7.5226,10.702 0.5504,0.1032 0.7509,-0.2451 0.7509,-0.5442 0,-0.2673 -0.0095,-0.9769 -0.0149,-1.9179 -3.0597,0.6813 -3.7053,-1.5121 -3.7053,-1.5121 -0.5004,-1.3024 -1.2216,-1.6492 -1.2216,-1.6492 -0.9987,-0.7 0.0756,-0.6861 0.0756,-0.6861 1.1041,0.0803 1.6848,1.1625 1.6848,1.1625 0.9812,1.7233 2.5748,1.2255 3.2015,0.9375 0.0999,-0.7291 0.3836,-1.2262 0.6982,-1.508 -2.4425,-0.2846 -5.0106,-1.2525 -5.0106,-5.5743 0,-1.231 0.4288,-2.2377 1.1324,-3.0264 -0.1134,-0.2853 -0.4909,-1.4318 0.1074,-2.9848 0,-0 0.9238,-0.3033 3.0253,1.1563 0.8772,-0.2499 1.8185,-0.3753 2.7538,-0.3794 0.9339,0.0042 1.8753,0.1295 2.7538,0.3794 2.1001,-1.4595 3.0219,-1.1563 3.0219,-1.1563 0.6003,1.553 0.2228,2.6996 0.1094,2.9848 0.705,0.7886 1.1311,1.7953 1.1311,3.0264 0,4.3329 -2.5721,5.2863 -5.0227,5.5653 0.395,0.3483 0.7469,1.0365 0.7469,2.0889 0,1.5073 -0.0135,2.7238 -0.0135,3.0935 0,0.3019 0.1979,0.6529 0.7563,0.5428 4.3677,-1.4948 7.5166,-5.719 7.5166,-10.7006C23,6.0495 18.0745,1 11.999,1" />
|
||||
</vector>
|
||||
92
android/app/src/main/res/drawable/ic_gpl.xml
Normal file
92
android/app/src/main/res/drawable/ic_gpl.xml
Normal file
File diff suppressed because one or more lines are too long
9
android/app/src/main/res/drawable/ic_help.xml
Normal file
9
android/app/src/main/res/drawable/ic_help.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,19h-2v-2h2v2zM15.07,11.25l-0.9,0.92C13.45,12.9 13,13.5 13,15h-2v-0.5c0,-1.1 0.45,-2.1 1.17,-2.83l1.24,-1.26c0.37,-0.36 0.59,-0.86 0.59,-1.41 0,-1.1 -0.9,-2 -2,-2s-2,0.9 -2,2L8,9c0,-2.21 1.79,-4 4,-4s4,1.79 4,4c0,0.88 -0.36,1.68 -0.93,2.25z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_info.xml
Normal file
9
android/app/src/main/res/drawable/ic_info.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_key.xml
Normal file
9
android/app/src/main/res/drawable/ic_key.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M12.65,10C11.83,7.67 9.61,6 7,6c-3.31,0 -6,2.69 -6,6s2.69,6 6,6c2.61,0 4.83,-1.67 5.65,-4H17v4h4v-4h2v-4H12.65zM7,14c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_keyboard.xml
Normal file
9
android/app/src/main/res/drawable/ic_keyboard.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M20,5L4,5c-1.1,0 -1.99,0.9 -1.99,2L2,17c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,7c0,-1.1 -0.9,-2 -2,-2zM11,8h2v2h-2L11,8zM11,11h2v2h-2v-2zM8,8h2v2L8,10L8,8zM8,11h2v2L8,13v-2zM7,13L5,13v-2h2v2zM7,10L5,10L5,8h2v2zM16,17L8,17v-2h8v2zM16,13h-2v-2h2v2zM16,10h-2L14,8h2v2zM19,13h-2v-2h2v2zM19,10h-2L17,8h2v2z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M7.41,8.59L12,13.17l4.59,-4.58L18,10l-6,6 -6,-6 1.41,-1.41z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M15.41,16.59L10.83,12l4.58,-4.59L14,6l-6,6 6,6 1.41,-1.41z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M8.59,16.59L13.17,12 8.59,7.41 10,6l6,6 -6,6 -1.41,-1.41z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M7.41,15.41L12,10.83l4.59,4.58L18,14l-6,-6 -6,6z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_keyboard_mini.xml
Normal file
9
android/app/src/main/res/drawable/ic_keyboard_mini.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M20,7L4,7C2.9,7 2.01,7.9 2.01,9L2,15c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,9C22,7.9 21.1,7 20,7ZM11,9h2v2L11,11ZM8,9h2v2L8,11ZM7,11L5,11L5,9h2zM16,15L8,15v-2h8zM16,11L14,11L14,9h2zM19,11L17,11L17,9h2z" />
|
||||
</vector>
|
||||
41
android/app/src/main/res/drawable/ic_launcher_background.xml
Normal file
41
android/app/src/main/res/drawable/ic_launcher_background.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<!--
|
||||
~ Copyright (c) 2021 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<group
|
||||
android:scaleX="0.5625"
|
||||
android:scaleY="0.5625">
|
||||
<path
|
||||
android:pathData="M-0,-0h192v192h-192z"
|
||||
android:strokeWidth="0"
|
||||
android:strokeColor="#00000000"
|
||||
android:strokeLineCap="square"
|
||||
android:strokeLineJoin="round">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="97.52014"
|
||||
android:endY="-2.1316282E-14"
|
||||
android:startX="97.52014"
|
||||
android:startY="192.98738"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#FF102359"
|
||||
android:offset="0" />
|
||||
<item
|
||||
android:color="#FF3365FF"
|
||||
android:offset="1" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
</group>
|
||||
</vector>
|
||||
46
android/app/src/main/res/drawable/ic_launcher_foreground.xml
Normal file
46
android/app/src/main/res/drawable/ic_launcher_foreground.xml
Normal file
@@ -0,0 +1,46 @@
|
||||
<!--
|
||||
~ Copyright (c) 2021 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<group
|
||||
android:scaleX="0.5625"
|
||||
android:scaleY="0.5625">
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M76.149,73.388 L98.058,118.702"
|
||||
android:strokeWidth="12.2257"
|
||||
android:strokeColor="#e0b609"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M53.313,118.702 L76.149,73.388"
|
||||
android:strokeWidth="12.2257"
|
||||
android:strokeColor="#ffce00"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="m138.69,73.295 l-22.41,45.32"
|
||||
android:strokeWidth="12.2194"
|
||||
android:strokeColor="#00c21d"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M116.28,118.615 L93.939,73.295"
|
||||
android:strokeWidth="12.2194"
|
||||
android:strokeColor="#00e524"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
</group>
|
||||
</vector>
|
||||
46
android/app/src/main/res/drawable/ic_launcher_monochrome.xml
Normal file
46
android/app/src/main/res/drawable/ic_launcher_monochrome.xml
Normal file
@@ -0,0 +1,46 @@
|
||||
<!--
|
||||
~ Copyright (c) 2021 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<group
|
||||
android:scaleX="0.5625"
|
||||
android:scaleY="0.5625">
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M76.149,73.388 L98.058,118.702"
|
||||
android:strokeWidth="12.2257"
|
||||
android:strokeColor="#000000"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M53.313,118.702 L76.149,73.388"
|
||||
android:strokeWidth="12.2257"
|
||||
android:strokeColor="#000000"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="m138.69,73.295 l-22.41,45.32"
|
||||
android:strokeWidth="12.2194"
|
||||
android:strokeColor="#000000"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M116.28,118.615 L93.939,73.295"
|
||||
android:strokeWidth="12.2194"
|
||||
android:strokeColor="#000000"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
</group>
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_lightbulb.xml
Normal file
9
android/app/src/main/res/drawable/ic_lightbulb.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M9,21c0,0.5 0.4,1 1,1h4c0.6,0 1,-0.5 1,-1v-1L9,20v1zM12,2C8.1,2 5,5.1 5,9c0,2.4 1.2,4.5 3,5.7L8,17c0,0.5 0.4,1 1,1h6c0.6,0 1,-0.5 1,-1v-2.3c1.8,-1.3 3,-3.4 3,-5.7 0,-3.9 -3.1,-7 -7,-7z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_lock.xml
Normal file
9
android/app/src/main/res/drawable/ic_lock.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM12,17c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM15.1,8L8.9,8L8.9,6c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_menu.xml
Normal file
9
android/app/src/main/res/drawable/ic_menu.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M3,18h18v-2L3,16v2zM3,13h18v-2L3,11v2zM3,6v2h18L21,6L3,6z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_mouse.xml
Normal file
9
android/app/src/main/res/drawable/ic_mouse.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M13,1.07L13,9h7c0,-4.08 -3.05,-7.44 -7,-7.93zM4,15c0,4.42 3.58,8 8,8s8,-3.58 8,-8v-4L4,11v4zM11,1.07C7.05,1.56 4,4.92 4,9h7L11,1.07z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_palette.xml
Normal file
9
android/app/src/main/res/drawable/ic_palette.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M12,3c-4.97,0 -9,4.03 -9,9s4.03,9 9,9c0.83,0 1.5,-0.67 1.5,-1.5 0,-0.39 -0.15,-0.74 -0.39,-1.01 -0.23,-0.26 -0.38,-0.61 -0.38,-0.99 0,-0.83 0.67,-1.5 1.5,-1.5L16,16c2.76,0 5,-2.24 5,-5 0,-4.42 -4.03,-8 -9,-8zM6.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S5.67,9 6.5,9 8,9.67 8,10.5 7.33,12 6.5,12zM9.5,8C8.67,8 8,7.33 8,6.5S8.67,5 9.5,5s1.5,0.67 1.5,1.5S10.33,8 9.5,8zM14.5,8c-0.83,0 -1.5,-0.67 -1.5,-1.5S13.67,5 14.5,5s1.5,0.67 1.5,1.5S15.33,8 14.5,8zM17.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S16.67,9 17.5,9s1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_password.xml
Normal file
9
android/app/src/main/res/drawable/ic_password.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M2,17h20v2H2V17zM3.15,12.95L4,11.47l0.85,1.48l1.3,-0.75L5.3,10.72H7v-1.5H5.3l0.85,-1.47L4.85,7L4,8.47L3.15,7l-1.3,0.75L2.7,9.22H1v1.5h1.7L1.85,12.2L3.15,12.95zM9.85,12.2l1.3,0.75L12,11.47l0.85,1.48l1.3,-0.75l-0.85,-1.48H15v-1.5h-1.7l0.85,-1.47L12.85,7L12,8.47L11.15,7l-1.3,0.75l0.85,1.47H9v1.5h1.7L9.85,12.2zM23,9.22h-1.7l0.85,-1.47L20.85,7L20,8.47L19.15,7l-1.3,0.75l0.85,1.47H17v1.5h1.7l-0.85,1.48l1.3,0.75L20,11.47l0.85,1.48l1.3,-0.75l-0.85,-1.48H23V9.22z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_person.xml
Normal file
9
android/app/src/main/res/drawable/ic_person.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M12,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM12,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z" />
|
||||
</vector>
|
||||
12
android/app/src/main/res/drawable/ic_plus.xml
Normal file
12
android/app/src/main/res/drawable/ic_plus.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M13,4a1,1 0,1 0,-2 0v7H4a1,1 0,1 0,0 2h7v7a1,1 0,1 0,2 0v-7h7a1,1 0,1 0,0 -2h-7V4z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_refresh.xml
Normal file
9
android/app/src/main/res/drawable/ic_refresh.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M17.65,6.35C16.2,4.9 14.21,4 12,4c-4.42,0 -7.99,3.58 -7.99,8s3.57,8 7.99,8c3.73,0 6.84,-2.55 7.73,-6h-2.08c-0.82,2.33 -3.04,4 -5.65,4 -3.31,0 -6,-2.69 -6,-6s2.69,-6 6,-6c1.66,0 3.14,0.69 4.22,1.78L13,11h7V4l-2.35,2.35z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_save.xml
Normal file
9
android/app/src/main/res/drawable/ic_save.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M17,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,7l-4,-4zM12,19c-1.66,0 -3,-1.34 -3,-3s1.34,-3 3,-3 3,1.34 3,3 -1.34,3 -3,3zM15,9L5,9L5,5h10v4z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_screen_rotation.xml
Normal file
9
android/app/src/main/res/drawable/ic_screen_rotation.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M16.48,2.52c3.27,1.55 5.61,4.72 5.97,8.48h1.5C23.44,4.84 18.29,0 12,0l-0.66,0.03 3.81,3.81 1.33,-1.32zM10.23,1.75c-0.59,-0.59 -1.54,-0.59 -2.12,0L1.75,8.11c-0.59,0.59 -0.59,1.54 0,2.12l12.02,12.02c0.59,0.59 1.54,0.59 2.12,0l6.36,-6.36c0.59,-0.59 0.59,-1.54 0,-2.12L10.23,1.75zM14.83,21.19L2.81,9.17l6.36,-6.36 12.02,12.02 -6.36,6.36zM7.52,21.48C4.25,19.94 1.91,16.76 1.55,13L0.05,13C0.56,19.16 5.71,24 12,24l0.66,-0.03 -3.81,-3.81 -1.33,1.32z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_search.xml
Normal file
9
android/app/src/main/res/drawable/ic_search.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_settings.xml
Normal file
9
android/app/src/main/res/drawable/ic_settings.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
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.94L14.4,2.81c-0.04,-0.24 -0.24,-0.41 -0.48,-0.41h-3.84c-0.24,0 -0.43,0.17 -0.47,0.41L9.25,5.35C8.66,5.59 8.12,5.92 7.63,6.29L5.24,5.33c-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.8,11.69 4.8,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>
|
||||
9
android/app/src/main/res/drawable/ic_shield.xml
Normal file
9
android/app/src/main/res/drawable/ic_shield.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M12,1L3,5v6c0,5.55 3.84,10.74 9,12 5.16,-1.26 9,-6.45 9,-12V5l-9,-4z" />
|
||||
</vector>
|
||||
17
android/app/src/main/res/drawable/ic_ssh.xml
Normal file
17
android/app/src/main/res/drawable/ic_ssh.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<!--
|
||||
~ Copyright (c) 2021 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M3,3C1.9,3 1.0098,3.9 1.0098,5L1,19c0,1.1 0.8,2 1.9,2L21,21c1.1,0 2,-0.9 2,-2L23,5C23,3.9 22.1,3 21,3ZM5.5195,8.5c0.2321,0 0.4561,0.0144 0.6699,0.0449 0.2199,0.0305 0.451,0.0956 0.6953,0.1934 0.2444,0.0916 0.4557,0.2125 0.6328,0.3652 0.1772,0.1466 0.3234,0.3543 0.4395,0.623C8.0792,9.9893 8.1406,10.2963 8.1406,10.6445L6.8574,10.6445C6.8085,9.9481 6.3409,9.5996 5.4551,9.5996c-0.3543,0 -0.6341,0.0758 -0.8418,0.2285 -0.2077,0.1466 -0.3125,0.3452 -0.3125,0.5957 0,0.2444 0.0885,0.4286 0.2656,0.5508 0.1772,0.1161 0.5113,0.2226 1,0.3203l1.0449,0.2012c0.617,0.1222 1.0647,0.3298 1.3457,0.623 0.281,0.2871 0.4219,0.6934 0.4219,1.2188 0,0.6781 -0.242,1.2089 -0.7246,1.5938C7.1717,15.3104 6.5,15.5 5.6387,15.5 4.7834,15.5 4.1171,15.3104 3.6406,14.9316 3.1702,14.5529 2.9139,14.0077 2.8711,13.293h1.3379c0.0244,0.3604 0.1653,0.6348 0.4219,0.8242 0.2566,0.1894 0.6177,0.2832 1.082,0.2832 0.4154,0 0.7422,-0.0794 0.9805,-0.2383 0.2444,-0.1588 0.3652,-0.3791 0.3652,-0.6602 0,-0.2688 -0.0938,-0.4764 -0.2832,-0.623C6.586,12.7323 6.2629,12.6168 5.8047,12.5313L4.8691,12.3477C4.191,12.2194 3.709,12.019 3.4219,11.7441 3.1348,11.4692 2.9902,11.072 2.9902,10.5527 2.9902,9.8991 3.2105,9.3953 3.6504,9.041 4.0963,8.6806 4.7192,8.5 5.5195,8.5ZM11.7656,8.5c0.2321,0 0.4561,0.0144 0.6699,0.0449 0.2199,0.0305 0.451,0.0956 0.6953,0.1934 0.2444,0.0916 0.4557,0.2125 0.6328,0.3652 0.1772,0.1466 0.3234,0.3543 0.4395,0.623 0.1222,0.2627 0.1836,0.5698 0.1836,0.918h-1.2832c-0.0489,-0.6964 -0.5146,-1.0449 -1.4004,-1.0449 -0.3543,0 -0.636,0.0758 -0.8438,0.2285 -0.2077,0.1466 -0.3125,0.3452 -0.3125,0.5957 0,0.2444 0.0885,0.4286 0.2656,0.5508 0.1772,0.1161 0.5113,0.2226 1,0.3203l1.0449,0.2012c0.617,0.1222 1.0647,0.3298 1.3457,0.623 0.281,0.2871 0.4219,0.6934 0.4219,1.2188 0,0.6781 -0.24,1.2089 -0.7227,1.5938C13.4197,15.3104 12.7461,15.5 11.8848,15.5 11.0295,15.5 10.3652,15.3104 9.8887,14.9316 9.4183,14.5529 9.16,14.0077 9.1172,13.293h1.3379c0.0244,0.3604 0.1653,0.6348 0.4219,0.8242 0.2566,0.1894 0.6177,0.2832 1.082,0.2832 0.4154,0 0.7422,-0.0794 0.9805,-0.2383 0.2444,-0.1588 0.3672,-0.3791 0.3672,-0.6602 0,-0.2688 -0.0958,-0.4764 -0.2852,-0.623 -0.1894,-0.1466 -0.5125,-0.2621 -0.9707,-0.3477L11.1152,12.3477C10.4371,12.2194 9.9551,12.019 9.668,11.7441 9.3808,11.4692 9.2363,11.072 9.2363,10.5527c0,-0.6537 0.2203,-1.1574 0.6602,-1.5117C10.3424,8.6806 10.9653,8.5 11.7656,8.5ZM15.7305,8.6094h1.375v2.502h2.6387L19.7441,8.6094h1.3848v6.6797h-1.375v-3.0332h-2.6484v3.0332h-1.375z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_star.xml
Normal file
9
android/app/src/main/res/drawable/ic_star.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_super_key.xml
Normal file
9
android/app/src/main/res/drawable/ic_super_key.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="m4.5,4.5l0,6.667l6.667,0L11.167,4.5ZM4.5,12.833l0,6.667l6.667,0L11.167,12.833ZM12.833,4.5l0,6.667l6.667,0L19.5,4.5ZM12.833,12.833l0,6.667l6.667,0l0,-6.667z" />
|
||||
</vector>
|
||||
12
android/app/src/main/res/drawable/ic_swap.xml
Normal file
12
android/app/src/main/res/drawable/ic_swap.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M22,8l-4,-4v3H3v2h15v3L22,8z" />
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M2,16l4,4v-3h15v-2H6v-3L2,16z" />
|
||||
</vector>
|
||||
12
android/app/src/main/res/drawable/ic_toggle_more.xml
Normal file
12
android/app/src/main/res/drawable/ic_toggle_more.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="12dp"
|
||||
android:height="24dp"
|
||||
android:autoMirrored="true"
|
||||
android:tint="#8fff"
|
||||
android:tintMode="multiply"
|
||||
android:viewportWidth="12"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M3,9.172 L5.828,12 3,14.828Z" />
|
||||
</vector>
|
||||
17
android/app/src/main/res/drawable/ic_toolbar.xml
Normal file
17
android/app/src/main/res/drawable/ic_toolbar.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?colorOnSurface"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="m20,20c1.1,0 1.99,-0.9 1.99,-2L22,6C22,4.9 21.1,4 20,4H4C2.9,4 2,4.9 2,6v12c0,1.1 0.9,2 2,2h8zM4,6H20V18H4Z" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="m6.5,9v6"
|
||||
android:strokeWidth="3"
|
||||
android:strokeColor="#000000"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="miter" />
|
||||
</vector>
|
||||
12
android/app/src/main/res/drawable/ic_tools.xml
Normal file
12
android/app/src/main/res/drawable/ic_tools.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M21.67,18.17l-5.3,-5.3h-0.99l-2.54,2.54v0.99l5.3,5.3c0.39,0.39 1.02,0.39 1.41,0l2.12,-2.12C22.06,19.2 22.06,18.56 21.67,18.17z" />
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M17.34,10.19l1.41,-1.41l2.12,2.12c1.17,-1.17 1.17,-3.07 0,-4.24l-3.54,-3.54l-1.41,1.41V1.71L15.22,1l-3.54,3.54l0.71,0.71h2.83l-1.41,1.41l1.06,1.06l-2.89,2.89L7.85,6.48V5.06L4.83,2.04L2,4.87l3.03,3.03h1.41l4.13,4.13l-0.85,0.85H7.6l-5.3,5.3c-0.39,0.39 -0.39,1.02 0,1.41l2.12,2.12c0.39,0.39 1.02,0.39 1.41,0l5.3,-5.3v-2.12l5.15,-5.15L17.34,10.19z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_upload.xml
Normal file
9
android/app/src/main/res/drawable/ic_upload.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M9,16h6v-6h4l-7,-7 -7,7h4zM5,18h14v2L5,20z" />
|
||||
</vector>
|
||||
10
android/app/src/main/res/drawable/ic_video.xml
Normal file
10
android/app/src/main/res/drawable/ic_video.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M9.5556,8.4444L9.5556,15.5556L15.6667,12ZM20.5556,4L3.4444,4C2.1,4 1,4.8 1,5.7778L1,18.2222C1,19.2 2.1,20 3.4444,20L20.5556,20C21.9,20 23,19.2 23,18.2222L23,5.7778C23,4.8 21.9,4 20.5556,4ZM20.5556,18.2222L3.4444,18.2222L3.4444,5.7778L20.5556,5.7778Z"
|
||||
android:strokeWidth="1.04231" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_visibility.xml
Normal file
9
android/app/src/main/res/drawable/ic_visibility.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M12,4.5C7,4.5 2.73,7.61 1,12c1.73,4.39 6,7.5 11,7.5s9.27,-3.11 11,-7.5c-1.73,-4.39 -6,-7.5 -11,-7.5zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5zM12,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3 3,-1.34 3,-3 -1.34,-3 -3,-3z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_warning.xml
Normal file
9
android/app/src/main/res/drawable/ic_warning.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M1,21h22L12,2 1,21zM13,18h-2v-2h2v2zM13,14h-2v-4h2v4z" />
|
||||
</vector>
|
||||
114
android/app/src/main/res/drawable/ic_wordmark.xml
Normal file
114
android/app/src/main/res/drawable/ic_wordmark.xml
Normal file
@@ -0,0 +1,114 @@
|
||||
<!--
|
||||
~ Copyright (c) 2021 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="150dp"
|
||||
android:height="75dp"
|
||||
android:viewportWidth="150"
|
||||
android:viewportHeight="75">
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M34.909,24.938 L47.08,50.112"
|
||||
android:strokeWidth="6.40167"
|
||||
android:strokeColor="#d6ac00"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M22.222,50.112 L34.909,24.938"
|
||||
android:strokeWidth="6.40167"
|
||||
android:strokeColor="#ffce00"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M69.654,24.886 L57.204,50.064"
|
||||
android:strokeWidth="6.39839"
|
||||
android:strokeColor="#00c21d"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M57.204,50.064 L44.792,24.886"
|
||||
android:strokeWidth="6.39839"
|
||||
android:strokeColor="#00e524"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillAlpha="0.994888"
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="m78.298,50.115 l-0.125,-25.231"
|
||||
android:strokeWidth="6.38617"
|
||||
android:strokeAlpha="0.994888"
|
||||
android:strokeColor="#cc2e00"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillAlpha="0.994888"
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M103.005,50.115 L102.88,24.885"
|
||||
android:strokeWidth="6.38617"
|
||||
android:strokeAlpha="0.994888"
|
||||
android:strokeColor="#cc2f00"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillAlpha="0.994888"
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M103.005,50.115 L78.172,24.885"
|
||||
android:strokeWidth="6.38617"
|
||||
android:strokeAlpha="0.994888"
|
||||
android:strokeColor="#ff3c00"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillAlpha="0.08953992"
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="m124.517,50.099a12.491,12.599 0,0 1,-12.491 -12.599,12.491 12.599,0 0,1 12.491,-12.599"
|
||||
android:strokeWidth="6.38639"
|
||||
android:strokeAlpha="0.994888"
|
||||
android:strokeColor="#ff00a4"
|
||||
android:strokeLineCap="butt"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillAlpha="0.994888"
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="m127.786,24.888 l-4.029,0.051"
|
||||
android:strokeWidth="6.38622"
|
||||
android:strokeAlpha="0.994888"
|
||||
android:strokeColor="#ff00a3"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillAlpha="0.994888"
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="m127.786,50.061 l-4.029,0.051"
|
||||
android:strokeWidth="6.38622"
|
||||
android:strokeAlpha="0.994888"
|
||||
android:strokeColor="#ff00a3"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillAlpha="0.994888"
|
||||
android:fillColor="#d6008a"
|
||||
android:pathData="M127.786,24.913m-3.193,0a3.193,3.193 0,1 1,6.386 0a3.193,3.193 0,1 1,-6.386 0"
|
||||
android:strokeWidth="0"
|
||||
android:strokeAlpha="0.994888"
|
||||
android:strokeColor="#00000000"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillAlpha="0.994888"
|
||||
android:fillColor="#d6008a"
|
||||
android:pathData="M127.786,50.087m-3.193,0a3.193,3.193 0,1 1,6.386 0a3.193,3.193 0,1 1,-6.386 0"
|
||||
android:strokeWidth="0"
|
||||
android:strokeAlpha="0.994888"
|
||||
android:strokeColor="#00000000"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
</vector>
|
||||
12
android/app/src/main/res/drawable/ic_zoom_in.xml
Normal file
12
android/app/src/main/res/drawable/ic_zoom_in.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z" />
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M12,10h-2v2H9v-2H7V9h2V7h1v2h2v1z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_zoom_options.xml
Normal file
9
android/app/src/main/res/drawable/ic_zoom_options.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z" />
|
||||
</vector>
|
||||
9
android/app/src/main/res/drawable/ic_zoom_reset.xml
Normal file
9
android/app/src/main/res/drawable/ic_zoom_reset.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?colorOnSurface"
|
||||
android:pathData="M17.01,14h-0.8l-0.27,-0.27c0.98,-1.14 1.57,-2.61 1.57,-4.23 0,-3.59 -2.91,-6.5 -6.5,-6.5s-6.5,3 -6.5,6.5H2l3.84,4 4.16,-4H6.51C6.51,7 8.53,5 11.01,5s4.5,2.01 4.5,4.5c0,2.48 -2.02,4.5 -4.5,4.5 -0.65,0 -1.26,-0.14 -1.82,-0.38L7.71,15.1c0.97,0.57 2.09,0.9 3.3,0.9 1.61,0 3.08,-0.59 4.22,-1.57l0.27,0.27v0.79l5.01,4.99L22,19l-4.99,-5z" />
|
||||
</vector>
|
||||
15
android/app/src/main/res/drawable/indicator.xml
Normal file
15
android/app/src/main/res/drawable/indicator.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
~ Copyright (c) 2021 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
<size
|
||||
android:width="10dp"
|
||||
android:height="10dp" />
|
||||
<solid android:color="?colorSecondary" />
|
||||
</shape>
|
||||
36
android/app/src/main/res/layout/activity_about.xml
Normal file
36
android/app/src/main/res/layout/activity_about.xml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
~ Copyright (c) 2021 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:clipToPadding="false"
|
||||
android:padding="@dimen/padding_normal">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/fragment_host"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
</ScrollView>
|
||||
</LinearLayout>
|
||||
28
android/app/src/main/res/layout/activity_settings.xml
Normal file
28
android/app/src/main/res/layout/activity_settings.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<!--
|
||||
~ Copyright (c) 2020 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/fragment_host"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</LinearLayout>
|
||||
157
android/app/src/main/res/layout/activity_vnc.xml
Normal file
157
android/app/src/main/res/layout/activity_vnc.xml
Normal file
@@ -0,0 +1,157 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
<import type="com.gaurav.avnc.viewmodel.VncViewModel.State" />
|
||||
|
||||
<variable
|
||||
name="viewModel"
|
||||
type="com.gaurav.avnc.viewmodel.VncViewModel" />
|
||||
</data>
|
||||
|
||||
<!--
|
||||
There are three components of this screen:
|
||||
|
||||
1. FrameView :- Renders remote content. This is "behind" all other Views.
|
||||
|
||||
2. Drawers :- These represent the toolbars and are rendered on top of FrameView.
|
||||
Currently, we only have one drawer.
|
||||
|
||||
3. Status :- Topmost View. Shows progress indicator, status msg etc. It is initially
|
||||
visible but becomes invisible once we are successfully connected to server.
|
||||
-->
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
|
||||
<androidx.drawerlayout.widget.DrawerLayout
|
||||
android:id="@+id/drawer_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:scrimColor="@{0}">
|
||||
|
||||
|
||||
<!--FrameView-->
|
||||
<com.gaurav.avnc.ui.vnc.FrameView
|
||||
android:id="@+id/frame_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/bg_frame_view"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true" />
|
||||
|
||||
|
||||
<!--Drawer-->
|
||||
<include
|
||||
android:id="@+id/toolbar"
|
||||
layout="@layout/toolbar_drawer"
|
||||
app:viewModel="@{viewModel}" />
|
||||
|
||||
</androidx.drawerlayout.widget.DrawerLayout>
|
||||
|
||||
<!--Virtual keys-->
|
||||
<ViewStub
|
||||
android:id="@+id/virtual_keys_stub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal|bottom"
|
||||
android:layout="@layout/virtual_keys" />
|
||||
|
||||
<!--Status-->
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/status_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?colorSurface">
|
||||
|
||||
<ProgressBar
|
||||
style="@style/Widget.AppCompat.ProgressBar"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:indeterminate="true"
|
||||
android:padding="@dimen/padding_small"
|
||||
app:isVisible="@{viewModel.state == State.Connecting}"
|
||||
app:layout_constraintBottom_toTopOf="@id/client_state"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:importantForAccessibility="no"
|
||||
android:src="@drawable/ic_warning"
|
||||
app:isVisible="@{viewModel.state == State.Disconnected}"
|
||||
app:layout_constraintBottom_toTopOf="@id/client_state"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:tint="?attr/colorError" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/client_state"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/margin_normal"
|
||||
android:text="@{viewModel.state.toString()}"
|
||||
app:isVisible="@{viewModel.state != State.Created}"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="State" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/disconnect_reason"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/margin_normal"
|
||||
android:gravity="center"
|
||||
android:text='@{ "( " + viewModel.disconnectReason + " )"}'
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Caption"
|
||||
app:isVisible="@{viewModel.state == State.Disconnected && !viewModel.disconnectReason.empty}"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/client_state"
|
||||
tools:text="( Connection refused! Server may be down or running on different port )" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/reconnect_btn"
|
||||
style="@style/ImageButton"
|
||||
android:background="@drawable/bg_circular_button"
|
||||
android:contentDescription="@string/desc_retry_connection_btn"
|
||||
android:src="@drawable/ic_refresh"
|
||||
app:isVisible="@{viewModel.state == State.Disconnected}"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/disconnect_reason" />
|
||||
|
||||
<com.google.android.material.progressindicator.CircularProgressIndicator
|
||||
android:id="@+id/auto_reconnect_progress"
|
||||
style="@style/Widget.MaterialComponents.CircularProgressIndicator"
|
||||
android:layout_width="@dimen/action_btn_size"
|
||||
android:layout_height="@dimen/action_btn_size"
|
||||
app:indicatorColor="?colorSecondary"
|
||||
app:indicatorInset="0dp"
|
||||
app:indicatorSize="@dimen/action_btn_size"
|
||||
app:isVisible="@{viewModel.state == State.Disconnected && viewModel.pref.server.autoReconnect}"
|
||||
app:layout_constraintStart_toStartOf="@id/reconnect_btn"
|
||||
app:layout_constraintTop_toTopOf="@id/reconnect_btn"
|
||||
app:trackThickness="1dp"
|
||||
tools:progress="50" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</FrameLayout>
|
||||
</layout>
|
||||
64
android/app/src/main/res/layout/fragment_about.xml
Normal file
64
android/app/src/main/res/layout/fragment_about.xml
Normal file
@@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
~ Copyright (c) 2021 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="80dp"
|
||||
android:layout_gravity="center"
|
||||
android:importantForAccessibility="no"
|
||||
android:src="@mipmap/avnc" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="@dimen/margin_small"
|
||||
android:text="@string/app_name"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/margin_large"
|
||||
android:text="@string/msg_about_app"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/repo_btn"
|
||||
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/margin_large"
|
||||
android:text="@string/title_source_code"
|
||||
app:icon="@drawable/ic_github" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/licence_btn"
|
||||
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/title_license"
|
||||
app:icon="@drawable/ic_file" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/library_btn"
|
||||
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/title_open_source_libraries"
|
||||
app:icon="@drawable/ic_bookmark" />
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
87
android/app/src/main/res/layout/fragment_credential.xml
Normal file
87
android/app/src/main/res/layout/fragment_credential.xml
Normal file
@@ -0,0 +1,87 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
<variable
|
||||
name="loginInfo"
|
||||
type="com.gaurav.avnc.model.LoginInfo" />
|
||||
</data>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="@dimen/padding_normal">
|
||||
|
||||
<!--Username-->
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/username_layout"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/margin_normal"
|
||||
app:endIconMode="none">
|
||||
|
||||
<AutoCompleteTextView
|
||||
android:id="@+id/username"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:autofillHints="username"
|
||||
android:hint="@string/hint_username"
|
||||
android:imeOptions="actionNext"
|
||||
android:inputType="text"
|
||||
android:text="@={loginInfo.username}" />
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<!--Password-->
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/password_layout"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/margin_normal"
|
||||
app:endIconMode="none">
|
||||
|
||||
<AutoCompleteTextView
|
||||
android:id="@+id/password"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:autofillHints="password"
|
||||
android:hint="@string/hint_password"
|
||||
android:imeOptions="actionDone"
|
||||
android:inputType="textPassword"
|
||||
android:text="@={loginInfo.password}" />
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/remember"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/margin_small"
|
||||
android:text="@string/title_remember"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pk_password_msg"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/margin_normal"
|
||||
android:drawablePadding="@dimen/padding_small"
|
||||
android:text="@string/msg_pk_password_not_saved"
|
||||
android:visibility="gone"
|
||||
app:drawableStartCompat="@drawable/ic_info"
|
||||
app:drawableTint="@color/material_on_background_disabled"
|
||||
tools:visibility="visible" />
|
||||
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
59
android/app/src/main/res/layout/fragment_libraries.xml
Normal file
59
android/app/src/main/res/layout/fragment_libraries.xml
Normal file
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
~ Copyright (c) 2021 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="@dimen/padding_normal"
|
||||
tools:ignore="HardcodedText">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="This is a non-exhaustive list of libraries and resources used in this app. We thank the developers of these wonderful libraries for their contributions."
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/margin_large"
|
||||
android:layout_marginBottom="@dimen/margin_normal"
|
||||
android:text="(Tap to open their homepage)" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dp"
|
||||
android:background="@color/colorBorder" />
|
||||
|
||||
<!--
|
||||
Library list is dynamically populated.
|
||||
ListView would be better for this task, but it causes some layout issues here.
|
||||
-->
|
||||
<LinearLayout
|
||||
android:id="@+id/library_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dp"
|
||||
android:background="@color/colorBorder" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/margin_large"
|
||||
android:text="This software is based in part on the work of the Independent JPEG Group" />
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
71
android/app/src/main/res/layout/fragment_license.xml
Normal file
71
android/app/src/main/res/layout/fragment_license.xml
Normal file
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
~ Copyright (c) 2021 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="@dimen/padding_normal"
|
||||
tools:ignore="HardcodedText">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/app_name"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Copyleft (c) 2020-2021 Gaurav Ujjwal" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/margin_large"
|
||||
android:layout_marginBottom="@dimen/margin_normal"
|
||||
android:drawablePadding="@dimen/padding_small"
|
||||
android:text='@{@string/app_name + " is released under the GNU General Public License, version 3 or later."}'
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||
app:drawableEndCompat="@drawable/ic_gpl" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/margin_normal"
|
||||
android:layout_marginBottom="@dimen/margin_normal"
|
||||
android:text='@{@string/app_name + " uses code which is released under one or more of the licenses listed below."}'
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dp"
|
||||
android:layout_marginTop="@dimen/margin_large"
|
||||
android:layout_marginBottom="@dimen/margin_large"
|
||||
android:background="@color/colorBorder" />
|
||||
|
||||
<!--Vertical scrolling is provided by the ScrollView in parent activity-->
|
||||
<HorizontalScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/license_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/margin_normal"
|
||||
android:textSize="12sp"
|
||||
android:typeface="monospace" />
|
||||
</HorizontalScrollView>
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
89
android/app/src/main/res/layout/fragment_profile_editor.xml
Normal file
89
android/app/src/main/res/layout/fragment_profile_editor.xml
Normal file
@@ -0,0 +1,89 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<data>
|
||||
|
||||
<variable
|
||||
name="profile"
|
||||
type="com.gaurav.avnc.model.ServerProfile" />
|
||||
</data>
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/padding_normal">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:animateLayoutChanges="true"
|
||||
android:orientation="vertical">
|
||||
|
||||
<!--Name-->
|
||||
<EditText
|
||||
style="@style/FormField.EditText"
|
||||
android:layout_width="match_parent"
|
||||
android:drawableStart="@drawable/ic_bookmark"
|
||||
android:hint="@string/hint_server_name"
|
||||
android:importantForAutofill="no"
|
||||
android:inputType="text"
|
||||
android:text="@={profile.name}" />
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<!--Host-->
|
||||
<EditText
|
||||
android:id="@+id/host"
|
||||
style="@style/FormField.EditText"
|
||||
android:layout_weight=".8"
|
||||
android:drawableStart="@{profile.useRepeater ? @drawable/ic_swap : @drawable/ic_computer}"
|
||||
android:hint="@{profile.useRepeater ? @string/hint_repeater_host : @string/hint_host}"
|
||||
android:importantForAutofill="no"
|
||||
android:inputType="textUri"
|
||||
android:text="@={profile.host}" />
|
||||
|
||||
<!--Port-->
|
||||
<EditText
|
||||
android:id="@+id/port"
|
||||
style="@style/FormField.EditText"
|
||||
android:layout_marginStart="0dp"
|
||||
android:layout_weight=".2"
|
||||
android:hint="@string/hint_port"
|
||||
android:importantForAutofill="no"
|
||||
android:inputType="number"
|
||||
android:text='@={"" + profile.port}' />
|
||||
</LinearLayout>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/username"
|
||||
style="@style/FormField.EditText"
|
||||
android:layout_width="match_parent"
|
||||
android:autofillHints="username"
|
||||
android:drawableStart="@drawable/ic_person"
|
||||
android:hint="@string/hint_username"
|
||||
android:inputType="text"
|
||||
android:text="@={profile.username}" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/password"
|
||||
style="@style/FormField.EditText"
|
||||
android:layout_width="match_parent"
|
||||
android:autofillHints="password"
|
||||
android:drawableStart="@drawable/ic_password"
|
||||
android:hint="@string/hint_password"
|
||||
android:inputType="textPassword"
|
||||
android:text="@={profile.password}" />
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
</layout>
|
||||
@@ -0,0 +1,459 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
<variable
|
||||
name="viewModel"
|
||||
type="com.gaurav.avnc.viewmodel.EditorViewModel" />
|
||||
</data>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?colorSurface"
|
||||
android:orientation="vertical">
|
||||
|
||||
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
|
||||
<!-- Appbar -->
|
||||
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/appbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/urlbar_height"
|
||||
app:navigationContentDescription="@string/desc_back_btn"
|
||||
app:navigationIcon="@drawable/ic_arrow_back">
|
||||
|
||||
<Button
|
||||
android:id="@+id/save_btn"
|
||||
style="@style/Widget.MaterialComponents.Button.TextButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:text="@string/title_save" />
|
||||
</com.google.android.material.appbar.MaterialToolbar>
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:animateLayoutChanges="true"
|
||||
android:padding="@dimen/padding_normal"
|
||||
android:paddingBottom="30dp">
|
||||
|
||||
|
||||
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
|
||||
<!-- VNC Server -->
|
||||
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
|
||||
|
||||
<EditText
|
||||
android:id="@+id/name"
|
||||
style="@style/FormField.EditText"
|
||||
android:drawableStart="@drawable/ic_bookmark"
|
||||
android:hint="@string/hint_server_name"
|
||||
android:importantForAutofill="no"
|
||||
android:inputType="text"
|
||||
android:text="@={viewModel.profile.name}"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<!--Host-->
|
||||
<EditText
|
||||
android:id="@+id/host"
|
||||
style="@style/FormField.EditText"
|
||||
android:drawableStart="@{viewModel.useRepeater ? @drawable/ic_swap : @drawable/ic_computer}"
|
||||
android:hint="@{viewModel.useRepeater ? @string/hint_repeater_host : @string/hint_host}"
|
||||
android:importantForAutofill="no"
|
||||
android:inputType="textUri"
|
||||
android:text="@={viewModel.profile.host}"
|
||||
app:layout_constraintEnd_toStartOf="@id/port"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/name" />
|
||||
|
||||
|
||||
<!--Port-->
|
||||
<EditText
|
||||
android:id="@+id/port"
|
||||
style="@style/FormField.EditText"
|
||||
android:layout_marginStart="0dp"
|
||||
android:hint="@string/hint_port"
|
||||
android:importantForAutofill="no"
|
||||
android:inputType="number"
|
||||
android:text='@={"" + viewModel.profile.port}'
|
||||
app:layout_constraintBottom_toBottomOf="@id/host"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/host"
|
||||
app:layout_constraintTop_toTopOf="@id/host"
|
||||
app:layout_constraintWidth_percent=".2" />
|
||||
|
||||
<!--Repeater-->
|
||||
<CheckBox
|
||||
android:id="@+id/use_repeater"
|
||||
style="@style/FormField.CheckBox"
|
||||
android:checked="@={viewModel.useRepeater}"
|
||||
android:text="@string/title_use_repeater"
|
||||
app:layout_constraintEnd_toStartOf="@id/id_on_repeater"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/host" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/id_on_repeater"
|
||||
style="@style/FormField.EditText"
|
||||
android:hint="@string/hint_server_id"
|
||||
android:importantForAutofill="no"
|
||||
android:inputType="number"
|
||||
android:minWidth="100dp"
|
||||
android:text="@={viewModel.idOnRepeater}"
|
||||
app:isVisible="@{viewModel.useRepeater}"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/use_repeater"
|
||||
app:layout_constraintTop_toBottomOf="@id/host" />
|
||||
|
||||
|
||||
<!--View-only mode-->
|
||||
<CheckBox
|
||||
android:id="@+id/view_only"
|
||||
style="@style/FormField.CheckBox"
|
||||
android:checked="@={viewModel.profile.viewOnly}"
|
||||
android:text="@string/title_view_only_mode"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/use_repeater" />
|
||||
|
||||
<!--Key Compatibility mode-->
|
||||
<CheckBox
|
||||
android:id="@+id/key_compat_mode"
|
||||
style="@style/FormField.CheckBox"
|
||||
android:checked="@={viewModel.profile.fLegacyKeySym}"
|
||||
android:text="@string/title_key_compat_mode"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/view_only" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/key_compat_mode_help_btn"
|
||||
style="@style/ImageButton"
|
||||
android:contentDescription="@string/desc_help_btn"
|
||||
android:src="@drawable/ic_help"
|
||||
app:layout_constraintBottom_toBottomOf="@id/key_compat_mode"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/key_compat_mode"
|
||||
app:tint="?colorControlNormal" />
|
||||
|
||||
<!--Button-up delay-->
|
||||
<CheckBox
|
||||
android:id="@+id/button_up_delay"
|
||||
style="@style/FormField.CheckBox"
|
||||
android:checked="@={viewModel.profile.fButtonUpDelay}"
|
||||
android:text="@string/title_button_up_delay"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/key_compat_mode" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/button_up_delay_help_btn"
|
||||
style="@style/ImageButton"
|
||||
android:contentDescription="@string/desc_help_btn"
|
||||
android:src="@drawable/ic_help"
|
||||
app:layout_constraintBottom_toBottomOf="@id/button_up_delay"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/button_up_delay"
|
||||
app:tint="?colorControlNormal" />
|
||||
|
||||
<!--Resize remote desktop-->
|
||||
<CheckBox
|
||||
android:id="@+id/resize_remote_desktop"
|
||||
style="@style/FormField.CheckBox"
|
||||
android:checked="@={viewModel.profile.resizeRemoteDesktop}"
|
||||
android:text="@string/title_resize_remote_desktop"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/button_up_delay" />
|
||||
|
||||
<!--Image Quality-->
|
||||
<TextView
|
||||
android:id="@+id/image_quality_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="48dp"
|
||||
android:labelFor="@id/image_quality"
|
||||
android:text="@string/title_image_quality"
|
||||
app:layout_constraintBottom_toBottomOf="@id/image_quality"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/image_quality" />
|
||||
|
||||
<SeekBar
|
||||
android:id="@+id/image_quality"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/action_btn_size"
|
||||
android:layout_marginVertical="@dimen/margin_small"
|
||||
android:layout_marginStart="@dimen/margin_large"
|
||||
android:enabled="@{!viewModel.useRawEncoding}"
|
||||
android:max="9"
|
||||
android:minHeight="@dimen/action_btn_size"
|
||||
android:progress="@={viewModel.profile.imageQuality}"
|
||||
app:layout_constraintEnd_toStartOf="@id/raw_encoding"
|
||||
app:layout_constraintStart_toEndOf="@id/image_quality_label"
|
||||
app:layout_constraintTop_toBottomOf="@id/resize_remote_desktop" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/raw_encoding"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/action_btn_size"
|
||||
android:layout_marginEnd="@dimen/margin_small"
|
||||
android:checked="@={viewModel.useRawEncoding}"
|
||||
android:text="@string/title_image_quality_raw"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/image_quality"
|
||||
app:layout_constraintTop_toTopOf="@id/image_quality" />
|
||||
|
||||
|
||||
<!--Gesture style-->
|
||||
<TextView
|
||||
android:id="@+id/gesture_style_label"
|
||||
style="@style/FormField.LabelWithIcon"
|
||||
android:labelFor="@id/gesture_style"
|
||||
android:text="@string/pref_gesture_style"
|
||||
app:drawableStartCompat="@drawable/ic_gesture"
|
||||
app:layout_constraintBottom_toBottomOf="@id/gesture_style"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/gesture_style" />
|
||||
|
||||
<com.gaurav.avnc.util.SpinnerEx
|
||||
android:id="@+id/gesture_style"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/action_btn_size"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/image_quality"
|
||||
app:layout_constraintTop_toBottomOf="@id/image_quality"
|
||||
app:value="@={viewModel.profile.gestureStyle}"
|
||||
app:valueDescriptions="@{ @stringArray/profile_editor_gesture_style_descriptions }"
|
||||
app:valueLabels="@{ @stringArray/profile_editor_gesture_style_labels }"
|
||||
app:values="@{ @stringArray/profile_editor_gesture_style_values }"
|
||||
tools:entries="@array/dummy_array" />
|
||||
|
||||
<!--Screen orientation-->
|
||||
<TextView
|
||||
android:id="@+id/screen_orientation_label"
|
||||
style="@style/FormField.LabelWithIcon"
|
||||
android:labelFor="@id/screen_orientation"
|
||||
android:text="@string/title_orientation"
|
||||
app:drawableStartCompat="@drawable/ic_screen_rotation"
|
||||
app:layout_constraintBottom_toBottomOf="@id/screen_orientation"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/screen_orientation" />
|
||||
|
||||
<com.gaurav.avnc.util.SpinnerEx
|
||||
android:id="@+id/screen_orientation"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/action_btn_size"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/gesture_style"
|
||||
app:layout_constraintTop_toBottomOf="@id/gesture_style"
|
||||
app:value="@={viewModel.profile.screenOrientation}"
|
||||
app:valueLabels="@{ @stringArray/orientation_entries }"
|
||||
app:values="@{ @stringArray/orientation_values }"
|
||||
tools:entries="@array/dummy_array" />
|
||||
|
||||
|
||||
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
|
||||
<!-- Security -->
|
||||
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
|
||||
|
||||
<TextView
|
||||
android:id="@+id/security_label"
|
||||
style="@style/FormField.LabelWithIcon"
|
||||
android:text="@string/title_vnc_security"
|
||||
app:drawableStartCompat="@drawable/ic_shield"
|
||||
app:layout_constraintBottom_toBottomOf="@id/security"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/security" />
|
||||
|
||||
<com.gaurav.avnc.util.SpinnerEx
|
||||
android:id="@+id/security"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/action_btn_size"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/screen_orientation"
|
||||
app:layout_constraintTop_toBottomOf="@id/screen_orientation"
|
||||
app:value="@={viewModel.profile.securityType}"
|
||||
app:valueLabels="@{ @stringArray/profile_editor_security_labels }"
|
||||
app:values="@{ @stringArray/profile_editor_security_values }"
|
||||
tools:entries="@array/dummy_array" />
|
||||
|
||||
<!--Username-->
|
||||
<EditText
|
||||
android:id="@+id/username"
|
||||
style="@style/FormField.EditText"
|
||||
android:autofillHints="username"
|
||||
android:drawableStart="@drawable/ic_person"
|
||||
android:hint="@string/hint_username"
|
||||
android:inputType="text"
|
||||
android:text="@={viewModel.profile.username}"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/security" />
|
||||
|
||||
|
||||
<!--Password-->
|
||||
<EditText
|
||||
android:id="@+id/password"
|
||||
style="@style/FormField.EditText"
|
||||
android:autofillHints="password"
|
||||
android:drawableStart="@drawable/ic_password"
|
||||
android:hint="@string/hint_password"
|
||||
android:inputType="textPassword"
|
||||
android:text="@={viewModel.profile.password}"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/username" />
|
||||
|
||||
|
||||
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
|
||||
<!-- SSH Tunnel -->
|
||||
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/use_ssh_tunnel"
|
||||
style="@style/FormField.CheckBox"
|
||||
android:checked="@={viewModel.useSshTunnel}"
|
||||
android:text="@string/title_use_ssh_tunnel"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/password" />
|
||||
|
||||
<!--SSH Options-->
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:animateLayoutChanges="true"
|
||||
app:isVisible="@{viewModel.useSshTunnel}"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/use_ssh_tunnel">
|
||||
|
||||
<!--SSH Host-->
|
||||
<EditText
|
||||
android:id="@+id/ssh_host"
|
||||
style="@style/FormField.EditText"
|
||||
android:drawableStart="@drawable/ic_computer"
|
||||
android:hint="@{@string/hint_ssh_host}"
|
||||
android:importantForAutofill="no"
|
||||
android:inputType="textUri"
|
||||
android:text="@={viewModel.profile.sshHost}"
|
||||
app:layout_constraintEnd_toStartOf="@id/ssh_port"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<!--Port-->
|
||||
<EditText
|
||||
android:id="@+id/ssh_port"
|
||||
style="@style/FormField.EditText"
|
||||
android:hint="@{@string/hint_ssh_port}"
|
||||
android:importantForAutofill="no"
|
||||
android:inputType="number"
|
||||
android:text='@={"" + viewModel.profile.sshPort}'
|
||||
app:layout_constraintBottom_toBottomOf="@id/ssh_host"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/ssh_host"
|
||||
app:layout_constraintTop_toTopOf="@id/ssh_host"
|
||||
app:layout_constraintWidth_percent=".2" />
|
||||
|
||||
<!--Username-->
|
||||
<EditText
|
||||
android:id="@+id/ssh_username"
|
||||
style="@style/FormField.EditText"
|
||||
android:autofillHints="username"
|
||||
android:drawableStart="@drawable/ic_person"
|
||||
android:hint="@string/hint_username"
|
||||
android:inputType="text"
|
||||
android:text="@={viewModel.profile.sshUsername}"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ssh_host" />
|
||||
|
||||
<!--Auth Type-->
|
||||
<RadioGroup
|
||||
android:id="@+id/ssh_auth_type"
|
||||
style="@style/FormField"
|
||||
android:orientation="horizontal"
|
||||
android:paddingTop="@dimen/padding_small"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ssh_username">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/ssh_auth_type_key"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:checked="@={viewModel.sshUsePrivateKey}"
|
||||
android:text="@string/title_private_key" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/ssh_auth_type_password"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:checked="@={viewModel.sshUsePassword}"
|
||||
android:text="@string/title_password" />
|
||||
</RadioGroup>
|
||||
|
||||
<!--Password-->
|
||||
<EditText
|
||||
android:id="@+id/ssh_password"
|
||||
style="@style/FormField.EditText"
|
||||
android:autofillHints="password"
|
||||
android:drawableStart="@drawable/ic_password"
|
||||
android:hint="@string/hint_password"
|
||||
android:inputType="textPassword"
|
||||
android:text="@={viewModel.profile.sshPassword}"
|
||||
app:isVisible="@{viewModel.sshUsePassword}"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ssh_auth_type" />
|
||||
|
||||
<!--Private Key Import-->
|
||||
<Button
|
||||
android:id="@+id/key_import_btn"
|
||||
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/margin_normal"
|
||||
android:text="@{viewModel.hasSshPrivateKey ? @string/title_change : @string/title_import}"
|
||||
app:icon="@drawable/ic_file"
|
||||
app:isVisible="@{viewModel.sshUsePrivateKey}"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ssh_auth_type" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</ScrollView>
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
15
android/app/src/main/res/layout/help_btn.xml
Normal file
15
android/app/src/main/res/layout/help_btn.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
~ Copyright (c) 2022 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/help_btn"
|
||||
style="@style/ImageButton"
|
||||
android:contentDescription="@string/desc_help_btn"
|
||||
android:src="@drawable/ic_help"
|
||||
app:tint="?colorControlNormal" />
|
||||
35
android/app/src/main/res/layout/server_discovery_item.xml
Normal file
35
android/app/src/main/res/layout/server_discovery_item.xml
Normal file
@@ -0,0 +1,35 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<data>
|
||||
|
||||
<variable
|
||||
name="viewModel"
|
||||
type="com.gaurav.avnc.model.ServerProfile" />
|
||||
</data>
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
style="@style/ServerCard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<include
|
||||
layout="@layout/server_item"
|
||||
app:profile="@{viewModel}" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/save_btn"
|
||||
style="@style/ImageButton"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:contentDescription="@string/desc_save_discovered_server_btn"
|
||||
android:src="@drawable/ic_plus" />
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
</layout>
|
||||
98
android/app/src/main/res/layout/server_item.xml
Normal file
98
android/app/src/main/res/layout/server_item.xml
Normal file
@@ -0,0 +1,98 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
~ Copyright (c) 2021 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<!--
|
||||
- This is common server view, used by both saved and discovered server items.
|
||||
-->
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
<import type="com.gaurav.avnc.model.ServerProfile" />
|
||||
|
||||
<variable
|
||||
name="profile"
|
||||
type="com.gaurav.avnc.model.ServerProfile" />
|
||||
</data>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:text="@{profile.name}"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="Example Server Name" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/address"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/margin_small"
|
||||
android:text='@{profile.host + (profile.port == 5900 ? "" : " | " + profile.port) }'
|
||||
app:layout_constraintEnd_toStartOf="@id/ssh_address"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/name"
|
||||
tools:text="192.168.1.1 | 5901" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/ssh_address"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/margin_small"
|
||||
android:ellipsize="middle"
|
||||
android:singleLine="true"
|
||||
android:text='@{"(" + profile.sshHost + (profile.sshPort == 22 ? "" : " | " + profile.sshPort) + ")"}'
|
||||
app:isVisible="@{profile.channelType == ServerProfile.CHANNEL_SSH_TUNNEL && !profile.host.equals(profile.sshHost)}"
|
||||
app:layout_constrainedWidth="true"
|
||||
app:layout_constraintEnd_toStartOf="@id/hint_icons"
|
||||
app:layout_constraintStart_toEndOf="@id/address"
|
||||
app:layout_constraintTop_toTopOf="@id/address"
|
||||
tools:text="(10.0.5.5 | 23)" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/hint_icons"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="@id/address"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/ssh_address"
|
||||
app:layout_constraintTop_toTopOf="@id/address">
|
||||
|
||||
<ImageView
|
||||
style="@style/ServerCardHintIcon"
|
||||
android:importantForAccessibility="no"
|
||||
android:src="@drawable/ic_ssh"
|
||||
app:isVisible="@{profile.channelType == ServerProfile.CHANNEL_SSH_TUNNEL}" />
|
||||
|
||||
<ImageView
|
||||
style="@style/ServerCardHintIcon"
|
||||
android:importantForAccessibility="no"
|
||||
android:src="@drawable/ic_key"
|
||||
app:isVisible="@{profile.password.length() != 0}" />
|
||||
|
||||
<ImageView
|
||||
style="@style/ServerCardHintIcon"
|
||||
android:importantForAccessibility="no"
|
||||
android:src="@drawable/ic_visibility"
|
||||
app:isVisible="@{profile.viewOnly}" />
|
||||
|
||||
</LinearLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</layout>
|
||||
139
android/app/src/main/res/layout/toolbar_drawer.xml
Normal file
139
android/app/src/main/res/layout/toolbar_drawer.xml
Normal file
@@ -0,0 +1,139 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
~ Copyright (c) 2024 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
<variable
|
||||
name="viewModel"
|
||||
type="com.gaurav.avnc.viewmodel.VncViewModel" />
|
||||
</data>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="start">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/primary_buttons"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:animateLayoutChanges="true"
|
||||
tools:ignore="UselessParent"> <!--Its not useless-->
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_round_rect"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/keyboard_btn"
|
||||
style="@style/ImageButton"
|
||||
android:contentDescription="@string/desc_keyboard_btn"
|
||||
android:src="@drawable/ic_keyboard" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/virtual_keys_btn"
|
||||
style="@style/ImageButton"
|
||||
android:contentDescription="@string/desc_virtual_keys_btn"
|
||||
android:src="@drawable/ic_keyboard_mini" />
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/gesture_style_toggle"
|
||||
style="@style/ImageButton.Toggle"
|
||||
android:contentDescription="@string/pref_gesture_style"
|
||||
android:drawableStart="@drawable/ic_gesture"
|
||||
android:drawableEnd="@drawable/ic_toggle_more"
|
||||
android:onCheckedChanged="@{(v,checked) -> checked ? zoomOptions.setChecked(false) : void}"
|
||||
android:paddingStart="12dp"
|
||||
android:paddingEnd="0dp"
|
||||
app:isVisible="@{viewModel.pref.viewer.toolbarShowGestureStyleToggle}"
|
||||
tools:ignore="UnusedAttribute" />
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/zoom_options"
|
||||
style="@style/ImageButton.Toggle"
|
||||
android:contentDescription="@string/desc_zoom_options_btn"
|
||||
android:drawableStart="@drawable/ic_zoom_options"
|
||||
android:drawableEnd="@drawable/ic_toggle_more"
|
||||
android:onCheckedChanged="@{(v,checked) -> checked ? gestureStyleToggle.setChecked(false) : void}"
|
||||
android:paddingStart="12dp"
|
||||
android:paddingEnd="0dp"
|
||||
tools:ignore="UnusedAttribute" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginHorizontal="@dimen/margin_small"
|
||||
android:background="@drawable/bg_round_rect"
|
||||
app:isVisible="@{zoomOptions.checked}">
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/zoom_reset_btn"
|
||||
style="@style/ImageButton"
|
||||
android:contentDescription="@string/desc_reset_zoom_btn"
|
||||
android:src="@drawable/ic_zoom_reset" />
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/zoom_lock_btn"
|
||||
style="@style/ImageButton.Toggle"
|
||||
android:contentDescription="@string/desc_lock_zoom_btn"
|
||||
android:drawableStart="@drawable/ic_lock"
|
||||
android:padding="12dp" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/zoom_save_btn"
|
||||
style="@style/ImageButton"
|
||||
android:alpha="@{viewModel.profile.ID != 0 ? 1f : .25f}"
|
||||
android:contentDescription="@string/desc_save_zoom_btn"
|
||||
android:enabled="@{viewModel.profile.ID != 0}"
|
||||
android:src="@drawable/ic_save" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/gesture_style_group"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginHorizontal="@dimen/margin_small"
|
||||
android:background="@drawable/bg_round_rect"
|
||||
android:paddingStart="@dimen/padding_small"
|
||||
android:paddingEnd="@dimen/padding_normal"
|
||||
app:isVisible="@{gestureStyleToggle.checked}">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/gesture_style_auto"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/pref_gesture_style_auto" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/gesture_style_touchscreen"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/pref_gesture_style_touchscreen" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/gesture_style_touchpad"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/pref_gesture_style_touchpad" />
|
||||
</RadioGroup>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
||||
</layout>
|
||||
258
android/app/src/main/res/layout/virtual_keys.xml
Normal file
258
android/app/src/main/res/layout/virtual_keys.xml
Normal file
@@ -0,0 +1,258 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
~ Copyright (c) 2021 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
<import type="android.view.KeyEvent" />
|
||||
|
||||
<!--It controls whether all keys are visible OR only some of them-->
|
||||
<variable
|
||||
name="showAll"
|
||||
type="boolean" />
|
||||
|
||||
<variable
|
||||
name="h"
|
||||
type="com.gaurav.avnc.ui.vnc.KeyHandler" />
|
||||
</data>
|
||||
|
||||
<HorizontalScrollView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?colorSurface"
|
||||
android:backgroundTint="#cfff"
|
||||
android:backgroundTintMode="multiply">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="Virtual Keys"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
tools:ignore="HardcodedText">
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/hide_btn"
|
||||
style="@style/VirtualKey.Image"
|
||||
android:contentDescription="Hide Virtual Keys"
|
||||
android:minWidth="30dp"
|
||||
android:src="@drawable/ic_clear"
|
||||
app:tint="?colorError" />
|
||||
|
||||
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~ Meta keys ~~~~~~~~~~~~~~~~~~~~~-->
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/super_btn"
|
||||
style="@style/VirtualKey.Toggle.Image"
|
||||
android:contentDescription="Super key"
|
||||
android:drawableStart="@drawable/ic_super_key"
|
||||
app:onCheckedChangeListener="@{(v,checked) -> h.onKeyEvent(KeyEvent.KEYCODE_META_LEFT, checked)}" />
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/shift_btn"
|
||||
style="@style/VirtualKey.Toggle"
|
||||
android:textOff="Shift"
|
||||
android:textOn="Shift"
|
||||
app:isVisible="@{showAll}"
|
||||
app:onCheckedChangeListener="@{(v,checked) -> h.onKeyEvent(KeyEvent.KEYCODE_SHIFT_RIGHT, checked)}" />
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/ctrl_btn"
|
||||
style="@style/VirtualKey.Toggle"
|
||||
android:textOff="Ctrl"
|
||||
android:textOn="Ctrl"
|
||||
app:onCheckedChangeListener="@{(v,checked) -> h.onKeyEvent(KeyEvent.KEYCODE_CTRL_RIGHT, checked)}" />
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/alt_btn"
|
||||
style="@style/VirtualKey.Toggle"
|
||||
android:textOff="Alt"
|
||||
android:textOn="Alt"
|
||||
app:onCheckedChangeListener="@{(v,checked) -> h.onKeyEvent(KeyEvent.KEYCODE_ALT_RIGHT, checked)}" />
|
||||
|
||||
<!--AppCompatButton is used instead of Button to disable Material styles-->
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_TAB)}"
|
||||
android:text="Tab"
|
||||
app:isRepeatable="@{true}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_ESCAPE)}"
|
||||
android:text="Esc"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
|
||||
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~ Arrow keys ~~~~~~~~~~~~~~~~~~~~~~~-->
|
||||
|
||||
<ImageButton
|
||||
style="@style/VirtualKey.Image"
|
||||
android:contentDescription="Left"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_DPAD_LEFT)}"
|
||||
android:src="@drawable/ic_keyboard_arrow_left"
|
||||
app:isRepeatable="@{true}" />
|
||||
|
||||
<ImageButton
|
||||
style="@style/VirtualKey.Image"
|
||||
android:contentDescription="Up"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_DPAD_UP)}"
|
||||
android:src="@drawable/ic_keyboard_arrow_up"
|
||||
app:isRepeatable="@{true}" />
|
||||
|
||||
<ImageButton
|
||||
style="@style/VirtualKey.Image"
|
||||
android:contentDescription="Down"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_DPAD_DOWN)}"
|
||||
android:src="@drawable/ic_keyboard_arrow_down"
|
||||
app:isRepeatable="@{true}" />
|
||||
|
||||
<ImageButton
|
||||
style="@style/VirtualKey.Image"
|
||||
android:contentDescription="Right"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_DPAD_RIGHT)}"
|
||||
android:src="@drawable/ic_keyboard_arrow_right"
|
||||
app:isRepeatable="@{true}" />
|
||||
|
||||
|
||||
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~ Miscellaneous ~~~~~~~~~~~~~~~~~~~~~~~-->
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_MOVE_HOME)}"
|
||||
android:text="Home"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_MOVE_END)}"
|
||||
android:text="End"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_PAGE_UP)}"
|
||||
android:text="PgUp"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_PAGE_DOWN)}"
|
||||
android:text="PgDn"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_INSERT)}"
|
||||
android:text="Insert"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_FORWARD_DEL)}"
|
||||
android:text="Delete"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~ Function Keys ~~~~~~~~~~~~~~~~~~~~~~~-->
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey.Compact"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_F1)}"
|
||||
android:text="F1"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey.Compact"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_F2)}"
|
||||
android:text="F2"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey.Compact"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_F3)}"
|
||||
android:text="F3"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey.Compact"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_F4)}"
|
||||
android:text="F4"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey.Compact"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_F5)}"
|
||||
android:text="F5"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey.Compact"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_F6)}"
|
||||
android:text="F6"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey.Compact"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_F7)}"
|
||||
android:text="F7"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey.Compact"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_F8)}"
|
||||
android:text="F8"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey.Compact"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_F9)}"
|
||||
android:text="F9"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey.Compact"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_F10)}"
|
||||
android:text="F10"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey.Compact"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_F11)}"
|
||||
android:text="F11"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
style="@style/VirtualKey.Compact"
|
||||
android:onClick="@{() -> h.onKey(KeyEvent.KEYCODE_F12)}"
|
||||
android:text="F12"
|
||||
app:isRepeatable="@{true}"
|
||||
app:isVisible="@{showAll}" />
|
||||
|
||||
</LinearLayout>
|
||||
</HorizontalScrollView>
|
||||
</layout>
|
||||
BIN
android/app/src/main/res/mipmap-hdpi/avnc.png
Normal file
BIN
android/app/src/main/res/mipmap-hdpi/avnc.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.8 KiB |
198
android/app/src/main/res/values-zh-rCN/strings.xml
Normal file
198
android/app/src/main/res/values-zh-rCN/strings.xml
Normal file
@@ -0,0 +1,198 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="title_add_server_profile">添加服务器</string>
|
||||
<string name="title_hide_remote_cursor">隐藏远程指针</string>
|
||||
<string name="title_vnc_login">VNC登录</string>
|
||||
<string name="title_edit_server_profile">编辑服务器</string>
|
||||
<string name="title_duplicate">生成副本</string>
|
||||
<string name="title_edit">编辑</string>
|
||||
<string name="title_delete">删除</string>
|
||||
<string name="title_copy_host">复制主机</string>
|
||||
<string name="title_copy_name">复制名称</string>
|
||||
<string name="title_cancel">取消</string>
|
||||
<string name="title_save">保存</string>
|
||||
<string name="title_undo">撤消</string>
|
||||
<string name="title_remember">记住</string>
|
||||
<string name="title_import">导入</string>
|
||||
<string name="title_view_only_mode">仅查看</string>
|
||||
<string name="title_use_ssh_tunnel">使用 SSH 隧道</string>
|
||||
<string name="title_ssh_host_key_changed">SSH 主机密钥已更改</string>
|
||||
<string name="title_password">密码</string>
|
||||
<string name="title_private_key">私钥</string>
|
||||
<string name="title_about">关于</string>
|
||||
<string name="title_license">许可证</string>
|
||||
<string name="hint_urlbar">连接到服务器</string>
|
||||
<string name="hint_server_name">名称(例如:工作电脑)</string>
|
||||
<string name="hint_host">主机</string>
|
||||
<string name="hint_repeater_host">中继器主机</string>
|
||||
<string name="hint_port">端口</string>
|
||||
<string name="hint_server_id">服务器 ID</string>
|
||||
<string name="hint_username">用户名</string>
|
||||
<string name="hint_password">密码</string>
|
||||
<string name="hint_key_password">密钥密码</string>
|
||||
<string name="msg_server_profile_added">服务器已添加</string>
|
||||
<string name="msg_server_profile_deleted">服务器已删除</string>
|
||||
<string name="msg_ptr_hiding_not_supported">此设备不支持</string>
|
||||
<string name="msg_imported">已导入</string>
|
||||
<string name="msg_exported">已导出</string>
|
||||
<string name="msg_export_auth_required">身份验证以导出服务器</string>
|
||||
<string name="msg_invalid_key_file">私钥文件无效</string>
|
||||
<string name="msg_invalid_vnc_uri">无效的 VNC URI</string>
|
||||
<string name="msg_copied_to_clipboard">已复制</string>
|
||||
<string name="tip_urlbar">你可以输入 IP 地址、主机名或“vnc://”URI。</string>
|
||||
<string name="desc_navigation_btn">打开导航抽屉</string>
|
||||
<string name="desc_settings_btn">设置</string>
|
||||
<string name="desc_saved_servers_tab">已保存的服务器</string>
|
||||
<string name="desc_discovered_servers_tab">已发现的服务器</string>
|
||||
<string name="desc_add_new_server_btn">添加服务器</string>
|
||||
<string name="desc_save_discovered_server_btn">保存</string>
|
||||
<string name="desc_discovery_btn">发现服务器</string>
|
||||
<string name="desc_discovery_stop_btn">停止发现服务器</string>
|
||||
<string name="desc_discovery_running">发现网络上的服务器</string>
|
||||
<string name="desc_keyboard_btn">打开键盘</string>
|
||||
<string name="desc_virtual_keys_btn">显示虚拟按键</string>
|
||||
<string name="desc_reset_zoom_btn">重置缩放</string>
|
||||
<string name="desc_retry_connection_btn">重新连接</string>
|
||||
<string name="desc_back_btn">返回</string>
|
||||
<string name="desc_clear_url_btn">清除</string>
|
||||
<string name="desc_server_url">服务器地址</string>
|
||||
<string name="desc_help_btn">帮助</string>
|
||||
<string name="tip_discovery">“发现”能自动查找在你的网络上运行的
|
||||
\n受支持服务器。</string>
|
||||
<string name="pref_ui">界面</string>
|
||||
<string name="pref_ui_summary">界面外观</string>
|
||||
<string name="pref_viewer">视图</string>
|
||||
<string name="pref_servers">服务器</string>
|
||||
<string name="pref_server_summary">登录、发现</string>
|
||||
<string name="pref_tools_summary">导入/导出、调试</string>
|
||||
<string name="pref_experimental">试验性</string>
|
||||
<string name="title_none">无</string>
|
||||
<string name="pref_gesture_action_left_click">左键单击</string>
|
||||
<string name="pref_gesture_action_middle_click">中键单击</string>
|
||||
<string name="pref_gesture_action_right_click">右键单击</string>
|
||||
<string name="pref_gesture_action_double_click">双击</string>
|
||||
<string name="pref_gesture_action_move_pointer">移动指针</string>
|
||||
<string name="pref_gesture_action_remote_scroll">滚动远程内容</string>
|
||||
<string name="pref_gesture_action_remote_drag">拖动远程内容</string>
|
||||
<string name="pref_theme">主题</string>
|
||||
<string name="pref_theme_option_system">系统</string>
|
||||
<string name="pref_theme_option_dark">暗色</string>
|
||||
<string name="pref_theme_option_light">亮色</string>
|
||||
<string name="pref_gesture">手势</string>
|
||||
<string name="pref_gesture_style_touchscreen_summary">在接触点执行操作</string>
|
||||
<string name="pref_gesture_style_touchpad_summary">在指针处执行操作</string>
|
||||
<string name="pref_two_finger_tap">双指敲击</string>
|
||||
<string name="pref_double_tap">双次敲击</string>
|
||||
<string name="pref_long_press">长按</string>
|
||||
<string name="pref_swipe1">单指轻扫</string>
|
||||
<string name="pref_swipe2">双指轻扫</string>
|
||||
<string name="pref_mouse">鼠标</string>
|
||||
<string name="pref_mouse_passthrough">鼠标直通</string>
|
||||
<string name="pref_mouse_passthrough_summary_on">将鼠标事件直接发送到服务器</string>
|
||||
<string name="pref_hide_local_cursor">隐藏本地指针</string>
|
||||
<string name="pref_mouse_back">返回按钮</string>
|
||||
<string name="pref_mouse_back_action_default">默认</string>
|
||||
<string name="pref_vk">虚拟按键</string>
|
||||
<string name="pref_vk_show_all">显示所有按键</string>
|
||||
<string name="pref_km">按键映射</string>
|
||||
<string name="pref_km_back_to_escape_summary">不影响导航栏</string>
|
||||
<string name="pref_fullscreen">全屏</string>
|
||||
<string name="pref_enable_pip">画中画</string>
|
||||
<string name="pref_toolbar_alignment">对齐</string>
|
||||
<string name="pref_toolbar_alignment_option_start">开始</string>
|
||||
<string name="pref_toolbar_alignment_option_end">结尾</string>
|
||||
<string name="pref_zoom">缩放</string>
|
||||
<string name="pref_zoom_min">最小</string>
|
||||
<string name="pref_clipboard_sync">剪贴板同步</string>
|
||||
<string name="pref_discovery">发现</string>
|
||||
<string name="pref_discovery_autorun">自动运行</string>
|
||||
<string name="pref_rediscovery_indicator">高亮显示被重新发现的服务器</string>
|
||||
<string name="pref_import_export">导入/导出 服务器</string>
|
||||
<string name="title_clear">清除</string>
|
||||
<string name="title_use_repeater">使用中继器</string>
|
||||
<string name="pref_debugging">调试</string>
|
||||
<string name="pref_logs">日志</string>
|
||||
<string name="pref_keycode_map">键码映射</string>
|
||||
<string name="title_advanced">高级</string>
|
||||
<string name="title_settings">设置</string>
|
||||
<string name="title_export">导出</string>
|
||||
<string name="title_key_compat_mode">发送旧式按键事件</string>
|
||||
<string name="title_unknown_ssh_host">未知 SSH 主机</string>
|
||||
<string name="title_source_code">源代码</string>
|
||||
<string name="msg_loading">正在加载…</string>
|
||||
<string name="title_continue">继续</string>
|
||||
<string name="title_delete_servers_before_import">导入前删除当前服务器</string>
|
||||
<string name="title_change">更改</string>
|
||||
<string name="title_open_source_libraries">开源库</string>
|
||||
<string name="title_report_bug">报告问题</string>
|
||||
<string name="msg_about_app">一个快速且安全的 VNC 客户端。远程查看和控制任何运行着 VNC 服务器的设备。
|
||||
\n
|
||||
\n
|
||||
\nAVNC 是一个开源和非盈利版权软件 — 在众多贡献者的帮助下制作的。</string>
|
||||
<string name="msg_pip_not_supported">此设备不支持</string>
|
||||
<string name="msg_key_compat_mode_help">一些服务器对 Unicode 的支持有限。旧式按键事件可以帮助输入非英语文本。</string>
|
||||
<string name="tip_empty_server_list">服务器列表为空。
|
||||
\n单击“<b>+</b>”添加服务器,或
|
||||
\n使用顶部的地址栏直接连接。</string>
|
||||
<string name="desc_discovered_list">已被自动发现的服务器列表</string>
|
||||
<string name="desc_saved_servers_list">已保存的服务器列表</string>
|
||||
<string name="pref_viewer_summary">画中画,缩放</string>
|
||||
<string name="pref_input">输入</string>
|
||||
<string name="pref_input_summary">手势、鼠标、虚拟键</string>
|
||||
<string name="pref_tools">工具</string>
|
||||
<string name="pref_experimental_summary">额外的好东西</string>
|
||||
<string name="pref_prefer_advanced_editor">直接打开高级服务器选项</string>
|
||||
<string name="pref_gesture_action_pan">平移本地帧</string>
|
||||
<string name="pref_gesture_action_open_keyboard">打开键盘</string>
|
||||
<string name="pref_sort_server_list">对已保存的服务器按名称排序</string>
|
||||
<string name="pref_single_tap">单次敲击</string>
|
||||
<string name="pref_vk_open_with_keyboard">同时打开键盘</string>
|
||||
<string name="pref_mouse_passthrough_summary_off">将鼠标事件用于本地手势</string>
|
||||
<string name="pref_toolbar">工具栏</string>
|
||||
<string name="pref_zoom_max">最大</string>
|
||||
<string name="pref_discovery_autorun_summary">在主页上时发现服务器</string>
|
||||
<string name="pref_swipe_sensitivity">调节灵敏度</string>
|
||||
<string name="pref_km_language_switch_to_super">语言切换 → Super (开始菜单)键</string>
|
||||
<string name="pref_km_back_to_escape">退格键 → Esc 键</string>
|
||||
<string name="pref_km_right_alt_to_super">右 Alt 键 → Super (开始菜单)键</string>
|
||||
<string name="msg_drag_gesture_help">分配一个动作给这个手势将改变长按检测:
|
||||
\n
|
||||
\n<b>按住释放</b> → 长按
|
||||
\n<b>按住滑动</b> → 长按轻扫</string>
|
||||
<string name="pref_orientation">屏幕方向</string>
|
||||
<string name="pref_orientation_option_auto">自动</string>
|
||||
<string name="pref_orientation_option_portrait">竖屏</string>
|
||||
<string name="pref_orientation_option_landscape">横屏</string>
|
||||
<string name="pref_invert_vertical_scrolling">垂直滚动反转</string>
|
||||
<string name="pref_touch_test">触控测试</string>
|
||||
<string name="pref_key_test">密钥测试</string>
|
||||
<string name="title_image_quality">图像质量</string>
|
||||
<string name="title_image_quality_raw">原始</string>
|
||||
<string name="title_vnc_security">安全性</string>
|
||||
<string name="title_unlock_dialog">解锁以继续</string>
|
||||
<string name="title_automatic">自动</string>
|
||||
<string name="msg_zoom_saved">保存当前缩放比为默认</string>
|
||||
<string name="desc_save_zoom_btn">保存当前缩放比为默认</string>
|
||||
<string name="pref_gesture_style">手势样式</string>
|
||||
<string name="pref_gesture_style_touchscreen">触摸屏</string>
|
||||
<string name="pref_gesture_style_touchpad">触摸板</string>
|
||||
<string name="pref_saved_server_lock">锁定保存的服务器</string>
|
||||
<string name="msg_zoom_reset">重置缩放到 100%</string>
|
||||
<string name="desc_zoom_options_btn">缩放选项</string>
|
||||
<string name="pref_gesture_style_auto_summary">基于应用设置</string>
|
||||
<string name="pref_per_orientation_zoom">为每个方向分开缩放</string>
|
||||
<string name="pref_saved_server_lock_summary">要求生物特征/密码解锁才能连接</string>
|
||||
<string name="title_resize_remote_desktop">缩放远程会话到本地窗口</string>
|
||||
<string name="msg_zoom_reset_default">重置缩放到默认值</string>
|
||||
<string name="msg_shortcut_server_deleted">该服务器已被删除</string>
|
||||
<string name="pref_display_cutout">在异形屏区域显示(试验性)</string>
|
||||
<string name="title_ssh_login">SSH登录</string>
|
||||
<string name="title_unlock_private_key">解锁私钥</string>
|
||||
<string name="pref_double_tap_swipe">双击轻扫</string>
|
||||
<string name="pref_gesture_action_remote_drag_middle">中键拖动</string>
|
||||
<string name="title_orientation">方向</string>
|
||||
<string name="title_button_up_delay">发送延迟点击事件</string>
|
||||
<string name="msg_button_up_delay_help">在某些罕见的情况下,如果应用程序无法响应点击,延迟点击事件会有所帮助。</string>
|
||||
<string name="pref_long_press_swipe">长按轻扫</string>
|
||||
<string name="pref_auto_reconnect">自动重连</string>
|
||||
</resources>
|
||||
194
android/app/src/main/res/values-zh-rTW/strings.xml
Normal file
194
android/app/src/main/res/values-zh-rTW/strings.xml
Normal file
@@ -0,0 +1,194 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="title_add_server_profile">添加伺服器</string>
|
||||
<string name="title_edit_server_profile">編輯伺服器</string>
|
||||
<string name="title_duplicate">複製</string>
|
||||
<string name="title_edit">編輯</string>
|
||||
<string name="title_delete">刪除</string>
|
||||
<string name="title_clear">清除</string>
|
||||
<string name="title_copy_host">複製主機</string>
|
||||
<string name="title_copy_name">複製名稱</string>
|
||||
<string name="title_cancel">取消</string>
|
||||
<string name="title_save">儲存</string>
|
||||
<string name="title_undo">復原</string>
|
||||
<string name="title_settings">設定</string>
|
||||
<string name="title_vnc_login">登入</string>
|
||||
<string name="title_remember">記住</string>
|
||||
<string name="title_export">匯出</string>
|
||||
<string name="title_view_only_mode">唯讀</string>
|
||||
<string name="title_hide_remote_cursor">隱藏遠端鼠標</string>
|
||||
<string name="title_button_up_delay">傳送已延遲的點擊</string>
|
||||
<string name="title_image_quality">畫面質量</string>
|
||||
<string name="title_key_compat_mode">傳送舊鍵碼</string>
|
||||
<string name="title_orientation">轉向</string>
|
||||
<string name="title_vnc_security">安全性</string>
|
||||
<string name="title_use_ssh_tunnel">使用 SSH 隧道</string>
|
||||
<string name="title_delete_servers_before_import">在匯入前刪除當前伺服器</string>
|
||||
<string name="title_password">密碼</string>
|
||||
<string name="title_use_repeater">使用中繼器</string>
|
||||
<string name="title_private_key">私鑰</string>
|
||||
<string name="title_about">關於</string>
|
||||
<string name="title_change">修改</string>
|
||||
<string name="title_license">許可證</string>
|
||||
<string name="title_open_source_libraries">開源庫</string>
|
||||
<string name="title_report_bug">報告錯誤</string>
|
||||
<string name="title_source_code">原始碼</string>
|
||||
<string name="title_none">無</string>
|
||||
<string name="hint_urlbar">連接到伺服器</string>
|
||||
<string name="hint_server_name">伺服器名稱(例如:Work PC)</string>
|
||||
<string name="hint_host">主機</string>
|
||||
<string name="title_advanced">進階</string>
|
||||
<string name="title_import">匯入</string>
|
||||
<string name="title_unknown_ssh_host">未知 SSH 主機</string>
|
||||
<string name="title_ssh_host_key_changed">SSH 主機密鑰已更改</string>
|
||||
<string name="title_continue">繼續</string>
|
||||
<string name="title_unlock_dialog">解鎖以繼續</string>
|
||||
<string name="title_automatic">自動</string>
|
||||
<string name="hint_repeater_host">中繼主機</string>
|
||||
<string name="title_image_quality_raw">原始</string>
|
||||
<string name="hint_port">端口</string>
|
||||
<string name="hint_server_id">伺服器 ID</string>
|
||||
<string name="hint_username">使用者名稱</string>
|
||||
<string name="hint_password">密碼</string>
|
||||
<string name="hint_key_password">密鑰密碼</string>
|
||||
<string name="msg_zoom_reset">重置縮放</string>
|
||||
<string name="msg_zoom_saved">將當前縮放設為預設</string>
|
||||
<string name="msg_pip_not_supported">不支援此裝置</string>
|
||||
<string name="msg_ptr_hiding_not_supported">不支援此裝置</string>
|
||||
<string name="msg_server_profile_added">伺服器已添加</string>
|
||||
<string name="msg_server_profile_deleted">伺服器已刪除</string>
|
||||
<string name="msg_imported">已匯入</string>
|
||||
<string name="msg_exported">已匯出</string>
|
||||
<string name="msg_export_auth_required">請驗證以匯出伺服器</string>
|
||||
<string name="msg_copied_to_clipboard">已複製</string>
|
||||
<string name="msg_invalid_vnc_uri">無效的 VNC URI</string>
|
||||
<string name="msg_key_compat_mode_help">一些伺服器對 Unicode 的支援有限。傳送舊鍵碼可以幫助輸入非英文字符。</string>
|
||||
<string name="msg_button_up_delay_help">如果應用程式沒有回應點擊,延遲點擊可能會解決這個問題 。</string>
|
||||
<string name="msg_drag_gesture_help">分配到此手勢將改變長按檢測方式:
|
||||
\n
|
||||
\n<b>按住釋放</b> → 長按
|
||||
\n<b>按住滑動</b> → 長按後滑動</string>
|
||||
<string name="tip_empty_server_list">伺服器清單為空。
|
||||
\n按 「<b>+</b>」添加伺服器,或
|
||||
\n使用頂部網址欄直接連接至伺服器。</string>
|
||||
<string name="tip_urlbar">您可以輸入 IP 地址、主機名或 「vnc://」URI。</string>
|
||||
<string name="tip_discovery">「搜尋」可以自動找到在您網絡上
|
||||
\n支援的伺服器。</string>
|
||||
<string name="desc_navigation_btn">打開導覽列</string>
|
||||
<string name="desc_add_new_server_btn">添加伺服器</string>
|
||||
<string name="desc_save_discovered_server_btn">儲存</string>
|
||||
<string name="desc_discovery_btn">搜尋伺服器</string>
|
||||
<string name="desc_discovery_stop_btn">停止搜尋伺服器</string>
|
||||
<string name="desc_discovery_running">正在發現您網絡上的伺服器</string>
|
||||
<string name="desc_virtual_keys_btn">顯示虛擬鍵</string>
|
||||
<string name="desc_zoom_options_btn">縮放選項</string>
|
||||
<string name="desc_save_zoom_btn">將當前縮放設為預設</string>
|
||||
<string name="desc_back_btn">返回</string>
|
||||
<string name="desc_discovered_list">自動發現的伺服器</string>
|
||||
<string name="desc_saved_servers_list">已儲存的伺服器</string>
|
||||
<string name="pref_ui">界面</string>
|
||||
<string name="pref_input">輸入</string>
|
||||
<string name="pref_viewer_summary">畫中畫、縮放</string>
|
||||
<string name="pref_input_summary">手勢、鼠標、虛擬鍵</string>
|
||||
<string name="pref_servers">伺服器</string>
|
||||
<string name="pref_server_summary">登入、搜尋</string>
|
||||
<string name="pref_tools">工具</string>
|
||||
<string name="pref_tools_summary">匯入/匯出、除錯</string>
|
||||
<string name="pref_experimental">實驗性</string>
|
||||
<string name="pref_gesture_action_middle_click">中鍵</string>
|
||||
<string name="pref_gesture_action_left_click">左鍵</string>
|
||||
<string name="pref_gesture_action_right_click">右鍵</string>
|
||||
<string name="pref_gesture_action_double_click">雙擊</string>
|
||||
<string name="pref_gesture_action_move_pointer">移動鼠標</string>
|
||||
<string name="msg_invalid_key_file">無效的私鑰</string>
|
||||
<string name="msg_loading">載入中…</string>
|
||||
<string name="desc_reset_zoom_btn">重設縮放</string>
|
||||
<string name="desc_saved_servers_tab">已儲存的伺服器</string>
|
||||
<string name="desc_settings_btn">設定</string>
|
||||
<string name="desc_discovered_servers_tab">被發現的伺服器</string>
|
||||
<string name="desc_keyboard_btn">打開鍵盤</string>
|
||||
<string name="msg_about_app">快速安全的 VNC 客戶端,遠程查看和控制任何 VNC 服務器。
|
||||
\n
|
||||
\n
|
||||
\nAVNC 是一個開源和自由軟件:在許多貢獻者的幫助下製作。</string>
|
||||
<string name="desc_retry_connection_btn">重新連接</string>
|
||||
<string name="desc_server_url">伺服器地址</string>
|
||||
<string name="desc_help_btn">幫助</string>
|
||||
<string name="desc_clear_url_btn">清除</string>
|
||||
<string name="pref_gesture_action_pan">移動檢視框架</string>
|
||||
<string name="pref_gesture_action_remote_scroll">滾動遠端內容</string>
|
||||
<string name="pref_gesture_action_remote_drag">拖拽遠端內容</string>
|
||||
<string name="pref_gesture_action_open_keyboard">打開鍵盤</string>
|
||||
<string name="pref_theme">主題</string>
|
||||
<string name="pref_ui_summary">外觀和感覺</string>
|
||||
<string name="pref_theme_option_light">淺色</string>
|
||||
<string name="pref_prefer_advanced_editor">直接打開進階伺服器選項</string>
|
||||
<string name="pref_sort_server_list">用名稱分類伺服器</string>
|
||||
<string name="pref_gesture">手勢</string>
|
||||
<string name="pref_gesture_style_touchpad">觸控板</string>
|
||||
<string name="pref_gesture_style_touchscreen">觸控螢幕</string>
|
||||
<string name="pref_single_tap">單擊</string>
|
||||
<string name="pref_double_tap">雙擊</string>
|
||||
<string name="pref_long_press">長按</string>
|
||||
<string name="pref_swipe_sensitivity">滑動靈敏度</string>
|
||||
<string name="pref_mouse">滑鼠</string>
|
||||
<string name="pref_hide_local_cursor">隱藏本機鼠標</string>
|
||||
<string name="pref_mouse_back">返回鍵</string>
|
||||
<string name="pref_mouse_back_action_default">預設</string>
|
||||
<string name="pref_orientation_option_auto">自動</string>
|
||||
<string name="pref_orientation_option_portrait">縱向</string>
|
||||
<string name="pref_orientation_option_landscape">橫向</string>
|
||||
<string name="pref_fullscreen">全螢幕</string>
|
||||
<string name="pref_enable_pip">畫中畫</string>
|
||||
<string name="pref_toolbar">工具列</string>
|
||||
<string name="pref_theme_option_system">系統</string>
|
||||
<string name="pref_theme_option_dark">深色</string>
|
||||
<string name="pref_gesture_style">手勢樣式</string>
|
||||
<string name="pref_invert_vertical_scrolling">反轉垂直滾動</string>
|
||||
<string name="pref_mouse_passthrough">直接鼠標</string>
|
||||
<string name="pref_vk">虛擬鍵</string>
|
||||
<string name="pref_toolbar_alignment_option_start">左邊</string>
|
||||
<string name="pref_experimental_summary">額外的好東西</string>
|
||||
<string name="pref_viewer">檢視器</string>
|
||||
<string name="pref_gesture_style_auto_summary">基於應用程式的設置</string>
|
||||
<string name="pref_double_tap_swipe">雙擊滑動</string>
|
||||
<string name="pref_swipe2">兩指滑動</string>
|
||||
<string name="pref_swipe1">滑動</string>
|
||||
<string name="pref_two_finger_tap">雙擊</string>
|
||||
<string name="pref_gesture_style_touchscreen_summary">於觸控處執行動作</string>
|
||||
<string name="pref_gesture_style_touchpad_summary">於鼠標處執行動作</string>
|
||||
<string name="pref_long_press_swipe">長按滑動</string>
|
||||
<string name="pref_vk_show_all">顯示所有鍵</string>
|
||||
<string name="pref_vk_open_with_keyboard">進入時打開鍵盤</string>
|
||||
<string name="pref_km_language_switch_to_super">語言切換 → Super</string>
|
||||
<string name="pref_km_back_to_escape">返回 → Esc</string>
|
||||
<string name="pref_km">鍵盤佈局</string>
|
||||
<string name="pref_mouse_passthrough_summary_on">直接發送鼠標事件到伺服器</string>
|
||||
<string name="pref_mouse_passthrough_summary_off">用鼠標事件執行本機手勢</string>
|
||||
<string name="pref_km_back_to_escape_summary">不會影響導覽列</string>
|
||||
<string name="pref_orientation">螢幕轉向</string>
|
||||
<string name="pref_display_cutout">擴展檢視器至相機開口</string>
|
||||
<string name="pref_zoom">縮放</string>
|
||||
<string name="pref_zoom_min">最小</string>
|
||||
<string name="pref_zoom_max">最多</string>
|
||||
<string name="pref_clipboard_sync">剪貼板同步</string>
|
||||
<string name="pref_auto_reconnect">自動重新連接</string>
|
||||
<string name="pref_toolbar_alignment">位置</string>
|
||||
<string name="pref_toolbar_alignment_option_end">右邊</string>
|
||||
<string name="pref_discovery_autorun">自動執行</string>
|
||||
<string name="pref_per_orientation_zoom">每個方向獨立縮放</string>
|
||||
<string name="pref_saved_server_lock_summary">連接前要求生物識別/密碼</string>
|
||||
<string name="pref_discovery">搜尋</string>
|
||||
<string name="pref_saved_server_lock">鎖定已儲存的伺服器</string>
|
||||
<string name="pref_debugging">除錯</string>
|
||||
<string name="pref_logs">日誌</string>
|
||||
<string name="pref_touch_test">觸控測試</string>
|
||||
<string name="pref_import_export">匯入/匯出伺服器</string>
|
||||
<string name="pref_keycode_map">鍵碼佈局</string>
|
||||
<string name="pref_key_test">按鍵測試</string>
|
||||
<string name="pref_discovery_autorun_summary">在首頁時搜尋伺服器</string>
|
||||
<string name="pref_rediscovery_indicator">強調重新發現的伺服器</string>
|
||||
<string name="pref_km_right_alt_to_super">右 Alt → Super</string>
|
||||
<string name="msg_shortcut_server_deleted">此伺服器已被刪除</string>
|
||||
<string name="title_ssh_login">SSH 登入</string>
|
||||
</resources>
|
||||
195
android/app/src/main/res/values/arrays.xml
Normal file
195
android/app/src/main/res/values/arrays.xml
Normal 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>
|
||||
12
android/app/src/main/res/values/colors.xml
Normal file
12
android/app/src/main/res/values/colors.xml
Normal 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>
|
||||
21
android/app/src/main/res/values/dimens.xml
Normal file
21
android/app/src/main/res/values/dimens.xml
Normal 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>
|
||||
218
android/app/src/main/res/values/strings.xml
Normal file
218
android/app/src/main/res/values/strings.xml
Normal 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>
|
||||
@@ -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>
|
||||
|
||||
20
android/app/src/main/res/xml/pref_appearance.xml
Normal file
20
android/app/src/main/res/xml/pref_appearance.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
~ Copyright (c) 2020 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
app:title="@string/pref_ui">
|
||||
|
||||
<ListPreference
|
||||
app:defaultValue="system"
|
||||
app:entries="@array/theme_entries"
|
||||
app:entryValues="@array/theme_values"
|
||||
app:key="theme"
|
||||
app:title="@string/pref_theme"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
</PreferenceScreen>
|
||||
162
android/app/src/main/res/xml/pref_input.xml
Normal file
162
android/app/src/main/res/xml/pref_input.xml
Normal file
@@ -0,0 +1,162 @@
|
||||
<!--
|
||||
~ Copyright (c) 2020 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
app:title="@string/pref_input">
|
||||
|
||||
<PreferenceCategory
|
||||
app:icon="@drawable/ic_gesture"
|
||||
app:title="@string/pref_gesture">
|
||||
|
||||
<com.gaurav.avnc.ui.prefs.ListPreferenceEx
|
||||
app:defaultValue="touchscreen"
|
||||
app:entries="@array/gesture_style_entries"
|
||||
app:entryValues="@array/gesture_style_values"
|
||||
app:key="gesture_style"
|
||||
app:title="@string/pref_gesture_style"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
app:widgetLayout="@layout/help_btn" />
|
||||
|
||||
<ListPreference
|
||||
app:defaultValue="double-click"
|
||||
app:entries="@array/double_tap_action_entries"
|
||||
app:entryValues="@array/double_tap_action_values"
|
||||
app:key="gesture_double_tap"
|
||||
app:title="@string/pref_double_tap"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<ListPreference
|
||||
app:defaultValue="right-click"
|
||||
app:entries="@array/long_press_action_entries"
|
||||
app:entryValues="@array/long_press_action_values"
|
||||
app:key="gesture_long_press"
|
||||
app:title="@string/pref_long_press"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<ListPreference
|
||||
app:defaultValue="open-keyboard"
|
||||
app:entries="@array/tap2_action_entries"
|
||||
app:entryValues="@array/tap2_action_values"
|
||||
app:key="gesture_tap2"
|
||||
app:title="@string/pref_two_finger_tap"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<com.gaurav.avnc.ui.prefs.ListPreferenceEx
|
||||
app:defaultValue="pan"
|
||||
app:entries="@array/swipe1_action_entries"
|
||||
app:entryValues="@array/swipe1_action_values"
|
||||
app:key="gesture_swipe1"
|
||||
app:title="@string/pref_swipe1"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<ListPreference
|
||||
app:defaultValue="remote-scroll"
|
||||
app:entries="@array/swipe2_action_entries"
|
||||
app:entryValues="@array/swipe2_action_values"
|
||||
app:key="gesture_swipe2"
|
||||
app:title="@string/pref_swipe2"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<com.gaurav.avnc.ui.prefs.ListPreferenceEx
|
||||
app:defaultValue="remote-drag"
|
||||
app:entries="@array/double_tap_swipe_action_entries"
|
||||
app:entryValues="@array/double_tap_swipe_action_values"
|
||||
app:key="gesture_double_tap_swipe"
|
||||
app:title="@string/pref_double_tap_swipe"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<com.gaurav.avnc.ui.prefs.ListPreferenceEx
|
||||
app:defaultValue="none"
|
||||
app:entries="@array/long_press_swipe_action_entries"
|
||||
app:entryValues="@array/long_press_swipe_action_values"
|
||||
app:key="gesture_long_press_swipe"
|
||||
app:title="@string/pref_long_press_swipe"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
app:widgetLayout="@layout/help_btn" />
|
||||
|
||||
<SeekBarPreference
|
||||
android:max="15"
|
||||
app:defaultValue="10"
|
||||
app:key="gesture_swipe_sensitivity"
|
||||
app:min="5"
|
||||
app:title="@string/pref_swipe_sensitivity" />
|
||||
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
app:key="invert_vertical_scrolling"
|
||||
app:title="@string/pref_invert_vertical_scrolling" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
app:icon="@drawable/ic_mouse"
|
||||
app:title="@string/pref_mouse">
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="true"
|
||||
app:key="mouse_passthrough"
|
||||
app:summaryOff="@string/pref_mouse_passthrough_summary_off"
|
||||
app:summaryOn="@string/pref_mouse_passthrough_summary_on"
|
||||
app:title="@string/pref_mouse_passthrough" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="true"
|
||||
app:key="hide_local_cursor"
|
||||
app:title="@string/pref_hide_local_cursor" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="false"
|
||||
app:key="hide_remote_cursor"
|
||||
app:title="@string/title_hide_remote_cursor" />
|
||||
|
||||
<ListPreference
|
||||
app:defaultValue="right-click"
|
||||
app:entries="@array/mouse_back_action_entries"
|
||||
app:entryValues="@array/mouse_back_action_values"
|
||||
app:key="mouse_back"
|
||||
app:title="@string/pref_mouse_back"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
app:icon="@drawable/ic_keyboard_mini"
|
||||
app:title="@string/pref_vk">
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="false"
|
||||
app:key="vk_open_with_keyboard"
|
||||
app:title="@string/pref_vk_open_with_keyboard" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="true"
|
||||
app:key="vk_show_all"
|
||||
app:title="@string/pref_vk_show_all" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
app:icon="@drawable/ic_keyboard"
|
||||
app:title="@string/pref_km">
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="false"
|
||||
app:key="km_right_alt_to_super"
|
||||
app:title="@string/pref_km_right_alt_to_super" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="false"
|
||||
app:key="km_language_switch_to_super"
|
||||
app:title="@string/pref_km_language_switch_to_super" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="false"
|
||||
app:key="km_back_to_escape"
|
||||
app:summary="@string/pref_km_back_to_escape_summary"
|
||||
app:title="@string/pref_km_back_to_escape" />
|
||||
</PreferenceCategory>
|
||||
|
||||
</PreferenceScreen>
|
||||
36
android/app/src/main/res/xml/pref_main.xml
Normal file
36
android/app/src/main/res/xml/pref_main.xml
Normal file
@@ -0,0 +1,36 @@
|
||||
<!--
|
||||
~ Copyright (c) 2020 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
app:title="@string/title_settings">
|
||||
|
||||
<Preference
|
||||
app:fragment="com.gaurav.avnc.ui.prefs.PrefsActivity$Appearance"
|
||||
app:icon="@drawable/ic_palette"
|
||||
app:summary="@string/pref_ui_summary"
|
||||
app:title="@string/pref_ui" />
|
||||
|
||||
<Preference
|
||||
app:fragment="com.gaurav.avnc.ui.prefs.PrefsActivity$Viewer"
|
||||
app:icon="@drawable/ic_video"
|
||||
app:summary="@string/pref_viewer_summary"
|
||||
app:title="@string/pref_viewer" />
|
||||
|
||||
<Preference
|
||||
app:fragment="com.gaurav.avnc.ui.prefs.PrefsActivity$Input"
|
||||
app:icon="@drawable/ic_keyboard"
|
||||
app:summary="@string/pref_input_summary"
|
||||
app:title="@string/pref_input" />
|
||||
|
||||
<Preference
|
||||
app:fragment="com.gaurav.avnc.ui.prefs.PrefsActivity$Server"
|
||||
app:icon="@drawable/ic_computer"
|
||||
app:summary="@string/pref_server_summary"
|
||||
app:title="@string/pref_servers" />
|
||||
|
||||
</PreferenceScreen>
|
||||
23
android/app/src/main/res/xml/pref_server.xml
Normal file
23
android/app/src/main/res/xml/pref_server.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<!--
|
||||
~ Copyright (c) 2020 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
app:title="@string/pref_servers">
|
||||
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="true"
|
||||
app:key="clipboard_sync"
|
||||
app:title="@string/pref_clipboard_sync" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="false"
|
||||
app:key="auto_reconnect"
|
||||
app:title="@string/pref_auto_reconnect" />
|
||||
|
||||
</PreferenceScreen>
|
||||
89
android/app/src/main/res/xml/pref_viewer.xml
Normal file
89
android/app/src/main/res/xml/pref_viewer.xml
Normal file
@@ -0,0 +1,89 @@
|
||||
<!--
|
||||
~ Copyright (c) 2020 Gaurav Ujjwal.
|
||||
~
|
||||
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
~
|
||||
~ See COPYING.txt for more details.
|
||||
-->
|
||||
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
app:title="@string/pref_viewer">
|
||||
|
||||
<ListPreference
|
||||
android:defaultValue="landscape"
|
||||
android:entries="@array/orientation_entries"
|
||||
android:entryValues="@array/orientation_values"
|
||||
android:key="viewer_orientation"
|
||||
android:title="@string/pref_orientation"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="false"
|
||||
app:key="pip_enabled"
|
||||
app:title="@string/pref_enable_pip" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="true"
|
||||
app:key="fullscreen_display"
|
||||
app:title="@string/pref_fullscreen" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="false"
|
||||
app:key="viewer_draw_behind_cutout"
|
||||
app:title="@string/pref_display_cutout" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="true"
|
||||
app:key="keep_screen_on"
|
||||
app:title="@string/pref_keep_screen_on" />
|
||||
|
||||
<PreferenceCategory
|
||||
app:icon="@drawable/ic_zoom_in"
|
||||
app:title="@string/pref_zoom">
|
||||
|
||||
<SeekBarPreference
|
||||
android:max="100"
|
||||
app:defaultValue="50"
|
||||
app:key="zoom_min"
|
||||
app:min="10"
|
||||
app:showSeekBarValue="true"
|
||||
app:title="@string/pref_zoom_min" />
|
||||
|
||||
<SeekBarPreference
|
||||
android:max="1000"
|
||||
app:defaultValue="500"
|
||||
app:key="zoom_max"
|
||||
app:min="100"
|
||||
app:showSeekBarValue="true"
|
||||
app:title="@string/pref_zoom_max" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="true"
|
||||
app:key="per_orientation_zoom"
|
||||
app:title="@string/pref_per_orientation_zoom" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
app:icon="@drawable/ic_toolbar"
|
||||
app:title="@string/pref_toolbar">
|
||||
|
||||
<ListPreference
|
||||
app:defaultValue="start"
|
||||
app:entries="@array/toolbar_alignment_entries"
|
||||
app:entryValues="@array/toolbar_alignment_values"
|
||||
app:key="toolbar_alignment"
|
||||
app:title="@string/pref_toolbar_alignment"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="true"
|
||||
app:key="toolbar_open_with_swipe"
|
||||
app:title="@string/pref_toolbar_open_with_swipe" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="true"
|
||||
app:key="toolbar_show_gesture_style_toggle"
|
||||
app:title="@string/pref_show_gesture_style_toggle" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
Reference in New Issue
Block a user