diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj
index b993852c2..ab9b8edf2 100644
--- a/src/Android/Android.csproj
+++ b/src/Android/Android.csproj
@@ -951,6 +951,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Android/Resources/Resource.Designer.cs b/src/Android/Resources/Resource.Designer.cs
index 67d14c36c..7b92dd8c3 100644
--- a/src/Android/Resources/Resource.Designer.cs
+++ b/src/Android/Resources/Resource.Designer.cs
@@ -2307,508 +2307,511 @@ namespace Bit.Android
public const int cloudup = 2130837584;
// aapt resource value: 0x7f020051
- public const int cogs = 2130837585;
+ public const int cog = 2130837585;
// aapt resource value: 0x7f020052
- public const int cogs_selected = 2130837586;
+ public const int cogs = 2130837586;
// aapt resource value: 0x7f020053
- public const int common_full_open_on_phone = 2130837587;
+ public const int cogs_selected = 2130837587;
// aapt resource value: 0x7f020054
- public const int common_google_signin_btn_icon_dark = 2130837588;
+ public const int common_full_open_on_phone = 2130837588;
// aapt resource value: 0x7f020055
- public const int common_google_signin_btn_icon_dark_disabled = 2130837589;
+ public const int common_google_signin_btn_icon_dark = 2130837589;
// aapt resource value: 0x7f020056
- public const int common_google_signin_btn_icon_dark_focused = 2130837590;
+ public const int common_google_signin_btn_icon_dark_disabled = 2130837590;
// aapt resource value: 0x7f020057
- public const int common_google_signin_btn_icon_dark_normal = 2130837591;
+ public const int common_google_signin_btn_icon_dark_focused = 2130837591;
// aapt resource value: 0x7f020058
- public const int common_google_signin_btn_icon_dark_pressed = 2130837592;
+ public const int common_google_signin_btn_icon_dark_normal = 2130837592;
// aapt resource value: 0x7f020059
- public const int common_google_signin_btn_icon_light = 2130837593;
+ public const int common_google_signin_btn_icon_dark_pressed = 2130837593;
// aapt resource value: 0x7f02005a
- public const int common_google_signin_btn_icon_light_disabled = 2130837594;
+ public const int common_google_signin_btn_icon_light = 2130837594;
// aapt resource value: 0x7f02005b
- public const int common_google_signin_btn_icon_light_focused = 2130837595;
+ public const int common_google_signin_btn_icon_light_disabled = 2130837595;
// aapt resource value: 0x7f02005c
- public const int common_google_signin_btn_icon_light_normal = 2130837596;
+ public const int common_google_signin_btn_icon_light_focused = 2130837596;
// aapt resource value: 0x7f02005d
- public const int common_google_signin_btn_icon_light_pressed = 2130837597;
+ public const int common_google_signin_btn_icon_light_normal = 2130837597;
// aapt resource value: 0x7f02005e
- public const int common_google_signin_btn_text_dark = 2130837598;
+ public const int common_google_signin_btn_icon_light_pressed = 2130837598;
// aapt resource value: 0x7f02005f
- public const int common_google_signin_btn_text_dark_disabled = 2130837599;
+ public const int common_google_signin_btn_text_dark = 2130837599;
// aapt resource value: 0x7f020060
- public const int common_google_signin_btn_text_dark_focused = 2130837600;
+ public const int common_google_signin_btn_text_dark_disabled = 2130837600;
// aapt resource value: 0x7f020061
- public const int common_google_signin_btn_text_dark_normal = 2130837601;
+ public const int common_google_signin_btn_text_dark_focused = 2130837601;
// aapt resource value: 0x7f020062
- public const int common_google_signin_btn_text_dark_pressed = 2130837602;
+ public const int common_google_signin_btn_text_dark_normal = 2130837602;
// aapt resource value: 0x7f020063
- public const int common_google_signin_btn_text_light = 2130837603;
+ public const int common_google_signin_btn_text_dark_pressed = 2130837603;
// aapt resource value: 0x7f020064
- public const int common_google_signin_btn_text_light_disabled = 2130837604;
+ public const int common_google_signin_btn_text_light = 2130837604;
// aapt resource value: 0x7f020065
- public const int common_google_signin_btn_text_light_focused = 2130837605;
+ public const int common_google_signin_btn_text_light_disabled = 2130837605;
// aapt resource value: 0x7f020066
- public const int common_google_signin_btn_text_light_normal = 2130837606;
+ public const int common_google_signin_btn_text_light_focused = 2130837606;
// aapt resource value: 0x7f020067
- public const int common_google_signin_btn_text_light_pressed = 2130837607;
+ public const int common_google_signin_btn_text_light_normal = 2130837607;
// aapt resource value: 0x7f020068
- public const int common_ic_googleplayservices = 2130837608;
+ public const int common_google_signin_btn_text_light_pressed = 2130837608;
// aapt resource value: 0x7f020069
- public const int common_plus_signin_btn_icon_dark = 2130837609;
+ public const int common_ic_googleplayservices = 2130837609;
// aapt resource value: 0x7f02006a
- public const int common_plus_signin_btn_icon_dark_disabled = 2130837610;
+ public const int common_plus_signin_btn_icon_dark = 2130837610;
// aapt resource value: 0x7f02006b
- public const int common_plus_signin_btn_icon_dark_focused = 2130837611;
+ public const int common_plus_signin_btn_icon_dark_disabled = 2130837611;
// aapt resource value: 0x7f02006c
- public const int common_plus_signin_btn_icon_dark_normal = 2130837612;
+ public const int common_plus_signin_btn_icon_dark_focused = 2130837612;
// aapt resource value: 0x7f02006d
- public const int common_plus_signin_btn_icon_dark_pressed = 2130837613;
+ public const int common_plus_signin_btn_icon_dark_normal = 2130837613;
// aapt resource value: 0x7f02006e
- public const int common_plus_signin_btn_icon_light = 2130837614;
+ public const int common_plus_signin_btn_icon_dark_pressed = 2130837614;
// aapt resource value: 0x7f02006f
- public const int common_plus_signin_btn_icon_light_disabled = 2130837615;
+ public const int common_plus_signin_btn_icon_light = 2130837615;
// aapt resource value: 0x7f020070
- public const int common_plus_signin_btn_icon_light_focused = 2130837616;
+ public const int common_plus_signin_btn_icon_light_disabled = 2130837616;
// aapt resource value: 0x7f020071
- public const int common_plus_signin_btn_icon_light_normal = 2130837617;
+ public const int common_plus_signin_btn_icon_light_focused = 2130837617;
// aapt resource value: 0x7f020072
- public const int common_plus_signin_btn_icon_light_pressed = 2130837618;
+ public const int common_plus_signin_btn_icon_light_normal = 2130837618;
// aapt resource value: 0x7f020073
- public const int common_plus_signin_btn_text_dark = 2130837619;
+ public const int common_plus_signin_btn_icon_light_pressed = 2130837619;
// aapt resource value: 0x7f020074
- public const int common_plus_signin_btn_text_dark_disabled = 2130837620;
+ public const int common_plus_signin_btn_text_dark = 2130837620;
// aapt resource value: 0x7f020075
- public const int common_plus_signin_btn_text_dark_focused = 2130837621;
+ public const int common_plus_signin_btn_text_dark_disabled = 2130837621;
// aapt resource value: 0x7f020076
- public const int common_plus_signin_btn_text_dark_normal = 2130837622;
+ public const int common_plus_signin_btn_text_dark_focused = 2130837622;
// aapt resource value: 0x7f020077
- public const int common_plus_signin_btn_text_dark_pressed = 2130837623;
+ public const int common_plus_signin_btn_text_dark_normal = 2130837623;
// aapt resource value: 0x7f020078
- public const int common_plus_signin_btn_text_light = 2130837624;
+ public const int common_plus_signin_btn_text_dark_pressed = 2130837624;
// aapt resource value: 0x7f020079
- public const int common_plus_signin_btn_text_light_disabled = 2130837625;
+ public const int common_plus_signin_btn_text_light = 2130837625;
// aapt resource value: 0x7f02007a
- public const int common_plus_signin_btn_text_light_focused = 2130837626;
+ public const int common_plus_signin_btn_text_light_disabled = 2130837626;
// aapt resource value: 0x7f02007b
- public const int common_plus_signin_btn_text_light_normal = 2130837627;
+ public const int common_plus_signin_btn_text_light_focused = 2130837627;
// aapt resource value: 0x7f02007c
- public const int common_plus_signin_btn_text_light_pressed = 2130837628;
+ public const int common_plus_signin_btn_text_light_normal = 2130837628;
// aapt resource value: 0x7f02007d
- public const int design_fab_background = 2130837629;
+ public const int common_plus_signin_btn_text_light_pressed = 2130837629;
// aapt resource value: 0x7f02007e
- public const int design_snackbar_background = 2130837630;
+ public const int design_fab_background = 2130837630;
// aapt resource value: 0x7f02007f
- public const int download = 2130837631;
+ public const int design_snackbar_background = 2130837631;
// aapt resource value: 0x7f020080
- public const int envelope = 2130837632;
+ public const int download = 2130837632;
// aapt resource value: 0x7f020081
- public const int eye = 2130837633;
+ public const int envelope = 2130837633;
// aapt resource value: 0x7f020082
- public const int eye_slash = 2130837634;
+ public const int eye = 2130837634;
// aapt resource value: 0x7f020083
- public const int fa_lock = 2130837635;
+ public const int eye_slash = 2130837635;
// aapt resource value: 0x7f020084
- public const int fa_lock_selected = 2130837636;
+ public const int fa_lock = 2130837636;
// aapt resource value: 0x7f020085
- public const int fingerprint = 2130837637;
+ public const int fa_lock_selected = 2130837637;
// aapt resource value: 0x7f020086
- public const int fingerprint_white = 2130837638;
+ public const int fingerprint = 2130837638;
// aapt resource value: 0x7f020087
- public const int folder = 2130837639;
+ public const int fingerprint_white = 2130837639;
// aapt resource value: 0x7f020088
- public const int globe = 2130837640;
+ public const int folder = 2130837640;
// aapt resource value: 0x7f020089
- public const int hockeyapp_btn_background = 2130837641;
+ public const int globe = 2130837641;
// aapt resource value: 0x7f02008a
- public const int ic_audiotrack = 2130837642;
+ public const int hockeyapp_btn_background = 2130837642;
// aapt resource value: 0x7f02008b
- public const int ic_audiotrack_light = 2130837643;
+ public const int ic_audiotrack = 2130837643;
// aapt resource value: 0x7f02008c
- public const int ic_bluetooth_grey = 2130837644;
+ public const int ic_audiotrack_light = 2130837644;
// aapt resource value: 0x7f02008d
- public const int ic_bluetooth_white = 2130837645;
+ public const int ic_bluetooth_grey = 2130837645;
// aapt resource value: 0x7f02008e
- public const int ic_cast_dark = 2130837646;
+ public const int ic_bluetooth_white = 2130837646;
// aapt resource value: 0x7f02008f
- public const int ic_cast_disabled_light = 2130837647;
+ public const int ic_cast_dark = 2130837647;
// aapt resource value: 0x7f020090
- public const int ic_cast_grey = 2130837648;
+ public const int ic_cast_disabled_light = 2130837648;
// aapt resource value: 0x7f020091
- public const int ic_cast_light = 2130837649;
+ public const int ic_cast_grey = 2130837649;
// aapt resource value: 0x7f020092
- public const int ic_cast_off_light = 2130837650;
+ public const int ic_cast_light = 2130837650;
// aapt resource value: 0x7f020093
- public const int ic_cast_on_0_light = 2130837651;
+ public const int ic_cast_off_light = 2130837651;
// aapt resource value: 0x7f020094
- public const int ic_cast_on_1_light = 2130837652;
+ public const int ic_cast_on_0_light = 2130837652;
// aapt resource value: 0x7f020095
- public const int ic_cast_on_2_light = 2130837653;
+ public const int ic_cast_on_1_light = 2130837653;
// aapt resource value: 0x7f020096
- public const int ic_cast_on_light = 2130837654;
+ public const int ic_cast_on_2_light = 2130837654;
// aapt resource value: 0x7f020097
- public const int ic_cast_white = 2130837655;
+ public const int ic_cast_on_light = 2130837655;
// aapt resource value: 0x7f020098
- public const int ic_close_dark = 2130837656;
+ public const int ic_cast_white = 2130837656;
// aapt resource value: 0x7f020099
- public const int ic_close_light = 2130837657;
+ public const int ic_close_dark = 2130837657;
// aapt resource value: 0x7f02009a
- public const int ic_collapse = 2130837658;
+ public const int ic_close_light = 2130837658;
// aapt resource value: 0x7f02009b
- public const int ic_collapse_00000 = 2130837659;
+ public const int ic_collapse = 2130837659;
// aapt resource value: 0x7f02009c
- public const int ic_collapse_00001 = 2130837660;
+ public const int ic_collapse_00000 = 2130837660;
// aapt resource value: 0x7f02009d
- public const int ic_collapse_00002 = 2130837661;
+ public const int ic_collapse_00001 = 2130837661;
// aapt resource value: 0x7f02009e
- public const int ic_collapse_00003 = 2130837662;
+ public const int ic_collapse_00002 = 2130837662;
// aapt resource value: 0x7f02009f
- public const int ic_collapse_00004 = 2130837663;
+ public const int ic_collapse_00003 = 2130837663;
// aapt resource value: 0x7f0200a0
- public const int ic_collapse_00005 = 2130837664;
+ public const int ic_collapse_00004 = 2130837664;
// aapt resource value: 0x7f0200a1
- public const int ic_collapse_00006 = 2130837665;
+ public const int ic_collapse_00005 = 2130837665;
// aapt resource value: 0x7f0200a2
- public const int ic_collapse_00007 = 2130837666;
+ public const int ic_collapse_00006 = 2130837666;
// aapt resource value: 0x7f0200a3
- public const int ic_collapse_00008 = 2130837667;
+ public const int ic_collapse_00007 = 2130837667;
// aapt resource value: 0x7f0200a4
- public const int ic_collapse_00009 = 2130837668;
+ public const int ic_collapse_00008 = 2130837668;
// aapt resource value: 0x7f0200a5
- public const int ic_collapse_00010 = 2130837669;
+ public const int ic_collapse_00009 = 2130837669;
// aapt resource value: 0x7f0200a6
- public const int ic_collapse_00011 = 2130837670;
+ public const int ic_collapse_00010 = 2130837670;
// aapt resource value: 0x7f0200a7
- public const int ic_collapse_00012 = 2130837671;
+ public const int ic_collapse_00011 = 2130837671;
// aapt resource value: 0x7f0200a8
- public const int ic_collapse_00013 = 2130837672;
+ public const int ic_collapse_00012 = 2130837672;
// aapt resource value: 0x7f0200a9
- public const int ic_collapse_00014 = 2130837673;
+ public const int ic_collapse_00013 = 2130837673;
// aapt resource value: 0x7f0200aa
- public const int ic_collapse_00015 = 2130837674;
+ public const int ic_collapse_00014 = 2130837674;
// aapt resource value: 0x7f0200ab
- public const int ic_errorstatus = 2130837675;
+ public const int ic_collapse_00015 = 2130837675;
// aapt resource value: 0x7f0200ac
- public const int ic_expand = 2130837676;
+ public const int ic_errorstatus = 2130837676;
// aapt resource value: 0x7f0200ad
- public const int ic_expand_00000 = 2130837677;
+ public const int ic_expand = 2130837677;
// aapt resource value: 0x7f0200ae
- public const int ic_expand_00001 = 2130837678;
+ public const int ic_expand_00000 = 2130837678;
// aapt resource value: 0x7f0200af
- public const int ic_expand_00002 = 2130837679;
+ public const int ic_expand_00001 = 2130837679;
// aapt resource value: 0x7f0200b0
- public const int ic_expand_00003 = 2130837680;
+ public const int ic_expand_00002 = 2130837680;
// aapt resource value: 0x7f0200b1
- public const int ic_expand_00004 = 2130837681;
+ public const int ic_expand_00003 = 2130837681;
// aapt resource value: 0x7f0200b2
- public const int ic_expand_00005 = 2130837682;
+ public const int ic_expand_00004 = 2130837682;
// aapt resource value: 0x7f0200b3
- public const int ic_expand_00006 = 2130837683;
+ public const int ic_expand_00005 = 2130837683;
// aapt resource value: 0x7f0200b4
- public const int ic_expand_00007 = 2130837684;
+ public const int ic_expand_00006 = 2130837684;
// aapt resource value: 0x7f0200b5
- public const int ic_expand_00008 = 2130837685;
+ public const int ic_expand_00007 = 2130837685;
// aapt resource value: 0x7f0200b6
- public const int ic_expand_00009 = 2130837686;
+ public const int ic_expand_00008 = 2130837686;
// aapt resource value: 0x7f0200b7
- public const int ic_expand_00010 = 2130837687;
+ public const int ic_expand_00009 = 2130837687;
// aapt resource value: 0x7f0200b8
- public const int ic_expand_00011 = 2130837688;
+ public const int ic_expand_00010 = 2130837688;
// aapt resource value: 0x7f0200b9
- public const int ic_expand_00012 = 2130837689;
+ public const int ic_expand_00011 = 2130837689;
// aapt resource value: 0x7f0200ba
- public const int ic_expand_00013 = 2130837690;
+ public const int ic_expand_00012 = 2130837690;
// aapt resource value: 0x7f0200bb
- public const int ic_expand_00014 = 2130837691;
+ public const int ic_expand_00013 = 2130837691;
// aapt resource value: 0x7f0200bc
- public const int ic_expand_00015 = 2130837692;
+ public const int ic_expand_00014 = 2130837692;
// aapt resource value: 0x7f0200bd
- public const int ic_media_pause = 2130837693;
+ public const int ic_expand_00015 = 2130837693;
// aapt resource value: 0x7f0200be
- public const int ic_media_play = 2130837694;
+ public const int ic_media_pause = 2130837694;
// aapt resource value: 0x7f0200bf
- public const int ic_media_route_disabled_mono_dark = 2130837695;
+ public const int ic_media_play = 2130837695;
// aapt resource value: 0x7f0200c0
- public const int ic_media_route_off_mono_dark = 2130837696;
+ public const int ic_media_route_disabled_mono_dark = 2130837696;
// aapt resource value: 0x7f0200c1
- public const int ic_media_route_on_0_mono_dark = 2130837697;
+ public const int ic_media_route_off_mono_dark = 2130837697;
// aapt resource value: 0x7f0200c2
- public const int ic_media_route_on_1_mono_dark = 2130837698;
+ public const int ic_media_route_on_0_mono_dark = 2130837698;
// aapt resource value: 0x7f0200c3
- public const int ic_media_route_on_2_mono_dark = 2130837699;
+ public const int ic_media_route_on_1_mono_dark = 2130837699;
// aapt resource value: 0x7f0200c4
- public const int ic_media_route_on_mono_dark = 2130837700;
+ public const int ic_media_route_on_2_mono_dark = 2130837700;
// aapt resource value: 0x7f0200c5
- public const int ic_pause_dark = 2130837701;
+ public const int ic_media_route_on_mono_dark = 2130837701;
// aapt resource value: 0x7f0200c6
- public const int ic_pause_light = 2130837702;
+ public const int ic_pause_dark = 2130837702;
// aapt resource value: 0x7f0200c7
- public const int ic_play_dark = 2130837703;
+ public const int ic_pause_light = 2130837703;
// aapt resource value: 0x7f0200c8
- public const int ic_play_light = 2130837704;
+ public const int ic_play_dark = 2130837704;
// aapt resource value: 0x7f0200c9
- public const int ic_speaker_dark = 2130837705;
+ public const int ic_play_light = 2130837705;
// aapt resource value: 0x7f0200ca
- public const int ic_speaker_group_dark = 2130837706;
+ public const int ic_speaker_dark = 2130837706;
// aapt resource value: 0x7f0200cb
- public const int ic_speaker_group_light = 2130837707;
+ public const int ic_speaker_group_dark = 2130837707;
// aapt resource value: 0x7f0200cc
- public const int ic_speaker_light = 2130837708;
+ public const int ic_speaker_group_light = 2130837708;
// aapt resource value: 0x7f0200cd
- public const int ic_successstatus = 2130837709;
+ public const int ic_speaker_light = 2130837709;
// aapt resource value: 0x7f0200ce
- public const int ic_tv_dark = 2130837710;
+ public const int ic_successstatus = 2130837710;
// aapt resource value: 0x7f0200cf
- public const int ic_tv_light = 2130837711;
+ public const int ic_tv_dark = 2130837711;
// aapt resource value: 0x7f0200d0
- public const int icon = 2130837712;
+ public const int ic_tv_light = 2130837712;
// aapt resource value: 0x7f0200d1
- public const int ion_chevron_right = 2130837713;
+ public const int icon = 2130837713;
// aapt resource value: 0x7f0200d2
- public const int lightbulb = 2130837714;
+ public const int ion_chevron_right = 2130837714;
// aapt resource value: 0x7f0200d3
- public const int list_selector = 2130837715;
+ public const int lightbulb = 2130837715;
// aapt resource value: 0x7f0200d4
- public const int @lock = 2130837716;
+ public const int list_selector = 2130837716;
// aapt resource value: 0x7f0200d5
- public const int logo = 2130837717;
+ public const int @lock = 2130837717;
// aapt resource value: 0x7f0200d6
- public const int more = 2130837718;
+ public const int logo = 2130837718;
// aapt resource value: 0x7f0200d7
- public const int mr_dialog_material_background_dark = 2130837719;
+ public const int more = 2130837719;
// aapt resource value: 0x7f0200d8
- public const int mr_dialog_material_background_light = 2130837720;
+ public const int mr_dialog_material_background_dark = 2130837720;
// aapt resource value: 0x7f0200d9
- public const int mr_ic_audiotrack_light = 2130837721;
+ public const int mr_dialog_material_background_light = 2130837721;
// aapt resource value: 0x7f0200da
- public const int mr_ic_cast_dark = 2130837722;
+ public const int mr_ic_audiotrack_light = 2130837722;
// aapt resource value: 0x7f0200db
- public const int mr_ic_cast_light = 2130837723;
+ public const int mr_ic_cast_dark = 2130837723;
// aapt resource value: 0x7f0200dc
- public const int mr_ic_close_dark = 2130837724;
+ public const int mr_ic_cast_light = 2130837724;
// aapt resource value: 0x7f0200dd
- public const int mr_ic_close_light = 2130837725;
+ public const int mr_ic_close_dark = 2130837725;
// aapt resource value: 0x7f0200de
- public const int mr_ic_media_route_connecting_mono_dark = 2130837726;
+ public const int mr_ic_close_light = 2130837726;
// aapt resource value: 0x7f0200df
- public const int mr_ic_media_route_connecting_mono_light = 2130837727;
+ public const int mr_ic_media_route_connecting_mono_dark = 2130837727;
// aapt resource value: 0x7f0200e0
- public const int mr_ic_media_route_mono_dark = 2130837728;
+ public const int mr_ic_media_route_connecting_mono_light = 2130837728;
// aapt resource value: 0x7f0200e1
- public const int mr_ic_media_route_mono_light = 2130837729;
+ public const int mr_ic_media_route_mono_dark = 2130837729;
// aapt resource value: 0x7f0200e2
- public const int mr_ic_pause_dark = 2130837730;
+ public const int mr_ic_media_route_mono_light = 2130837730;
// aapt resource value: 0x7f0200e3
- public const int mr_ic_pause_light = 2130837731;
+ public const int mr_ic_pause_dark = 2130837731;
// aapt resource value: 0x7f0200e4
- public const int mr_ic_play_dark = 2130837732;
+ public const int mr_ic_pause_light = 2130837732;
// aapt resource value: 0x7f0200e5
- public const int mr_ic_play_light = 2130837733;
+ public const int mr_ic_play_dark = 2130837733;
// aapt resource value: 0x7f0200e6
- public const int notification_sm = 2130837734;
-
- // aapt resource value: 0x7f0200f8
- public const int notification_template_icon_bg = 2130837752;
+ public const int mr_ic_play_light = 2130837734;
// aapt resource value: 0x7f0200e7
- public const int paperclip = 2130837735;
+ public const int notification_sm = 2130837735;
+
+ // aapt resource value: 0x7f0200f9
+ public const int notification_template_icon_bg = 2130837753;
// aapt resource value: 0x7f0200e8
- public const int plus = 2130837736;
+ public const int paperclip = 2130837736;
// aapt resource value: 0x7f0200e9
- public const int refresh = 2130837737;
+ public const int plus = 2130837737;
// aapt resource value: 0x7f0200ea
- public const int roundedbg = 2130837738;
+ public const int refresh = 2130837738;
// aapt resource value: 0x7f0200eb
- public const int roundedbgdark = 2130837739;
+ public const int roundedbg = 2130837739;
// aapt resource value: 0x7f0200ec
- public const int search = 2130837740;
+ public const int roundedbgdark = 2130837740;
// aapt resource value: 0x7f0200ed
- public const int share = 2130837741;
+ public const int search = 2130837741;
// aapt resource value: 0x7f0200ee
- public const int share_tools = 2130837742;
+ public const int share = 2130837742;
// aapt resource value: 0x7f0200ef
- public const int splash_screen = 2130837743;
+ public const int share_tools = 2130837743;
// aapt resource value: 0x7f0200f0
- public const int star = 2130837744;
+ public const int splash_screen = 2130837744;
// aapt resource value: 0x7f0200f1
- public const int star_selected = 2130837745;
+ public const int star = 2130837745;
// aapt resource value: 0x7f0200f2
- public const int tools = 2130837746;
+ public const int star_selected = 2130837746;
// aapt resource value: 0x7f0200f3
- public const int tools_selected = 2130837747;
+ public const int tools = 2130837747;
// aapt resource value: 0x7f0200f4
- public const int trash = 2130837748;
+ public const int tools_selected = 2130837748;
// aapt resource value: 0x7f0200f5
- public const int upload = 2130837749;
+ public const int trash = 2130837749;
// aapt resource value: 0x7f0200f6
- public const int user = 2130837750;
+ public const int upload = 2130837750;
// aapt resource value: 0x7f0200f7
- public const int yubikey = 2130837751;
+ public const int user = 2130837751;
+
+ // aapt resource value: 0x7f0200f8
+ public const int yubikey = 2130837752;
static Drawable()
{
diff --git a/src/Android/Resources/drawable-hdpi/cog.png b/src/Android/Resources/drawable-hdpi/cog.png
new file mode 100644
index 000000000..3529813bd
Binary files /dev/null and b/src/Android/Resources/drawable-hdpi/cog.png differ
diff --git a/src/Android/Resources/drawable-xhdpi/cog.png b/src/Android/Resources/drawable-xhdpi/cog.png
new file mode 100644
index 000000000..aac4477f9
Binary files /dev/null and b/src/Android/Resources/drawable-xhdpi/cog.png differ
diff --git a/src/Android/Resources/drawable-xxhdpi/cog.png b/src/Android/Resources/drawable-xxhdpi/cog.png
new file mode 100644
index 000000000..ea8ee1adf
Binary files /dev/null and b/src/Android/Resources/drawable-xxhdpi/cog.png differ
diff --git a/src/Android/Resources/drawable-xxxhdpi/cog.png b/src/Android/Resources/drawable-xxxhdpi/cog.png
new file mode 100644
index 000000000..c7b86b95e
Binary files /dev/null and b/src/Android/Resources/drawable-xxxhdpi/cog.png differ
diff --git a/src/Android/Resources/drawable/cog.png b/src/Android/Resources/drawable/cog.png
new file mode 100644
index 000000000..86414aed0
Binary files /dev/null and b/src/Android/Resources/drawable/cog.png differ
diff --git a/src/App/Abstractions/Services/IAppSettingsService.cs b/src/App/Abstractions/Services/IAppSettingsService.cs
index ad0a7a878..fce11e1cb 100644
--- a/src/App/Abstractions/Services/IAppSettingsService.cs
+++ b/src/App/Abstractions/Services/IAppSettingsService.cs
@@ -10,5 +10,8 @@ namespace Bit.App.Abstractions
bool AutofillPersistNotification { get; set; }
bool AutofillPasswordField { get; set; }
string SecurityStamp { get; set; }
+ string BaseUrl { get; set; }
+ string ApiUrl { get; set; }
+ string IdentityUrl { get; set; }
}
}
\ No newline at end of file
diff --git a/src/App/App.csproj b/src/App/App.csproj
index e8ef0b574..3ee69d892 100644
--- a/src/App/App.csproj
+++ b/src/App/App.csproj
@@ -144,6 +144,7 @@
+
diff --git a/src/App/Constants.cs b/src/App/Constants.cs
index 56021bfd9..e745d1dfe 100644
--- a/src/App/Constants.cs
+++ b/src/App/Constants.cs
@@ -34,6 +34,9 @@
public const string LastLoginEmail = "other:lastLoginEmail";
public const string LastSync = "other:lastSync";
public const string LastBuildKey = "LastBuild";
+ public const string BaseUrl = "other:baseUrl";
+ public const string ApiUrl = "other:apiUrl";
+ public const string IdentityUrl = "other:identityUrl";
public const int SelectFileRequestCode = 42;
public const int SelectFilePermissionRequestCode = 43;
diff --git a/src/App/Pages/EnvironmentPage.cs b/src/App/Pages/EnvironmentPage.cs
new file mode 100644
index 000000000..049c739c3
--- /dev/null
+++ b/src/App/Pages/EnvironmentPage.cs
@@ -0,0 +1,218 @@
+using System;
+using Bit.App.Abstractions;
+using Bit.App.Controls;
+using Bit.App.Resources;
+using Xamarin.Forms;
+using XLabs.Ioc;
+using Acr.UserDialogs;
+using System.Threading.Tasks;
+
+namespace Bit.App.Pages
+{
+ public class EnvironmentPage : ExtendedContentPage
+ {
+ private IAppSettingsService _appSettings;
+ private IUserDialogs _userDialogs;
+ private IGoogleAnalyticsService _googleAnalyticsService;
+
+ public EnvironmentPage()
+ : base(updateActivity: false)
+ {
+ _appSettings = Resolver.Resolve();
+ _userDialogs = Resolver.Resolve();
+ _googleAnalyticsService = Resolver.Resolve();
+
+ Init();
+ }
+
+ public FormEntryCell BaseUrlCell { get; set; }
+ public FormEntryCell ApiUrlCell { get; set; }
+ public FormEntryCell IdentityUrlCell { get; set; }
+ public StackLayout StackLayout { get; set; }
+ public Label SelfHostLabel { get; set; }
+ public Label CustomLabel { get; set; }
+
+ private void Init()
+ {
+ MessagingCenter.Send(Application.Current, "ShowStatusBar", true);
+
+ IdentityUrlCell = new FormEntryCell(AppResources.IdentityUrl, entryKeyboard: Keyboard.Url);
+ IdentityUrlCell.Entry.Text = _appSettings.IdentityUrl;
+ ApiUrlCell = new FormEntryCell(AppResources.ApiUrl, nextElement: IdentityUrlCell.Entry, entryKeyboard: Keyboard.Url);
+ ApiUrlCell.Entry.Text = _appSettings.ApiUrl;
+ BaseUrlCell = new FormEntryCell(AppResources.ServerUrl, nextElement: ApiUrlCell.Entry, entryKeyboard: Keyboard.Url);
+ BaseUrlCell.Entry.Text = _appSettings.BaseUrl;
+
+ var table = new FormTableView
+ {
+ Root = new TableRoot
+ {
+ new TableSection(AppResources.SelfHostedEnvironment)
+ {
+ BaseUrlCell
+ }
+ }
+ };
+
+ SelfHostLabel = new Label
+ {
+ Text = AppResources.SelfHostedEnvironmentFooter,
+ LineBreakMode = LineBreakMode.WordWrap,
+ FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label)),
+ Style = (Style)Application.Current.Resources["text-muted"],
+ Margin = new Thickness(15, (this.IsLandscape() ? 5 : 0), 15, 25)
+ };
+
+ var table2 = new FormTableView
+ {
+ Root = new TableRoot
+ {
+ new TableSection(AppResources.CustomEnvironment)
+ {
+ ApiUrlCell,
+ IdentityUrlCell
+ }
+ }
+ };
+
+ CustomLabel = new Label
+ {
+ Text = AppResources.CustomEnvironmentFooter,
+ LineBreakMode = LineBreakMode.WordWrap,
+ FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label)),
+ Style = (Style)Application.Current.Resources["text-muted"],
+ Margin = new Thickness(15, (this.IsLandscape() ? 5 : 0), 15, 25)
+ };
+
+ StackLayout = new StackLayout
+ {
+ Children = { table, SelfHostLabel, table2, CustomLabel },
+ Spacing = 0
+ };
+
+ var scrollView = new ScrollView
+ {
+ Content = StackLayout
+ };
+
+ var toolbarItem = new ToolbarItem(AppResources.Save, null, async () => await SaveAsync(),
+ ToolbarItemOrder.Default, 0);
+
+ if(Device.RuntimePlatform == Device.iOS)
+ {
+ table.RowHeight = table2.RowHeight = -1;
+ table.EstimatedRowHeight = table2.EstimatedRowHeight = 70;
+ ToolbarItems.Add(new DismissModalToolBarItem(this, AppResources.Close, () =>
+ {
+ MessagingCenter.Send(Application.Current, "ShowStatusBar", false);
+ }));
+ }
+
+ ToolbarItems.Add(toolbarItem);
+ Title = AppResources.Settings;
+ Content = scrollView;
+ }
+
+ protected override void OnAppearing()
+ {
+ base.OnAppearing();
+ MessagingCenter.Send(Application.Current, "ShowStatusBar", true);
+ BaseUrlCell.InitEvents();
+ IdentityUrlCell.InitEvents();
+ ApiUrlCell.InitEvents();
+ StackLayout.LayoutChanged += Layout_LayoutChanged;
+ BaseUrlCell.Entry.FocusWithDelay();
+ }
+ protected override void OnDisappearing()
+ {
+ base.OnDisappearing();
+ BaseUrlCell.Dispose();
+ IdentityUrlCell.Dispose();
+ ApiUrlCell.Dispose();
+ StackLayout.LayoutChanged -= Layout_LayoutChanged;
+ }
+
+ private void Layout_LayoutChanged(object sender, EventArgs e)
+ {
+ SelfHostLabel.WidthRequest = StackLayout.Bounds.Width - SelfHostLabel.Bounds.Left * 2;
+ CustomLabel.WidthRequest = StackLayout.Bounds.Width - CustomLabel.Bounds.Left * 2;
+ }
+
+ private async Task SaveAsync()
+ {
+ Uri result;
+
+ if(!string.IsNullOrWhiteSpace(BaseUrlCell.Entry.Text))
+ {
+ BaseUrlCell.Entry.Text = FixUrl(BaseUrlCell.Entry.Text);
+ if(!Uri.TryCreate(BaseUrlCell.Entry.Text, UriKind.Absolute, out result))
+ {
+ _userDialogs.Alert(string.Format(AppResources.FormattedIncorrectly, AppResources.ServerUrl));
+ return;
+ }
+ }
+ else
+ {
+ BaseUrlCell.Entry.Text = null;
+ }
+
+ if(!string.IsNullOrWhiteSpace(ApiUrlCell.Entry.Text))
+ {
+ ApiUrlCell.Entry.Text = FixUrl(ApiUrlCell.Entry.Text);
+ if(!Uri.TryCreate(ApiUrlCell.Entry.Text, UriKind.Absolute, out result))
+ {
+ _userDialogs.Alert(string.Format(AppResources.FormattedIncorrectly, AppResources.ApiUrl));
+ return;
+ }
+ }
+ else
+ {
+ ApiUrlCell.Entry.Text = null;
+ }
+
+ if(!string.IsNullOrWhiteSpace(IdentityUrlCell.Entry.Text))
+ {
+ IdentityUrlCell.Entry.Text = FixUrl(IdentityUrlCell.Entry.Text);
+ if(!Uri.TryCreate(IdentityUrlCell.Entry.Text, UriKind.Absolute, out result))
+ {
+ _userDialogs.Alert(string.Format(AppResources.FormattedIncorrectly, AppResources.IdentityUrl));
+ return;
+ }
+ }
+ else
+ {
+ IdentityUrlCell.Entry.Text = null;
+ }
+
+ _appSettings.BaseUrl = BaseUrlCell.Entry.Text;
+ _appSettings.IdentityUrl = IdentityUrlCell.Entry.Text;
+ _appSettings.ApiUrl = ApiUrlCell.Entry.Text;
+ _userDialogs.Toast(AppResources.EnvironmentSaved);
+ _googleAnalyticsService.TrackAppEvent("SetEnvironmentUrls");
+ await Navigation.PopForDeviceAsync();
+ }
+
+ private string FixUrl(string url)
+ {
+ url = url.TrimEnd('/');
+ if(!url.StartsWith("http://") && !url.StartsWith("https://"))
+ {
+ url = $"https://{url}";
+ }
+ return url;
+ }
+
+ private class FormTableView : ExtendedTableView
+ {
+ public FormTableView()
+ {
+ Intent = TableIntent.Settings;
+ EnableScrolling = false;
+ HasUnevenRows = true;
+ EnableSelection = true;
+ VerticalOptions = LayoutOptions.Start;
+ NoFooter = true;
+ }
+ }
+ }
+}
diff --git a/src/App/Pages/HomePage.cs b/src/App/Pages/HomePage.cs
index c5086cf0e..323731ebc 100644
--- a/src/App/Pages/HomePage.cs
+++ b/src/App/Pages/HomePage.cs
@@ -32,12 +32,25 @@ namespace Bit.App.Pages
{
MessagingCenter.Send(Application.Current, "ShowStatusBar", false);
+ var settingsButton = new Button
+ {
+ Image = "cog",
+ VerticalOptions = LayoutOptions.Start,
+ HorizontalOptions = LayoutOptions.Start,
+ WidthRequest = 25,
+ HeightRequest = 25,
+ BackgroundColor = Color.Transparent,
+ Margin = new Thickness(-20, -30, 0, 0),
+ Command = new Command(async () => await SettingsAsync())
+ };
+
var logo = new CachedImage
{
Source = "logo",
VerticalOptions = LayoutOptions.CenterAndExpand,
HorizontalOptions = LayoutOptions.Center,
WidthRequest = 282,
+ Margin = new Thickness(0, 30, 0, 0),
HeightRequest = 44
};
@@ -77,7 +90,7 @@ namespace Bit.App.Pages
{
Padding = new Thickness(30, 40),
Spacing = 10,
- Children = { logo, message, createAccountButton, loginButton }
+ Children = { settingsButton, logo, message, createAccountButton, loginButton }
};
Title = AppResources.Bitwarden;
@@ -119,5 +132,16 @@ namespace Bit.App.Pages
await Navigation.PushForDeviceAsync(new LoginPage(email));
_userDialogs.Toast(AppResources.AccountCreated);
}
+
+ public async Task SettingsAsync()
+ {
+ if(_lastAction.LastActionWasRecent())
+ {
+ return;
+ }
+ _lastAction = DateTime.UtcNow;
+
+ await Navigation.PushForDeviceAsync(new EnvironmentPage());
+ }
}
}
diff --git a/src/App/Resources/AppResources.Designer.cs b/src/App/Resources/AppResources.Designer.cs
index 7a31aa6be..68fd5b1a1 100644
--- a/src/App/Resources/AppResources.Designer.cs
+++ b/src/App/Resources/AppResources.Designer.cs
@@ -20,7 +20,7 @@ namespace Bit.App.Resources {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class AppResources {
@@ -142,6 +142,15 @@ namespace Bit.App.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to API Server URL.
+ ///
+ public static string ApiUrl {
+ get {
+ return ResourceManager.GetString("ApiUrl", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to App Extension.
///
@@ -682,6 +691,24 @@ namespace Bit.App.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Custom Environment.
+ ///
+ public static string CustomEnvironment {
+ get {
+ return ResourceManager.GetString("CustomEnvironment", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to For advanced users. You can specify the base URL of each service independently..
+ ///
+ public static string CustomEnvironmentFooter {
+ get {
+ return ResourceManager.GetString("CustomEnvironmentFooter", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Delete.
///
@@ -880,6 +907,15 @@ namespace Bit.App.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to The environment URLs have been saved..
+ ///
+ public static string EnvironmentSaved {
+ get {
+ return ResourceManager.GetString("EnvironmentSaved", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Re-enable App Extension.
///
@@ -1132,6 +1168,15 @@ namespace Bit.App.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to {0} is not correctly formatted..
+ ///
+ public static string FormattedIncorrectly {
+ get {
+ return ResourceManager.GetString("FormattedIncorrectly", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Generate Password.
///
@@ -1186,6 +1231,15 @@ namespace Bit.App.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Identity Server URL.
+ ///
+ public static string IdentityUrl {
+ get {
+ return ResourceManager.GetString("IdentityUrl", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Import Logins.
///
@@ -2005,6 +2059,24 @@ namespace Bit.App.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Self-hosted Environment.
+ ///
+ public static string SelfHostedEnvironment {
+ get {
+ return ResourceManager.GetString("SelfHostedEnvironment", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Specify the base URL of your on-premise hosted bitwarden installation..
+ ///
+ public static string SelfHostedEnvironmentFooter {
+ get {
+ return ResourceManager.GetString("SelfHostedEnvironmentFooter", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Send verification code email again.
///
@@ -2014,6 +2086,15 @@ namespace Bit.App.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Server URL.
+ ///
+ public static string ServerUrl {
+ get {
+ return ResourceManager.GetString("ServerUrl", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Set PIN.
///
diff --git a/src/App/Resources/AppResources.resx b/src/App/Resources/AppResources.resx
index 8425cc8d2..760e4e30f 100644
--- a/src/App/Resources/AppResources.resx
+++ b/src/App/Resources/AppResources.resx
@@ -995,4 +995,33 @@
Learn More
+
+ API Server URL
+
+
+ Custom Environment
+
+
+ For advanced users. You can specify the base URL of each service independently.
+
+
+ The environment URLs have been saved.
+
+
+ {0} is not correctly formatted.
+ Validation error when something is not formatted correctly, such as a URL or email address.
+
+
+ Identity Server URL
+ "Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management
+
+
+ Self-hosted Environment
+
+
+ Specify the base URL of your on-premise hosted bitwarden installation.
+
+
+ Server URL
+
\ No newline at end of file
diff --git a/src/App/Services/AppSettingsService.cs b/src/App/Services/AppSettingsService.cs
index 424f85808..bec836626 100644
--- a/src/App/Services/AppSettingsService.cs
+++ b/src/App/Services/AppSettingsService.cs
@@ -85,5 +85,59 @@ namespace Bit.App.Services
_settings.AddOrUpdateValue(Constants.SecurityStamp, value);
}
}
+
+ public string BaseUrl
+ {
+ get
+ {
+ return _settings.GetValueOrDefault(Constants.BaseUrl);
+ }
+ set
+ {
+ if(value == null)
+ {
+ _settings.Remove(Constants.BaseUrl);
+ return;
+ }
+
+ _settings.AddOrUpdateValue(Constants.BaseUrl, value);
+ }
+ }
+
+ public string ApiUrl
+ {
+ get
+ {
+ return _settings.GetValueOrDefault(Constants.ApiUrl);
+ }
+ set
+ {
+ if(value == null)
+ {
+ _settings.Remove(Constants.ApiUrl);
+ return;
+ }
+
+ _settings.AddOrUpdateValue(Constants.ApiUrl, value);
+ }
+ }
+
+ public string IdentityUrl
+ {
+ get
+ {
+ return _settings.GetValueOrDefault(Constants.IdentityUrl);
+ }
+ set
+ {
+ if(value == null)
+ {
+ _settings.Remove(Constants.IdentityUrl);
+ return;
+ }
+
+ _settings.AddOrUpdateValue(Constants.IdentityUrl, value);
+ }
+ }
}
}
diff --git a/src/App/Utilities/ApiHttpClient.cs b/src/App/Utilities/ApiHttpClient.cs
index 9c0187422..bf787f252 100644
--- a/src/App/Utilities/ApiHttpClient.cs
+++ b/src/App/Utilities/ApiHttpClient.cs
@@ -1,6 +1,8 @@
using System.Net.Http;
using System;
using System.Net.Http.Headers;
+using XLabs.Ioc;
+using Bit.App.Abstractions;
namespace Bit.App
{
@@ -19,11 +21,24 @@ namespace Bit.App
private void Init()
{
- //BaseAddress = new Uri("http://169.254.80.80:4000"); // Desktop from VS Android Emulator
- //BaseAddress = new Uri("http://192.168.1.3:4000"); // Desktop
- //BaseAddress = new Uri("https://preview-api.bitwarden.com"); // Preview
- BaseAddress = new Uri("https://api.bitwarden.com"); // Production
DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
+
+ var appSettings = Resolver.Resolve();
+ if(!string.IsNullOrWhiteSpace(appSettings.BaseUrl))
+ {
+ BaseAddress = new Uri($"{appSettings.BaseUrl}/api");
+ }
+ else if(!string.IsNullOrWhiteSpace(appSettings.ApiUrl))
+ {
+ BaseAddress = new Uri($"{appSettings.ApiUrl}");
+ }
+ else
+ {
+ //BaseAddress = new Uri("http://169.254.80.80:4000"); // Desktop from VS Android Emulator
+ //BaseAddress = new Uri("http://192.168.1.3:4000"); // Desktop
+ //BaseAddress = new Uri("https://preview-api.bitwarden.com"); // Preview
+ BaseAddress = new Uri("https://api.bitwarden.com"); // Production
+ }
}
}
}
diff --git a/src/App/Utilities/IdentityHttpClient.cs b/src/App/Utilities/IdentityHttpClient.cs
index 04056ef49..1ef74d1ea 100644
--- a/src/App/Utilities/IdentityHttpClient.cs
+++ b/src/App/Utilities/IdentityHttpClient.cs
@@ -1,6 +1,8 @@
using System.Net.Http;
using System;
using System.Net.Http.Headers;
+using XLabs.Ioc;
+using Bit.App.Abstractions;
namespace Bit.App
{
@@ -19,11 +21,24 @@ namespace Bit.App
private void Init()
{
- //BaseAddress = new Uri("http://169.254.80.80:33656"); // Desktop from VS Android Emulator
- //BaseAddress = new Uri("http://192.168.1.3:33656"); // Desktop
- //BaseAddress = new Uri("https://preview-identity.bitwarden.com"); // Preview
- BaseAddress = new Uri("https://identity.bitwarden.com"); // Production
DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
+
+ var appSettings = Resolver.Resolve();
+ if(!string.IsNullOrWhiteSpace(appSettings.BaseUrl))
+ {
+ BaseAddress = new Uri($"{appSettings.BaseUrl}/identity");
+ }
+ else if(!string.IsNullOrWhiteSpace(appSettings.IdentityUrl))
+ {
+ BaseAddress = new Uri($"{appSettings.IdentityUrl}");
+ }
+ else
+ {
+ //BaseAddress = new Uri("http://169.254.80.80:33656"); // Desktop from VS Android Emulator
+ //BaseAddress = new Uri("http://192.168.1.3:33656"); // Desktop
+ //BaseAddress = new Uri("https://preview-identity.bitwarden.com"); // Preview
+ BaseAddress = new Uri("https://identity.bitwarden.com"); // Production
+ }
}
}
}
diff --git a/src/iOS/Resources/cog.png b/src/iOS/Resources/cog.png
new file mode 100644
index 000000000..86414aed0
Binary files /dev/null and b/src/iOS/Resources/cog.png differ
diff --git a/src/iOS/Resources/cog@2x.png b/src/iOS/Resources/cog@2x.png
new file mode 100644
index 000000000..aac4477f9
Binary files /dev/null and b/src/iOS/Resources/cog@2x.png differ
diff --git a/src/iOS/Resources/cog@3x.png b/src/iOS/Resources/cog@3x.png
new file mode 100644
index 000000000..ea8ee1adf
Binary files /dev/null and b/src/iOS/Resources/cog@3x.png differ
diff --git a/src/iOS/iOS.csproj b/src/iOS/iOS.csproj
index 2d7b7b087..129cb5d43 100644
--- a/src/iOS/iOS.csproj
+++ b/src/iOS/iOS.csproj
@@ -785,6 +785,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/test/Android.Test/Resources/Resource.Designer.cs b/test/Android.Test/Resources/Resource.Designer.cs
index 38fc5df5d..4bbf9e5d4 100644
--- a/test/Android.Test/Resources/Resource.Designer.cs
+++ b/test/Android.Test/Resources/Resource.Designer.cs
@@ -224,42 +224,6 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f0100b4
public const int activityChooserViewStyle = 2130772148;
- // aapt resource value: 0x7f01012b
- public const int ahBarColor = 2130772267;
-
- // aapt resource value: 0x7f010133
- public const int ahBarLength = 2130772275;
-
- // aapt resource value: 0x7f010132
- public const int ahBarWidth = 2130772274;
-
- // aapt resource value: 0x7f010130
- public const int ahCircleColor = 2130772272;
-
- // aapt resource value: 0x7f01012f
- public const int ahDelayMillis = 2130772271;
-
- // aapt resource value: 0x7f010131
- public const int ahRadius = 2130772273;
-
- // aapt resource value: 0x7f01012c
- public const int ahRimColor = 2130772268;
-
- // aapt resource value: 0x7f01012d
- public const int ahRimWidth = 2130772269;
-
- // aapt resource value: 0x7f01012e
- public const int ahSpinSpeed = 2130772270;
-
- // aapt resource value: 0x7f010128
- public const int ahText = 2130772264;
-
- // aapt resource value: 0x7f010129
- public const int ahTextColor = 2130772265;
-
- // aapt resource value: 0x7f01012a
- public const int ahTextSize = 2130772266;
-
// aapt resource value: 0x7f0100d7
public const int alertDialogButtonGroupStyle = 2130772183;
@@ -1096,32 +1060,32 @@ namespace Bit.Android.Test
public partial class Color
{
- // aapt resource value: 0x7f0c0052
- public const int abc_background_cache_hint_selector_material_dark = 2131492946;
+ // aapt resource value: 0x7f0c0048
+ public const int abc_background_cache_hint_selector_material_dark = 2131492936;
- // aapt resource value: 0x7f0c0053
- public const int abc_background_cache_hint_selector_material_light = 2131492947;
+ // aapt resource value: 0x7f0c0049
+ public const int abc_background_cache_hint_selector_material_light = 2131492937;
- // aapt resource value: 0x7f0c0054
- public const int abc_color_highlight_material = 2131492948;
+ // aapt resource value: 0x7f0c004a
+ public const int abc_color_highlight_material = 2131492938;
// aapt resource value: 0x7f0c000e
public const int abc_input_method_navigation_guard = 2131492878;
- // aapt resource value: 0x7f0c0055
- public const int abc_primary_text_disable_only_material_dark = 2131492949;
+ // aapt resource value: 0x7f0c004b
+ public const int abc_primary_text_disable_only_material_dark = 2131492939;
- // aapt resource value: 0x7f0c0056
- public const int abc_primary_text_disable_only_material_light = 2131492950;
+ // aapt resource value: 0x7f0c004c
+ public const int abc_primary_text_disable_only_material_light = 2131492940;
- // aapt resource value: 0x7f0c0057
- public const int abc_primary_text_material_dark = 2131492951;
+ // aapt resource value: 0x7f0c004d
+ public const int abc_primary_text_material_dark = 2131492941;
- // aapt resource value: 0x7f0c0058
- public const int abc_primary_text_material_light = 2131492952;
+ // aapt resource value: 0x7f0c004e
+ public const int abc_primary_text_material_light = 2131492942;
- // aapt resource value: 0x7f0c0059
- public const int abc_search_url_text = 2131492953;
+ // aapt resource value: 0x7f0c004f
+ public const int abc_search_url_text = 2131492943;
// aapt resource value: 0x7f0c000f
public const int abc_search_url_text_normal = 2131492879;
@@ -1132,11 +1096,11 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f0c0011
public const int abc_search_url_text_selected = 2131492881;
- // aapt resource value: 0x7f0c005a
- public const int abc_secondary_text_material_dark = 2131492954;
+ // aapt resource value: 0x7f0c0050
+ public const int abc_secondary_text_material_dark = 2131492944;
- // aapt resource value: 0x7f0c005b
- public const int abc_secondary_text_material_light = 2131492955;
+ // aapt resource value: 0x7f0c0051
+ public const int abc_secondary_text_material_light = 2131492945;
// aapt resource value: 0x7f0c0012
public const int accent_material_dark = 2131492882;
@@ -1252,36 +1216,6 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f0c0029
public const int hint_foreground_material_light = 2131492905;
- // aapt resource value: 0x7f0c0048
- public const int hockeyapp_background_header = 2131492936;
-
- // aapt resource value: 0x7f0c0049
- public const int hockeyapp_background_light = 2131492937;
-
- // aapt resource value: 0x7f0c004a
- public const int hockeyapp_background_white = 2131492938;
-
- // aapt resource value: 0x7f0c004b
- public const int hockeyapp_button_background = 2131492939;
-
- // aapt resource value: 0x7f0c004c
- public const int hockeyapp_button_background_pressed = 2131492940;
-
- // aapt resource value: 0x7f0c004d
- public const int hockeyapp_button_background_selected = 2131492941;
-
- // aapt resource value: 0x7f0c004e
- public const int hockeyapp_text_black = 2131492942;
-
- // aapt resource value: 0x7f0c004f
- public const int hockeyapp_text_light = 2131492943;
-
- // aapt resource value: 0x7f0c0050
- public const int hockeyapp_text_normal = 2131492944;
-
- // aapt resource value: 0x7f0c0051
- public const int hockeyapp_text_white = 2131492945;
-
// aapt resource value: 0x7f0c002a
public const int material_blue_grey_800 = 2131492906;
@@ -1366,11 +1300,11 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f0c0045
public const int switch_thumb_disabled_material_light = 2131492933;
- // aapt resource value: 0x7f0c005c
- public const int switch_thumb_material_dark = 2131492956;
+ // aapt resource value: 0x7f0c0052
+ public const int switch_thumb_material_dark = 2131492946;
- // aapt resource value: 0x7f0c005d
- public const int switch_thumb_material_light = 2131492957;
+ // aapt resource value: 0x7f0c0053
+ public const int switch_thumb_material_light = 2131492947;
// aapt resource value: 0x7f0c0046
public const int switch_thumb_normal_material_dark = 2131492934;
@@ -1969,25 +1903,10 @@ namespace Bit.Android.Test
public const int fingerprint_white = 2130837581;
// aapt resource value: 0x7f02004e
- public const int hockeyapp_btn_background = 2130837582;
+ public const int icon = 2130837582;
// aapt resource value: 0x7f02004f
- public const int ic_errorstatus = 2130837583;
-
- // aapt resource value: 0x7f020050
- public const int ic_successstatus = 2130837584;
-
- // aapt resource value: 0x7f020051
- public const int icon = 2130837585;
-
- // aapt resource value: 0x7f020054
- public const int notification_template_icon_bg = 2130837588;
-
- // aapt resource value: 0x7f020052
- public const int roundedbg = 2130837586;
-
- // aapt resource value: 0x7f020053
- public const int roundedbgdark = 2130837587;
+ public const int notification_template_icon_bg = 2130837583;
static Drawable()
{
@@ -2002,62 +1921,62 @@ namespace Bit.Android.Test
public partial class Id
{
- // aapt resource value: 0x7f0800a6
- public const int OptionHostName = 2131230886;
+ // aapt resource value: 0x7f080086
+ public const int OptionHostName = 2131230854;
- // aapt resource value: 0x7f0800a7
- public const int OptionPort = 2131230887;
+ // aapt resource value: 0x7f080087
+ public const int OptionPort = 2131230855;
- // aapt resource value: 0x7f0800a5
- public const int OptionRemoteServer = 2131230885;
+ // aapt resource value: 0x7f080085
+ public const int OptionRemoteServer = 2131230853;
- // aapt resource value: 0x7f0800b5
- public const int OptionsButton = 2131230901;
+ // aapt resource value: 0x7f080095
+ public const int OptionsButton = 2131230869;
- // aapt resource value: 0x7f0800b0
- public const int ResultFullName = 2131230896;
+ // aapt resource value: 0x7f080090
+ public const int ResultFullName = 2131230864;
- // aapt resource value: 0x7f0800b2
- public const int ResultMessage = 2131230898;
+ // aapt resource value: 0x7f080092
+ public const int ResultMessage = 2131230866;
- // aapt resource value: 0x7f0800b1
- public const int ResultResultState = 2131230897;
+ // aapt resource value: 0x7f080091
+ public const int ResultResultState = 2131230865;
- // aapt resource value: 0x7f0800af
- public const int ResultRunSingleMethodTest = 2131230895;
+ // aapt resource value: 0x7f08008f
+ public const int ResultRunSingleMethodTest = 2131230863;
- // aapt resource value: 0x7f0800b3
- public const int ResultStackTrace = 2131230899;
+ // aapt resource value: 0x7f080093
+ public const int ResultStackTrace = 2131230867;
- // aapt resource value: 0x7f0800ab
- public const int ResultsFailed = 2131230891;
+ // aapt resource value: 0x7f08008b
+ public const int ResultsFailed = 2131230859;
- // aapt resource value: 0x7f0800a8
- public const int ResultsId = 2131230888;
+ // aapt resource value: 0x7f080088
+ public const int ResultsId = 2131230856;
- // aapt resource value: 0x7f0800ac
- public const int ResultsIgnored = 2131230892;
+ // aapt resource value: 0x7f08008c
+ public const int ResultsIgnored = 2131230860;
- // aapt resource value: 0x7f0800ad
- public const int ResultsInconclusive = 2131230893;
+ // aapt resource value: 0x7f08008d
+ public const int ResultsInconclusive = 2131230861;
- // aapt resource value: 0x7f0800ae
- public const int ResultsMessage = 2131230894;
+ // aapt resource value: 0x7f08008e
+ public const int ResultsMessage = 2131230862;
- // aapt resource value: 0x7f0800aa
- public const int ResultsPassed = 2131230890;
+ // aapt resource value: 0x7f08008a
+ public const int ResultsPassed = 2131230858;
- // aapt resource value: 0x7f0800a9
- public const int ResultsResult = 2131230889;
+ // aapt resource value: 0x7f080089
+ public const int ResultsResult = 2131230857;
- // aapt resource value: 0x7f0800b4
- public const int RunTestsButton = 2131230900;
+ // aapt resource value: 0x7f080094
+ public const int RunTestsButton = 2131230868;
- // aapt resource value: 0x7f0800b6
- public const int TestSuiteListView = 2131230902;
+ // aapt resource value: 0x7f080096
+ public const int TestSuiteListView = 2131230870;
- // aapt resource value: 0x7f080098
- public const int action0 = 2131230872;
+ // aapt resource value: 0x7f080078
+ public const int action0 = 2131230840;
// aapt resource value: 0x7f08005c
public const int action_bar = 2131230812;
@@ -2083,8 +2002,8 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f08005d
public const int action_context_bar = 2131230813;
- // aapt resource value: 0x7f08009c
- public const int action_divider = 2131230876;
+ // aapt resource value: 0x7f08007c
+ public const int action_divider = 2131230844;
// aapt resource value: 0x7f080004
public const int action_menu_divider = 2131230724;
@@ -2125,26 +2044,8 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f080046
public const int buttonPanel = 2131230790;
- // aapt resource value: 0x7f080085
- public const int button_add_response = 2131230853;
-
- // aapt resource value: 0x7f080080
- public const int button_attachment = 2131230848;
-
- // aapt resource value: 0x7f08008a
- public const int button_login = 2131230858;
-
- // aapt resource value: 0x7f080086
- public const int button_refresh = 2131230854;
-
- // aapt resource value: 0x7f080081
- public const int button_send = 2131230849;
-
- // aapt resource value: 0x7f08008e
- public const int button_update = 2131230862;
-
- // aapt resource value: 0x7f080099
- public const int cancel_action = 2131230873;
+ // aapt resource value: 0x7f080079
+ public const int cancel_action = 2131230841;
// aapt resource value: 0x7f080016
public const int center = 2131230742;
@@ -2158,8 +2059,8 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f080054
public const int checkbox = 2131230804;
- // aapt resource value: 0x7f08009f
- public const int chronometer = 2131230879;
+ // aapt resource value: 0x7f08007f
+ public const int chronometer = 2131230847;
// aapt resource value: 0x7f08001f
public const int clip_horizontal = 2131230751;
@@ -2170,9 +2071,6 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f080038
public const int collapseActionView = 2131230776;
- // aapt resource value: 0x7f0800b7
- public const int contentFrame = 2131230903;
-
// aapt resource value: 0x7f08004c
public const int contentPanel = 2131230796;
@@ -2212,8 +2110,8 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f080019
public const int end = 2131230745;
- // aapt resource value: 0x7f0800a4
- public const int end_padder = 2131230884;
+ // aapt resource value: 0x7f080084
+ public const int end_padder = 2131230852;
// aapt resource value: 0x7f08000e
public const int enterAlways = 2131230734;
@@ -2269,80 +2167,29 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f080041
public const int image = 2131230785;
- // aapt resource value: 0x7f0800a3
- public const int info = 2131230883;
-
- // aapt resource value: 0x7f08007c
- public const int input_email = 2131230844;
-
- // aapt resource value: 0x7f08007e
- public const int input_message = 2131230846;
-
- // aapt resource value: 0x7f08007b
- public const int input_name = 2131230843;
-
- // aapt resource value: 0x7f080089
- public const int input_password = 2131230857;
-
- // aapt resource value: 0x7f08007d
- public const int input_subject = 2131230845;
+ // aapt resource value: 0x7f080083
+ public const int info = 2131230851;
// aapt resource value: 0x7f080000
public const int item_touch_helper_previous_elevation = 2131230720;
- // aapt resource value: 0x7f080090
- public const int label_author = 2131230864;
-
- // aapt resource value: 0x7f080091
- public const int label_date = 2131230865;
-
- // aapt resource value: 0x7f080083
- public const int label_last_updated = 2131230851;
-
- // aapt resource value: 0x7f080078
- public const int label_message = 2131230840;
-
- // aapt resource value: 0x7f080092
- public const int label_text = 2131230866;
-
- // aapt resource value: 0x7f08008c
- public const int label_title = 2131230860;
-
- // aapt resource value: 0x7f08008d
- public const int label_version = 2131230861;
-
// aapt resource value: 0x7f08001b
public const int left = 2131230747;
- // aapt resource value: 0x7f08009d
- public const int line1 = 2131230877;
+ // aapt resource value: 0x7f08007d
+ public const int line1 = 2131230845;
- // aapt resource value: 0x7f0800a1
- public const int line3 = 2131230881;
+ // aapt resource value: 0x7f080081
+ public const int line3 = 2131230849;
// aapt resource value: 0x7f080027
public const int listMode = 2131230759;
- // aapt resource value: 0x7f080093
- public const int list_attachments = 2131230867;
-
- // aapt resource value: 0x7f080087
- public const int list_feedback_messages = 2131230855;
-
// aapt resource value: 0x7f080043
public const int list_item = 2131230787;
- // aapt resource value: 0x7f080096
- public const int loadingImage = 2131230870;
-
- // aapt resource value: 0x7f080094
- public const int loadingProgressBar = 2131230868;
-
- // aapt resource value: 0x7f080097
- public const int loadingProgressWheel = 2131230871;
-
- // aapt resource value: 0x7f08009b
- public const int media_actions = 2131230875;
+ // aapt resource value: 0x7f08007b
+ public const int media_actions = 2131230843;
// aapt resource value: 0x7f080036
public const int middle = 2131230774;
@@ -2476,8 +2323,8 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f08001d
public const int start = 2131230749;
- // aapt resource value: 0x7f08009a
- public const int status_bar_latest_event_content = 2131230874;
+ // aapt resource value: 0x7f08007a
+ public const int status_bar_latest_event_content = 2131230842;
// aapt resource value: 0x7f080067
public const int submit_area = 2131230823;
@@ -2485,23 +2332,17 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f080028
public const int tabMode = 2131230760;
- // aapt resource value: 0x7f0800a2
- public const int text = 2131230882;
+ // aapt resource value: 0x7f080082
+ public const int text = 2131230850;
- // aapt resource value: 0x7f0800a0
- public const int text2 = 2131230880;
+ // aapt resource value: 0x7f080080
+ public const int text2 = 2131230848;
// aapt resource value: 0x7f08004f
public const int textSpacerNoButtons = 2131230799;
- // aapt resource value: 0x7f080095
- public const int textViewStatus = 2131230869;
-
- // aapt resource value: 0x7f080088
- public const int text_headline = 2131230856;
-
- // aapt resource value: 0x7f08009e
- public const int time = 2131230878;
+ // aapt resource value: 0x7f08007e
+ public const int time = 2131230846;
// aapt resource value: 0x7f080045
public const int title = 2131230789;
@@ -2524,36 +2365,15 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f08002e
public const int useLogo = 2131230766;
- // aapt resource value: 0x7f08008b
- public const int view_header = 2131230859;
-
// aapt resource value: 0x7f080001
public const int view_offset_helper = 2131230721;
- // aapt resource value: 0x7f08008f
- public const int web_update_details = 2131230863;
-
// aapt resource value: 0x7f08003b
public const int withText = 2131230779;
// aapt resource value: 0x7f08002f
public const int wrap_content = 2131230767;
- // aapt resource value: 0x7f08007f
- public const int wrapper_attachments = 2131230847;
-
- // aapt resource value: 0x7f08007a
- public const int wrapper_feedback = 2131230842;
-
- // aapt resource value: 0x7f080079
- public const int wrapper_feedback_scroll = 2131230841;
-
- // aapt resource value: 0x7f080082
- public const int wrapper_messages = 2131230850;
-
- // aapt resource value: 0x7f080084
- public const int wrapper_messages_buttons = 2131230852;
-
static Id()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
@@ -2719,85 +2539,52 @@ namespace Bit.Android.Test
public const int FingerprintDialog = 2130903077;
// aapt resource value: 0x7f030026
- public const int hockeyapp_activity_expiry_info = 2130903078;
+ public const int notification_media_action = 2130903078;
// aapt resource value: 0x7f030027
- public const int hockeyapp_activity_feedback = 2130903079;
+ public const int notification_media_cancel_action = 2130903079;
// aapt resource value: 0x7f030028
- public const int hockeyapp_activity_login = 2130903080;
+ public const int notification_template_big_media = 2130903080;
// aapt resource value: 0x7f030029
- public const int hockeyapp_activity_update = 2130903081;
+ public const int notification_template_big_media_narrow = 2130903081;
// aapt resource value: 0x7f03002a
- public const int hockeyapp_fragment_update = 2130903082;
+ public const int notification_template_lines = 2130903082;
// aapt resource value: 0x7f03002b
- public const int hockeyapp_view_feedback_message = 2130903083;
+ public const int notification_template_media = 2130903083;
// aapt resource value: 0x7f03002c
- public const int loading = 2130903084;
+ public const int notification_template_part_chronometer = 2130903084;
// aapt resource value: 0x7f03002d
- public const int loadingimage = 2130903085;
+ public const int notification_template_part_time = 2130903085;
// aapt resource value: 0x7f03002e
- public const int loadingprogress = 2130903086;
+ public const int options = 2130903086;
// aapt resource value: 0x7f03002f
- public const int notification_media_action = 2130903087;
+ public const int results = 2130903087;
// aapt resource value: 0x7f030030
- public const int notification_media_cancel_action = 2130903088;
+ public const int select_dialog_item_material = 2130903088;
// aapt resource value: 0x7f030031
- public const int notification_template_big_media = 2130903089;
+ public const int select_dialog_multichoice_material = 2130903089;
// aapt resource value: 0x7f030032
- public const int notification_template_big_media_narrow = 2130903090;
+ public const int select_dialog_singlechoice_material = 2130903090;
// aapt resource value: 0x7f030033
- public const int notification_template_lines = 2130903091;
+ public const int support_simple_spinner_dropdown_item = 2130903091;
// aapt resource value: 0x7f030034
- public const int notification_template_media = 2130903092;
+ public const int test_result = 2130903092;
// aapt resource value: 0x7f030035
- public const int notification_template_part_chronometer = 2130903093;
-
- // aapt resource value: 0x7f030036
- public const int notification_template_part_time = 2130903094;
-
- // aapt resource value: 0x7f030037
- public const int options = 2130903095;
-
- // aapt resource value: 0x7f030038
- public const int results = 2130903096;
-
- // aapt resource value: 0x7f030039
- public const int select_dialog_item_material = 2130903097;
-
- // aapt resource value: 0x7f03003a
- public const int select_dialog_multichoice_material = 2130903098;
-
- // aapt resource value: 0x7f03003b
- public const int select_dialog_singlechoice_material = 2130903099;
-
- // aapt resource value: 0x7f03003c
- public const int support_simple_spinner_dropdown_item = 2130903100;
-
- // aapt resource value: 0x7f03003d
- public const int test_result = 2130903101;
-
- // aapt resource value: 0x7f03003e
- public const int test_suite = 2130903102;
-
- // aapt resource value: 0x7f03003f
- public const int zxingscanneractivitylayout = 2130903103;
-
- // aapt resource value: 0x7f030040
- public const int zxingscannerfragmentlayout = 2130903104;
+ public const int test_suite = 2130903093;
static Layout()
{
@@ -2828,11 +2615,11 @@ namespace Bit.Android.Test
public partial class String
{
- // aapt resource value: 0x7f090063
- public const int ApplicationName = 2131296355;
+ // aapt resource value: 0x7f09001b
+ public const int ApplicationName = 2131296283;
- // aapt resource value: 0x7f090062
- public const int Hello = 2131296354;
+ // aapt resource value: 0x7f09001a
+ public const int Hello = 2131296282;
// aapt resource value: 0x7f090006
public const int abc_action_bar_home_description = 2131296262;
@@ -2909,222 +2696,6 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f090002
public const int common_google_play_services_unknown_issue = 2131296258;
- // aapt resource value: 0x7f09001b
- public const int hockeyapp_crash_dialog_app_name_fallback = 2131296283;
-
- // aapt resource value: 0x7f09001c
- public const int hockeyapp_crash_dialog_message = 2131296284;
-
- // aapt resource value: 0x7f09001d
- public const int hockeyapp_crash_dialog_negative_button = 2131296285;
-
- // aapt resource value: 0x7f09001e
- public const int hockeyapp_crash_dialog_neutral_button = 2131296286;
-
- // aapt resource value: 0x7f09001f
- public const int hockeyapp_crash_dialog_positive_button = 2131296287;
-
- // aapt resource value: 0x7f090020
- public const int hockeyapp_crash_dialog_title = 2131296288;
-
- // aapt resource value: 0x7f090021
- public const int hockeyapp_dialog_error_message = 2131296289;
-
- // aapt resource value: 0x7f090022
- public const int hockeyapp_dialog_error_title = 2131296290;
-
- // aapt resource value: 0x7f090023
- public const int hockeyapp_dialog_negative_button = 2131296291;
-
- // aapt resource value: 0x7f090024
- public const int hockeyapp_dialog_positive_button = 2131296292;
-
- // aapt resource value: 0x7f090025
- public const int hockeyapp_download_failed_dialog_message = 2131296293;
-
- // aapt resource value: 0x7f090026
- public const int hockeyapp_download_failed_dialog_negative_button = 2131296294;
-
- // aapt resource value: 0x7f090027
- public const int hockeyapp_download_failed_dialog_positive_button = 2131296295;
-
- // aapt resource value: 0x7f090028
- public const int hockeyapp_download_failed_dialog_title = 2131296296;
-
- // aapt resource value: 0x7f090029
- public const int hockeyapp_error_no_network_message = 2131296297;
-
- // aapt resource value: 0x7f09002a
- public const int hockeyapp_expiry_info_text = 2131296298;
-
- // aapt resource value: 0x7f09002b
- public const int hockeyapp_expiry_info_title = 2131296299;
-
- // aapt resource value: 0x7f09002c
- public const int hockeyapp_feedback_attach_file = 2131296300;
-
- // aapt resource value: 0x7f09002d
- public const int hockeyapp_feedback_attach_picture = 2131296301;
-
- // aapt resource value: 0x7f09002e
- public const int hockeyapp_feedback_attachment_button_text = 2131296302;
-
- // aapt resource value: 0x7f09002f
- public const int hockeyapp_feedback_attachment_error = 2131296303;
-
- // aapt resource value: 0x7f090030
- public const int hockeyapp_feedback_attachment_loading = 2131296304;
-
- // aapt resource value: 0x7f090031
- public const int hockeyapp_feedback_email_hint = 2131296305;
-
- // aapt resource value: 0x7f090032
- public const int hockeyapp_feedback_failed_text = 2131296306;
-
- // aapt resource value: 0x7f090033
- public const int hockeyapp_feedback_failed_title = 2131296307;
-
- // aapt resource value: 0x7f090034
- public const int hockeyapp_feedback_fetching_feedback_text = 2131296308;
-
- // aapt resource value: 0x7f090035
- public const int hockeyapp_feedback_generic_error = 2131296309;
-
- // aapt resource value: 0x7f090036
- public const int hockeyapp_feedback_last_updated_text = 2131296310;
-
- // aapt resource value: 0x7f090037
- public const int hockeyapp_feedback_max_attachments_allowed = 2131296311;
-
- // aapt resource value: 0x7f090038
- public const int hockeyapp_feedback_message_hint = 2131296312;
-
- // aapt resource value: 0x7f090039
- public const int hockeyapp_feedback_name_hint = 2131296313;
-
- // aapt resource value: 0x7f09003a
- public const int hockeyapp_feedback_refresh_button_text = 2131296314;
-
- // aapt resource value: 0x7f09003b
- public const int hockeyapp_feedback_response_button_text = 2131296315;
-
- // aapt resource value: 0x7f09003c
- public const int hockeyapp_feedback_select_file = 2131296316;
-
- // aapt resource value: 0x7f09003d
- public const int hockeyapp_feedback_select_picture = 2131296317;
-
- // aapt resource value: 0x7f09003e
- public const int hockeyapp_feedback_send_button_text = 2131296318;
-
- // aapt resource value: 0x7f09003f
- public const int hockeyapp_feedback_send_generic_error = 2131296319;
-
- // aapt resource value: 0x7f090040
- public const int hockeyapp_feedback_send_network_error = 2131296320;
-
- // aapt resource value: 0x7f090041
- public const int hockeyapp_feedback_sending_feedback_text = 2131296321;
-
- // aapt resource value: 0x7f090042
- public const int hockeyapp_feedback_subject_hint = 2131296322;
-
- // aapt resource value: 0x7f090043
- public const int hockeyapp_feedback_title = 2131296323;
-
- // aapt resource value: 0x7f090044
- public const int hockeyapp_feedback_validate_email_empty = 2131296324;
-
- // aapt resource value: 0x7f090045
- public const int hockeyapp_feedback_validate_email_error = 2131296325;
-
- // aapt resource value: 0x7f090046
- public const int hockeyapp_feedback_validate_name_error = 2131296326;
-
- // aapt resource value: 0x7f090047
- public const int hockeyapp_feedback_validate_subject_error = 2131296327;
-
- // aapt resource value: 0x7f090048
- public const int hockeyapp_feedback_validate_text_error = 2131296328;
-
- // aapt resource value: 0x7f090049
- public const int hockeyapp_login_email_hint = 2131296329;
-
- // aapt resource value: 0x7f09004a
- public const int hockeyapp_login_headline_text = 2131296330;
-
- // aapt resource value: 0x7f09004b
- public const int hockeyapp_login_headline_text_email_only = 2131296331;
-
- // aapt resource value: 0x7f09004c
- public const int hockeyapp_login_login_button_text = 2131296332;
-
- // aapt resource value: 0x7f09004d
- public const int hockeyapp_login_missing_credentials_toast = 2131296333;
-
- // aapt resource value: 0x7f09004e
- public const int hockeyapp_login_password_hint = 2131296334;
-
- // aapt resource value: 0x7f09004f
- public const int hockeyapp_paint_dialog_message = 2131296335;
-
- // aapt resource value: 0x7f090050
- public const int hockeyapp_paint_dialog_negative_button = 2131296336;
-
- // aapt resource value: 0x7f090051
- public const int hockeyapp_paint_dialog_neutral_button = 2131296337;
-
- // aapt resource value: 0x7f090052
- public const int hockeyapp_paint_dialog_positive_button = 2131296338;
-
- // aapt resource value: 0x7f090053
- public const int hockeyapp_paint_indicator_toast = 2131296339;
-
- // aapt resource value: 0x7f090054
- public const int hockeyapp_paint_menu_clear = 2131296340;
-
- // aapt resource value: 0x7f090055
- public const int hockeyapp_paint_menu_save = 2131296341;
-
- // aapt resource value: 0x7f090056
- public const int hockeyapp_paint_menu_undo = 2131296342;
-
- // aapt resource value: 0x7f090057
- public const int hockeyapp_permission_dialog_negative_button = 2131296343;
-
- // aapt resource value: 0x7f090058
- public const int hockeyapp_permission_dialog_positive_button = 2131296344;
-
- // aapt resource value: 0x7f090059
- public const int hockeyapp_permission_update_message = 2131296345;
-
- // aapt resource value: 0x7f09005a
- public const int hockeyapp_permission_update_title = 2131296346;
-
- // aapt resource value: 0x7f09005b
- public const int hockeyapp_update_button = 2131296347;
-
- // aapt resource value: 0x7f09005c
- public const int hockeyapp_update_dialog_message = 2131296348;
-
- // aapt resource value: 0x7f09005d
- public const int hockeyapp_update_dialog_negative_button = 2131296349;
-
- // aapt resource value: 0x7f09005e
- public const int hockeyapp_update_dialog_positive_button = 2131296350;
-
- // aapt resource value: 0x7f09005f
- public const int hockeyapp_update_dialog_title = 2131296351;
-
- // aapt resource value: 0x7f090060
- public const int hockeyapp_update_mandatory_toast = 2131296352;
-
- // aapt resource value: 0x7f090061
- public const int hockeyapp_update_version_details_label = 2131296353;
-
- // aapt resource value: 0x7f09001a
- public const int library_name = 2131296282;
-
// aapt resource value: 0x7f090019
public const int status_bar_notification_info_overflow = 2131296281;
@@ -3588,14 +3159,14 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f0b0006
public const int Base_Widget_Design_TabLayout = 2131427334;
- // aapt resource value: 0x7f0b015f
- public const int BitwardenTheme = 2131427679;
+ // aapt resource value: 0x7f0b015c
+ public const int BitwardenTheme = 2131427676;
- // aapt resource value: 0x7f0b0160
- public const int BitwardenTheme_Base = 2131427680;
+ // aapt resource value: 0x7f0b015d
+ public const int BitwardenTheme_Base = 2131427677;
- // aapt resource value: 0x7f0b015e
- public const int BitwardenTheme_Splash = 2131427678;
+ // aapt resource value: 0x7f0b015b
+ public const int BitwardenTheme_Splash = 2131427675;
// aapt resource value: 0x7f0b0000
public const int CardView = 2131427328;
@@ -3606,15 +3177,6 @@ namespace Bit.Android.Test
// aapt resource value: 0x7f0b0003
public const int CardView_Light = 2131427331;
- // aapt resource value: 0x7f0b015b
- public const int HockeyApp_ButtonStyle = 2131427675;
-
- // aapt resource value: 0x7f0b015c
- public const int HockeyApp_EditTextStyle = 2131427676;
-
- // aapt resource value: 0x7f0b015d
- public const int HockeyApp_SingleLineInputStyle = 2131427677;
-
// aapt resource value: 0x7f0b0034
public const int Platform_AppCompat = 2131427380;
@@ -5457,56 +5019,6 @@ namespace Bit.Android.Test
// aapt resource value: 0
public const int PopupWindowBackgroundState_state_above_anchor = 0;
- public static int[] ProgressWheel = new int[] {
- 2130772264,
- 2130772265,
- 2130772266,
- 2130772267,
- 2130772268,
- 2130772269,
- 2130772270,
- 2130772271,
- 2130772272,
- 2130772273,
- 2130772274,
- 2130772275};
-
- // aapt resource value: 3
- public const int ProgressWheel_ahBarColor = 3;
-
- // aapt resource value: 11
- public const int ProgressWheel_ahBarLength = 11;
-
- // aapt resource value: 10
- public const int ProgressWheel_ahBarWidth = 10;
-
- // aapt resource value: 8
- public const int ProgressWheel_ahCircleColor = 8;
-
- // aapt resource value: 7
- public const int ProgressWheel_ahDelayMillis = 7;
-
- // aapt resource value: 9
- public const int ProgressWheel_ahRadius = 9;
-
- // aapt resource value: 4
- public const int ProgressWheel_ahRimColor = 4;
-
- // aapt resource value: 5
- public const int ProgressWheel_ahRimWidth = 5;
-
- // aapt resource value: 6
- public const int ProgressWheel_ahSpinSpeed = 6;
-
- // aapt resource value: 0
- public const int ProgressWheel_ahText = 0;
-
- // aapt resource value: 1
- public const int ProgressWheel_ahTextColor = 1;
-
- // aapt resource value: 2
- public const int ProgressWheel_ahTextSize = 2;
-
public static int[] RecyclerView = new int[] {
16842948,
2130771968,