diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj
index 5912ca8fc..ea4a17c29 100644
--- a/src/Android/Android.csproj
+++ b/src/Android/Android.csproj
@@ -49,6 +49,9 @@
+
+ 1.1.0
+
@@ -80,6 +83,10 @@
{9F1742A7-7D03-4BB3-8FCD-41BC3002B00A}
App
+
+ {4b8a8c41-9820-4341-974c-41e65b7f4366}
+ Core
+
diff --git a/src/Android/MainActivity.cs b/src/Android/MainActivity.cs
index 60e475453..48ca1b692 100644
--- a/src/Android/MainActivity.cs
+++ b/src/Android/MainActivity.cs
@@ -1,10 +1,6 @@
-using System;
-
-using Android.App;
+using Android.App;
using Android.Content.PM;
using Android.Runtime;
-using Android.Views;
-using Android.Widget;
using Android.OS;
namespace Bit.Droid
@@ -16,7 +12,7 @@ namespace Bit.Droid
Theme = "@style/MainTheme",
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
[Register("com.x8bit.bitwarden.MainActivity")]
- public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
+ public class MainActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
@@ -24,8 +20,16 @@ namespace Bit.Droid
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
- global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
+ Xamarin.Essentials.Platform.Init(this, savedInstanceState);
+ Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App.App());
}
+
+ public override void OnRequestPermissionsResult(int requestCode, string[] permissions,
+ [GeneratedEnum] Permission[] grantResults)
+ {
+ Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
+ base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
+ }
}
-}
\ No newline at end of file
+}
diff --git a/src/Android/Resources/Resource.designer.cs b/src/Android/Resources/Resource.designer.cs
index c2c343efd..75b1bf931 100644
--- a/src/Android/Resources/Resource.designer.cs
+++ b/src/Android/Resources/Resource.designer.cs
@@ -26,6 +26,188 @@ namespace Bit.Droid
public static void UpdateIdValues()
{
+ global::Xamarin.Essentials.Resource.Attribute.alpha = global::Bit.Droid.Resource.Attribute.alpha;
+ global::Xamarin.Essentials.Resource.Attribute.coordinatorLayoutStyle = global::Bit.Droid.Resource.Attribute.coordinatorLayoutStyle;
+ global::Xamarin.Essentials.Resource.Attribute.font = global::Bit.Droid.Resource.Attribute.font;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderAuthority = global::Bit.Droid.Resource.Attribute.fontProviderAuthority;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderCerts = global::Bit.Droid.Resource.Attribute.fontProviderCerts;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderFetchStrategy = global::Bit.Droid.Resource.Attribute.fontProviderFetchStrategy;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderFetchTimeout = global::Bit.Droid.Resource.Attribute.fontProviderFetchTimeout;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderPackage = global::Bit.Droid.Resource.Attribute.fontProviderPackage;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderQuery = global::Bit.Droid.Resource.Attribute.fontProviderQuery;
+ global::Xamarin.Essentials.Resource.Attribute.fontStyle = global::Bit.Droid.Resource.Attribute.fontStyle;
+ global::Xamarin.Essentials.Resource.Attribute.fontVariationSettings = global::Bit.Droid.Resource.Attribute.fontVariationSettings;
+ global::Xamarin.Essentials.Resource.Attribute.fontWeight = global::Bit.Droid.Resource.Attribute.fontWeight;
+ global::Xamarin.Essentials.Resource.Attribute.keylines = global::Bit.Droid.Resource.Attribute.keylines;
+ global::Xamarin.Essentials.Resource.Attribute.layout_anchor = global::Bit.Droid.Resource.Attribute.layout_anchor;
+ global::Xamarin.Essentials.Resource.Attribute.layout_anchorGravity = global::Bit.Droid.Resource.Attribute.layout_anchorGravity;
+ global::Xamarin.Essentials.Resource.Attribute.layout_behavior = global::Bit.Droid.Resource.Attribute.layout_behavior;
+ global::Xamarin.Essentials.Resource.Attribute.layout_dodgeInsetEdges = global::Bit.Droid.Resource.Attribute.layout_dodgeInsetEdges;
+ global::Xamarin.Essentials.Resource.Attribute.layout_insetEdge = global::Bit.Droid.Resource.Attribute.layout_insetEdge;
+ global::Xamarin.Essentials.Resource.Attribute.layout_keyline = global::Bit.Droid.Resource.Attribute.layout_keyline;
+ global::Xamarin.Essentials.Resource.Attribute.statusBarBackground = global::Bit.Droid.Resource.Attribute.statusBarBackground;
+ global::Xamarin.Essentials.Resource.Attribute.ttcIndex = global::Bit.Droid.Resource.Attribute.ttcIndex;
+ global::Xamarin.Essentials.Resource.Color.browser_actions_bg_grey = global::Bit.Droid.Resource.Color.browser_actions_bg_grey;
+ global::Xamarin.Essentials.Resource.Color.browser_actions_divider_color = global::Bit.Droid.Resource.Color.browser_actions_divider_color;
+ global::Xamarin.Essentials.Resource.Color.browser_actions_text_color = global::Bit.Droid.Resource.Color.browser_actions_text_color;
+ global::Xamarin.Essentials.Resource.Color.browser_actions_title_color = global::Bit.Droid.Resource.Color.browser_actions_title_color;
+ global::Xamarin.Essentials.Resource.Color.notification_action_color_filter = global::Bit.Droid.Resource.Color.notification_action_color_filter;
+ global::Xamarin.Essentials.Resource.Color.notification_icon_bg_color = global::Bit.Droid.Resource.Color.notification_icon_bg_color;
+ global::Xamarin.Essentials.Resource.Color.ripple_material_light = global::Bit.Droid.Resource.Color.ripple_material_light;
+ global::Xamarin.Essentials.Resource.Color.secondary_text_default_material_light = global::Bit.Droid.Resource.Color.secondary_text_default_material_light;
+ global::Xamarin.Essentials.Resource.Dimension.browser_actions_context_menu_max_width = global::Bit.Droid.Resource.Dimension.browser_actions_context_menu_max_width;
+ global::Xamarin.Essentials.Resource.Dimension.browser_actions_context_menu_min_padding = global::Bit.Droid.Resource.Dimension.browser_actions_context_menu_min_padding;
+ global::Xamarin.Essentials.Resource.Dimension.compat_button_inset_horizontal_material = global::Bit.Droid.Resource.Dimension.compat_button_inset_horizontal_material;
+ global::Xamarin.Essentials.Resource.Dimension.compat_button_inset_vertical_material = global::Bit.Droid.Resource.Dimension.compat_button_inset_vertical_material;
+ global::Xamarin.Essentials.Resource.Dimension.compat_button_padding_horizontal_material = global::Bit.Droid.Resource.Dimension.compat_button_padding_horizontal_material;
+ global::Xamarin.Essentials.Resource.Dimension.compat_button_padding_vertical_material = global::Bit.Droid.Resource.Dimension.compat_button_padding_vertical_material;
+ global::Xamarin.Essentials.Resource.Dimension.compat_control_corner_material = global::Bit.Droid.Resource.Dimension.compat_control_corner_material;
+ global::Xamarin.Essentials.Resource.Dimension.compat_notification_large_icon_max_height = global::Bit.Droid.Resource.Dimension.compat_notification_large_icon_max_height;
+ global::Xamarin.Essentials.Resource.Dimension.compat_notification_large_icon_max_width = global::Bit.Droid.Resource.Dimension.compat_notification_large_icon_max_width;
+ global::Xamarin.Essentials.Resource.Dimension.notification_action_icon_size = global::Bit.Droid.Resource.Dimension.notification_action_icon_size;
+ global::Xamarin.Essentials.Resource.Dimension.notification_action_text_size = global::Bit.Droid.Resource.Dimension.notification_action_text_size;
+ global::Xamarin.Essentials.Resource.Dimension.notification_big_circle_margin = global::Bit.Droid.Resource.Dimension.notification_big_circle_margin;
+ global::Xamarin.Essentials.Resource.Dimension.notification_content_margin_start = global::Bit.Droid.Resource.Dimension.notification_content_margin_start;
+ global::Xamarin.Essentials.Resource.Dimension.notification_large_icon_height = global::Bit.Droid.Resource.Dimension.notification_large_icon_height;
+ global::Xamarin.Essentials.Resource.Dimension.notification_large_icon_width = global::Bit.Droid.Resource.Dimension.notification_large_icon_width;
+ global::Xamarin.Essentials.Resource.Dimension.notification_main_column_padding_top = global::Bit.Droid.Resource.Dimension.notification_main_column_padding_top;
+ global::Xamarin.Essentials.Resource.Dimension.notification_media_narrow_margin = global::Bit.Droid.Resource.Dimension.notification_media_narrow_margin;
+ global::Xamarin.Essentials.Resource.Dimension.notification_right_icon_size = global::Bit.Droid.Resource.Dimension.notification_right_icon_size;
+ global::Xamarin.Essentials.Resource.Dimension.notification_right_side_padding_top = global::Bit.Droid.Resource.Dimension.notification_right_side_padding_top;
+ global::Xamarin.Essentials.Resource.Dimension.notification_small_icon_background_padding = global::Bit.Droid.Resource.Dimension.notification_small_icon_background_padding;
+ global::Xamarin.Essentials.Resource.Dimension.notification_small_icon_size_as_large = global::Bit.Droid.Resource.Dimension.notification_small_icon_size_as_large;
+ global::Xamarin.Essentials.Resource.Dimension.notification_subtext_size = global::Bit.Droid.Resource.Dimension.notification_subtext_size;
+ global::Xamarin.Essentials.Resource.Dimension.notification_top_pad = global::Bit.Droid.Resource.Dimension.notification_top_pad;
+ global::Xamarin.Essentials.Resource.Dimension.notification_top_pad_large_text = global::Bit.Droid.Resource.Dimension.notification_top_pad_large_text;
+ global::Xamarin.Essentials.Resource.Drawable.notification_action_background = global::Bit.Droid.Resource.Drawable.notification_action_background;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg = global::Bit.Droid.Resource.Drawable.notification_bg;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_low = global::Bit.Droid.Resource.Drawable.notification_bg_low;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_low_normal = global::Bit.Droid.Resource.Drawable.notification_bg_low_normal;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_low_pressed = global::Bit.Droid.Resource.Drawable.notification_bg_low_pressed;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_normal = global::Bit.Droid.Resource.Drawable.notification_bg_normal;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_normal_pressed = global::Bit.Droid.Resource.Drawable.notification_bg_normal_pressed;
+ global::Xamarin.Essentials.Resource.Drawable.notification_icon_background = global::Bit.Droid.Resource.Drawable.notification_icon_background;
+ global::Xamarin.Essentials.Resource.Drawable.notification_template_icon_bg = global::Bit.Droid.Resource.Drawable.notification_template_icon_bg;
+ global::Xamarin.Essentials.Resource.Drawable.notification_template_icon_low_bg = global::Bit.Droid.Resource.Drawable.notification_template_icon_low_bg;
+ global::Xamarin.Essentials.Resource.Drawable.notification_tile_bg = global::Bit.Droid.Resource.Drawable.notification_tile_bg;
+ global::Xamarin.Essentials.Resource.Drawable.notify_panel_notification_icon_bg = global::Bit.Droid.Resource.Drawable.notify_panel_notification_icon_bg;
+ global::Xamarin.Essentials.Resource.Id.action_container = global::Bit.Droid.Resource.Id.action_container;
+ global::Xamarin.Essentials.Resource.Id.action_divider = global::Bit.Droid.Resource.Id.action_divider;
+ global::Xamarin.Essentials.Resource.Id.action_image = global::Bit.Droid.Resource.Id.action_image;
+ global::Xamarin.Essentials.Resource.Id.action_text = global::Bit.Droid.Resource.Id.action_text;
+ global::Xamarin.Essentials.Resource.Id.actions = global::Bit.Droid.Resource.Id.actions;
+ global::Xamarin.Essentials.Resource.Id.all = global::Bit.Droid.Resource.Id.all;
+ global::Xamarin.Essentials.Resource.Id.async = global::Bit.Droid.Resource.Id.async;
+ global::Xamarin.Essentials.Resource.Id.blocking = global::Bit.Droid.Resource.Id.blocking;
+ global::Xamarin.Essentials.Resource.Id.bottom = global::Bit.Droid.Resource.Id.bottom;
+ global::Xamarin.Essentials.Resource.Id.browser_actions_header_text = global::Bit.Droid.Resource.Id.browser_actions_header_text;
+ global::Xamarin.Essentials.Resource.Id.browser_actions_menu_item_icon = global::Bit.Droid.Resource.Id.browser_actions_menu_item_icon;
+ global::Xamarin.Essentials.Resource.Id.browser_actions_menu_item_text = global::Bit.Droid.Resource.Id.browser_actions_menu_item_text;
+ global::Xamarin.Essentials.Resource.Id.browser_actions_menu_items = global::Bit.Droid.Resource.Id.browser_actions_menu_items;
+ global::Xamarin.Essentials.Resource.Id.browser_actions_menu_view = global::Bit.Droid.Resource.Id.browser_actions_menu_view;
+ global::Xamarin.Essentials.Resource.Id.center = global::Bit.Droid.Resource.Id.center;
+ global::Xamarin.Essentials.Resource.Id.center_horizontal = global::Bit.Droid.Resource.Id.center_horizontal;
+ global::Xamarin.Essentials.Resource.Id.center_vertical = global::Bit.Droid.Resource.Id.center_vertical;
+ global::Xamarin.Essentials.Resource.Id.chronometer = global::Bit.Droid.Resource.Id.chronometer;
+ global::Xamarin.Essentials.Resource.Id.clip_horizontal = global::Bit.Droid.Resource.Id.clip_horizontal;
+ global::Xamarin.Essentials.Resource.Id.clip_vertical = global::Bit.Droid.Resource.Id.clip_vertical;
+ global::Xamarin.Essentials.Resource.Id.end = global::Bit.Droid.Resource.Id.end;
+ global::Xamarin.Essentials.Resource.Id.fill = global::Bit.Droid.Resource.Id.fill;
+ global::Xamarin.Essentials.Resource.Id.fill_horizontal = global::Bit.Droid.Resource.Id.fill_horizontal;
+ global::Xamarin.Essentials.Resource.Id.fill_vertical = global::Bit.Droid.Resource.Id.fill_vertical;
+ global::Xamarin.Essentials.Resource.Id.forever = global::Bit.Droid.Resource.Id.forever;
+ global::Xamarin.Essentials.Resource.Id.icon = global::Bit.Droid.Resource.Id.icon;
+ global::Xamarin.Essentials.Resource.Id.icon_group = global::Bit.Droid.Resource.Id.icon_group;
+ global::Xamarin.Essentials.Resource.Id.info = global::Bit.Droid.Resource.Id.info;
+ global::Xamarin.Essentials.Resource.Id.italic = global::Bit.Droid.Resource.Id.italic;
+ global::Xamarin.Essentials.Resource.Id.left = global::Bit.Droid.Resource.Id.left;
+ global::Xamarin.Essentials.Resource.Id.line1 = global::Bit.Droid.Resource.Id.line1;
+ global::Xamarin.Essentials.Resource.Id.line3 = global::Bit.Droid.Resource.Id.line3;
+ global::Xamarin.Essentials.Resource.Id.none = global::Bit.Droid.Resource.Id.none;
+ global::Xamarin.Essentials.Resource.Id.normal = global::Bit.Droid.Resource.Id.normal;
+ global::Xamarin.Essentials.Resource.Id.notification_background = global::Bit.Droid.Resource.Id.notification_background;
+ global::Xamarin.Essentials.Resource.Id.notification_main_column = global::Bit.Droid.Resource.Id.notification_main_column;
+ global::Xamarin.Essentials.Resource.Id.notification_main_column_container = global::Bit.Droid.Resource.Id.notification_main_column_container;
+ global::Xamarin.Essentials.Resource.Id.right = global::Bit.Droid.Resource.Id.right;
+ global::Xamarin.Essentials.Resource.Id.right_icon = global::Bit.Droid.Resource.Id.right_icon;
+ global::Xamarin.Essentials.Resource.Id.right_side = global::Bit.Droid.Resource.Id.right_side;
+ global::Xamarin.Essentials.Resource.Id.start = global::Bit.Droid.Resource.Id.start;
+ global::Xamarin.Essentials.Resource.Id.tag_transition_group = global::Bit.Droid.Resource.Id.tag_transition_group;
+ global::Xamarin.Essentials.Resource.Id.tag_unhandled_key_event_manager = global::Bit.Droid.Resource.Id.tag_unhandled_key_event_manager;
+ global::Xamarin.Essentials.Resource.Id.tag_unhandled_key_listeners = global::Bit.Droid.Resource.Id.tag_unhandled_key_listeners;
+ global::Xamarin.Essentials.Resource.Id.text = global::Bit.Droid.Resource.Id.text;
+ global::Xamarin.Essentials.Resource.Id.text2 = global::Bit.Droid.Resource.Id.text2;
+ global::Xamarin.Essentials.Resource.Id.time = global::Bit.Droid.Resource.Id.time;
+ global::Xamarin.Essentials.Resource.Id.title = global::Bit.Droid.Resource.Id.title;
+ global::Xamarin.Essentials.Resource.Id.top = global::Bit.Droid.Resource.Id.top;
+ global::Xamarin.Essentials.Resource.Integer.status_bar_notification_info_maxnum = global::Bit.Droid.Resource.Integer.status_bar_notification_info_maxnum;
+ global::Xamarin.Essentials.Resource.Layout.browser_actions_context_menu_page = global::Bit.Droid.Resource.Layout.browser_actions_context_menu_page;
+ global::Xamarin.Essentials.Resource.Layout.browser_actions_context_menu_row = global::Bit.Droid.Resource.Layout.browser_actions_context_menu_row;
+ global::Xamarin.Essentials.Resource.Layout.notification_action = global::Bit.Droid.Resource.Layout.notification_action;
+ global::Xamarin.Essentials.Resource.Layout.notification_action_tombstone = global::Bit.Droid.Resource.Layout.notification_action_tombstone;
+ global::Xamarin.Essentials.Resource.Layout.notification_template_custom_big = global::Bit.Droid.Resource.Layout.notification_template_custom_big;
+ global::Xamarin.Essentials.Resource.Layout.notification_template_icon_group = global::Bit.Droid.Resource.Layout.notification_template_icon_group;
+ global::Xamarin.Essentials.Resource.Layout.notification_template_part_chronometer = global::Bit.Droid.Resource.Layout.notification_template_part_chronometer;
+ global::Xamarin.Essentials.Resource.Layout.notification_template_part_time = global::Bit.Droid.Resource.Layout.notification_template_part_time;
+ global::Xamarin.Essentials.Resource.String.status_bar_notification_info_overflow = global::Bit.Droid.Resource.String.status_bar_notification_info_overflow;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification = global::Bit.Droid.Resource.Style.TextAppearance_Compat_Notification;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Info = global::Bit.Droid.Resource.Style.TextAppearance_Compat_Notification_Info;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Line2 = global::Bit.Droid.Resource.Style.TextAppearance_Compat_Notification_Line2;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Time = global::Bit.Droid.Resource.Style.TextAppearance_Compat_Notification_Time;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Title = global::Bit.Droid.Resource.Style.TextAppearance_Compat_Notification_Title;
+ global::Xamarin.Essentials.Resource.Style.Widget_Compat_NotificationActionContainer = global::Bit.Droid.Resource.Style.Widget_Compat_NotificationActionContainer;
+ global::Xamarin.Essentials.Resource.Style.Widget_Compat_NotificationActionText = global::Bit.Droid.Resource.Style.Widget_Compat_NotificationActionText;
+ global::Xamarin.Essentials.Resource.Style.Widget_Support_CoordinatorLayout = global::Bit.Droid.Resource.Style.Widget_Support_CoordinatorLayout;
+ global::Xamarin.Essentials.Resource.Xml.xamarin_essentials_fileprovider_file_paths = global::Bit.Droid.Resource.Xml.xamarin_essentials_fileprovider_file_paths;
+ global::Xamarin.Essentials.Resource.Styleable.ColorStateListItem = global::Bit.Droid.Resource.Styleable.ColorStateListItem;
+ global::Xamarin.Essentials.Resource.Styleable.ColorStateListItem_alpha = global::Bit.Droid.Resource.Styleable.ColorStateListItem_alpha;
+ global::Xamarin.Essentials.Resource.Styleable.ColorStateListItem_android_alpha = global::Bit.Droid.Resource.Styleable.ColorStateListItem_android_alpha;
+ global::Xamarin.Essentials.Resource.Styleable.ColorStateListItem_android_color = global::Bit.Droid.Resource.Styleable.ColorStateListItem_android_color;
+ global::Xamarin.Essentials.Resource.Styleable.CoordinatorLayout = global::Bit.Droid.Resource.Styleable.CoordinatorLayout;
+ global::Xamarin.Essentials.Resource.Styleable.CoordinatorLayout_keylines = global::Bit.Droid.Resource.Styleable.CoordinatorLayout_keylines;
+ global::Xamarin.Essentials.Resource.Styleable.CoordinatorLayout_statusBarBackground = global::Bit.Droid.Resource.Styleable.CoordinatorLayout_statusBarBackground;
+ global::Xamarin.Essentials.Resource.Styleable.CoordinatorLayout_Layout = global::Bit.Droid.Resource.Styleable.CoordinatorLayout_Layout;
+ global::Xamarin.Essentials.Resource.Styleable.CoordinatorLayout_Layout_android_layout_gravity = global::Bit.Droid.Resource.Styleable.CoordinatorLayout_Layout_android_layout_gravity;
+ global::Xamarin.Essentials.Resource.Styleable.CoordinatorLayout_Layout_layout_anchor = global::Bit.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_anchor;
+ global::Xamarin.Essentials.Resource.Styleable.CoordinatorLayout_Layout_layout_anchorGravity = global::Bit.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_anchorGravity;
+ global::Xamarin.Essentials.Resource.Styleable.CoordinatorLayout_Layout_layout_behavior = global::Bit.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_behavior;
+ global::Xamarin.Essentials.Resource.Styleable.CoordinatorLayout_Layout_layout_dodgeInsetEdges = global::Bit.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_dodgeInsetEdges;
+ global::Xamarin.Essentials.Resource.Styleable.CoordinatorLayout_Layout_layout_insetEdge = global::Bit.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_insetEdge;
+ global::Xamarin.Essentials.Resource.Styleable.CoordinatorLayout_Layout_layout_keyline = global::Bit.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_keyline;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily = global::Bit.Droid.Resource.Styleable.FontFamily;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderAuthority = global::Bit.Droid.Resource.Styleable.FontFamily_fontProviderAuthority;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderCerts = global::Bit.Droid.Resource.Styleable.FontFamily_fontProviderCerts;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderFetchStrategy = global::Bit.Droid.Resource.Styleable.FontFamily_fontProviderFetchStrategy;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderFetchTimeout = global::Bit.Droid.Resource.Styleable.FontFamily_fontProviderFetchTimeout;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderPackage = global::Bit.Droid.Resource.Styleable.FontFamily_fontProviderPackage;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderQuery = global::Bit.Droid.Resource.Styleable.FontFamily_fontProviderQuery;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont = global::Bit.Droid.Resource.Styleable.FontFamilyFont;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_android_font = global::Bit.Droid.Resource.Styleable.FontFamilyFont_android_font;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_android_fontStyle = global::Bit.Droid.Resource.Styleable.FontFamilyFont_android_fontStyle;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_android_fontVariationSettings = global::Bit.Droid.Resource.Styleable.FontFamilyFont_android_fontVariationSettings;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_android_fontWeight = global::Bit.Droid.Resource.Styleable.FontFamilyFont_android_fontWeight;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_android_ttcIndex = global::Bit.Droid.Resource.Styleable.FontFamilyFont_android_ttcIndex;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_font = global::Bit.Droid.Resource.Styleable.FontFamilyFont_font;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_fontStyle = global::Bit.Droid.Resource.Styleable.FontFamilyFont_fontStyle;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_fontVariationSettings = global::Bit.Droid.Resource.Styleable.FontFamilyFont_fontVariationSettings;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_fontWeight = global::Bit.Droid.Resource.Styleable.FontFamilyFont_fontWeight;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_ttcIndex = global::Bit.Droid.Resource.Styleable.FontFamilyFont_ttcIndex;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColor = global::Bit.Droid.Resource.Styleable.GradientColor;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColor_android_centerColor = global::Bit.Droid.Resource.Styleable.GradientColor_android_centerColor;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColor_android_centerX = global::Bit.Droid.Resource.Styleable.GradientColor_android_centerX;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColor_android_centerY = global::Bit.Droid.Resource.Styleable.GradientColor_android_centerY;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColor_android_endColor = global::Bit.Droid.Resource.Styleable.GradientColor_android_endColor;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColor_android_endX = global::Bit.Droid.Resource.Styleable.GradientColor_android_endX;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColor_android_endY = global::Bit.Droid.Resource.Styleable.GradientColor_android_endY;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColor_android_gradientRadius = global::Bit.Droid.Resource.Styleable.GradientColor_android_gradientRadius;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColor_android_startColor = global::Bit.Droid.Resource.Styleable.GradientColor_android_startColor;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColor_android_startX = global::Bit.Droid.Resource.Styleable.GradientColor_android_startX;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColor_android_startY = global::Bit.Droid.Resource.Styleable.GradientColor_android_startY;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColor_android_tileMode = global::Bit.Droid.Resource.Styleable.GradientColor_android_tileMode;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColor_android_type = global::Bit.Droid.Resource.Styleable.GradientColor_android_type;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColorItem = global::Bit.Droid.Resource.Styleable.GradientColorItem;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColorItem_android_color = global::Bit.Droid.Resource.Styleable.GradientColorItem_android_color;
+ global::Xamarin.Essentials.Resource.Styleable.GradientColorItem_android_offset = global::Bit.Droid.Resource.Styleable.GradientColorItem_android_offset;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_fade_in = global::Bit.Droid.Resource.Animation.abc_fade_in;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_fade_out = global::Bit.Droid.Resource.Animation.abc_fade_out;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_grow_fade_in_from_bottom = global::Bit.Droid.Resource.Animation.abc_grow_fade_in_from_bottom;
@@ -9336,6 +9518,9 @@ namespace Bit.Droid
// aapt resource value: 0x7f080003
public const int network_security_config = 2131230723;
+ // aapt resource value: 0x7f080004
+ public const int xamarin_essentials_fileprovider_file_paths = 2131230724;
+
static Xml()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
diff --git a/src/Core/Abstractions/IStorageService.cs b/src/Core/Abstractions/IStorageService.cs
new file mode 100644
index 000000000..5ff667cc7
--- /dev/null
+++ b/src/Core/Abstractions/IStorageService.cs
@@ -0,0 +1,11 @@
+using System.Threading.Tasks;
+
+namespace Bit.Core.Abstractions
+{
+ public interface IStorageService
+ {
+ Task GetAsync(string key);
+ Task SaveAsync(string key, T obj);
+ Task RemoveAsync(string key);
+ }
+}
diff --git a/src/Core/Class1.cs b/src/Core/Class1.cs
deleted file mode 100644
index 339029672..000000000
--- a/src/Core/Class1.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using System;
-
-namespace Bit.Core
-{
- public class Class1
- {
- }
-}
diff --git a/src/Core/Core.csproj b/src/Core/Core.csproj
index 9debb9d66..c0028818b 100644
--- a/src/Core/Core.csproj
+++ b/src/Core/Core.csproj
@@ -11,4 +11,10 @@
true
+
+
+
+
+
+
diff --git a/src/Core/Services/LiteDbStorageService.cs b/src/Core/Services/LiteDbStorageService.cs
new file mode 100644
index 000000000..621728e37
--- /dev/null
+++ b/src/Core/Services/LiteDbStorageService.cs
@@ -0,0 +1,56 @@
+using Bit.Core.Abstractions;
+using LiteDB;
+using Newtonsoft.Json;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace Bit.Core.Services
+{
+ public class LiteDbStorageService : IStorageService
+ {
+ private LiteCollection _collection;
+
+ public LiteDbStorageService(string dbPath)
+ {
+ var db = new LiteDatabase($"filename={dbPath}");
+ _collection = db.GetCollection("json_items");
+ }
+
+ public Task GetAsync(string key)
+ {
+ var item = _collection.Find(i => i.Id == key).FirstOrDefault();
+ if(item == null)
+ {
+ return Task.FromResult(default(T));
+ }
+ return Task.FromResult(JsonConvert.DeserializeObject(item.Value));
+ }
+
+ public Task SaveAsync(string key, T obj)
+ {
+ var data = JsonConvert.SerializeObject(obj);
+ _collection.Upsert(new JsonItem(key, data));
+ return Task.FromResult(0);
+ }
+
+ public Task RemoveAsync(string key)
+ {
+ _collection.Delete(i => i.Id == key);
+ return Task.FromResult(0);
+ }
+
+ private class JsonItem
+ {
+ public JsonItem() { }
+
+ public JsonItem(string key, string value)
+ {
+ Id = key;
+ Value = value;
+ }
+
+ public string Id { get; set; }
+ public string Value { get; set; }
+ }
+ }
+}
diff --git a/src/Core/Services/PreferencesStorageService.cs b/src/Core/Services/PreferencesStorageService.cs
new file mode 100644
index 000000000..36896f5f8
--- /dev/null
+++ b/src/Core/Services/PreferencesStorageService.cs
@@ -0,0 +1,95 @@
+using Bit.Core.Abstractions;
+using System;
+using System.Threading.Tasks;
+
+namespace Bit.Core.Services
+{
+ public class PreferencesStorageService : IStorageService
+ {
+ private string _keyFormat = "bwPref:{0}";
+
+ public Task GetAsync(string key)
+ {
+ var formattedKey = string.Format(_keyFormat, key);
+ if(!Xamarin.Essentials.Preferences.ContainsKey(formattedKey))
+ {
+ return Task.FromResult(default(T));
+ }
+
+ var objType = typeof(T);
+ if(objType == typeof(string))
+ {
+ var val = Xamarin.Essentials.Preferences.Get(key, default(string));
+ return Task.FromResult((T)(object)val);
+ }
+ else if(objType == typeof(int))
+ {
+ var val = Xamarin.Essentials.Preferences.Get(key, default(int));
+ return Task.FromResult((T)Convert.ChangeType(val, objType));
+ }
+ else if(objType == typeof(long))
+ {
+ var val = Xamarin.Essentials.Preferences.Get(key, default(long));
+ return Task.FromResult((T)Convert.ChangeType(val, objType));
+ }
+ else if(objType == typeof(double))
+ {
+ var val = Xamarin.Essentials.Preferences.Get(key, default(double));
+ return Task.FromResult((T)Convert.ChangeType(val, objType));
+ }
+ else if(objType == typeof(DateTime))
+ {
+ var val = Xamarin.Essentials.Preferences.Get(key, default(DateTime));
+ return Task.FromResult((T)Convert.ChangeType(val, objType));
+ }
+ else
+ {
+ throw new Exception("Unsupported object type for preferences.");
+ }
+ }
+
+ public Task SaveAsync(string key, T obj)
+ {
+ if(obj == null)
+ {
+ return RemoveAsync(key);
+ }
+
+ var objType = typeof(T);
+ if(objType == typeof(string))
+ {
+ Xamarin.Essentials.Preferences.Set(key, obj as string);
+ }
+ else if(objType == typeof(int))
+ {
+ Xamarin.Essentials.Preferences.Set(key, (obj as int?).Value);
+ }
+ else if(objType == typeof(long))
+ {
+ Xamarin.Essentials.Preferences.Set(key, (obj as long?).Value);
+ }
+ else if(objType == typeof(double))
+ {
+ Xamarin.Essentials.Preferences.Set(key, (obj as double?).Value);
+ }
+ else if(objType == typeof(DateTime))
+ {
+ Xamarin.Essentials.Preferences.Set(key, (obj as DateTime?).Value);
+ }
+ else
+ {
+ throw new Exception("Unsupported object type for preferences.");
+ }
+ return Task.FromResult(0);
+ }
+
+ public Task RemoveAsync(string key)
+ {
+ if(Xamarin.Essentials.Preferences.ContainsKey(key))
+ {
+ Xamarin.Essentials.Preferences.Remove(key);
+ }
+ return Task.FromResult(0);
+ }
+ }
+}
diff --git a/src/iOS/AppDelegate.cs b/src/iOS/AppDelegate.cs
index 49ee1aa45..d7c13bda7 100644
--- a/src/iOS/AppDelegate.cs
+++ b/src/iOS/AppDelegate.cs
@@ -11,7 +11,7 @@ namespace Bit.iOS
// User Interface of the application, as well as listening (and optionally responding) to
// application events from iOS.
[Register("AppDelegate")]
- public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
+ public partial class AppDelegate : Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
//
// This method is invoked when the application has loaded and is ready to run. In this
@@ -22,7 +22,7 @@ namespace Bit.iOS
//
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
- global::Xamarin.Forms.Forms.Init();
+ Xamarin.Forms.Forms.Init();
LoadApplication(new App.App());
return base.FinishedLaunching(app, options);
diff --git a/src/iOS/iOS.csproj b/src/iOS/iOS.csproj
index e9d9c4dab..241705401 100644
--- a/src/iOS/iOS.csproj
+++ b/src/iOS/iOS.csproj
@@ -149,6 +149,9 @@
+
+ 1.1.0
+
@@ -157,5 +160,9 @@
{9F1742A7-7D03-4BB3-8FCD-41BC3002B00A}
App
+
+ {4b8a8c41-9820-4341-974c-41e65b7f4366}
+ Core
+
\ No newline at end of file