From 37974c7ec897b6b4186e590a6b4681f72cb0bb3a Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Fri, 20 Oct 2017 15:24:40 -0400 Subject: [PATCH] icons in vault listing --- src/Android/Android.csproj | 90 +++++ src/Android/MainActivity.cs | 2 +- src/Android/Resources/Resource.Designer.cs | 370 +++++++++--------- .../Resources/drawable-hdpi/android.png | Bin 0 -> 530 bytes src/Android/Resources/drawable-hdpi/apple.png | Bin 0 -> 625 bytes src/Android/Resources/drawable-hdpi/card.png | Bin 0 -> 180 bytes src/Android/Resources/drawable-hdpi/id.png | Bin 0 -> 487 bytes src/Android/Resources/drawable-hdpi/login.png | Bin 0 -> 904 bytes src/Android/Resources/drawable-hdpi/note.png | Bin 0 -> 344 bytes .../Resources/drawable-xhdpi/android.png | Bin 0 -> 659 bytes .../Resources/drawable-xhdpi/apple.png | Bin 0 -> 741 bytes src/Android/Resources/drawable-xhdpi/card.png | Bin 0 -> 326 bytes src/Android/Resources/drawable-xhdpi/id.png | Bin 0 -> 545 bytes .../Resources/drawable-xhdpi/login.png | Bin 0 -> 1172 bytes src/Android/Resources/drawable-xhdpi/note.png | Bin 0 -> 382 bytes .../Resources/drawable-xxhdpi/android.png | Bin 0 -> 994 bytes .../Resources/drawable-xxhdpi/apple.png | Bin 0 -> 1005 bytes .../Resources/drawable-xxhdpi/card.png | Bin 0 -> 234 bytes src/Android/Resources/drawable-xxhdpi/id.png | Bin 0 -> 868 bytes .../Resources/drawable-xxhdpi/login.png | Bin 0 -> 1588 bytes .../Resources/drawable-xxhdpi/note.png | Bin 0 -> 359 bytes .../Resources/drawable-xxxhdpi/android.png | Bin 0 -> 1227 bytes .../Resources/drawable-xxxhdpi/apple.png | Bin 0 -> 1224 bytes .../Resources/drawable-xxxhdpi/card.png | Bin 0 -> 469 bytes src/Android/Resources/drawable-xxxhdpi/id.png | Bin 0 -> 807 bytes .../Resources/drawable-xxxhdpi/login.png | Bin 0 -> 1917 bytes .../Resources/drawable-xxxhdpi/note.png | Bin 0 -> 524 bytes src/Android/Resources/drawable/android.png | Bin 0 -> 406 bytes src/Android/Resources/drawable/apple.png | Bin 0 -> 446 bytes src/Android/Resources/drawable/card.png | Bin 0 -> 229 bytes src/Android/Resources/drawable/id.png | Bin 0 -> 342 bytes src/Android/Resources/drawable/login.png | Bin 0 -> 657 bytes src/Android/Resources/drawable/note.png | Bin 0 -> 272 bytes src/App/Controls/LabeledDetailCell.cs | 30 +- src/App/Controls/VaultListViewCell.cs | 3 + src/App/Models/Page/VaultListPageModel.cs | 35 +- src/App/Pages/Vault/VaultListCiphersPage.cs | 6 +- 37 files changed, 347 insertions(+), 189 deletions(-) create mode 100644 src/Android/Resources/drawable-hdpi/android.png create mode 100644 src/Android/Resources/drawable-hdpi/apple.png create mode 100644 src/Android/Resources/drawable-hdpi/card.png create mode 100644 src/Android/Resources/drawable-hdpi/id.png create mode 100644 src/Android/Resources/drawable-hdpi/login.png create mode 100644 src/Android/Resources/drawable-hdpi/note.png create mode 100644 src/Android/Resources/drawable-xhdpi/android.png create mode 100644 src/Android/Resources/drawable-xhdpi/apple.png create mode 100644 src/Android/Resources/drawable-xhdpi/card.png create mode 100644 src/Android/Resources/drawable-xhdpi/id.png create mode 100644 src/Android/Resources/drawable-xhdpi/login.png create mode 100644 src/Android/Resources/drawable-xhdpi/note.png create mode 100644 src/Android/Resources/drawable-xxhdpi/android.png create mode 100644 src/Android/Resources/drawable-xxhdpi/apple.png create mode 100644 src/Android/Resources/drawable-xxhdpi/card.png create mode 100644 src/Android/Resources/drawable-xxhdpi/id.png create mode 100644 src/Android/Resources/drawable-xxhdpi/login.png create mode 100644 src/Android/Resources/drawable-xxhdpi/note.png create mode 100644 src/Android/Resources/drawable-xxxhdpi/android.png create mode 100644 src/Android/Resources/drawable-xxxhdpi/apple.png create mode 100644 src/Android/Resources/drawable-xxxhdpi/card.png create mode 100644 src/Android/Resources/drawable-xxxhdpi/id.png create mode 100644 src/Android/Resources/drawable-xxxhdpi/login.png create mode 100644 src/Android/Resources/drawable-xxxhdpi/note.png create mode 100644 src/Android/Resources/drawable/android.png create mode 100644 src/Android/Resources/drawable/apple.png create mode 100644 src/Android/Resources/drawable/card.png create mode 100644 src/Android/Resources/drawable/id.png create mode 100644 src/Android/Resources/drawable/login.png create mode 100644 src/Android/Resources/drawable/note.png diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj index 4d7449248..80a87797c 100644 --- a/src/Android/Android.csproj +++ b/src/Android/Android.csproj @@ -972,6 +972,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Android/MainActivity.cs b/src/Android/MainActivity.cs index 8852e9f31..37f7fc606 100644 --- a/src/Android/MainActivity.cs +++ b/src/Android/MainActivity.cs @@ -145,7 +145,7 @@ namespace Bit.Android _deviceActionService.CopyToClipboard(App.Utilities.Crypto.Totp(cipher.LoginTotp.Value)); } - data.PutExtra("uri", cipher.LoginUri.Value); + data.PutExtra("uri", cipher.LoginUri); data.PutExtra("username", cipher.LoginUsername); data.PutExtra("password", cipher.LoginPassword.Value); } diff --git a/src/Android/Resources/Resource.Designer.cs b/src/Android/Resources/Resource.Designer.cs index ab8c11390..b6eae7d99 100644 --- a/src/Android/Resources/Resource.Designer.cs +++ b/src/Android/Resources/Resource.Designer.cs @@ -2311,526 +2311,544 @@ namespace Bit.Android public const int accessibility_step2 = 2130837582; // aapt resource value: 0x7f02004f - public const int camera = 2130837583; + public const int android = 2130837583; // aapt resource value: 0x7f020050 - public const int clipboard = 2130837584; + public const int apple = 2130837584; // aapt resource value: 0x7f020051 - public const int cloudup = 2130837585; + public const int camera = 2130837585; // aapt resource value: 0x7f020052 - public const int cog = 2130837586; + public const int card = 2130837586; // aapt resource value: 0x7f020053 - public const int cogs = 2130837587; + public const int clipboard = 2130837587; // aapt resource value: 0x7f020054 - public const int cogs_selected = 2130837588; + public const int cloudup = 2130837588; // aapt resource value: 0x7f020055 - public const int common_full_open_on_phone = 2130837589; + public const int cog = 2130837589; // aapt resource value: 0x7f020056 - public const int common_google_signin_btn_icon_dark = 2130837590; + public const int cogs = 2130837590; // aapt resource value: 0x7f020057 - public const int common_google_signin_btn_icon_dark_disabled = 2130837591; + public const int cogs_selected = 2130837591; // aapt resource value: 0x7f020058 - public const int common_google_signin_btn_icon_dark_focused = 2130837592; + public const int common_full_open_on_phone = 2130837592; // aapt resource value: 0x7f020059 - public const int common_google_signin_btn_icon_dark_normal = 2130837593; + public const int common_google_signin_btn_icon_dark = 2130837593; // aapt resource value: 0x7f02005a - public const int common_google_signin_btn_icon_dark_pressed = 2130837594; + public const int common_google_signin_btn_icon_dark_disabled = 2130837594; // aapt resource value: 0x7f02005b - public const int common_google_signin_btn_icon_light = 2130837595; + public const int common_google_signin_btn_icon_dark_focused = 2130837595; // aapt resource value: 0x7f02005c - public const int common_google_signin_btn_icon_light_disabled = 2130837596; + public const int common_google_signin_btn_icon_dark_normal = 2130837596; // aapt resource value: 0x7f02005d - public const int common_google_signin_btn_icon_light_focused = 2130837597; + public const int common_google_signin_btn_icon_dark_pressed = 2130837597; // aapt resource value: 0x7f02005e - public const int common_google_signin_btn_icon_light_normal = 2130837598; + public const int common_google_signin_btn_icon_light = 2130837598; // aapt resource value: 0x7f02005f - public const int common_google_signin_btn_icon_light_pressed = 2130837599; + public const int common_google_signin_btn_icon_light_disabled = 2130837599; // aapt resource value: 0x7f020060 - public const int common_google_signin_btn_text_dark = 2130837600; + public const int common_google_signin_btn_icon_light_focused = 2130837600; // aapt resource value: 0x7f020061 - public const int common_google_signin_btn_text_dark_disabled = 2130837601; + public const int common_google_signin_btn_icon_light_normal = 2130837601; // aapt resource value: 0x7f020062 - public const int common_google_signin_btn_text_dark_focused = 2130837602; + public const int common_google_signin_btn_icon_light_pressed = 2130837602; // aapt resource value: 0x7f020063 - public const int common_google_signin_btn_text_dark_normal = 2130837603; + public const int common_google_signin_btn_text_dark = 2130837603; // aapt resource value: 0x7f020064 - public const int common_google_signin_btn_text_dark_pressed = 2130837604; + public const int common_google_signin_btn_text_dark_disabled = 2130837604; // aapt resource value: 0x7f020065 - public const int common_google_signin_btn_text_light = 2130837605; + public const int common_google_signin_btn_text_dark_focused = 2130837605; // aapt resource value: 0x7f020066 - public const int common_google_signin_btn_text_light_disabled = 2130837606; + public const int common_google_signin_btn_text_dark_normal = 2130837606; // aapt resource value: 0x7f020067 - public const int common_google_signin_btn_text_light_focused = 2130837607; + public const int common_google_signin_btn_text_dark_pressed = 2130837607; // aapt resource value: 0x7f020068 - public const int common_google_signin_btn_text_light_normal = 2130837608; + public const int common_google_signin_btn_text_light = 2130837608; // aapt resource value: 0x7f020069 - public const int common_google_signin_btn_text_light_pressed = 2130837609; + public const int common_google_signin_btn_text_light_disabled = 2130837609; // aapt resource value: 0x7f02006a - public const int common_ic_googleplayservices = 2130837610; + public const int common_google_signin_btn_text_light_focused = 2130837610; // aapt resource value: 0x7f02006b - public const int common_plus_signin_btn_icon_dark = 2130837611; + public const int common_google_signin_btn_text_light_normal = 2130837611; // aapt resource value: 0x7f02006c - public const int common_plus_signin_btn_icon_dark_disabled = 2130837612; + public const int common_google_signin_btn_text_light_pressed = 2130837612; // aapt resource value: 0x7f02006d - public const int common_plus_signin_btn_icon_dark_focused = 2130837613; + public const int common_ic_googleplayservices = 2130837613; // aapt resource value: 0x7f02006e - public const int common_plus_signin_btn_icon_dark_normal = 2130837614; + public const int common_plus_signin_btn_icon_dark = 2130837614; // aapt resource value: 0x7f02006f - public const int common_plus_signin_btn_icon_dark_pressed = 2130837615; + public const int common_plus_signin_btn_icon_dark_disabled = 2130837615; // aapt resource value: 0x7f020070 - public const int common_plus_signin_btn_icon_light = 2130837616; + public const int common_plus_signin_btn_icon_dark_focused = 2130837616; // aapt resource value: 0x7f020071 - public const int common_plus_signin_btn_icon_light_disabled = 2130837617; + public const int common_plus_signin_btn_icon_dark_normal = 2130837617; // aapt resource value: 0x7f020072 - public const int common_plus_signin_btn_icon_light_focused = 2130837618; + public const int common_plus_signin_btn_icon_dark_pressed = 2130837618; // aapt resource value: 0x7f020073 - public const int common_plus_signin_btn_icon_light_normal = 2130837619; + public const int common_plus_signin_btn_icon_light = 2130837619; // aapt resource value: 0x7f020074 - public const int common_plus_signin_btn_icon_light_pressed = 2130837620; + public const int common_plus_signin_btn_icon_light_disabled = 2130837620; // aapt resource value: 0x7f020075 - public const int common_plus_signin_btn_text_dark = 2130837621; + public const int common_plus_signin_btn_icon_light_focused = 2130837621; // aapt resource value: 0x7f020076 - public const int common_plus_signin_btn_text_dark_disabled = 2130837622; + public const int common_plus_signin_btn_icon_light_normal = 2130837622; // aapt resource value: 0x7f020077 - public const int common_plus_signin_btn_text_dark_focused = 2130837623; + public const int common_plus_signin_btn_icon_light_pressed = 2130837623; // aapt resource value: 0x7f020078 - public const int common_plus_signin_btn_text_dark_normal = 2130837624; + public const int common_plus_signin_btn_text_dark = 2130837624; // aapt resource value: 0x7f020079 - public const int common_plus_signin_btn_text_dark_pressed = 2130837625; + public const int common_plus_signin_btn_text_dark_disabled = 2130837625; // aapt resource value: 0x7f02007a - public const int common_plus_signin_btn_text_light = 2130837626; + public const int common_plus_signin_btn_text_dark_focused = 2130837626; // aapt resource value: 0x7f02007b - public const int common_plus_signin_btn_text_light_disabled = 2130837627; + public const int common_plus_signin_btn_text_dark_normal = 2130837627; // aapt resource value: 0x7f02007c - public const int common_plus_signin_btn_text_light_focused = 2130837628; + public const int common_plus_signin_btn_text_dark_pressed = 2130837628; // aapt resource value: 0x7f02007d - public const int common_plus_signin_btn_text_light_normal = 2130837629; + public const int common_plus_signin_btn_text_light = 2130837629; // aapt resource value: 0x7f02007e - public const int common_plus_signin_btn_text_light_pressed = 2130837630; + public const int common_plus_signin_btn_text_light_disabled = 2130837630; // aapt resource value: 0x7f02007f - public const int design_fab_background = 2130837631; + public const int common_plus_signin_btn_text_light_focused = 2130837631; // aapt resource value: 0x7f020080 - public const int design_snackbar_background = 2130837632; + public const int common_plus_signin_btn_text_light_normal = 2130837632; // aapt resource value: 0x7f020081 - public const int download = 2130837633; + public const int common_plus_signin_btn_text_light_pressed = 2130837633; // aapt resource value: 0x7f020082 - public const int envelope = 2130837634; + public const int design_fab_background = 2130837634; // aapt resource value: 0x7f020083 - public const int eye = 2130837635; + public const int design_snackbar_background = 2130837635; // aapt resource value: 0x7f020084 - public const int eye_slash = 2130837636; + public const int download = 2130837636; // aapt resource value: 0x7f020085 - public const int fa_lock = 2130837637; + public const int envelope = 2130837637; // aapt resource value: 0x7f020086 - public const int fa_lock_selected = 2130837638; + public const int eye = 2130837638; // aapt resource value: 0x7f020087 - public const int fingerprint = 2130837639; + public const int eye_slash = 2130837639; // aapt resource value: 0x7f020088 - public const int fingerprint_white = 2130837640; + public const int fa_lock = 2130837640; // aapt resource value: 0x7f020089 - public const int folder = 2130837641; + public const int fa_lock_selected = 2130837641; // aapt resource value: 0x7f02008a - public const int globe = 2130837642; + public const int fingerprint = 2130837642; // aapt resource value: 0x7f02008b - public const int hockeyapp_btn_background = 2130837643; + public const int fingerprint_white = 2130837643; // aapt resource value: 0x7f02008c - public const int ic_audiotrack = 2130837644; + public const int folder = 2130837644; // aapt resource value: 0x7f02008d - public const int ic_audiotrack_light = 2130837645; + public const int globe = 2130837645; // aapt resource value: 0x7f02008e - public const int ic_bluetooth_grey = 2130837646; + public const int hockeyapp_btn_background = 2130837646; // aapt resource value: 0x7f02008f - public const int ic_bluetooth_white = 2130837647; + public const int ic_audiotrack = 2130837647; // aapt resource value: 0x7f020090 - public const int ic_cast_dark = 2130837648; + public const int ic_audiotrack_light = 2130837648; // aapt resource value: 0x7f020091 - public const int ic_cast_disabled_light = 2130837649; + public const int ic_bluetooth_grey = 2130837649; // aapt resource value: 0x7f020092 - public const int ic_cast_grey = 2130837650; + public const int ic_bluetooth_white = 2130837650; // aapt resource value: 0x7f020093 - public const int ic_cast_light = 2130837651; + public const int ic_cast_dark = 2130837651; // aapt resource value: 0x7f020094 - public const int ic_cast_off_light = 2130837652; + public const int ic_cast_disabled_light = 2130837652; // aapt resource value: 0x7f020095 - public const int ic_cast_on_0_light = 2130837653; + public const int ic_cast_grey = 2130837653; // aapt resource value: 0x7f020096 - public const int ic_cast_on_1_light = 2130837654; + public const int ic_cast_light = 2130837654; // aapt resource value: 0x7f020097 - public const int ic_cast_on_2_light = 2130837655; + public const int ic_cast_off_light = 2130837655; // aapt resource value: 0x7f020098 - public const int ic_cast_on_light = 2130837656; + public const int ic_cast_on_0_light = 2130837656; // aapt resource value: 0x7f020099 - public const int ic_cast_white = 2130837657; + public const int ic_cast_on_1_light = 2130837657; // aapt resource value: 0x7f02009a - public const int ic_close_dark = 2130837658; + public const int ic_cast_on_2_light = 2130837658; // aapt resource value: 0x7f02009b - public const int ic_close_light = 2130837659; + public const int ic_cast_on_light = 2130837659; // aapt resource value: 0x7f02009c - public const int ic_collapse = 2130837660; + public const int ic_cast_white = 2130837660; // aapt resource value: 0x7f02009d - public const int ic_collapse_00000 = 2130837661; + public const int ic_close_dark = 2130837661; // aapt resource value: 0x7f02009e - public const int ic_collapse_00001 = 2130837662; + public const int ic_close_light = 2130837662; // aapt resource value: 0x7f02009f - public const int ic_collapse_00002 = 2130837663; + public const int ic_collapse = 2130837663; // aapt resource value: 0x7f0200a0 - public const int ic_collapse_00003 = 2130837664; + public const int ic_collapse_00000 = 2130837664; // aapt resource value: 0x7f0200a1 - public const int ic_collapse_00004 = 2130837665; + public const int ic_collapse_00001 = 2130837665; // aapt resource value: 0x7f0200a2 - public const int ic_collapse_00005 = 2130837666; + public const int ic_collapse_00002 = 2130837666; // aapt resource value: 0x7f0200a3 - public const int ic_collapse_00006 = 2130837667; + public const int ic_collapse_00003 = 2130837667; // aapt resource value: 0x7f0200a4 - public const int ic_collapse_00007 = 2130837668; + public const int ic_collapse_00004 = 2130837668; // aapt resource value: 0x7f0200a5 - public const int ic_collapse_00008 = 2130837669; + public const int ic_collapse_00005 = 2130837669; // aapt resource value: 0x7f0200a6 - public const int ic_collapse_00009 = 2130837670; + public const int ic_collapse_00006 = 2130837670; // aapt resource value: 0x7f0200a7 - public const int ic_collapse_00010 = 2130837671; + public const int ic_collapse_00007 = 2130837671; // aapt resource value: 0x7f0200a8 - public const int ic_collapse_00011 = 2130837672; + public const int ic_collapse_00008 = 2130837672; // aapt resource value: 0x7f0200a9 - public const int ic_collapse_00012 = 2130837673; + public const int ic_collapse_00009 = 2130837673; // aapt resource value: 0x7f0200aa - public const int ic_collapse_00013 = 2130837674; + public const int ic_collapse_00010 = 2130837674; // aapt resource value: 0x7f0200ab - public const int ic_collapse_00014 = 2130837675; + public const int ic_collapse_00011 = 2130837675; // aapt resource value: 0x7f0200ac - public const int ic_collapse_00015 = 2130837676; + public const int ic_collapse_00012 = 2130837676; // aapt resource value: 0x7f0200ad - public const int ic_errorstatus = 2130837677; + public const int ic_collapse_00013 = 2130837677; // aapt resource value: 0x7f0200ae - public const int ic_expand = 2130837678; + public const int ic_collapse_00014 = 2130837678; // aapt resource value: 0x7f0200af - public const int ic_expand_00000 = 2130837679; + public const int ic_collapse_00015 = 2130837679; // aapt resource value: 0x7f0200b0 - public const int ic_expand_00001 = 2130837680; + public const int ic_errorstatus = 2130837680; // aapt resource value: 0x7f0200b1 - public const int ic_expand_00002 = 2130837681; + public const int ic_expand = 2130837681; // aapt resource value: 0x7f0200b2 - public const int ic_expand_00003 = 2130837682; + public const int ic_expand_00000 = 2130837682; // aapt resource value: 0x7f0200b3 - public const int ic_expand_00004 = 2130837683; + public const int ic_expand_00001 = 2130837683; // aapt resource value: 0x7f0200b4 - public const int ic_expand_00005 = 2130837684; + public const int ic_expand_00002 = 2130837684; // aapt resource value: 0x7f0200b5 - public const int ic_expand_00006 = 2130837685; + public const int ic_expand_00003 = 2130837685; // aapt resource value: 0x7f0200b6 - public const int ic_expand_00007 = 2130837686; + public const int ic_expand_00004 = 2130837686; // aapt resource value: 0x7f0200b7 - public const int ic_expand_00008 = 2130837687; + public const int ic_expand_00005 = 2130837687; // aapt resource value: 0x7f0200b8 - public const int ic_expand_00009 = 2130837688; + public const int ic_expand_00006 = 2130837688; // aapt resource value: 0x7f0200b9 - public const int ic_expand_00010 = 2130837689; + public const int ic_expand_00007 = 2130837689; // aapt resource value: 0x7f0200ba - public const int ic_expand_00011 = 2130837690; + public const int ic_expand_00008 = 2130837690; // aapt resource value: 0x7f0200bb - public const int ic_expand_00012 = 2130837691; + public const int ic_expand_00009 = 2130837691; // aapt resource value: 0x7f0200bc - public const int ic_expand_00013 = 2130837692; + public const int ic_expand_00010 = 2130837692; // aapt resource value: 0x7f0200bd - public const int ic_expand_00014 = 2130837693; + public const int ic_expand_00011 = 2130837693; // aapt resource value: 0x7f0200be - public const int ic_expand_00015 = 2130837694; + public const int ic_expand_00012 = 2130837694; // aapt resource value: 0x7f0200bf - public const int ic_media_pause = 2130837695; + public const int ic_expand_00013 = 2130837695; // aapt resource value: 0x7f0200c0 - public const int ic_media_play = 2130837696; + public const int ic_expand_00014 = 2130837696; // aapt resource value: 0x7f0200c1 - public const int ic_media_route_disabled_mono_dark = 2130837697; + public const int ic_expand_00015 = 2130837697; // aapt resource value: 0x7f0200c2 - public const int ic_media_route_off_mono_dark = 2130837698; + public const int ic_media_pause = 2130837698; // aapt resource value: 0x7f0200c3 - public const int ic_media_route_on_0_mono_dark = 2130837699; + public const int ic_media_play = 2130837699; // aapt resource value: 0x7f0200c4 - public const int ic_media_route_on_1_mono_dark = 2130837700; + public const int ic_media_route_disabled_mono_dark = 2130837700; // aapt resource value: 0x7f0200c5 - public const int ic_media_route_on_2_mono_dark = 2130837701; + public const int ic_media_route_off_mono_dark = 2130837701; // aapt resource value: 0x7f0200c6 - public const int ic_media_route_on_mono_dark = 2130837702; + public const int ic_media_route_on_0_mono_dark = 2130837702; // aapt resource value: 0x7f0200c7 - public const int ic_pause_dark = 2130837703; + public const int ic_media_route_on_1_mono_dark = 2130837703; // aapt resource value: 0x7f0200c8 - public const int ic_pause_light = 2130837704; + public const int ic_media_route_on_2_mono_dark = 2130837704; // aapt resource value: 0x7f0200c9 - public const int ic_play_dark = 2130837705; + public const int ic_media_route_on_mono_dark = 2130837705; // aapt resource value: 0x7f0200ca - public const int ic_play_light = 2130837706; + public const int ic_pause_dark = 2130837706; // aapt resource value: 0x7f0200cb - public const int ic_speaker_dark = 2130837707; + public const int ic_pause_light = 2130837707; // aapt resource value: 0x7f0200cc - public const int ic_speaker_group_dark = 2130837708; + public const int ic_play_dark = 2130837708; // aapt resource value: 0x7f0200cd - public const int ic_speaker_group_light = 2130837709; + public const int ic_play_light = 2130837709; // aapt resource value: 0x7f0200ce - public const int ic_speaker_light = 2130837710; + public const int ic_speaker_dark = 2130837710; // aapt resource value: 0x7f0200cf - public const int ic_successstatus = 2130837711; + public const int ic_speaker_group_dark = 2130837711; // aapt resource value: 0x7f0200d0 - public const int ic_tv_dark = 2130837712; + public const int ic_speaker_group_light = 2130837712; // aapt resource value: 0x7f0200d1 - public const int ic_tv_light = 2130837713; + public const int ic_speaker_light = 2130837713; // aapt resource value: 0x7f0200d2 - public const int icon = 2130837714; + public const int ic_successstatus = 2130837714; // aapt resource value: 0x7f0200d3 - public const int ion_chevron_right = 2130837715; + public const int ic_tv_dark = 2130837715; // aapt resource value: 0x7f0200d4 - public const int launch = 2130837716; + public const int ic_tv_light = 2130837716; // aapt resource value: 0x7f0200d5 - public const int lightbulb = 2130837717; + public const int icon = 2130837717; // aapt resource value: 0x7f0200d6 - public const int list_selector = 2130837718; + public const int id = 2130837718; // aapt resource value: 0x7f0200d7 - public const int @lock = 2130837719; + public const int ion_chevron_right = 2130837719; // aapt resource value: 0x7f0200d8 - public const int logo = 2130837720; + public const int launch = 2130837720; // aapt resource value: 0x7f0200d9 - public const int more = 2130837721; + public const int lightbulb = 2130837721; // aapt resource value: 0x7f0200da - public const int mr_dialog_material_background_dark = 2130837722; + public const int list_selector = 2130837722; // aapt resource value: 0x7f0200db - public const int mr_dialog_material_background_light = 2130837723; + public const int @lock = 2130837723; // aapt resource value: 0x7f0200dc - public const int mr_ic_audiotrack_light = 2130837724; + public const int login = 2130837724; // aapt resource value: 0x7f0200dd - public const int mr_ic_cast_dark = 2130837725; + public const int logo = 2130837725; // aapt resource value: 0x7f0200de - public const int mr_ic_cast_light = 2130837726; + public const int more = 2130837726; // aapt resource value: 0x7f0200df - public const int mr_ic_close_dark = 2130837727; + public const int mr_dialog_material_background_dark = 2130837727; // aapt resource value: 0x7f0200e0 - public const int mr_ic_close_light = 2130837728; + public const int mr_dialog_material_background_light = 2130837728; // aapt resource value: 0x7f0200e1 - public const int mr_ic_media_route_connecting_mono_dark = 2130837729; + public const int mr_ic_audiotrack_light = 2130837729; // aapt resource value: 0x7f0200e2 - public const int mr_ic_media_route_connecting_mono_light = 2130837730; + public const int mr_ic_cast_dark = 2130837730; // aapt resource value: 0x7f0200e3 - public const int mr_ic_media_route_mono_dark = 2130837731; + public const int mr_ic_cast_light = 2130837731; // aapt resource value: 0x7f0200e4 - public const int mr_ic_media_route_mono_light = 2130837732; + public const int mr_ic_close_dark = 2130837732; // aapt resource value: 0x7f0200e5 - public const int mr_ic_pause_dark = 2130837733; + public const int mr_ic_close_light = 2130837733; // aapt resource value: 0x7f0200e6 - public const int mr_ic_pause_light = 2130837734; + public const int mr_ic_media_route_connecting_mono_dark = 2130837734; // aapt resource value: 0x7f0200e7 - public const int mr_ic_play_dark = 2130837735; + public const int mr_ic_media_route_connecting_mono_light = 2130837735; // aapt resource value: 0x7f0200e8 - public const int mr_ic_play_light = 2130837736; + public const int mr_ic_media_route_mono_dark = 2130837736; // aapt resource value: 0x7f0200e9 - public const int notification_sm = 2130837737; - - // aapt resource value: 0x7f0200fc - public const int notification_template_icon_bg = 2130837756; + public const int mr_ic_media_route_mono_light = 2130837737; // aapt resource value: 0x7f0200ea - public const int paperclip = 2130837738; + public const int mr_ic_pause_dark = 2130837738; // aapt resource value: 0x7f0200eb - public const int plus = 2130837739; + public const int mr_ic_pause_light = 2130837739; // aapt resource value: 0x7f0200ec - public const int refresh = 2130837740; + public const int mr_ic_play_dark = 2130837740; // aapt resource value: 0x7f0200ed - public const int roundedbg = 2130837741; + public const int mr_ic_play_light = 2130837741; // aapt resource value: 0x7f0200ee - public const int roundedbgdark = 2130837742; + public const int note = 2130837742; // aapt resource value: 0x7f0200ef - public const int search = 2130837743; + public const int notification_sm = 2130837743; + + // aapt resource value: 0x7f020102 + public const int notification_template_icon_bg = 2130837762; // aapt resource value: 0x7f0200f0 - public const int share = 2130837744; + public const int paperclip = 2130837744; // aapt resource value: 0x7f0200f1 - public const int share_tools = 2130837745; + public const int plus = 2130837745; // aapt resource value: 0x7f0200f2 - public const int shield = 2130837746; + public const int refresh = 2130837746; // aapt resource value: 0x7f0200f3 - public const int splash_screen = 2130837747; + public const int roundedbg = 2130837747; // aapt resource value: 0x7f0200f4 - public const int star = 2130837748; + public const int roundedbgdark = 2130837748; // aapt resource value: 0x7f0200f5 - public const int star_selected = 2130837749; + public const int search = 2130837749; // aapt resource value: 0x7f0200f6 - public const int tools = 2130837750; + public const int share = 2130837750; // aapt resource value: 0x7f0200f7 - public const int tools_selected = 2130837751; + public const int share_tools = 2130837751; // aapt resource value: 0x7f0200f8 - public const int trash = 2130837752; + public const int shield = 2130837752; // aapt resource value: 0x7f0200f9 - public const int upload = 2130837753; + public const int splash_screen = 2130837753; // aapt resource value: 0x7f0200fa - public const int user = 2130837754; + public const int star = 2130837754; // aapt resource value: 0x7f0200fb - public const int yubikey = 2130837755; + public const int star_selected = 2130837755; + + // aapt resource value: 0x7f0200fc + public const int tools = 2130837756; + + // aapt resource value: 0x7f0200fd + public const int tools_selected = 2130837757; + + // aapt resource value: 0x7f0200fe + public const int trash = 2130837758; + + // aapt resource value: 0x7f0200ff + public const int upload = 2130837759; + + // aapt resource value: 0x7f020100 + public const int user = 2130837760; + + // aapt resource value: 0x7f020101 + public const int yubikey = 2130837761; static Drawable() { diff --git a/src/Android/Resources/drawable-hdpi/android.png b/src/Android/Resources/drawable-hdpi/android.png new file mode 100644 index 0000000000000000000000000000000000000000..b43ee74a104c87f4838dc86f8799834f462a26bc GIT binary patch literal 530 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z3TGy8?VdT!D1?&;)N4E~fxpZ(9=N z7tFxO#LU9Z!O0^iEFvMLtfrx*qpPQHYUk+U>h0_29}pN8nVgbQP*Pr9*VjLN#@3y? z4jw*!{?W4+uit*7d7dX|DQ)FO_#+#UZo#H4IwbiJ!Mvn=qB_ z_vzgGaQ|o7439Uw%6cx2^KmC1JuXT2>wf~qkY0A@coxA=;2R=97 xUcdQe^Vi<)1JhRUT!D1?$OE>gLP~%>4=f4t z3ua(sVrF4w0$KhNd%pWR=W_2Yt6;VaDp@*5w&OV{Of hSbBQxhXBXlj2u@c=QGcaI|lS5gQu&X%Q~loCIC#j4<-Nr literal 0 HcmV?d00001 diff --git a/src/Android/Resources/drawable-hdpi/card.png b/src/Android/Resources/drawable-hdpi/card.png new file mode 100644 index 0000000000000000000000000000000000000000..9428a98506835fe7ed2cae0dc68b7eb43c1f51eb GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^av;pY3?xs=ZJr3EBm#UwT!C~sHsG@@`3g{uy(Gvl zn1PXrrTg>Ol0AFffI=>wE{-7*;mHXKf-_pCD?6+-Zmza8(n$0WcL+KYaw?#2(e610 z@}dFr{ZG_&{S@#n{2X|7af^7erd!3VCCY`T=SX_6FgSk?y*uresXpf{*_%6+BpK8G|39taV8$B6 zdU#v@vpiF)2g_ITwN3k??J&LXNzopr0MxkBV*mgE literal 0 HcmV?d00001 diff --git a/src/Android/Resources/drawable-hdpi/login.png b/src/Android/Resources/drawable-hdpi/login.png new file mode 100644 index 0000000000000000000000000000000000000000..3d55ef007f413431578547851cc117475edb27aa GIT binary patch literal 904 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z6#fUFDYin3$SdSXtZH**iG8 zxqEtf`-VnDMyI7`<`h;`);G7db@cR4nL2&e?78z6ELyf=^_J~B_Z&WT=G^(q*Kgjs zbML{UC(mBIeEs(Q$IoBC|NQ;;w64TVVDuJvx;TbNNKQTYJKj5y;rPe*#n)~wnQ7)0 z)qQGfjFaK_B}&i2xK9dAH7%ZY{{R2(=WkxdeEHPl^e=-fCK~C?d>gxz_oOvnKf^>^1ZH zs8-;0Np{VwOKQ;;n}cLuPZUZko6o#{iGIXE!K3E{Z%?plk=n;s!F|LkX!bnzznjh! zzSrxVw#CoiAZN+z53hAP{Vyq%{#FD+Y|?6S}Q%TqsdPss^e z+>&-q`01Mydd(p7>fN)ie*9KjsMvaM!llZHDNn98PJeZBtB3Y!t aSbqDtlU^_O3Rwapp25@A&t;ucLK6V$aHO{Y literal 0 HcmV?d00001 diff --git a/src/Android/Resources/drawable-hdpi/note.png b/src/Android/Resources/drawable-hdpi/note.png new file mode 100644 index 0000000000000000000000000000000000000000..339fc44da6b4919171e30f211e8bb561eff99b61 GIT binary patch literal 344 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z3TG`2jv5u0Xn+j$q=!_nU!Ms+0uz z1v4-*F|)9;3yH|dD{E+J>**UBTc?%QH+O75di=zxdvCx0{QdWJkJCk<`VvnU#}JM4 zZ!cR49dh7txyaw+kRZ1C{f!6v{!4oLFe!^${`nHBnYA(ej^I1lH7#2d=6ip89{=Fp ziMzG31-tfMoAk8u`;2LmX5I`FWn{kWHhV_5+x5B=liT&!Jf2#wU$W_%rQ;vA9m0Rak!++XtEb^bU+W2}) z&`q(E;@(S>;!>6;Sr_gqm1p=lbS zE-Peo)zO#~^|P>aMNhZ;*}GZAkJKVk9na4YHDc_Df9vvQ-?i5H((V6tU0_aAQZg1R y_g~Gn#lFiHjZgt!8^<)Z*w2wYElup1aU zu_Zx%!3>N{%q*-Ny!?W~V&alg(sByQs%q-GdiqADX681wcFwMDo<0GQF|l#+iODHx zIR%Bq<(2gft!+L1Q>V|KyI|4cWve%A+P>%D(KDB?UcYtk!J{WHUcdkN`Rn(ezyG#M z?okIuhpeZIV~B)g??Fywra%eS3)Yv@dM8a-DzHg?>6@EVYdbUE{r@k0Ea3greUi@| zOrj)?*!SF@C|GfOnJ$aJz&qZzj zyjSK8Kb}oF-?K(GOs`x>&1yzuH{WX&TNyt&lOKzxIn92ctGb(Q$^qWg>VR)A7iBEa zbQ7=Ccs^z7!WNC+JWewg=5WtqN=?jIr(wKs=W?E1{HGRFFVkT-YnmFE(Wjy9xY=W- zXp_*=Zf*_6U78M-OJ_e;n5Fh&o%sGUR(EX{q_*ZgyZC5*@V6|d$YnWVQlC2~aoswi zvEkPRz0>b5y(l@7_vy!BjY}UVdH0>2dhg{82Xp18QKsT;hdI{I3-xBs_{mhB($hL?%1)!0;sRv|vs6vu%e4l zN296`#SH=iMR8HT)62z9uSjf7J+?9Vz@EoqzKahr`E%rKG%I#ZXx}=MIqQ1l?3H)p z-ttyIxEVC%k$n6Pe;>OHA^Dt*>#wri6nFs=&l32_B-%SXXb2m!v;haUlB ztG6V`FPMRmiJ66!jh%y&i<^g+k6%DYSX4}0LQ+avMpjN}qFq^Z+q%$hxS z!J@@Wm#td8cKw#^yY?M8c=+h?6Q|CcJAe7=^_zF@J$Ul$#mm=k-+%o4_507?fBRls z(_vs>;_-BG43Us*J=kk6oXEib;l6Eo@@1tij=dA&u6X%G;gf)xJ$mo>jGZ&GG#Q z_w3}I){`}%({t9Bn{l5WO;kO`E4Jp^LEmVFomcM`cxC5W@qNkI|H7bek&DiR8d-_t8{A#0S+Y~E8Y8TJ$^52rnrYOj!YU*K}&n1)? z5Y(S5w&X$3-)Wl;M=X9^Bb;;UUX{%Pcjaj>e%#bz=rBL?>26)so5LpE$L6nem@&=5 zR;ysHp0R`M=}7ilFVq&~ZGLLFSB+uf;?o=2nCG6j@S3N=aM#O?d7&=x0oxWcWh^|N z)V^Y24$Cx=y?OIho?ESdQPPr_xx`<|Xc@z*OVbytHttdU^+G(s`eSQKlHwb*S0G(JKp<-2np+?@l?3?( zGcYnSv#_#ra0>~Gh>5Fe8C%$S`u6lqpS^hLicLHB9Y1mI<;TxozyJR5Uf&+5r_0mD zF~q|E?KyL?LkGVFE=Asbw(sr4Ys;gTe~DWM4fS>~M4 literal 0 HcmV?d00001 diff --git a/src/Android/Resources/drawable-xxhdpi/android.png b/src/Android/Resources/drawable-xxhdpi/android.png new file mode 100644 index 0000000000000000000000000000000000000000..202ada3fddad36fd05a62d921eb0e51273c5ace1 GIT binary patch literal 994 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bYNg$3=8lHaRqYAM*+1%;F4_nTwur+ zmIV0)GcYnSv#_$Ub8vET^YRM_3JHsdOGrvd%gD(qsA*_wY3u0f>04OY+Pivs`}zk2 zg-1ljC#R&PXJqE&msC_%*VVVSb#(VkoHBj(+-L>{_8mTY{KTm<=gwcg zdF#%-2aldSd-?kP$FJXi{{DM{<#rMhAD`-j$m9^Q@RIT~gM z;v516T#w!pbvzn(;P*d$wdo5Ew(OqUX}s@4{m#^z@{-TH+TbYJOa2tp+2w1rt`grz6)B1x<6W$z2et2-U%Ke`avbG1JKiEuq zG-ubwEBlDfJILEY27El*OXcYlAf(X+vscOKh~ zsn->b^Idppy5U|%0h3N<<=JAh9a-z#&0!$ z*Lw9#-S_E@%;%fymc>gh%RgBb8m1`YJ74lnHrw|Z2j|rvzMEDsUGmPtGw~-%AF`h8 zJi1M0?);_lei?I*MKvf^+NoaH_0D&dz0^mES<}ppaY;wc@jEkp$7B5utXHrF PCMgC_S3j3^P6jpgtH z4&Kc!x{LR2$hjDFX44rlZ*85G9Lxu~Ui|&P@yCQ>{nO>oWjK28Y^9&Xl(wu>+*Z__@*d(*9L&3;vW_V?w@86Nk%k22i9**^bfNaXx27rOsD z_R6-ler9AizU+F|pY|Cew3x2yU%zg1mWL5NqoIowUvs_E3E!gS1aux4YmZL@itQylBvZg0ZRS@|+ z<#hW4vE_|LLV2#UZb%&tEYC<0b7#$5^sfChx73LPZ$)@r7F0NIf{^Dgh>fRw!HzV+g@5-KH+FMe8kxj=H3&-t?!0e_e^7A8h9C`=awrYHta LS3j3^P6pYtSjR&RXe^G18 ztGRSrGVHzBfu~x>?pjNhy+8IgYr&m>X~)>zmS!s3c1%8OFpZ7f&ZOvtuCH;wpvI05 yV%63k#AnTxyz#-4oq_w!)g3D3rp7$63=FQ*W&TZ=zUm3kRt8U3KbLh*2~7aLnpNrm literal 0 HcmV?d00001 diff --git a/src/Android/Resources/drawable-xxhdpi/id.png b/src/Android/Resources/drawable-xxhdpi/id.png new file mode 100644 index 0000000000000000000000000000000000000000..c930f693dcfc5cfdc107e56d9ded08839d86d3f3 GIT binary patch literal 868 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bYNg$G!5_xaRqYAM*)c;z%Tf57BJw_ zN`m}?85o(ESy!#U-TVb|M-&4<&PLY_1XRKosh&;$6s+wPmMeB4jRpL zw2HasSTJ4YPt>`k3^z7$z2u8eQ}O2tKkYa{#-KV>zTt#rb%NEJhEH1Aecm(Ytg+p< zS*frx`{a|wzmlJ-@6?*S-#2}>)@-~G_F~)D&b9rlKO6H~cl>VAbduNIF}<3_@^zda=cb8qS8i%6 z9y%S|6tn2!iV}l+m6c&tN1l3o<5piMd;ia|(>spHCzb~;igxl?QQWlo`W{|4jUe?q zFaGDrJTc03d2^RHxN`DcMu$rpajm<~e`$8tHrRfmZFOZ{{MR$zSlsOXx9Be{P~90} S5y}RPbp}sYKbLh*2~7Z>0fr&~ literal 0 HcmV?d00001 diff --git a/src/Android/Resources/drawable-xxhdpi/login.png b/src/Android/Resources/drawable-xxhdpi/login.png new file mode 100644 index 0000000000000000000000000000000000000000..7c733d6e3f5f957852fa6c3f77011c37aa3cbdc8 GIT binary patch literal 1588 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bYNg${1o65;tJ%JkAjgD0%ntgDuJ=S zv?Rzcn1PXrnT3^&or9B$n}?T=UqDbuSVUAzTtZSxT1Hk*K~YIrMNM5pQ%hS{Pv6kU z*u>P_!qUpx#@61^$;Hjx%g4_@ATTH-G$JxOCN?fUDJ?xCGdnlGps={2vbwImp{cpG zt)sKMr>}qFq^Z+q%$hxS-lD}zm#tW}dhPlRTefcBxogk90|yTuJ$~ZUnRDkaU%h_w z)}4C~9zA*X;^phN?>~P2`u*qczdL;|EM#C{_VILa43UtWdXU>WIF*6z!FTK3Pb4OH zM|5oI30QDKuPG$UbSZbIn(ML|lTykSZ!%Io;;mtzmp%Ic+rcxj_x|6sw6<=aJNLcx z7n>Ew9)ExE|ME9k>DU@4XEU?1MWKiNI=`(iE;;r8!qP4o>AMEl=#aux-`CClb8B6&Kc)O#W$}`02ja z1))aIB`dl!CkSOHZ^#UsmXo1T)$Mv+p=Ca4-B6k;_wD;dBeZYE+!R%j74(6_xgZhe?9cJVyUszit-OeC? zchiNt%G~+!%c6K2Tz8o=yin6moZzK>VeX=69i9g_<>sFVc&Sseb&4eaA?7P8LLoPq z59=)5WW#s2d`kD?6|=RbNA2YZUMIdxVyc^=Q|y;xHgl)3`sfF*T|D_oum+pVaol-(%_9Mwq&aPw zjYan)rWP?ysmQ-P;mbi_>`!gh$gFg6R%`LBO4v#OW`SRBURP1-y-l?pt8Fh|B(2iS`-@+1Q=B-h3s?{^c)I$ztaD0e F0s#I<&u{<$ literal 0 HcmV?d00001 diff --git a/src/Android/Resources/drawable-xxhdpi/note.png b/src/Android/Resources/drawable-xxhdpi/note.png new file mode 100644 index 0000000000000000000000000000000000000000..09061b67cbcbb276b4849fc100542004ad74bdaa GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bO2Hz0X`wFK)RgTK(QqHE6`l&k|4ie z1|}AE4t@b6V^=qyiIZl`T7C55<*P4VzWx05yX?t5B|v4%JzX3_JdVG;evt2wf`IGA zOu^M*nOm<0-T(i8dG{%;Qpr&;R=QRxP?_#}E`Gw=Ft!VpA8o!hb(!fL z)eKt`u`%grm*`~+!}Y0;uk4xD+deDv#PtU)b5DJ!+r@Zb?&0P93?(9F#tb^V&F0;4 z964$X2Q*mz-A?y@aADe`6Jkl9xpF1Mx+ zqp2jwFPMRmiJ66!jh%y&i-(s_Ku}0nL{wZtQc6})RZU$(Q%grz-_Xd!!phdp-oeqy z*~QJ>)63h(*Uvv7BqB08CN?fUF)1ZIJEx$uyt1aQp|!Jn;*_b=XUv*CZ^5F)OP8%! zwR-)Qt=o6**>~XJ(c>r1oI8K<^34ZNp1pYa`t8ThU%&tS{kQbi+a3l6rhHEq$B>A_ zZ*SfVzw98w{@`{=>HUMNmPR=`1_lOfe8;^YtZ*UMtwL7D!pzvNZDN=1?Z4CRskX%T z#oX#oGwxr0qW0a|Hq&~p596Pr^6vL5|L`R|sl52!hd=Le!|jg^=V!JuZ3vq2eckt& zo^mrxjI(46=TtovGbrB8!?5v;%gU~f3_bt(cR3lFw`z#@Tyrmee{t%ov$d<051ixv za!OCH{KM?!?PsM0rSx)83hN441x@$QQsx^Jqy3l;R7qPfFz8y!C^dgy`)sPjoc#LM z(}oh8+v<51O)t3hzjBYP-&-X?8P}vbp@T-ENB(ZfobcwMs8B@*-?@ng3auiP8-+^* zJRcyKk{|g)*WgUXQbAu z-+5sDdy=5PX2Jmx**)&jkNtx7UbQH^YUBI4?sE8(y}_HEI(F^)?!=+!;u_fP zG-V#2^a9DPKL51){k03s-#b3ez3^c60!KlU2rj7_S(6`H83lS71!fr^QZGE{xf?(A zxHDHu-mF{JVLv?O(nV%GXw2Mw|JJ0gTlTNK5BLOrtKa&);C#g7^Kp6-l^q=sMawP* u^Sb=G%Kc}_ufARXUK(85IZsdbKcnwSsf3Hy-ai0l1O`u6KbLh*2~7ac>Nc?e literal 0 HcmV?d00001 diff --git a/src/Android/Resources/drawable-xxxhdpi/apple.png b/src/Android/Resources/drawable-xxxhdpi/apple.png new file mode 100644 index 0000000000000000000000000000000000000000..8bb1fa0caf87d4b576374a341f2402d24371a65e GIT binary patch literal 1224 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r53?z4+XPVEzz&JI)C&U%VEguDgECi|#KdAvm zOj}8iUoZnB6Eh1d8#@Ol7dHzmyfTXe_&`>ctm7$Ol(|yVsctWW_C_taY=Q3Q)^picTfMsDO0Dx(q$`F zZQ8PR=dL~b4j(;!;?$XQ=PzEqdj00DJNF(vd-3x1+xH(ofBpXR_um;E4NMFSOfjA= zjv*3~YY%oRPfnC!|L}fy`THKrYYSJnEsa`eqWMz7NMa@qna&O%D{{Eby z_wCPT?%lt4o_*WSS@x6kABq_7Ij6h0z{9!6n(ZOSW6sO(4sjl{_&%pmxNYXcMrNlo zKbY7ngwA9%GS4$oPFz&+^v`l>z86VuS6JC~j2FxCSsd%JvsgH_+U-F{;xbnri=>&m z=Sdf^m9L3yo3MJ#srSYcA3mElRge3&mVf;I`{lcru47@f`kK*a9d`T>qwwuD_X76v zNAK}fetl?g}!Wh)D9u`@oct^djT*W{gM_wVnn(EFm})!JM3MA+-% zHbe0(asf%Fn%u-wm)#BE3VPMd$QnN>Xrq@#&7vzcmLg44X6ZII2`;_R#I7}6V@nj@ z()S{(nkUV7Y7XEIR(sfZEBsW6)7eDkyy_IUUS|GOILKo-KAg`}Z zx_+AWQ{n=$&b4?6AHC;v)P1KSGuM3$^E}0H>u!Pl4KkuSr;-G2szpp$eWGlhtEQuw z@;N1!39rSv1swFUo0E(KUM`MM4zcm%`r8zx-g?gIY)@c{kX5gUCCge)E}NFP(5`J~ zcTaGa&b98_bMNA^yeH|p7pED@9GSm_ce5H_Nl`Ov^oKFMGa5^?zLjqQAg90Xi1y7wJpnOyAm?BDgc@tQM#lhA_Z)aqOH#rEji7!2* z6DYiURpd;rds?R6LTgpN|NppHbb{x>4D`; zhvlXkQeT&D@YGyo=pA@+g4wzYior1p-8GD?wU2nt5ze0JIKTeOdiL9@ zD`5VgWf`0De8Sf`YQ5w=bTCTqclOuszKrt@I(27m*>RuwzL3MhvtMq0Y}LDL-X|7k z{xdFN;dzr^7oCizv!7H|Jr_`xbKrkK7)M;{%Y$vt1Z*|a{j3jJre>{no)}!b%!4s+9iw& zrPsuj$UE$M?(|Sy;g5hy>tS&&afk2I-zXYwEX6^!STe|$P9+*hKZrTeB|LT&&3F3;qdRW8ZK pd%RPuHRii5d#e+uA#(d8@Bazse>Z(k+6+t&44$rjF6*2UngAV&V>bW* literal 0 HcmV?d00001 diff --git a/src/Android/Resources/drawable-xxxhdpi/login.png b/src/Android/Resources/drawable-xxxhdpi/login.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ed61aa877d9ce75eea343f1f3dd4478915f63f GIT binary patch literal 1917 zcmeHH`#;kQ0R5VYZDtW`^Nu{`nMaf!Y&Nr{HM68!7CmOWO~hE_Ua#gkudMD8g^??f zGJL#llSnSIaU*p-n;YrQ>!wn->;4~|&*z-;IlrFI`J7BDg$Rf0LjeGQlYH^CO{e}( z4b@F;c@DY_03ayUk51T(yzltl0FSrVZQ#Y`8fv*TN&uh&QU$ARQP+S#VVZC)#8z#c zZMu5M?I^UqfuWJHiRlhA^PLu!))*UG2S;aDH}^ezJ@y^+^ul@L2|h#;*^hFB>QAE| z4LlZf{KUy%#;MTLXPIFv_IXZtMC8S2ZVc~I+~tIy6O&R>`Dq!M*@E1>f~&%7zle%% zmfR{Wue|eX?fv?PlE&ti*7o0|o!w7+`}zl;%ZC3LeL4PmV&=`<+xd6zmCLLDtbf}0 zYKVF%003|d36G_t(3PE;-T^Uy`jS%F0e8!+&_xppgGw`K#w;6s(huYeePe#sVH*Tg zSwqKP^(7rrvz()glp$fXSR z1Z{Qj5LE^LDK0S7wyvlZN0z@nJJ_$tO}#bjm-TmGGcjFcZ7b&2fSTG9ozLHC$mzIA zHuyH*5xtKFvyONGpV70|yc8mStJcuk;Z=`f!+nnj24-l~3LKIxlrW}%{+P43QKL2| zJ`@}GL|_Z;A9=)zph_3rnGz}IdF?1SO4V}G#s0w-=I;LZqY_D7I`ioRFStu!r=OpT zZ5gmMS@A4=7u8A>h=3gu6)x?-cxmzEAt(6^_u-~a@-)zJ!L<8TOGM_!n_E1wVY`P1 zyT-HrP1heTDp1_0#O{v53s-$~$8=1NI4f+T9Au_u`Hh9E5=A5}C@N*YW&Z3}&ZJ#T zlbQF8>2@d2VobDMQfKm>RR**o{G3l7Vz6}#BtE#{YHHtiZ&z`3+t;DXZQ;2dj=Sz( zjZ3x2pRNAUqeaZj^}$xGQLP?8b?~d7$Nh_9%t<6_Rilv(Sq<0VdUG3aw|W#xnt|9~ z0k||JtasVnf;A0J@?WUsYsQ2LuBWLu!g2Xdlzj{^n+k!{uxmgkSoO#{kpK93DbH1- zYoG_lU9zu}nfj}R>2bMg2=*Fy@Qbzw8ZU%N9v66Gt|IFV{6 zdn|}w8zPweTz1W#pbB-SIKM+uWCVAuA#%G@f)U!NUk=rh6ATvE?`_@8-tUaQl_Tr+ z5XxVm``fw*L0kAACWw8e3N{E;T6@43;xa!$w6ZQUkut_V>tTMsK~E|XE?Fee#%lSY1cZ=Cq73m?qSVT{=3#da$DK?-hwAnqrw zOCty~I=^Tv$8py;+?7BMw@C+`hnYV1QG_&3AlrKP-Yplzd`u;YRdmZ{4i2RBwh$rX zxif8F8>0D1(9*%GSlN`;O4gk987jSa**s$4QGfPESwjiU7(U6LK+c7yVNDbQsdT-% zN5VjTniZOd40TIH2-v+!L&vp2XED<9c0i9QcZ9)QOybXS*GID3dFeMUYF@9C9d%kM za%G-O*}d!%EHJO)WE}qsyl7aSZ7L@_>g0%5VAf3n-xzNUwIO$_wb7+i(6LmA=C-_iXrdho>xI0qTkMw z$=^lqXh$zIR^OxGr<-}#U|$^7l3T-1HS@TVW=;)ES2~dB*vr$iq1fHud`^Hwpy2Cp HAu0a>gl%TA literal 0 HcmV?d00001 diff --git a/src/Android/Resources/drawable-xxxhdpi/note.png b/src/Android/Resources/drawable-xxxhdpi/note.png new file mode 100644 index 0000000000000000000000000000000000000000..7cb8b4b92b182ffdfc5ae20b9a48b80443e40e0d GIT binary patch literal 524 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r53?z4+XPOVBW(N3#xB}_&K?!VsMBW5C&Zs2F zFPMRmiIt0+hmT)eLQ+avMp?_r+0!>VCO$DeBQqzzpm@sE>2p^fJbL-+^=B_$zJB}u z^IwfyxB7s(KX|%0hD02Gd*e9YAp-%H3!Hnu%SEkN*!=(hV+$6hgCYm{w$FX+Q8(#y zD(`|9xxC8DQ_cApcn_bpVxGcdysw#4)I{{njs)SD^E<=~3*1(;UO6HcWKAyx{bv14RLEWrb!~ zvxV}@e0VjJg`H=wqDI1tpN3o#RkKAT9-Q@VX0)pcy6~xG!P}DuHof&caP!Iyxu^W! z?j7!Yb5Ondh3DQ-t*U(=x1NzcDwnULeB;Z)`8A)|=6Id{t2#I8+{UfO+AjU^TniWf Q0s5W6)78&qol`;+0FQCtM*si- literal 0 HcmV?d00001 diff --git a/src/Android/Resources/drawable/android.png b/src/Android/Resources/drawable/android.png new file mode 100644 index 0000000000000000000000000000000000000000..01537fc4578a606dd98053d8492d63458cebfe85 GIT binary patch literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQaT>(BJu0XncZ~)dbQ7eG1(Jcw` z3ua(sVqs-t=j0a<7L|~eQ&3jX)G~MX3=K<3%gE{8v~|zEgU4?@dhz+|_n*K2R^2Y? z0BY>>ba4!kxV-hkb-u$2JgfmeFYdjZ=UINM;Q#;cSwTV@e%;YlyujGFF-ULLs+DV9 z)T#_#%~)qptHXHb_n~vs&6D$v3%=X1*Kpl@ey)fG=k9Q;Zpk!K34XY8jv4#LQ#t1q z*DHN7|HEu-{kwLqk5IwO*Ck7@g&onoc;FDP(B928^*?r==hn<$BJ}rYEUBz-YFo5o)%p#)_Ut=){M6;Ecb>d> z`TG6GuRnkPT{bn*3}{A|r;B5VgkZAh$sf12zmJD|MbB8tuZ&H zo3bAIKi}m%@#7N-*Wh`lHLTd!TE1!VJ+DpQ@$huMlXSo<#n9>ii_nR)0gTe~DWM4fa?rV^ literal 0 HcmV?d00001 diff --git a/src/Android/Resources/drawable/card.png b/src/Android/Resources/drawable/card.png new file mode 100644 index 0000000000000000000000000000000000000000..c7f2ecae733ae7f0ec975db235ec4e8508063da2 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQaW&u7Su0Xn+bg=DS*nFT)!IB`q zUgoHAfBv5M_QPeMq_3xoV~E7%spmZT8Vq=x1E(K5!&>wI^roeq zS`)YbnKYGQ|JqM{58}M?gIZr~f282HvcfdILPL<7Q~BmmU#H1mI?u~IYqQ-`$+Y5) aq)^;MAg%s_ o=ZC89{q^eWa+UnzJ^!9^|34xW=+_n419Sz0r>mdKI;Vst07Ey3fdBvi literal 0 HcmV?d00001 diff --git a/src/Android/Resources/drawable/login.png b/src/Android/Resources/drawable/login.png new file mode 100644 index 0000000000000000000000000000000000000000..f2c39b02e725442e2ffd43473f2a298466284903 GIT binary patch literal 657 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqMyzVB`+)32_B-%SQn?1TH8jtOEu| zL`jfeFaskKGbha)rVoSv5i z)r;-E@J_Jughrvy>N)zn>%TXykCbc=5!EcQHg`EDI`gr^#?O~pm zpX{qkHb0~a);qu8f5}tBd!^&-3*K9rk-j}$`x1kyT zh>v^Mn w?9(e@UU$y)-R&ReT(@7jajVzP8B@Pzopr0B-yq_W%F@ literal 0 HcmV?d00001 diff --git a/src/Android/Resources/drawable/note.png b/src/Android/Resources/drawable/note.png new file mode 100644 index 0000000000000000000000000000000000000000..a64ea8b68fde1c2e6d61c91695b81d7c963e9930 GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQaApt%iu0Xn++CZ@+`YX^}>5?G7 zUk&{?6(fnN9Z`UNo=fPQ>AbTbNUh%>38)Ga)UzX|Kx5zKh&l8)`OiE%e#A pw~T$x$A@PbO*Zd68_V{A;oD@M($bgZazL{gJYD@<);T3K0RTJ$Ya{>w literal 0 HcmV?d00001 diff --git a/src/App/Controls/LabeledDetailCell.cs b/src/App/Controls/LabeledDetailCell.cs index 7aad3a26f..fe86e8b06 100644 --- a/src/App/Controls/LabeledDetailCell.cs +++ b/src/App/Controls/LabeledDetailCell.cs @@ -1,4 +1,5 @@ using FFImageLoading.Forms; +using System; using Xamarin.Forms; namespace Bit.App.Controls @@ -7,6 +8,17 @@ namespace Bit.App.Controls { public LabeledDetailCell() { + Icon = new CachedImage + { + WidthRequest = 20, + HeightRequest = 20, + HorizontalOptions = LayoutOptions.Center, + VerticalOptions = LayoutOptions.Center, + ErrorPlaceholder = "login.png", + CacheDuration = TimeSpan.FromDays(30), + BitmapOptimizations = true + }; + Label = new Label { LineBreakMode = LineBreakMode.TailTruncation, @@ -45,21 +57,24 @@ namespace Bit.App.Controls { ColumnSpacing = 0, RowSpacing = 0, - Padding = new Thickness(15, 3, 0, 3) + Padding = new Thickness(3, 3, 0, 3) }; grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); + grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(40, GridUnitType.Absolute) }); grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) }); grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) }); grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(60, GridUnitType.Absolute) }); - grid.Children.Add(Label, 0, 0); - grid.Children.Add(Detail, 0, 1); - grid.Children.Add(LabelIcon, 1, 0); - grid.Children.Add(LabelIcon2, 2, 0); - grid.Children.Add(Button, 3, 0); - Grid.SetColumnSpan(Detail, 3); + grid.Children.Add(Icon, 0, 0); + grid.Children.Add(Label, 1, 0); + grid.Children.Add(Detail, 1, 1); + grid.Children.Add(LabelIcon, 2, 0); + grid.Children.Add(LabelIcon2, 3, 0); + grid.Children.Add(Button, 4, 0); + Grid.SetRowSpan(Icon, 2); Grid.SetRowSpan(Button, 2); + Grid.SetColumnSpan(Detail, 3); if(Device.RuntimePlatform == Device.Android) { @@ -69,6 +84,7 @@ namespace Bit.App.Controls View = grid; } + public CachedImage Icon { get; private set; } public Label Label { get; private set; } public Label Detail { get; private set; } public CachedImage LabelIcon { get; private set; } diff --git a/src/App/Controls/VaultListViewCell.cs b/src/App/Controls/VaultListViewCell.cs index 6a9b5525b..2776344fc 100644 --- a/src/App/Controls/VaultListViewCell.cs +++ b/src/App/Controls/VaultListViewCell.cs @@ -1,4 +1,5 @@ using Bit.App.Models.Page; +using FFImageLoading.Forms; using System; using Xamarin.Forms; @@ -12,6 +13,8 @@ namespace Bit.App.Controls public VaultListViewCell(Action moreClickedAction) { SetBinding(LoginParameterProperty, new Binding(".")); + Icon.SetBinding(CachedImage.SourceProperty, nameof(VaultListPageModel.Cipher.Icon)); + Icon.SetBinding(CachedImage.LoadingPlaceholderProperty, nameof(VaultListPageModel.Cipher.Icon)); Label.SetBinding(Label.TextProperty, nameof(VaultListPageModel.Cipher.Name)); Detail.SetBinding(Label.TextProperty, nameof(VaultListPageModel.Cipher.Subtitle)); LabelIcon.SetBinding(VisualElement.IsVisibleProperty, nameof(VaultListPageModel.Cipher.Shared)); diff --git a/src/App/Models/Page/VaultListPageModel.cs b/src/App/Models/Page/VaultListPageModel.cs index 521e97789..f0edc98d2 100644 --- a/src/App/Models/Page/VaultListPageModel.cs +++ b/src/App/Models/Page/VaultListPageModel.cs @@ -23,13 +23,40 @@ namespace Bit.App.Models.Page { case CipherType.Login: LoginUsername = cipher.Login?.Username?.Decrypt(cipher.OrganizationId) ?? " "; + LoginUri = cipher.Login?.Uri?.Decrypt(cipher.OrganizationId) ?? " "; LoginPassword = new Lazy(() => cipher.Login?.Password?.Decrypt(cipher.OrganizationId)); - LoginUri = new Lazy(() => cipher.Login?.Uri?.Decrypt(cipher.OrganizationId)); LoginTotp = new Lazy(() => cipher.Login?.Totp?.Decrypt(cipher.OrganizationId)); + Icon = "login.png"; + var hostnameUri = LoginUri; + var isWebsite = false; + if(hostnameUri.StartsWith("androidapp://")) + { + Icon = "android.png"; + } + else if(hostnameUri.StartsWith("iosapp://")) + { + Icon = "apple.png"; + } + else if(!hostnameUri.Contains("://") && hostnameUri.Contains(".")) + { + hostnameUri = $"http://{hostnameUri}"; + isWebsite = true; + } + else if(true) + { + isWebsite = hostnameUri.StartsWith("http") && hostnameUri.Contains("."); + } + + if(isWebsite && Uri.TryCreate(LoginUri, UriKind.Absolute, out Uri u)) + { + Icon = "https://icons.bitwarden.com/" + u.Host + "/icon.png"; + } + Subtitle = LoginUsername; break; case CipherType.SecureNote: + Icon = "note.png"; Subtitle = " "; break; case CipherType.Card: @@ -37,6 +64,7 @@ namespace Bit.App.Models.Page var cardBrand = cipher.Card?.Brand?.Decrypt(cipher.OrganizationId) ?? " "; CardCode = new Lazy(() => cipher.Card?.Code?.Decrypt(cipher.OrganizationId)); + Icon = "card.png"; Subtitle = cardBrand; if(!string.IsNullOrWhiteSpace(CardNumber) && CardNumber.Length >= 4) { @@ -51,6 +79,7 @@ namespace Bit.App.Models.Page var firstName = cipher.Identity?.FirstName?.Decrypt(cipher.OrganizationId) ?? " "; var lastName = cipher.Identity?.LastName?.Decrypt(cipher.OrganizationId) ?? " "; + Icon = "id.png"; Subtitle = " "; if(!string.IsNullOrWhiteSpace(firstName)) { @@ -77,11 +106,13 @@ namespace Bit.App.Models.Page public string Name { get; set; } public string Subtitle { get; set; } public CipherType Type { get; set; } + public string Icon { get; set; } + public string Image { get; set; } // Login metadata public string LoginUsername { get; set; } public Lazy LoginPassword { get; set; } - public Lazy LoginUri { get; set; } + public string LoginUri { get; set; } public Lazy LoginTotp { get; set; } // Login metadata diff --git a/src/App/Pages/Vault/VaultListCiphersPage.cs b/src/App/Pages/Vault/VaultListCiphersPage.cs index ca581f250..9748b94cd 100644 --- a/src/App/Pages/Vault/VaultListCiphersPage.cs +++ b/src/App/Pages/Vault/VaultListCiphersPage.cs @@ -434,8 +434,8 @@ namespace Bit.App.Pages { buttons.Add(AppResources.CopyUsername); } - if(!string.IsNullOrWhiteSpace(cipher.LoginUri.Value) && (cipher.LoginUri.Value.StartsWith("http://") - || cipher.LoginUri.Value.StartsWith("https://"))) + if(!string.IsNullOrWhiteSpace(cipher.LoginUri) && (cipher.LoginUri.StartsWith("http://") + || cipher.LoginUri.StartsWith("https://"))) { buttons.Add(AppResources.GoToWebsite); } @@ -474,7 +474,7 @@ namespace Bit.App.Pages } else if(selection == AppResources.GoToWebsite) { - Device.OpenUri(new Uri(cipher.LoginUri.Value)); + Device.OpenUri(new Uri(cipher.LoginUri)); } else if(selection == AppResources.CopyNumber) {