diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj
index d4e820d1b..4d7449248 100644
--- a/src/Android/Android.csproj
+++ b/src/Android/Android.csproj
@@ -942,6 +942,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Android/Resources/Resource.Designer.cs b/src/Android/Resources/Resource.Designer.cs
index 4ed63b046..ab8c11390 100644
--- a/src/Android/Resources/Resource.Designer.cs
+++ b/src/Android/Resources/Resource.Designer.cs
@@ -2314,517 +2314,523 @@ namespace Bit.Android
public const int camera = 2130837583;
// aapt resource value: 0x7f020050
- public const int cloudup = 2130837584;
+ public const int clipboard = 2130837584;
// aapt resource value: 0x7f020051
- public const int cog = 2130837585;
+ public const int cloudup = 2130837585;
// aapt resource value: 0x7f020052
- public const int cogs = 2130837586;
+ public const int cog = 2130837586;
// aapt resource value: 0x7f020053
- public const int cogs_selected = 2130837587;
+ public const int cogs = 2130837587;
// aapt resource value: 0x7f020054
- public const int common_full_open_on_phone = 2130837588;
+ public const int cogs_selected = 2130837588;
// aapt resource value: 0x7f020055
- public const int common_google_signin_btn_icon_dark = 2130837589;
+ public const int common_full_open_on_phone = 2130837589;
// aapt resource value: 0x7f020056
- public const int common_google_signin_btn_icon_dark_disabled = 2130837590;
+ public const int common_google_signin_btn_icon_dark = 2130837590;
// aapt resource value: 0x7f020057
- public const int common_google_signin_btn_icon_dark_focused = 2130837591;
+ public const int common_google_signin_btn_icon_dark_disabled = 2130837591;
// aapt resource value: 0x7f020058
- public const int common_google_signin_btn_icon_dark_normal = 2130837592;
+ public const int common_google_signin_btn_icon_dark_focused = 2130837592;
// aapt resource value: 0x7f020059
- public const int common_google_signin_btn_icon_dark_pressed = 2130837593;
+ public const int common_google_signin_btn_icon_dark_normal = 2130837593;
// aapt resource value: 0x7f02005a
- public const int common_google_signin_btn_icon_light = 2130837594;
+ public const int common_google_signin_btn_icon_dark_pressed = 2130837594;
// aapt resource value: 0x7f02005b
- public const int common_google_signin_btn_icon_light_disabled = 2130837595;
+ public const int common_google_signin_btn_icon_light = 2130837595;
// aapt resource value: 0x7f02005c
- public const int common_google_signin_btn_icon_light_focused = 2130837596;
+ public const int common_google_signin_btn_icon_light_disabled = 2130837596;
// aapt resource value: 0x7f02005d
- public const int common_google_signin_btn_icon_light_normal = 2130837597;
+ public const int common_google_signin_btn_icon_light_focused = 2130837597;
// aapt resource value: 0x7f02005e
- public const int common_google_signin_btn_icon_light_pressed = 2130837598;
+ public const int common_google_signin_btn_icon_light_normal = 2130837598;
// aapt resource value: 0x7f02005f
- public const int common_google_signin_btn_text_dark = 2130837599;
+ public const int common_google_signin_btn_icon_light_pressed = 2130837599;
// aapt resource value: 0x7f020060
- public const int common_google_signin_btn_text_dark_disabled = 2130837600;
+ public const int common_google_signin_btn_text_dark = 2130837600;
// aapt resource value: 0x7f020061
- public const int common_google_signin_btn_text_dark_focused = 2130837601;
+ public const int common_google_signin_btn_text_dark_disabled = 2130837601;
// aapt resource value: 0x7f020062
- public const int common_google_signin_btn_text_dark_normal = 2130837602;
+ public const int common_google_signin_btn_text_dark_focused = 2130837602;
// aapt resource value: 0x7f020063
- public const int common_google_signin_btn_text_dark_pressed = 2130837603;
+ public const int common_google_signin_btn_text_dark_normal = 2130837603;
// aapt resource value: 0x7f020064
- public const int common_google_signin_btn_text_light = 2130837604;
+ public const int common_google_signin_btn_text_dark_pressed = 2130837604;
// aapt resource value: 0x7f020065
- public const int common_google_signin_btn_text_light_disabled = 2130837605;
+ public const int common_google_signin_btn_text_light = 2130837605;
// aapt resource value: 0x7f020066
- public const int common_google_signin_btn_text_light_focused = 2130837606;
+ public const int common_google_signin_btn_text_light_disabled = 2130837606;
// aapt resource value: 0x7f020067
- public const int common_google_signin_btn_text_light_normal = 2130837607;
+ public const int common_google_signin_btn_text_light_focused = 2130837607;
// aapt resource value: 0x7f020068
- public const int common_google_signin_btn_text_light_pressed = 2130837608;
+ public const int common_google_signin_btn_text_light_normal = 2130837608;
// aapt resource value: 0x7f020069
- public const int common_ic_googleplayservices = 2130837609;
+ public const int common_google_signin_btn_text_light_pressed = 2130837609;
// aapt resource value: 0x7f02006a
- public const int common_plus_signin_btn_icon_dark = 2130837610;
+ public const int common_ic_googleplayservices = 2130837610;
// aapt resource value: 0x7f02006b
- public const int common_plus_signin_btn_icon_dark_disabled = 2130837611;
+ public const int common_plus_signin_btn_icon_dark = 2130837611;
// aapt resource value: 0x7f02006c
- public const int common_plus_signin_btn_icon_dark_focused = 2130837612;
+ public const int common_plus_signin_btn_icon_dark_disabled = 2130837612;
// aapt resource value: 0x7f02006d
- public const int common_plus_signin_btn_icon_dark_normal = 2130837613;
+ public const int common_plus_signin_btn_icon_dark_focused = 2130837613;
// aapt resource value: 0x7f02006e
- public const int common_plus_signin_btn_icon_dark_pressed = 2130837614;
+ public const int common_plus_signin_btn_icon_dark_normal = 2130837614;
// aapt resource value: 0x7f02006f
- public const int common_plus_signin_btn_icon_light = 2130837615;
+ public const int common_plus_signin_btn_icon_dark_pressed = 2130837615;
// aapt resource value: 0x7f020070
- public const int common_plus_signin_btn_icon_light_disabled = 2130837616;
+ public const int common_plus_signin_btn_icon_light = 2130837616;
// aapt resource value: 0x7f020071
- public const int common_plus_signin_btn_icon_light_focused = 2130837617;
+ public const int common_plus_signin_btn_icon_light_disabled = 2130837617;
// aapt resource value: 0x7f020072
- public const int common_plus_signin_btn_icon_light_normal = 2130837618;
+ public const int common_plus_signin_btn_icon_light_focused = 2130837618;
// aapt resource value: 0x7f020073
- public const int common_plus_signin_btn_icon_light_pressed = 2130837619;
+ public const int common_plus_signin_btn_icon_light_normal = 2130837619;
// aapt resource value: 0x7f020074
- public const int common_plus_signin_btn_text_dark = 2130837620;
+ public const int common_plus_signin_btn_icon_light_pressed = 2130837620;
// aapt resource value: 0x7f020075
- public const int common_plus_signin_btn_text_dark_disabled = 2130837621;
+ public const int common_plus_signin_btn_text_dark = 2130837621;
// aapt resource value: 0x7f020076
- public const int common_plus_signin_btn_text_dark_focused = 2130837622;
+ public const int common_plus_signin_btn_text_dark_disabled = 2130837622;
// aapt resource value: 0x7f020077
- public const int common_plus_signin_btn_text_dark_normal = 2130837623;
+ public const int common_plus_signin_btn_text_dark_focused = 2130837623;
// aapt resource value: 0x7f020078
- public const int common_plus_signin_btn_text_dark_pressed = 2130837624;
+ public const int common_plus_signin_btn_text_dark_normal = 2130837624;
// aapt resource value: 0x7f020079
- public const int common_plus_signin_btn_text_light = 2130837625;
+ public const int common_plus_signin_btn_text_dark_pressed = 2130837625;
// aapt resource value: 0x7f02007a
- public const int common_plus_signin_btn_text_light_disabled = 2130837626;
+ public const int common_plus_signin_btn_text_light = 2130837626;
// aapt resource value: 0x7f02007b
- public const int common_plus_signin_btn_text_light_focused = 2130837627;
+ public const int common_plus_signin_btn_text_light_disabled = 2130837627;
// aapt resource value: 0x7f02007c
- public const int common_plus_signin_btn_text_light_normal = 2130837628;
+ public const int common_plus_signin_btn_text_light_focused = 2130837628;
// aapt resource value: 0x7f02007d
- public const int common_plus_signin_btn_text_light_pressed = 2130837629;
+ public const int common_plus_signin_btn_text_light_normal = 2130837629;
// aapt resource value: 0x7f02007e
- public const int design_fab_background = 2130837630;
+ public const int common_plus_signin_btn_text_light_pressed = 2130837630;
// aapt resource value: 0x7f02007f
- public const int design_snackbar_background = 2130837631;
+ public const int design_fab_background = 2130837631;
// aapt resource value: 0x7f020080
- public const int download = 2130837632;
+ public const int design_snackbar_background = 2130837632;
// aapt resource value: 0x7f020081
- public const int envelope = 2130837633;
+ public const int download = 2130837633;
// aapt resource value: 0x7f020082
- public const int eye = 2130837634;
+ public const int envelope = 2130837634;
// aapt resource value: 0x7f020083
- public const int eye_slash = 2130837635;
+ public const int eye = 2130837635;
// aapt resource value: 0x7f020084
- public const int fa_lock = 2130837636;
+ public const int eye_slash = 2130837636;
// aapt resource value: 0x7f020085
- public const int fa_lock_selected = 2130837637;
+ public const int fa_lock = 2130837637;
// aapt resource value: 0x7f020086
- public const int fingerprint = 2130837638;
+ public const int fa_lock_selected = 2130837638;
// aapt resource value: 0x7f020087
- public const int fingerprint_white = 2130837639;
+ public const int fingerprint = 2130837639;
// aapt resource value: 0x7f020088
- public const int folder = 2130837640;
+ public const int fingerprint_white = 2130837640;
// aapt resource value: 0x7f020089
- public const int globe = 2130837641;
+ public const int folder = 2130837641;
// aapt resource value: 0x7f02008a
- public const int hockeyapp_btn_background = 2130837642;
+ public const int globe = 2130837642;
// aapt resource value: 0x7f02008b
- public const int ic_audiotrack = 2130837643;
+ public const int hockeyapp_btn_background = 2130837643;
// aapt resource value: 0x7f02008c
- public const int ic_audiotrack_light = 2130837644;
+ public const int ic_audiotrack = 2130837644;
// aapt resource value: 0x7f02008d
- public const int ic_bluetooth_grey = 2130837645;
+ public const int ic_audiotrack_light = 2130837645;
// aapt resource value: 0x7f02008e
- public const int ic_bluetooth_white = 2130837646;
+ public const int ic_bluetooth_grey = 2130837646;
// aapt resource value: 0x7f02008f
- public const int ic_cast_dark = 2130837647;
+ public const int ic_bluetooth_white = 2130837647;
// aapt resource value: 0x7f020090
- public const int ic_cast_disabled_light = 2130837648;
+ public const int ic_cast_dark = 2130837648;
// aapt resource value: 0x7f020091
- public const int ic_cast_grey = 2130837649;
+ public const int ic_cast_disabled_light = 2130837649;
// aapt resource value: 0x7f020092
- public const int ic_cast_light = 2130837650;
+ public const int ic_cast_grey = 2130837650;
// aapt resource value: 0x7f020093
- public const int ic_cast_off_light = 2130837651;
+ public const int ic_cast_light = 2130837651;
// aapt resource value: 0x7f020094
- public const int ic_cast_on_0_light = 2130837652;
+ public const int ic_cast_off_light = 2130837652;
// aapt resource value: 0x7f020095
- public const int ic_cast_on_1_light = 2130837653;
+ public const int ic_cast_on_0_light = 2130837653;
// aapt resource value: 0x7f020096
- public const int ic_cast_on_2_light = 2130837654;
+ public const int ic_cast_on_1_light = 2130837654;
// aapt resource value: 0x7f020097
- public const int ic_cast_on_light = 2130837655;
+ public const int ic_cast_on_2_light = 2130837655;
// aapt resource value: 0x7f020098
- public const int ic_cast_white = 2130837656;
+ public const int ic_cast_on_light = 2130837656;
// aapt resource value: 0x7f020099
- public const int ic_close_dark = 2130837657;
+ public const int ic_cast_white = 2130837657;
// aapt resource value: 0x7f02009a
- public const int ic_close_light = 2130837658;
+ public const int ic_close_dark = 2130837658;
// aapt resource value: 0x7f02009b
- public const int ic_collapse = 2130837659;
+ public const int ic_close_light = 2130837659;
// aapt resource value: 0x7f02009c
- public const int ic_collapse_00000 = 2130837660;
+ public const int ic_collapse = 2130837660;
// aapt resource value: 0x7f02009d
- public const int ic_collapse_00001 = 2130837661;
+ public const int ic_collapse_00000 = 2130837661;
// aapt resource value: 0x7f02009e
- public const int ic_collapse_00002 = 2130837662;
+ public const int ic_collapse_00001 = 2130837662;
// aapt resource value: 0x7f02009f
- public const int ic_collapse_00003 = 2130837663;
+ public const int ic_collapse_00002 = 2130837663;
// aapt resource value: 0x7f0200a0
- public const int ic_collapse_00004 = 2130837664;
+ public const int ic_collapse_00003 = 2130837664;
// aapt resource value: 0x7f0200a1
- public const int ic_collapse_00005 = 2130837665;
+ public const int ic_collapse_00004 = 2130837665;
// aapt resource value: 0x7f0200a2
- public const int ic_collapse_00006 = 2130837666;
+ public const int ic_collapse_00005 = 2130837666;
// aapt resource value: 0x7f0200a3
- public const int ic_collapse_00007 = 2130837667;
+ public const int ic_collapse_00006 = 2130837667;
// aapt resource value: 0x7f0200a4
- public const int ic_collapse_00008 = 2130837668;
+ public const int ic_collapse_00007 = 2130837668;
// aapt resource value: 0x7f0200a5
- public const int ic_collapse_00009 = 2130837669;
+ public const int ic_collapse_00008 = 2130837669;
// aapt resource value: 0x7f0200a6
- public const int ic_collapse_00010 = 2130837670;
+ public const int ic_collapse_00009 = 2130837670;
// aapt resource value: 0x7f0200a7
- public const int ic_collapse_00011 = 2130837671;
+ public const int ic_collapse_00010 = 2130837671;
// aapt resource value: 0x7f0200a8
- public const int ic_collapse_00012 = 2130837672;
+ public const int ic_collapse_00011 = 2130837672;
// aapt resource value: 0x7f0200a9
- public const int ic_collapse_00013 = 2130837673;
+ public const int ic_collapse_00012 = 2130837673;
// aapt resource value: 0x7f0200aa
- public const int ic_collapse_00014 = 2130837674;
+ public const int ic_collapse_00013 = 2130837674;
// aapt resource value: 0x7f0200ab
- public const int ic_collapse_00015 = 2130837675;
+ public const int ic_collapse_00014 = 2130837675;
// aapt resource value: 0x7f0200ac
- public const int ic_errorstatus = 2130837676;
+ public const int ic_collapse_00015 = 2130837676;
// aapt resource value: 0x7f0200ad
- public const int ic_expand = 2130837677;
+ public const int ic_errorstatus = 2130837677;
// aapt resource value: 0x7f0200ae
- public const int ic_expand_00000 = 2130837678;
+ public const int ic_expand = 2130837678;
// aapt resource value: 0x7f0200af
- public const int ic_expand_00001 = 2130837679;
+ public const int ic_expand_00000 = 2130837679;
// aapt resource value: 0x7f0200b0
- public const int ic_expand_00002 = 2130837680;
+ public const int ic_expand_00001 = 2130837680;
// aapt resource value: 0x7f0200b1
- public const int ic_expand_00003 = 2130837681;
+ public const int ic_expand_00002 = 2130837681;
// aapt resource value: 0x7f0200b2
- public const int ic_expand_00004 = 2130837682;
+ public const int ic_expand_00003 = 2130837682;
// aapt resource value: 0x7f0200b3
- public const int ic_expand_00005 = 2130837683;
+ public const int ic_expand_00004 = 2130837683;
// aapt resource value: 0x7f0200b4
- public const int ic_expand_00006 = 2130837684;
+ public const int ic_expand_00005 = 2130837684;
// aapt resource value: 0x7f0200b5
- public const int ic_expand_00007 = 2130837685;
+ public const int ic_expand_00006 = 2130837685;
// aapt resource value: 0x7f0200b6
- public const int ic_expand_00008 = 2130837686;
+ public const int ic_expand_00007 = 2130837686;
// aapt resource value: 0x7f0200b7
- public const int ic_expand_00009 = 2130837687;
+ public const int ic_expand_00008 = 2130837687;
// aapt resource value: 0x7f0200b8
- public const int ic_expand_00010 = 2130837688;
+ public const int ic_expand_00009 = 2130837688;
// aapt resource value: 0x7f0200b9
- public const int ic_expand_00011 = 2130837689;
+ public const int ic_expand_00010 = 2130837689;
// aapt resource value: 0x7f0200ba
- public const int ic_expand_00012 = 2130837690;
+ public const int ic_expand_00011 = 2130837690;
// aapt resource value: 0x7f0200bb
- public const int ic_expand_00013 = 2130837691;
+ public const int ic_expand_00012 = 2130837691;
// aapt resource value: 0x7f0200bc
- public const int ic_expand_00014 = 2130837692;
+ public const int ic_expand_00013 = 2130837692;
// aapt resource value: 0x7f0200bd
- public const int ic_expand_00015 = 2130837693;
+ public const int ic_expand_00014 = 2130837693;
// aapt resource value: 0x7f0200be
- public const int ic_media_pause = 2130837694;
+ public const int ic_expand_00015 = 2130837694;
// aapt resource value: 0x7f0200bf
- public const int ic_media_play = 2130837695;
+ public const int ic_media_pause = 2130837695;
// aapt resource value: 0x7f0200c0
- public const int ic_media_route_disabled_mono_dark = 2130837696;
+ public const int ic_media_play = 2130837696;
// aapt resource value: 0x7f0200c1
- public const int ic_media_route_off_mono_dark = 2130837697;
+ public const int ic_media_route_disabled_mono_dark = 2130837697;
// aapt resource value: 0x7f0200c2
- public const int ic_media_route_on_0_mono_dark = 2130837698;
+ public const int ic_media_route_off_mono_dark = 2130837698;
// aapt resource value: 0x7f0200c3
- public const int ic_media_route_on_1_mono_dark = 2130837699;
+ public const int ic_media_route_on_0_mono_dark = 2130837699;
// aapt resource value: 0x7f0200c4
- public const int ic_media_route_on_2_mono_dark = 2130837700;
+ public const int ic_media_route_on_1_mono_dark = 2130837700;
// aapt resource value: 0x7f0200c5
- public const int ic_media_route_on_mono_dark = 2130837701;
+ public const int ic_media_route_on_2_mono_dark = 2130837701;
// aapt resource value: 0x7f0200c6
- public const int ic_pause_dark = 2130837702;
+ public const int ic_media_route_on_mono_dark = 2130837702;
// aapt resource value: 0x7f0200c7
- public const int ic_pause_light = 2130837703;
+ public const int ic_pause_dark = 2130837703;
// aapt resource value: 0x7f0200c8
- public const int ic_play_dark = 2130837704;
+ public const int ic_pause_light = 2130837704;
// aapt resource value: 0x7f0200c9
- public const int ic_play_light = 2130837705;
+ public const int ic_play_dark = 2130837705;
// aapt resource value: 0x7f0200ca
- public const int ic_speaker_dark = 2130837706;
+ public const int ic_play_light = 2130837706;
// aapt resource value: 0x7f0200cb
- public const int ic_speaker_group_dark = 2130837707;
+ public const int ic_speaker_dark = 2130837707;
// aapt resource value: 0x7f0200cc
- public const int ic_speaker_group_light = 2130837708;
+ public const int ic_speaker_group_dark = 2130837708;
// aapt resource value: 0x7f0200cd
- public const int ic_speaker_light = 2130837709;
+ public const int ic_speaker_group_light = 2130837709;
// aapt resource value: 0x7f0200ce
- public const int ic_successstatus = 2130837710;
+ public const int ic_speaker_light = 2130837710;
// aapt resource value: 0x7f0200cf
- public const int ic_tv_dark = 2130837711;
+ public const int ic_successstatus = 2130837711;
// aapt resource value: 0x7f0200d0
- public const int ic_tv_light = 2130837712;
+ public const int ic_tv_dark = 2130837712;
// aapt resource value: 0x7f0200d1
- public const int icon = 2130837713;
+ public const int ic_tv_light = 2130837713;
// aapt resource value: 0x7f0200d2
- public const int ion_chevron_right = 2130837714;
+ public const int icon = 2130837714;
// aapt resource value: 0x7f0200d3
- public const int lightbulb = 2130837715;
+ public const int ion_chevron_right = 2130837715;
// aapt resource value: 0x7f0200d4
- public const int list_selector = 2130837716;
+ public const int launch = 2130837716;
// aapt resource value: 0x7f0200d5
- public const int @lock = 2130837717;
+ public const int lightbulb = 2130837717;
// aapt resource value: 0x7f0200d6
- public const int logo = 2130837718;
+ public const int list_selector = 2130837718;
// aapt resource value: 0x7f0200d7
- public const int more = 2130837719;
+ public const int @lock = 2130837719;
// aapt resource value: 0x7f0200d8
- public const int mr_dialog_material_background_dark = 2130837720;
+ public const int logo = 2130837720;
// aapt resource value: 0x7f0200d9
- public const int mr_dialog_material_background_light = 2130837721;
+ public const int more = 2130837721;
// aapt resource value: 0x7f0200da
- public const int mr_ic_audiotrack_light = 2130837722;
+ public const int mr_dialog_material_background_dark = 2130837722;
// aapt resource value: 0x7f0200db
- public const int mr_ic_cast_dark = 2130837723;
+ public const int mr_dialog_material_background_light = 2130837723;
// aapt resource value: 0x7f0200dc
- public const int mr_ic_cast_light = 2130837724;
+ public const int mr_ic_audiotrack_light = 2130837724;
// aapt resource value: 0x7f0200dd
- public const int mr_ic_close_dark = 2130837725;
+ public const int mr_ic_cast_dark = 2130837725;
// aapt resource value: 0x7f0200de
- public const int mr_ic_close_light = 2130837726;
+ public const int mr_ic_cast_light = 2130837726;
// aapt resource value: 0x7f0200df
- public const int mr_ic_media_route_connecting_mono_dark = 2130837727;
+ public const int mr_ic_close_dark = 2130837727;
// aapt resource value: 0x7f0200e0
- public const int mr_ic_media_route_connecting_mono_light = 2130837728;
+ public const int mr_ic_close_light = 2130837728;
// aapt resource value: 0x7f0200e1
- public const int mr_ic_media_route_mono_dark = 2130837729;
+ public const int mr_ic_media_route_connecting_mono_dark = 2130837729;
// aapt resource value: 0x7f0200e2
- public const int mr_ic_media_route_mono_light = 2130837730;
+ public const int mr_ic_media_route_connecting_mono_light = 2130837730;
// aapt resource value: 0x7f0200e3
- public const int mr_ic_pause_dark = 2130837731;
+ public const int mr_ic_media_route_mono_dark = 2130837731;
// aapt resource value: 0x7f0200e4
- public const int mr_ic_pause_light = 2130837732;
+ public const int mr_ic_media_route_mono_light = 2130837732;
// aapt resource value: 0x7f0200e5
- public const int mr_ic_play_dark = 2130837733;
+ public const int mr_ic_pause_dark = 2130837733;
// aapt resource value: 0x7f0200e6
- public const int mr_ic_play_light = 2130837734;
+ public const int mr_ic_pause_light = 2130837734;
// aapt resource value: 0x7f0200e7
- public const int notification_sm = 2130837735;
-
- // aapt resource value: 0x7f0200fa
- public const int notification_template_icon_bg = 2130837754;
+ public const int mr_ic_play_dark = 2130837735;
// aapt resource value: 0x7f0200e8
- public const int paperclip = 2130837736;
+ public const int mr_ic_play_light = 2130837736;
// aapt resource value: 0x7f0200e9
- public const int plus = 2130837737;
+ public const int notification_sm = 2130837737;
+
+ // aapt resource value: 0x7f0200fc
+ public const int notification_template_icon_bg = 2130837756;
// aapt resource value: 0x7f0200ea
- public const int refresh = 2130837738;
+ public const int paperclip = 2130837738;
// aapt resource value: 0x7f0200eb
- public const int roundedbg = 2130837739;
+ public const int plus = 2130837739;
// aapt resource value: 0x7f0200ec
- public const int roundedbgdark = 2130837740;
+ public const int refresh = 2130837740;
// aapt resource value: 0x7f0200ed
- public const int search = 2130837741;
+ public const int roundedbg = 2130837741;
// aapt resource value: 0x7f0200ee
- public const int share = 2130837742;
+ public const int roundedbgdark = 2130837742;
// aapt resource value: 0x7f0200ef
- public const int share_tools = 2130837743;
+ public const int search = 2130837743;
// aapt resource value: 0x7f0200f0
- public const int shield = 2130837744;
+ public const int share = 2130837744;
// aapt resource value: 0x7f0200f1
- public const int splash_screen = 2130837745;
+ public const int share_tools = 2130837745;
// aapt resource value: 0x7f0200f2
- public const int star = 2130837746;
+ public const int shield = 2130837746;
// aapt resource value: 0x7f0200f3
- public const int star_selected = 2130837747;
+ public const int splash_screen = 2130837747;
// aapt resource value: 0x7f0200f4
- public const int tools = 2130837748;
+ public const int star = 2130837748;
// aapt resource value: 0x7f0200f5
- public const int tools_selected = 2130837749;
+ public const int star_selected = 2130837749;
// aapt resource value: 0x7f0200f6
- public const int trash = 2130837750;
+ public const int tools = 2130837750;
// aapt resource value: 0x7f0200f7
- public const int upload = 2130837751;
+ public const int tools_selected = 2130837751;
// aapt resource value: 0x7f0200f8
- public const int user = 2130837752;
+ public const int trash = 2130837752;
// aapt resource value: 0x7f0200f9
- public const int yubikey = 2130837753;
+ public const int upload = 2130837753;
+
+ // aapt resource value: 0x7f0200fa
+ public const int user = 2130837754;
+
+ // aapt resource value: 0x7f0200fb
+ public const int yubikey = 2130837755;
static Drawable()
{
diff --git a/src/Android/Resources/drawable-hdpi/clipboard.png b/src/Android/Resources/drawable-hdpi/clipboard.png
new file mode 100644
index 000000000..bc3b024c8
Binary files /dev/null and b/src/Android/Resources/drawable-hdpi/clipboard.png differ
diff --git a/src/Android/Resources/drawable-hdpi/launch.png b/src/Android/Resources/drawable-hdpi/launch.png
new file mode 100644
index 000000000..44131583b
Binary files /dev/null and b/src/Android/Resources/drawable-hdpi/launch.png differ
diff --git a/src/Android/Resources/drawable-xhdpi/clipboard.png b/src/Android/Resources/drawable-xhdpi/clipboard.png
new file mode 100644
index 000000000..1e939af92
Binary files /dev/null and b/src/Android/Resources/drawable-xhdpi/clipboard.png differ
diff --git a/src/Android/Resources/drawable-xhdpi/launch.png b/src/Android/Resources/drawable-xhdpi/launch.png
new file mode 100644
index 000000000..3b67da0d8
Binary files /dev/null and b/src/Android/Resources/drawable-xhdpi/launch.png differ
diff --git a/src/Android/Resources/drawable-xxhdpi/clipboard.png b/src/Android/Resources/drawable-xxhdpi/clipboard.png
new file mode 100644
index 000000000..e8ce1e1ea
Binary files /dev/null and b/src/Android/Resources/drawable-xxhdpi/clipboard.png differ
diff --git a/src/Android/Resources/drawable-xxhdpi/launch.png b/src/Android/Resources/drawable-xxhdpi/launch.png
new file mode 100644
index 000000000..c6d13c252
Binary files /dev/null and b/src/Android/Resources/drawable-xxhdpi/launch.png differ
diff --git a/src/Android/Resources/drawable-xxxhdpi/clipboard.png b/src/Android/Resources/drawable-xxxhdpi/clipboard.png
new file mode 100644
index 000000000..633580c6e
Binary files /dev/null and b/src/Android/Resources/drawable-xxxhdpi/clipboard.png differ
diff --git a/src/Android/Resources/drawable-xxxhdpi/launch.png b/src/Android/Resources/drawable-xxxhdpi/launch.png
new file mode 100644
index 000000000..ae4826f6e
Binary files /dev/null and b/src/Android/Resources/drawable-xxxhdpi/launch.png differ
diff --git a/src/Android/Resources/drawable/clipboard.png b/src/Android/Resources/drawable/clipboard.png
new file mode 100644
index 000000000..c35d2563e
Binary files /dev/null and b/src/Android/Resources/drawable/clipboard.png differ
diff --git a/src/Android/Resources/drawable/launch.png b/src/Android/Resources/drawable/launch.png
new file mode 100644
index 000000000..103366193
Binary files /dev/null and b/src/Android/Resources/drawable/launch.png differ
diff --git a/src/App/Controls/FormEntryCell.cs b/src/App/Controls/FormEntryCell.cs
index 7dbe76498..074386373 100644
--- a/src/App/Controls/FormEntryCell.cs
+++ b/src/App/Controls/FormEntryCell.cs
@@ -129,6 +129,7 @@ namespace Bit.App.Controls
{
Button.Padding = new Thickness(0);
Button.BackgroundColor = Color.Transparent;
+ Button.WidthRequest = 40;
}
}
diff --git a/src/App/Controls/LabeledValueCell.cs b/src/App/Controls/LabeledValueCell.cs
index 6a74e11ed..ca77575e8 100644
--- a/src/App/Controls/LabeledValueCell.cs
+++ b/src/App/Controls/LabeledValueCell.cs
@@ -7,8 +7,8 @@ namespace Bit.App.Controls
public LabeledValueCell(
string labelText = null,
string valueText = null,
- string button1Text = null,
- string button2Text = null,
+ string button1Image = null,
+ string button2Image = null,
string subText = null)
{
var containerStackLayout = new StackLayout
@@ -69,11 +69,11 @@ namespace Bit.App.Controls
buttonStackLayout.Children.Add(Sub);
}
- if(button1Text != null)
+ if(button1Image != null)
{
Button1 = new ExtendedButton
{
- Text = button1Text,
+ Image = button1Image,
HorizontalOptions = LayoutOptions.End,
VerticalOptions = LayoutOptions.Center,
Margin = new Thickness(0)
@@ -82,11 +82,11 @@ namespace Bit.App.Controls
buttonStackLayout.Children.Add(Button1);
}
- if(button2Text != null)
+ if(button2Image != null)
{
Button2 = new ExtendedButton
{
- Text = button2Text,
+ Image = button2Image,
HorizontalOptions = LayoutOptions.End,
VerticalOptions = LayoutOptions.Center,
Margin = new Thickness(0)
@@ -103,11 +103,13 @@ namespace Bit.App.Controls
{
Button1.Padding = new Thickness(0);
Button1.BackgroundColor = Color.Transparent;
+ Button1.WidthRequest = 40;
}
if(Button2 != null)
{
Button2.Padding = new Thickness(0);
Button2.BackgroundColor = Color.Transparent;
+ Button2.WidthRequest = 40;
}
containerStackLayout.AdjustPaddingForDevice();
diff --git a/src/App/Pages/Vault/VaultAddCipherPage.cs b/src/App/Pages/Vault/VaultAddCipherPage.cs
index 16c6b2d79..086b62c01 100644
--- a/src/App/Pages/Vault/VaultAddCipherPage.cs
+++ b/src/App/Pages/Vault/VaultAddCipherPage.cs
@@ -481,18 +481,6 @@ namespace Bit.App.Pages
Table.RowHeight = -1;
Table.EstimatedRowHeight = 70;
}
- else if(Device.RuntimePlatform == Device.Android)
- {
- if(LoginPasswordCell?.Button != null)
- {
- LoginPasswordCell.Button.WidthRequest = 40;
- }
-
- if(LoginTotpCell?.Button != null)
- {
- LoginTotpCell.Button.WidthRequest = 40;
- }
- }
}
private void InitSave()
diff --git a/src/App/Pages/Vault/VaultCustomFieldsPage.cs b/src/App/Pages/Vault/VaultCustomFieldsPage.cs
index b76cc27bd..5e5c2b09c 100644
--- a/src/App/Pages/Vault/VaultCustomFieldsPage.cs
+++ b/src/App/Pages/Vault/VaultCustomFieldsPage.cs
@@ -183,20 +183,15 @@ namespace Bit.App.Pages
{
textFieldCell.Entry.FontFamily = Helpers.OnPlatform(
iOS: "Menlo-Regular", Android: "monospace", WinPhone: "Courier");
- textFieldCell.Button.Image = "eye";
+ textFieldCell.Button.Image = "eye.png";
textFieldCell.Button.Command = new Command(() =>
{
textFieldCell.Entry.InvokeToggleIsPassword();
textFieldCell.Button.Image =
- "eye" + (!textFieldCell.Entry.IsPasswordFromToggled ? "_slash" : string.Empty);
+ "eye" + (!textFieldCell.Entry.IsPasswordFromToggled ? "_slash" : string.Empty) + ".png";
});
}
- if(Device.RuntimePlatform == Device.Android && textFieldCell.Button != null)
- {
- textFieldCell.Button.WidthRequest = 40;
- }
-
textFieldCell.InitEvents();
FieldsSection.Add(textFieldCell);
break;
diff --git a/src/App/Pages/Vault/VaultEditCipherPage.cs b/src/App/Pages/Vault/VaultEditCipherPage.cs
index 110f6001b..7112dd648 100644
--- a/src/App/Pages/Vault/VaultEditCipherPage.cs
+++ b/src/App/Pages/Vault/VaultEditCipherPage.cs
@@ -65,7 +65,7 @@ namespace Bit.App.Pages
useButton: _deviceInfo.HasCamera);
if(_deviceInfo.HasCamera)
{
- TotpCell.Button.Image = "camera";
+ TotpCell.Button.Image = "camera.png";
}
TotpCell.Entry.Text = cipher.Login?.Totp?.Decrypt(cipher.OrganizationId);
TotpCell.Entry.DisableAutocapitalize = true;
@@ -75,7 +75,7 @@ namespace Bit.App.Pages
PasswordCell = new FormEntryCell(AppResources.Password, isPassword: true, nextElement: TotpCell.Entry,
useButton: true);
PasswordCell.Entry.Text = cipher.Login?.Password?.Decrypt(cipher.OrganizationId);
- PasswordCell.Button.Image = "eye";
+ PasswordCell.Button.Image = "eye.png";
PasswordCell.Entry.DisableAutocapitalize = true;
PasswordCell.Entry.Autocorrect = false;
PasswordCell.Entry.FontFamily = Helpers.OnPlatform(iOS: "Menlo-Regular", Android: "monospace", WinPhone: "Courier");
@@ -173,15 +173,6 @@ namespace Bit.App.Pages
table.RowHeight = -1;
table.EstimatedRowHeight = 70;
}
- else if(Device.RuntimePlatform == Device.Android)
- {
- PasswordCell.Button.WidthRequest = 40;
-
- if(TotpCell.Button != null)
- {
- TotpCell.Button.WidthRequest = 40;
- }
- }
var saveToolBarItem = new ToolbarItem(AppResources.Save, null, async () =>
{
diff --git a/src/App/Pages/Vault/VaultViewCipherPage.cs b/src/App/Pages/Vault/VaultViewCipherPage.cs
index 6c825e2b6..a2e646e07 100644
--- a/src/App/Pages/Vault/VaultViewCipherPage.cs
+++ b/src/App/Pages/Vault/VaultViewCipherPage.cs
@@ -64,14 +64,14 @@ namespace Bit.App.Pages
nameCell.Value.SetBinding(Label.TextProperty, nameof(VaultViewLoginPageModel.Name));
// Username
- UsernameCell = new LabeledValueCell(AppResources.Username, button1Text: AppResources.Copy);
+ UsernameCell = new LabeledValueCell(AppResources.Username, button1Image: "clipboard.png");
UsernameCell.Value.SetBinding(Label.TextProperty, nameof(VaultViewLoginPageModel.Username));
UsernameCell.Button1.Command = new Command(() => Copy(Model.Username, AppResources.Username));
UsernameCell.Value.LineBreakMode = LineBreakMode.WordWrap;
// Password
- PasswordCell = new LabeledValueCell(AppResources.Password, button1Text: string.Empty,
- button2Text: AppResources.Copy);
+ PasswordCell = new LabeledValueCell(AppResources.Password, button1Image: string.Empty,
+ button2Image: "clipboard.png");
PasswordCell.Value.SetBinding(Label.TextProperty, nameof(VaultViewLoginPageModel.MaskedPassword));
PasswordCell.Button1.SetBinding(Button.ImageProperty, nameof(VaultViewLoginPageModel.ShowHideImage));
if(Device.RuntimePlatform == Device.iOS)
@@ -84,7 +84,7 @@ namespace Bit.App.Pages
PasswordCell.Value.LineBreakMode = LineBreakMode.WordWrap;
// URI
- UriCell = new LabeledValueCell(AppResources.Website, button1Text: AppResources.Launch);
+ UriCell = new LabeledValueCell(AppResources.Website, button1Image: "launch.png");
UriCell.Value.SetBinding(Label.TextProperty, nameof(VaultViewLoginPageModel.UriHost));
UriCell.Button1.SetBinding(IsVisibleProperty, nameof(VaultViewLoginPageModel.ShowLaunch));
UriCell.Button1.Command = new Command(() =>
@@ -100,7 +100,7 @@ namespace Bit.App.Pages
});
// Totp
- TotpCodeCell = new LabeledValueCell(AppResources.VerificationCodeTotp, button1Text: AppResources.Copy, subText: "--");
+ TotpCodeCell = new LabeledValueCell(AppResources.VerificationCodeTotp, button1Image: "clipboard.png", subText: "--");
TotpCodeCell.Value.SetBinding(Label.TextProperty, nameof(VaultViewLoginPageModel.TotpCodeFormatted));
TotpCodeCell.Value.SetBinding(Label.TextColorProperty, nameof(VaultViewLoginPageModel.TotpColor));
TotpCodeCell.Button1.Command = new Command(() => Copy(Model.TotpCode, AppResources.VerificationCodeTotp));
@@ -140,15 +140,6 @@ namespace Bit.App.Pages
Table.RowHeight = -1;
Table.EstimatedRowHeight = 70;
}
- else if(Device.RuntimePlatform == Device.Android)
- {
- // NOTE: This is going to cause problems with i18n strings since various languages have difference string sizes
- PasswordCell.Button1.WidthRequest = 40;
- PasswordCell.Button2.WidthRequest = 59;
- UsernameCell.Button1.WidthRequest = 59;
- TotpCodeCell.Button1.WidthRequest = 59;
- UriCell.Button1.WidthRequest = 75;
- }
Title = AppResources.ViewItem;
Content = Table;
@@ -429,13 +420,13 @@ namespace Bit.App.Pages
}
public FieldViewCell(VaultViewCipherPage page, VaultViewLoginPageModel.Field field, bool? a)
- : base(field.Name, field.Value, AppResources.Copy)
+ : base(field.Name, field.Value, "clipboard.png")
{
Init(page, field, Button1);
}
public FieldViewCell(VaultViewCipherPage page, VaultViewLoginPageModel.Field field, bool? a, bool? b)
- : base(field.Name, field.MaskedValue, string.Empty, AppResources.Copy)
+ : base(field.Name, field.MaskedValue, string.Empty, "clipboard.png")
{
Value.FontFamily = Helpers.OnPlatform(iOS: "Menlo-Regular",
Android: "monospace", WinPhone: "Courier");
@@ -443,20 +434,19 @@ namespace Bit.App.Pages
{
Button1.Margin = new Thickness(10, 0);
}
-
- Button1.WidthRequest = 40;
+
Button1.Image = "eye";
Button1.Command = new Command(() =>
{
field.Revealed = !field.Revealed;
if(field.Revealed)
{
- Button1.Image = "eye_slash";
+ Button1.Image = "eye_slash.png";
Value.Text = field.Value;
}
else
{
- Button1.Image = "eye";
+ Button1.Image = "eye.png";
Value.Text = field.MaskedValue;
}
});
@@ -470,7 +460,6 @@ namespace Bit.App.Pages
if(copyButton != null)
{
copyButton.Command = new Command(() => page.Copy(field.Value, field.Name));
- copyButton.WidthRequest = 59;
}
}
}
diff --git a/src/UWP.Images/UWP.Images.projitems b/src/UWP.Images/UWP.Images.projitems
index 5eb620da8..c5f4a499a 100644
--- a/src/UWP.Images/UWP.Images.projitems
+++ b/src/UWP.Images/UWP.Images.projitems
@@ -10,6 +10,7 @@
+
@@ -25,6 +26,7 @@
+
diff --git a/src/UWP.Images/clipboard.png b/src/UWP.Images/clipboard.png
new file mode 100644
index 000000000..633580c6e
Binary files /dev/null and b/src/UWP.Images/clipboard.png differ
diff --git a/src/UWP.Images/launch.png b/src/UWP.Images/launch.png
new file mode 100644
index 000000000..ae4826f6e
Binary files /dev/null and b/src/UWP.Images/launch.png differ
diff --git a/src/iOS/Resources/clipboard.png b/src/iOS/Resources/clipboard.png
new file mode 100644
index 000000000..c35d2563e
Binary files /dev/null and b/src/iOS/Resources/clipboard.png differ
diff --git a/src/iOS/Resources/clipboard@2x.png b/src/iOS/Resources/clipboard@2x.png
new file mode 100644
index 000000000..1e939af92
Binary files /dev/null and b/src/iOS/Resources/clipboard@2x.png differ
diff --git a/src/iOS/Resources/clipboard@3x.png b/src/iOS/Resources/clipboard@3x.png
new file mode 100644
index 000000000..e8ce1e1ea
Binary files /dev/null and b/src/iOS/Resources/clipboard@3x.png differ
diff --git a/src/iOS/Resources/launch.png b/src/iOS/Resources/launch.png
new file mode 100644
index 000000000..103366193
Binary files /dev/null and b/src/iOS/Resources/launch.png differ
diff --git a/src/iOS/Resources/launch@2x.png b/src/iOS/Resources/launch@2x.png
new file mode 100644
index 000000000..3b67da0d8
Binary files /dev/null and b/src/iOS/Resources/launch@2x.png differ
diff --git a/src/iOS/Resources/launch@3x.png b/src/iOS/Resources/launch@3x.png
new file mode 100644
index 000000000..c6d13c252
Binary files /dev/null and b/src/iOS/Resources/launch@3x.png differ
diff --git a/src/iOS/iOS.csproj b/src/iOS/iOS.csproj
index 07c3a3bbd..bda76a012 100644
--- a/src/iOS/iOS.csproj
+++ b/src/iOS/iOS.csproj
@@ -745,6 +745,24 @@
false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+