diff options
30 files changed, 130 insertions, 114 deletions
diff --git a/ui/src/main/AndroidManifest.xml b/ui/src/main/AndroidManifest.xml index 74bc7a20..47a833e1 100644 --- a/ui/src/main/AndroidManifest.xml +++ b/ui/src/main/AndroidManifest.xml @@ -9,9 +9,15 @@ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> - <uses-feature android:name="android.hardware.touchscreen" android:required="false"/> - <uses-feature android:name="android.software.leanback" android:required="false" /> - <uses-feature android:name="android.hardware.camera" android:required="false" /> + <uses-feature + android:name="android.hardware.touchscreen" + android:required="false" /> + <uses-feature + android:name="android.software.leanback" + android:required="false" /> + <uses-feature + android:name="android.hardware.camera" + android:required="false" /> <permission android:name="${applicationId}.permission.CONTROL_TUNNELS" @@ -23,18 +29,21 @@ <application android:name=".Application" android:allowBackup="false" + android:banner="@mipmap/banner" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:theme="@style/AppTheme" - android:banner="@mipmap/banner"> + android:theme="@style/AppTheme"> - <activity android:name=".activity.TunnelToggleActivity" android:theme="@style/NoBackgroundTheme"/> + <activity + android:name=".activity.TunnelToggleActivity" + android:theme="@style/NoBackgroundTheme" /> <activity android:name=".activity.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> @@ -59,10 +68,11 @@ android:screenOrientation="fullSensor" tools:replace="screenOrientation" /> - <activity android:name=".activity.LogViewerActivity" + <activity + android:name=".activity.LogViewerActivity" android:label="@string/log_viewer_title"> <intent-filter> - <action android:name="android.intent.action.MAIN"/> + <action android:name="android.intent.action.MAIN" /> </intent-filter> </activity> diff --git a/ui/src/main/res/drawable/ic_action_add_white.xml b/ui/src/main/res/drawable/ic_action_add_white.xml index cbb4c4e6..18fe19db 100644 --- a/ui/src/main/res/drawable/ic_action_add_white.xml +++ b/ui/src/main/res/drawable/ic_action_add_white.xml @@ -1,8 +1,8 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" - android:viewportHeight="24.0" - android:viewportWidth="24.0"> + android:viewportWidth="24.0" + android:viewportHeight="24.0"> <path android:fillColor="?attr/colorOnSecondary" android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z" /> diff --git a/ui/src/main/res/drawable/ic_action_delete.xml b/ui/src/main/res/drawable/ic_action_delete.xml index d4ebd61f..51517c42 100644 --- a/ui/src/main/res/drawable/ic_action_delete.xml +++ b/ui/src/main/res/drawable/ic_action_delete.xml @@ -1,8 +1,8 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" - android:viewportHeight="24" - android:viewportWidth="24"> + android:viewportWidth="24" + android:viewportHeight="24"> <path android:fillColor="?attr/colorOnPrimary" android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z" /> diff --git a/ui/src/main/res/drawable/ic_action_edit.xml b/ui/src/main/res/drawable/ic_action_edit.xml index fc42d2ef..8d8acf85 100644 --- a/ui/src/main/res/drawable/ic_action_edit.xml +++ b/ui/src/main/res/drawable/ic_action_edit.xml @@ -1,8 +1,8 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" - android:viewportHeight="24" - android:viewportWidth="24"> + android:viewportWidth="24" + android:viewportHeight="24"> <path android:fillColor="?attr/colorOnPrimary" android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z" /> diff --git a/ui/src/main/res/drawable/ic_action_edit_white.xml b/ui/src/main/res/drawable/ic_action_edit_white.xml index fa95f54b..212fc72c 100644 --- a/ui/src/main/res/drawable/ic_action_edit_white.xml +++ b/ui/src/main/res/drawable/ic_action_edit_white.xml @@ -1,8 +1,8 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" - android:viewportHeight="24" - android:viewportWidth="24"> + android:viewportWidth="24" + android:viewportHeight="24"> <path android:fillColor="?attr/colorOnSecondary" android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z" /> diff --git a/ui/src/main/res/drawable/ic_action_open_white.xml b/ui/src/main/res/drawable/ic_action_open_white.xml index 01b2815c..91075680 100644 --- a/ui/src/main/res/drawable/ic_action_open_white.xml +++ b/ui/src/main/res/drawable/ic_action_open_white.xml @@ -1,8 +1,8 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" - android:viewportHeight="24" - android:viewportWidth="24"> + android:viewportWidth="24" + android:viewportHeight="24"> <path android:fillColor="?attr/colorOnSecondary" 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" /> diff --git a/ui/src/main/res/drawable/ic_action_save.xml b/ui/src/main/res/drawable/ic_action_save.xml index 528bd997..ed98e85a 100644 --- a/ui/src/main/res/drawable/ic_action_save.xml +++ b/ui/src/main/res/drawable/ic_action_save.xml @@ -2,8 +2,8 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" - android:viewportHeight="24" - android:viewportWidth="24"> + android:viewportWidth="24" + android:viewportHeight="24"> <path android:fillColor="?attr/colorOnPrimary" 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" /> diff --git a/ui/src/main/res/drawable/ic_action_scan_qr_code_white.xml b/ui/src/main/res/drawable/ic_action_scan_qr_code_white.xml index 2383d032..a5ede695 100644 --- a/ui/src/main/res/drawable/ic_action_scan_qr_code_white.xml +++ b/ui/src/main/res/drawable/ic_action_scan_qr_code_white.xml @@ -1,9 +1,9 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" - android:viewportHeight="24" - android:viewportWidth="24"> + android:viewportWidth="24" + android:viewportHeight="24"> <path android:fillColor="?attr/colorOnSecondary" android:pathData="M4,4H10V10H4V4M20,4V10H14V4H20M14,15H16V13H14V11H16V13H18V11H20V13H18V15H20V18H18V20H16V18H13V20H11V16H14V15M16,15V18H18V15H16M4,20V14H10V20H4M6,6V8H8V6H6M16,6V8H18V6H16M6,16V18H8V16H6M4,11H6V13H4V11M9,11H13V15H11V13H9V11M11,6H13V10H11V6M2,2V6H0V2A2,2 0 0,1 2,0H6V2H2M22,0A2,2 0 0,1 24,2V6H22V2H18V0H22M2,18V22H6V24H2A2,2 0 0,1 0,22V18H2M22,22V18H24V22A2,2 0 0,1 22,24H18V22H22Z" /> -</vector>
\ No newline at end of file +</vector> diff --git a/ui/src/main/res/drawable/ic_action_select_all.xml b/ui/src/main/res/drawable/ic_action_select_all.xml index 28837423..43f5f15e 100644 --- a/ui/src/main/res/drawable/ic_action_select_all.xml +++ b/ui/src/main/res/drawable/ic_action_select_all.xml @@ -2,8 +2,8 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" - android:viewportHeight="24" - android:viewportWidth="24"> + android:viewportWidth="24" + android:viewportHeight="24"> <path android:fillColor="?attr/colorOnPrimary" android:pathData="M3 5L5 5 5 3C3.9 3 3 3.9 3 5Zm0 8l2 0 0 -2 -2 0 0 2zm4 8l2 0 0 -2 -2 0 0 2zM3 9L5 9 5 7 3 7 3 9Zm10 -6l-2 0 0 2 2 0 0 -2zm6 0l0 2 2 0C21 3.9 20.1 3 19 3ZM5 21L5 19 3 19c0 1.1 0.9 2 2 2zm-2 -4l2 0 0 -2 -2 0 0 2zM9 3L7 3 7 5 9 5 9 3Zm2 18l2 0 0 -2 -2 0 0 2zm8 -8l2 0 0 -2 -2 0 0 2zm0 8c1.1 0 2 -0.9 2 -2l-2 0 0 2zm0 -12l2 0 0 -2 -2 0 0 2zm0 8l2 0 0 -2 -2 0 0 2zm-4 4l2 0 0 -2 -2 0 0 2zm0 -16l2 0 0 -2 -2 0 0 2zM7 17L17 17 17 7 7 7 7 17Zm2 -8l6 0 0 6 -6 0 0 -6z" /> diff --git a/ui/src/main/res/drawable/ic_action_share_white.xml b/ui/src/main/res/drawable/ic_action_share_white.xml index 4ada554b..70843cf3 100644 --- a/ui/src/main/res/drawable/ic_action_share_white.xml +++ b/ui/src/main/res/drawable/ic_action_share_white.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - <path - android:fillColor="#FFFFFFFF" - android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z"/> + <path + android:fillColor="#FFFFFFFF" + android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z" /> </vector> diff --git a/ui/src/main/res/drawable/ic_launcher_foreground.xml b/ui/src/main/res/drawable/ic_launcher_foreground.xml index f9713f37..a3dfe681 100644 --- a/ui/src/main/res/drawable/ic_launcher_foreground.xml +++ b/ui/src/main/res/drawable/ic_launcher_foreground.xml @@ -2,8 +2,8 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="108dp" android:height="108dp" - android:viewportHeight="2160" - android:viewportWidth="2160"> + android:viewportWidth="2160" + android:viewportHeight="2160"> <group android:scaleX="1" android:scaleY="-1" @@ -32,4 +32,4 @@ </group> </group> </group> -</vector>
\ No newline at end of file +</vector> diff --git a/ui/src/main/res/drawable/ic_settings.xml b/ui/src/main/res/drawable/ic_settings.xml index aabfce2a..6d1cfa71 100644 --- a/ui/src/main/res/drawable/ic_settings.xml +++ b/ui/src/main/res/drawable/ic_settings.xml @@ -1,8 +1,8 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" - android:viewportHeight="24" - android:viewportWidth="24"> + android:viewportWidth="24" + android:viewportHeight="24"> <path android:fillColor="?android:attr/colorForeground" android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z" /> diff --git a/ui/src/main/res/drawable/ic_tile.xml b/ui/src/main/res/drawable/ic_tile.xml index eaf784c1..f5774968 100644 --- a/ui/src/main/res/drawable/ic_tile.xml +++ b/ui/src/main/res/drawable/ic_tile.xml @@ -1,24 +1,24 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="400dp" android:height="400dp" - android:viewportHeight="400.0" - android:viewportWidth="400.0"> + android:viewportWidth="400.0" + android:viewportHeight="400.0"> <path android:fillAlpha="1" android:fillColor="#ffffff" android:pathData="m197.7,0c-6.2,0.1 -12.5,0.5 -19,1.1 12.4,2.9 23.5,5.5 34.7,8.1 -0.1,0.7 -0.3,1.4 -0.4,2 -14.9,2 -29.1,-3.5 -43.7,-5.5 5.3,3.1 10.7,6 16.2,8.5 5.6,2.5 11.4,4.7 17.2,7 -7.4,6.3 -14.8,7.7 -24,5.6 -5.1,-1.2 -10.4,-1.8 -15.6,-1.5 -5.3,0.3 -10.7,1.6 -15.6,4.8 5.2,2.6 10,4.8 14.5,7.5 1.9,1.1 4,2.9 4.5,4.9 1.2,4.6 1.6,9.4 2.3,14.1 -8.5,1 -23.5,9.6 -26.5,15.3 13.1,2.5 27.3,-0.5 39.8,7.9 -4.1,3.1 -13.7,7 -17.2,9.6 4.3,1.1 14.4,0.6 18.3,0.3 3.3,-0.2 4.8,-0.3 6.2,0.8l38.5,30.1c4,3.3 20.4,18.7 24.7,28.5 3.6,8.3 4.1,15.3 4.1,17.1 -0,4.6 -0.6,11.8 -3.7,19.9 -1.3,3.4 -5.2,10.9 -13.3,19.6 -12.5,13.5 -28.6,20.9 -46.2,24.5 -40.9,8.4 -74.9,52.1 -65.3,100.2 11.2,56.2 73.2,86.6 123.9,59.9 32.8,-17.3 50.1,-51 45.5,-87.7 -2.8,-22.2 -12.8,-40.2 -29.7,-54.8 -2.2,-1.9 -3.6,-1.9 -6.2,-0.3 -8.7,5.6 -17.7,10.9 -26.8,15.9 -5.2,2.9 -10.9,5 -17.4,7.9 2.2,0.6 3.3,0.9 4.4,1.1 24.4,6.5 37.5,28 31.7,52 -5.1,21.4 -26.8,35 -47.9,31.4 -17.5,-3 -32.8,-17.6 -35.4,-35 -2.8,-19 6.7,-37.3 23.5,-44.9 9.3,-4.2 18.9,-7.9 28.3,-12.2 10.6,-4.9 22.1,-8.7 31.3,-15.5 23,-16.9 37.1,-40.1 42.7,-68.1 3.3,-16.8 3.1,-33.5 -4.6,-49.4 -5.9,-12.2 -15.6,-21.1 -26,-29.2 -10.7,-8.3 -22,-15.9 -32.7,-24.3 -2.9,-2.3 -4.8,-6.2 -6.2,-9.7 -0.6,-1.5 1.3,-5.6 2.5,-5.8 6.5,-1.2 13.2,-1.8 19.8,-2 7.7,-0.3 15.4,-0 23,0.1 1.7,0 3.9,-0.2 4.9,0.7 4,3.9 7.1,1.4 9.9,-1.2 2.3,-2.2 4,-5 5.8,-7.5 -1.1,-0.2 -3.4,-0.7 -5.7,-0.8 -7.7,-0.2 -15.4,-0.1 -23.2,-0.3 -1.4,-0.1 -2.7,-1.5 -4,-2.2 1.4,-0.6 2.8,-1.6 4.3,-1.6 13.3,-0.1 26.6,-0.1 40,-0.1 0,-6.9 -9.2,-16.4 -17.5,-19 -0.1,0.9 -0.1,1.8 -0.2,2.7 -8.2,0.2 -16.2,0 -23.5,-3.8 -1.9,-1 -3.2,-3.3 -4.7,-5 -2,-2.1 -3.6,-4.9 -6,-6.3 -4.9,-2.9 -10.3,-4.9 -15.4,-7.4C224.3,1.7 211.3,-0.1 197.7,0ZM249.6,29.4c0.6,-0 1.2,0.2 1.9,0.8 1,0.8 2,1.7 3.3,2.8 -1.5,0.8 -2.8,1.5 -4.1,2.2 -1.8,0.9 -3.1,0.3 -4.2,-1.1 -0.9,-1.2 -1,-2.3 0.3,-3.3 0.9,-0.7 1.8,-1.3 2.9,-1.3z" - android:strokeColor="#00000000" - android:strokeWidth="1.33333325" /> + android:strokeWidth="1.33333325" + android:strokeColor="#00000000" /> <path android:fillAlpha="1" android:fillColor="#ffffff" android:pathData="m97.9,307.6c-7.8,2 -15.4,4.9 -23.4,7.5 3.9,-26.3 34.7,-50.6 60.8,-47.8 -8.1,10.9 -11.8,23.3 -12.7,35.6 -8.7,1.6 -16.8,2.7 -24.8,4.7" - android:strokeColor="#00000000" - android:strokeWidth="1.33333325" /> + android:strokeWidth="1.33333325" + android:strokeColor="#00000000" /> <path android:fillAlpha="1" android:fillColor="#ffffff" android:pathData="m134.3,124c41.3,-25.3 94,-9.8 113.8,28.2 3.7,7.2 4.2,18.3 1.8,25.8 -8.2,26.1 -27.5,40.7 -54.1,46.9 7.8,-6.7 14.1,-14.3 16,-24.8 2,-10.6 -0.1,-20.1 -6.2,-28.8 -9.3,-13.2 -27.3,-18.6 -42.4,-12.9 -16.3,6.2 -25.3,21.1 -23.7,39.4 1.5,17 14.4,28.1 38.6,32.2 -3.6,1.9 -6.4,3.3 -9.1,4.8 -11.1,6.2 -20.7,14.3 -28.2,24.6 -2.5,3.3 -4.1,3.6 -7.9,1.3 -48.6,-29.7 -51.7,-104.3 1.4,-136.8" - android:strokeColor="#00000000" - android:strokeWidth="1.33333325" /> + android:strokeWidth="1.33333325" + android:strokeColor="#00000000" /> </vector> diff --git a/ui/src/main/res/drawable/list_item_background.xml b/ui/src/main/res/drawable/list_item_background.xml index f967f700..d517bbb6 100644 --- a/ui/src/main/res/drawable/list_item_background.xml +++ b/ui/src/main/res/drawable/list_item_background.xml @@ -3,7 +3,9 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> <item> <selector> - <item app:state_multiselected="true" android:state_activated="true"> + <item + android:state_activated="true" + app:state_multiselected="true"> <color android:color="?attr/colorMultiselectActiveBackground" /> </item> </selector> diff --git a/ui/src/main/res/layout-sw600dp/main_activity.xml b/ui/src/main/res/layout-sw600dp/main_activity.xml index 5104df93..00fa1c49 100644 --- a/ui/src/main/res/layout-sw600dp/main_activity.xml +++ b/ui/src/main/res/layout-sw600dp/main_activity.xml @@ -4,6 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".activity.MainActivity"> + <LinearLayout android:id="@+id/master_detail_wrapper" android:layout_width="match_parent" diff --git a/ui/src/main/res/layout/add_tunnels_bottom_sheet.xml b/ui/src/main/res/layout/add_tunnels_bottom_sheet.xml index 295a8e40..41cfe8bd 100644 --- a/ui/src/main/res/layout/add_tunnels_bottom_sheet.xml +++ b/ui/src/main/res/layout/add_tunnels_bottom_sheet.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<androidx.constraintlayout.widget.ConstraintLayout - xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/root" android:layout_width="match_parent" @@ -9,65 +8,65 @@ <com.google.android.material.button.MaterialButton android:id="@+id/create_from_file" + style="@style/Widget.MaterialComponents.Button.TextButton.Icon" android:layout_width="match_parent" android:layout_height="@dimen/bottom_sheet_item_height" - android:layout_marginLeft="@dimen/normal_margin" - android:layout_marginRight="@dimen/normal_margin" android:layout_marginStart="@dimen/normal_margin" + android:layout_marginLeft="@dimen/normal_margin" android:layout_marginEnd="@dimen/normal_margin" + android:layout_marginRight="@dimen/normal_margin" android:text="@string/create_from_file" android:textAlignment="viewStart" android:textColor="?attr/colorOnSurface" app:icon="@drawable/ic_action_open_white" app:iconPadding="@dimen/bottom_sheet_icon_padding" app:iconTint="?attr/colorSecondary" - app:layout_constraintTop_toBottomOf="parent" app:layout_constraintBottom_toTopOf="@+id/create_from_qrcode" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:rippleColor="?attr/colorSecondary" - style="@style/Widget.MaterialComponents.Button.TextButton.Icon"/> + app:layout_constraintTop_toBottomOf="parent" + app:rippleColor="?attr/colorSecondary" /> <com.google.android.material.button.MaterialButton android:id="@+id/create_from_qrcode" + style="@style/Widget.MaterialComponents.Button.TextButton.Icon" android:layout_width="match_parent" android:layout_height="@dimen/bottom_sheet_item_height" - android:layout_marginLeft="@dimen/normal_margin" - android:layout_marginRight="@dimen/normal_margin" android:layout_marginStart="@dimen/normal_margin" + android:layout_marginLeft="@dimen/normal_margin" android:layout_marginEnd="@dimen/normal_margin" + android:layout_marginRight="@dimen/normal_margin" android:text="@string/create_from_qr_code" android:textAlignment="viewStart" android:textColor="?attr/colorOnSurface" app:icon="@drawable/ic_action_scan_qr_code_white" app:iconPadding="@dimen/bottom_sheet_icon_padding" app:iconTint="?attr/colorSecondary" - app:layout_constraintTop_toBottomOf="@+id/create_from_file" app:layout_constraintBottom_toBottomOf="@+id/create_empty" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:rippleColor="?attr/colorSecondary" - style="@style/Widget.MaterialComponents.Button.TextButton.Icon"/> + app:layout_constraintTop_toBottomOf="@+id/create_from_file" + app:rippleColor="?attr/colorSecondary" /> <com.google.android.material.button.MaterialButton android:id="@+id/create_empty" + style="@style/Widget.MaterialComponents.Button.TextButton.Icon" android:layout_width="match_parent" android:layout_height="@dimen/bottom_sheet_item_height" - android:layout_marginLeft="@dimen/normal_margin" - android:layout_marginRight="@dimen/normal_margin" android:layout_marginStart="@dimen/normal_margin" + android:layout_marginLeft="@dimen/normal_margin" android:layout_marginEnd="@dimen/normal_margin" + android:layout_marginRight="@dimen/normal_margin" android:text="@string/create_empty" android:textAlignment="viewStart" android:textColor="?attr/colorOnSurface" app:icon="@drawable/ic_action_edit" app:iconPadding="@dimen/bottom_sheet_icon_padding" app:iconTint="?attr/colorSecondary" - app:layout_constraintTop_toBottomOf="@+id/create_from_qrcode" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:rippleColor="?attr/colorSecondary" - style="@style/Widget.MaterialComponents.Button.TextButton.Icon"/> + app:layout_constraintTop_toBottomOf="@+id/create_from_qrcode" + app:rippleColor="?attr/colorSecondary" /> </androidx.constraintlayout.widget.ConstraintLayout> diff --git a/ui/src/main/res/layout/app_list_item.xml b/ui/src/main/res/layout/app_list_item.xml index 1e81751b..a76073c0 100644 --- a/ui/src/main/res/layout/app_list_item.xml +++ b/ui/src/main/res/layout/app_list_item.xml @@ -42,11 +42,11 @@ style="?android:attr/textAppearanceMedium" android:layout_width="0dp" android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginEnd="16dp" android:layout_weight="1" android:ellipsize="end" android:maxLines="1" - android:layout_marginStart="16dp" - android:layout_marginEnd="16dp" android:text="@{key}" tools:text="@tools:sample/full_names" /> diff --git a/ui/src/main/res/layout/log_viewer_activity.xml b/ui/src/main/res/layout/log_viewer_activity.xml index 7a08bc88..1d4a466e 100644 --- a/ui/src/main/res/layout/log_viewer_activity.xml +++ b/ui/src/main/res/layout/log_viewer_activity.xml @@ -1,11 +1,9 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- +<?xml version="1.0" encoding="utf-8"?><!-- ~ Copyright © 2020 WireGuard LLC. All Rights Reserved. ~ SPDX-License-Identifier: Apache-2.0 --> -<androidx.coordinatorlayout.widget.CoordinatorLayout - xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.coordinatorlayout.widget.CoordinatorLayout 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" android:layout_width="match_parent" @@ -15,12 +13,12 @@ android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" - tools:listitem="@layout/log_viewer_entry" - tools:itemCount="20" /> + tools:itemCount="20" + tools:listitem="@layout/log_viewer_entry" /> <com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton - style="@style/Widget.MaterialComponents.ExtendedFloatingActionButton.Icon" android:id="@+id/share_fab" + style="@style/Widget.MaterialComponents.ExtendedFloatingActionButton.Icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" diff --git a/ui/src/main/res/layout/log_viewer_entry.xml b/ui/src/main/res/layout/log_viewer_entry.xml index 37f8941d..82a0d7a3 100644 --- a/ui/src/main/res/layout/log_viewer_entry.xml +++ b/ui/src/main/res/layout/log_viewer_entry.xml @@ -1,30 +1,29 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- +<?xml version="1.0" encoding="utf-8"?><!-- ~ Copyright © 2020 WireGuard LLC. All Rights Reserved. ~ SPDX-License-Identifier: Apache-2.0 --> -<androidx.constraintlayout.widget.ConstraintLayout - xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.constraintlayout.widget.ConstraintLayout 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" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="6dp"> + <com.google.android.material.textview.MaterialTextView - style="@style/TextAppearance.MaterialComponents.Caption" android:id="@+id/log_date" + style="@style/TextAppearance.MaterialComponents.Caption" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="?android:attr/textColorPrimary" android:textSize="10sp" - app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" tools:text="Fri Mar 13 10:17:37 GMT+05:30 2020" /> <com.google.android.material.textview.MaterialTextView - style="@style/TextAppearance.MaterialComponents.Caption" android:id="@+id/log_msg" + style="@style/TextAppearance.MaterialComponents.Caption" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="?android:attr/textColorPrimary" diff --git a/ui/src/main/res/layout/main_activity.xml b/ui/src/main/res/layout/main_activity.xml index cf892e45..89be4fe4 100644 --- a/ui/src/main/res/layout/main_activity.xml +++ b/ui/src/main/res/layout/main_activity.xml @@ -4,13 +4,13 @@ android:id="@+id/master_detail_wrapper" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".activity.MainActivity" - android:fitsSystemWindows="true"> + android:fitsSystemWindows="true" + tools:context=".activity.MainActivity"> <androidx.fragment.app.FragmentContainerView android:id="@+id/detail_container" android:name="com.wireguard.android.fragment.TunnelListFragment" android:layout_width="match_parent" android:layout_height="match_parent" - android:tag="LIST"/> + android:tag="LIST" /> </androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/ui/src/main/res/layout/tunnel_detail_fragment.xml b/ui/src/main/res/layout/tunnel_detail_fragment.xml index 463f8b80..134b61e5 100644 --- a/ui/src/main/res/layout/tunnel_detail_fragment.xml +++ b/ui/src/main/res/layout/tunnel_detail_fragment.xml @@ -35,10 +35,10 @@ <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="4dp" - android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" + android:layout_marginEnd="8dp" + android:layout_marginBottom="4dp" android:background="?attr/colorBackground" app:cardCornerRadius="4dp" app:cardElevation="2dp" diff --git a/ui/src/main/res/layout/tunnel_detail_peer.xml b/ui/src/main/res/layout/tunnel_detail_peer.xml index 181a4a21..79a48f38 100644 --- a/ui/src/main/res/layout/tunnel_detail_peer.xml +++ b/ui/src/main/res/layout/tunnel_detail_peer.xml @@ -14,10 +14,10 @@ <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="4dp" - android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="4dp" + android:layout_marginEnd="8dp" + android:layout_marginBottom="4dp" android:background="?attr/colorBackground" app:cardCornerRadius="4dp" app:cardElevation="2dp" diff --git a/ui/src/main/res/layout/tunnel_editor_fragment.xml b/ui/src/main/res/layout/tunnel_editor_fragment.xml index 887b3bb7..1d9d21de 100644 --- a/ui/src/main/res/layout/tunnel_editor_fragment.xml +++ b/ui/src/main/res/layout/tunnel_editor_fragment.xml @@ -42,10 +42,10 @@ <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="4dp" - android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" + android:layout_marginEnd="8dp" + android:layout_marginBottom="4dp" android:background="?attr/colorBackground" app:cardCornerRadius="4dp" app:cardElevation="2dp" @@ -93,8 +93,8 @@ android:id="@+id/private_key_text" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentStart="true" android:layout_below="@+id/private_key_label" + android:layout_alignParentStart="true" android:layout_toStartOf="@+id/generate_private_key_button" android:contentDescription="@string/public_key_description" android:inputType="textNoSuggestions|textVisiblePassword" @@ -106,9 +106,9 @@ style="@style/Widget.AppCompat.Button.Borderless.Colored" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_below="@+id/private_key_label" android:layout_alignBottom="@id/private_key_text" android:layout_alignParentEnd="true" - android:layout_below="@+id/private_key_label" android:onClick="@{() -> config.interface.generateKeyPair()}" android:text="@string/generate" /> @@ -138,8 +138,8 @@ android:id="@+id/addresses_label" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentStart="true" android:layout_below="@+id/public_key_text" + android:layout_alignParentStart="true" android:layout_toStartOf="@+id/listen_port_label" android:labelFor="@+id/addresses_text" android:text="@string/addresses" /> @@ -148,8 +148,8 @@ android:id="@+id/addresses_text" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentStart="true" android:layout_below="@+id/addresses_label" + android:layout_alignParentStart="true" android:layout_toStartOf="@+id/listen_port_text" android:inputType="textNoSuggestions|textVisiblePassword" android:text="@={config.interface.addresses}" /> @@ -159,8 +159,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/addresses_label" - android:layout_alignParentEnd="true" android:layout_alignStart="@+id/generate_private_key_button" + android:layout_alignParentEnd="true" android:labelFor="@+id/listen_port_text" android:text="@string/listen_port" /> @@ -169,8 +169,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/addresses_text" - android:layout_alignParentEnd="true" android:layout_alignStart="@+id/generate_private_key_button" + android:layout_alignParentEnd="true" android:hint="@string/hint_random" android:inputType="number" android:text="@={config.interface.listenPort}" @@ -180,8 +180,8 @@ android:id="@+id/dns_servers_label" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentStart="true" android:layout_below="@+id/addresses_text" + android:layout_alignParentStart="true" android:layout_toStartOf="@+id/mtu_label" android:labelFor="@+id/dns_servers_text" android:text="@string/dns_servers" /> @@ -190,8 +190,8 @@ android:id="@+id/dns_servers_text" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentStart="true" android:layout_below="@+id/dns_servers_label" + android:layout_alignParentStart="true" android:layout_toStartOf="@+id/mtu_text" android:inputType="textNoSuggestions|textVisiblePassword" android:text="@={config.interface.dnsServers}" /> @@ -201,8 +201,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/dns_servers_label" - android:layout_alignParentEnd="true" android:layout_alignStart="@+id/generate_private_key_button" + android:layout_alignParentEnd="true" android:labelFor="@+id/mtu_text" android:text="@string/mtu" /> @@ -211,8 +211,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/dns_servers_text" - android:layout_alignParentEnd="true" android:layout_alignStart="@+id/generate_private_key_button" + android:layout_alignParentEnd="true" android:hint="@string/hint_automatic" android:inputType="number" android:text="@={config.interface.mtu}" @@ -243,9 +243,9 @@ style="@style/Widget.AppCompat.Button.Colored" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="4dp" - android:layout_marginEnd="4dp" android:layout_marginStart="4dp" + android:layout_marginEnd="4dp" + android:layout_marginBottom="4dp" android:onClick="@{() -> config.addPeer()}" android:text="@string/add_peer" /> </LinearLayout> diff --git a/ui/src/main/res/layout/tunnel_editor_peer.xml b/ui/src/main/res/layout/tunnel_editor_peer.xml index cf5d6286..98ce4550 100644 --- a/ui/src/main/res/layout/tunnel_editor_peer.xml +++ b/ui/src/main/res/layout/tunnel_editor_peer.xml @@ -20,10 +20,10 @@ <androidx.cardview.widget.CardView android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginBottom="4dp" - android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="4dp" + android:layout_marginEnd="8dp" + android:layout_marginBottom="4dp" android:background="?attr/colorBackground" app:cardCornerRadius="4dp" app:cardElevation="2dp" @@ -48,8 +48,8 @@ android:id="@+id/peer_action_delete" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentEnd="true" android:layout_alignParentTop="true" + android:layout_alignParentEnd="true" android:background="@null" android:contentDescription="@string/delete" android:onClick="@{() -> item.unbind()}" @@ -120,8 +120,8 @@ android:id="@+id/endpoint_label" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentStart="true" android:layout_below="@+id/allowed_ips_text" + android:layout_alignParentStart="true" android:layout_toStartOf="@+id/persistent_keepalive_label" android:labelFor="@+id/endpoint_text" android:text="@string/endpoint" /> @@ -130,8 +130,8 @@ android:id="@+id/endpoint_text" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentStart="true" android:layout_below="@+id/endpoint_label" + android:layout_alignParentStart="true" android:layout_toStartOf="@+id/persistent_keepalive_text" android:inputType="textNoSuggestions|textVisiblePassword" android:text="@={item.endpoint}" /> @@ -150,8 +150,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/endpoint_text" - android:layout_alignParentEnd="true" android:layout_alignStart="@+id/persistent_keepalive_label" + android:layout_alignParentEnd="true" android:hint="@string/hint_optional" android:inputType="number" android:text="@={item.persistentKeepalive}" diff --git a/ui/src/main/res/layout/tunnel_list_fragment.xml b/ui/src/main/res/layout/tunnel_list_fragment.xml index c8144dbb..c790c30c 100644 --- a/ui/src/main/res/layout/tunnel_list_fragment.xml +++ b/ui/src/main/res/layout/tunnel_list_fragment.xml @@ -38,8 +38,8 @@ app:configurationHandler="@{rowConfigurationHandler}" app:items="@{tunnels}" app:layout="@{@layout/tunnel_list_item}" - tools:listitem="@layout/tunnel_list_item" - tools:itemCount="12" /> + tools:itemCount="12" + tools:listitem="@layout/tunnel_list_item" /> <LinearLayout android:layout_width="match_parent" @@ -65,9 +65,10 @@ android:text="@string/tunnel_list_placeholder" android:textSize="20sp" /> </LinearLayout> + <com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton - style="@style/Widget.MaterialComponents.ExtendedFloatingActionButton.Icon" android:id="@+id/create_fab" + style="@style/Widget.MaterialComponents.ExtendedFloatingActionButton.Icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" diff --git a/ui/src/main/res/menu/log_viewer.xml b/ui/src/main/res/menu/log_viewer.xml index 3a9da698..64b4be0a 100644 --- a/ui/src/main/res/menu/log_viewer.xml +++ b/ui/src/main/res/menu/log_viewer.xml @@ -5,5 +5,5 @@ android:id="@+id/save_log" android:icon="@drawable/ic_action_save" android:title="@string/log_export_title" - app:showAsAction="ifRoom"/> + app:showAsAction="ifRoom" /> </menu> diff --git a/ui/src/main/res/values-v21/styles.xml b/ui/src/main/res/values-v21/styles.xml index c90c66f7..fd53a5e8 100644 --- a/ui/src/main/res/values-v21/styles.xml +++ b/ui/src/main/res/values-v21/styles.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <resources> + <style name="AppTheme" parent="Theme.MaterialComponents.DayNight"> <item name="colorPrimary">@color/primary_color</item> <item name="colorOnPrimary">@color/color_control_normal</item> diff --git a/ui/src/main/res/values/attrs.xml b/ui/src/main/res/values/attrs.xml index 68a8db07..b5b614e9 100644 --- a/ui/src/main/res/values/attrs.xml +++ b/ui/src/main/res/values/attrs.xml @@ -2,10 +2,10 @@ <resources> <declare-styleable name="Multiselected"> <attr name="state_multiselected" format="boolean" /> - <attr name="colorMultiselectActiveBackground" format="reference|color"/> + <attr name="colorMultiselectActiveBackground" format="reference|color" /> </declare-styleable> <declare-styleable name="custom_color"> - <attr name="colorBackground" format="reference|color"/> + <attr name="colorBackground" format="reference|color" /> </declare-styleable> </resources> diff --git a/ui/src/main/res/values/colors.xml b/ui/src/main/res/values/colors.xml index bd304726..989c6fc1 100644 --- a/ui/src/main/res/values/colors.xml +++ b/ui/src/main/res/values/colors.xml @@ -15,7 +15,9 @@ <color name="status_bar_color">@color/primary_color</color> <color name="navigation_bar_color">#aaffffff</color> <color name="list_multiselect_background">#ffeeeeee</color> - <color name="mtrl_textinput_default_box_stroke_color" tools:override="true">@color/secondary_color</color> + <color name="mtrl_textinput_default_box_stroke_color" tools:override="true"> + @color/secondary_color + </color> <color name="white">#ffffffff</color> <!-- Log viewer tag colors --> diff --git a/ui/src/main/res/xml/preferences.xml b/ui/src/main/res/xml/preferences.xml index 4c81c7c9..b5929778 100644 --- a/ui/src/main/res/xml/preferences.xml +++ b/ui/src/main/res/xml/preferences.xml @@ -1,17 +1,20 @@ <?xml version="1.0" encoding="utf-8"?> -<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:key="settings"> - <com.wireguard.android.preference.VersionPreference android:icon="@mipmap/ic_launcher" android:key="version" /> +<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" + android:key="settings"> + <com.wireguard.android.preference.VersionPreference + android:icon="@mipmap/ic_launcher" + android:key="version" /> <CheckBoxPreference android:defaultValue="false" android:key="restore_on_boot" - android:summaryOn="@string/restore_on_boot_summary_on" android:summaryOff="@string/restore_on_boot_summary_off" + android:summaryOn="@string/restore_on_boot_summary_on" android:title="@string/restore_on_boot_title" /> <com.wireguard.android.preference.ZipExporterPreference android:key="zip_exporter" /> <Preference android:key="log_viewer" - android:title="@string/log_viewer_title" - android:summary="@string/log_viewer_pref_summary" /> + android:summary="@string/log_viewer_pref_summary" + android:title="@string/log_viewer_title" /> <CheckBoxPreference android:defaultValue="false" android:key="dark_theme" |