diff --git a/.gitattributes b/.gitattributes
index e9d01fb01..f71d08016 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -64,4 +64,7 @@
# Force bash scripts to always use lf line endings so that if a repo is accessed
# in Unix via a file share from Windows, the scripts will work.
-*.sh text eol=lf
\ No newline at end of file
+*.sh text eol=lf
+
+# Force the docs to always use lf line endings
+docs/**/*.xml text eol=lf
diff --git a/.openpublishing.publish.config.json b/.openpublishing.publish.config.json
index 06fdf61d0..88000af32 100644
--- a/.openpublishing.publish.config.json
+++ b/.openpublishing.publish.config.json
@@ -74,7 +74,7 @@
"nuget_feed": "https://www.myget.org/F/op/api/v2",
"path_to_root": "_dependentPackages/ECMA2Yaml",
"target_framework": "net45",
- "version": "1.0.417"
+ "version": "latest"
},
{
"id": "memberpage.plugins",
diff --git a/DeviceTests/DeviceTests.Android/DeviceTests.Android.csproj b/DeviceTests/DeviceTests.Android/DeviceTests.Android.csproj
index 4ba92430f..1ea939c39 100644
--- a/DeviceTests/DeviceTests.Android/DeviceTests.Android.csproj
+++ b/DeviceTests/DeviceTests.Android/DeviceTests.Android.csproj
@@ -38,7 +38,7 @@
4
true
false
- armeabi;armeabi-v7a;x86;x86_64;arm64-v8a
+ armeabi-v7a;x86;x86_64;arm64-v8a
true
1G
@@ -52,11 +52,21 @@
4
true
false
- armeabi;armeabi-v7a;x86;x86_64;arm64-v8a
+ armeabi-v7a;x86;x86_64;arm64-v8a
true
1G
+
+ true
+ bin\Docs\
+ true
+ pdbonly
+ AnyCPU
+ Off
+ prompt
+ MinimumRecommendedRules.ruleset
+
@@ -65,14 +75,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -93,6 +103,9 @@
+
+
+
diff --git a/DeviceTests/DeviceTests.Android/Properties/AndroidManifest.xml b/DeviceTests/DeviceTests.Android/Properties/AndroidManifest.xml
index 4bd8ad2f1..f6dc33f3c 100644
--- a/DeviceTests/DeviceTests.Android/Properties/AndroidManifest.xml
+++ b/DeviceTests/DeviceTests.Android/Properties/AndroidManifest.xml
@@ -9,5 +9,6 @@
+
\ No newline at end of file
diff --git a/DeviceTests/DeviceTests.Android/Resources/Resource.designer.cs b/DeviceTests/DeviceTests.Android/Resources/Resource.designer.cs
index d4951b4b9..c011f2821 100644
--- a/DeviceTests/DeviceTests.Android/Resources/Resource.designer.cs
+++ b/DeviceTests/DeviceTests.Android/Resources/Resource.designer.cs
@@ -26,6 +26,108 @@ static Resource()
public static void UpdateIdValues()
{
+ global::Xamarin.Essentials.Resource.Attribute.font = global::DeviceTests.Droid.Resource.Attribute.font;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderAuthority = global::DeviceTests.Droid.Resource.Attribute.fontProviderAuthority;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderCerts = global::DeviceTests.Droid.Resource.Attribute.fontProviderCerts;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderFetchStrategy = global::DeviceTests.Droid.Resource.Attribute.fontProviderFetchStrategy;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderFetchTimeout = global::DeviceTests.Droid.Resource.Attribute.fontProviderFetchTimeout;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderPackage = global::DeviceTests.Droid.Resource.Attribute.fontProviderPackage;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderQuery = global::DeviceTests.Droid.Resource.Attribute.fontProviderQuery;
+ global::Xamarin.Essentials.Resource.Attribute.fontStyle = global::DeviceTests.Droid.Resource.Attribute.fontStyle;
+ global::Xamarin.Essentials.Resource.Attribute.fontWeight = global::DeviceTests.Droid.Resource.Attribute.fontWeight;
+ global::Xamarin.Essentials.Resource.Boolean.abc_action_bar_embed_tabs = global::DeviceTests.Droid.Resource.Boolean.abc_action_bar_embed_tabs;
+ global::Xamarin.Essentials.Resource.Color.notification_action_color_filter = global::DeviceTests.Droid.Resource.Color.notification_action_color_filter;
+ global::Xamarin.Essentials.Resource.Color.notification_icon_bg_color = global::DeviceTests.Droid.Resource.Color.notification_icon_bg_color;
+ global::Xamarin.Essentials.Resource.Color.ripple_material_light = global::DeviceTests.Droid.Resource.Color.ripple_material_light;
+ global::Xamarin.Essentials.Resource.Color.secondary_text_default_material_light = global::DeviceTests.Droid.Resource.Color.secondary_text_default_material_light;
+ global::Xamarin.Essentials.Resource.Dimension.compat_button_inset_horizontal_material = global::DeviceTests.Droid.Resource.Dimension.compat_button_inset_horizontal_material;
+ global::Xamarin.Essentials.Resource.Dimension.compat_button_inset_vertical_material = global::DeviceTests.Droid.Resource.Dimension.compat_button_inset_vertical_material;
+ global::Xamarin.Essentials.Resource.Dimension.compat_button_padding_horizontal_material = global::DeviceTests.Droid.Resource.Dimension.compat_button_padding_horizontal_material;
+ global::Xamarin.Essentials.Resource.Dimension.compat_button_padding_vertical_material = global::DeviceTests.Droid.Resource.Dimension.compat_button_padding_vertical_material;
+ global::Xamarin.Essentials.Resource.Dimension.compat_control_corner_material = global::DeviceTests.Droid.Resource.Dimension.compat_control_corner_material;
+ global::Xamarin.Essentials.Resource.Dimension.notification_action_icon_size = global::DeviceTests.Droid.Resource.Dimension.notification_action_icon_size;
+ global::Xamarin.Essentials.Resource.Dimension.notification_action_text_size = global::DeviceTests.Droid.Resource.Dimension.notification_action_text_size;
+ global::Xamarin.Essentials.Resource.Dimension.notification_big_circle_margin = global::DeviceTests.Droid.Resource.Dimension.notification_big_circle_margin;
+ global::Xamarin.Essentials.Resource.Dimension.notification_content_margin_start = global::DeviceTests.Droid.Resource.Dimension.notification_content_margin_start;
+ global::Xamarin.Essentials.Resource.Dimension.notification_large_icon_height = global::DeviceTests.Droid.Resource.Dimension.notification_large_icon_height;
+ global::Xamarin.Essentials.Resource.Dimension.notification_large_icon_width = global::DeviceTests.Droid.Resource.Dimension.notification_large_icon_width;
+ global::Xamarin.Essentials.Resource.Dimension.notification_main_column_padding_top = global::DeviceTests.Droid.Resource.Dimension.notification_main_column_padding_top;
+ global::Xamarin.Essentials.Resource.Dimension.notification_media_narrow_margin = global::DeviceTests.Droid.Resource.Dimension.notification_media_narrow_margin;
+ global::Xamarin.Essentials.Resource.Dimension.notification_right_icon_size = global::DeviceTests.Droid.Resource.Dimension.notification_right_icon_size;
+ global::Xamarin.Essentials.Resource.Dimension.notification_right_side_padding_top = global::DeviceTests.Droid.Resource.Dimension.notification_right_side_padding_top;
+ global::Xamarin.Essentials.Resource.Dimension.notification_small_icon_background_padding = global::DeviceTests.Droid.Resource.Dimension.notification_small_icon_background_padding;
+ global::Xamarin.Essentials.Resource.Dimension.notification_small_icon_size_as_large = global::DeviceTests.Droid.Resource.Dimension.notification_small_icon_size_as_large;
+ global::Xamarin.Essentials.Resource.Dimension.notification_subtext_size = global::DeviceTests.Droid.Resource.Dimension.notification_subtext_size;
+ global::Xamarin.Essentials.Resource.Dimension.notification_top_pad = global::DeviceTests.Droid.Resource.Dimension.notification_top_pad;
+ global::Xamarin.Essentials.Resource.Dimension.notification_top_pad_large_text = global::DeviceTests.Droid.Resource.Dimension.notification_top_pad_large_text;
+ global::Xamarin.Essentials.Resource.Drawable.notification_action_background = global::DeviceTests.Droid.Resource.Drawable.notification_action_background;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg = global::DeviceTests.Droid.Resource.Drawable.notification_bg;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_low = global::DeviceTests.Droid.Resource.Drawable.notification_bg_low;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_low_normal = global::DeviceTests.Droid.Resource.Drawable.notification_bg_low_normal;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_low_pressed = global::DeviceTests.Droid.Resource.Drawable.notification_bg_low_pressed;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_normal = global::DeviceTests.Droid.Resource.Drawable.notification_bg_normal;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_normal_pressed = global::DeviceTests.Droid.Resource.Drawable.notification_bg_normal_pressed;
+ global::Xamarin.Essentials.Resource.Drawable.notification_icon_background = global::DeviceTests.Droid.Resource.Drawable.notification_icon_background;
+ global::Xamarin.Essentials.Resource.Drawable.notification_template_icon_bg = global::DeviceTests.Droid.Resource.Drawable.notification_template_icon_bg;
+ global::Xamarin.Essentials.Resource.Drawable.notification_template_icon_low_bg = global::DeviceTests.Droid.Resource.Drawable.notification_template_icon_low_bg;
+ global::Xamarin.Essentials.Resource.Drawable.notification_tile_bg = global::DeviceTests.Droid.Resource.Drawable.notification_tile_bg;
+ global::Xamarin.Essentials.Resource.Drawable.notify_panel_notification_icon_bg = global::DeviceTests.Droid.Resource.Drawable.notify_panel_notification_icon_bg;
+ global::Xamarin.Essentials.Resource.Id.action_container = global::DeviceTests.Droid.Resource.Id.action_container;
+ global::Xamarin.Essentials.Resource.Id.action_divider = global::DeviceTests.Droid.Resource.Id.action_divider;
+ global::Xamarin.Essentials.Resource.Id.action_image = global::DeviceTests.Droid.Resource.Id.action_image;
+ global::Xamarin.Essentials.Resource.Id.action_text = global::DeviceTests.Droid.Resource.Id.action_text;
+ global::Xamarin.Essentials.Resource.Id.actions = global::DeviceTests.Droid.Resource.Id.actions;
+ global::Xamarin.Essentials.Resource.Id.async = global::DeviceTests.Droid.Resource.Id.async;
+ global::Xamarin.Essentials.Resource.Id.blocking = global::DeviceTests.Droid.Resource.Id.blocking;
+ global::Xamarin.Essentials.Resource.Id.chronometer = global::DeviceTests.Droid.Resource.Id.chronometer;
+ global::Xamarin.Essentials.Resource.Id.forever = global::DeviceTests.Droid.Resource.Id.forever;
+ global::Xamarin.Essentials.Resource.Id.icon = global::DeviceTests.Droid.Resource.Id.icon;
+ global::Xamarin.Essentials.Resource.Id.icon_group = global::DeviceTests.Droid.Resource.Id.icon_group;
+ global::Xamarin.Essentials.Resource.Id.info = global::DeviceTests.Droid.Resource.Id.info;
+ global::Xamarin.Essentials.Resource.Id.italic = global::DeviceTests.Droid.Resource.Id.italic;
+ global::Xamarin.Essentials.Resource.Id.line1 = global::DeviceTests.Droid.Resource.Id.line1;
+ global::Xamarin.Essentials.Resource.Id.line3 = global::DeviceTests.Droid.Resource.Id.line3;
+ global::Xamarin.Essentials.Resource.Id.normal = global::DeviceTests.Droid.Resource.Id.normal;
+ global::Xamarin.Essentials.Resource.Id.notification_background = global::DeviceTests.Droid.Resource.Id.notification_background;
+ global::Xamarin.Essentials.Resource.Id.notification_main_column = global::DeviceTests.Droid.Resource.Id.notification_main_column;
+ global::Xamarin.Essentials.Resource.Id.notification_main_column_container = global::DeviceTests.Droid.Resource.Id.notification_main_column_container;
+ global::Xamarin.Essentials.Resource.Id.right_icon = global::DeviceTests.Droid.Resource.Id.right_icon;
+ global::Xamarin.Essentials.Resource.Id.right_side = global::DeviceTests.Droid.Resource.Id.right_side;
+ global::Xamarin.Essentials.Resource.Id.tag_transition_group = global::DeviceTests.Droid.Resource.Id.tag_transition_group;
+ global::Xamarin.Essentials.Resource.Id.text = global::DeviceTests.Droid.Resource.Id.text;
+ global::Xamarin.Essentials.Resource.Id.text2 = global::DeviceTests.Droid.Resource.Id.text2;
+ global::Xamarin.Essentials.Resource.Id.time = global::DeviceTests.Droid.Resource.Id.time;
+ global::Xamarin.Essentials.Resource.Id.title = global::DeviceTests.Droid.Resource.Id.title;
+ global::Xamarin.Essentials.Resource.Integer.status_bar_notification_info_maxnum = global::DeviceTests.Droid.Resource.Integer.status_bar_notification_info_maxnum;
+ global::Xamarin.Essentials.Resource.Layout.notification_action = global::DeviceTests.Droid.Resource.Layout.notification_action;
+ global::Xamarin.Essentials.Resource.Layout.notification_action_tombstone = global::DeviceTests.Droid.Resource.Layout.notification_action_tombstone;
+ global::Xamarin.Essentials.Resource.Layout.notification_template_custom_big = global::DeviceTests.Droid.Resource.Layout.notification_template_custom_big;
+ global::Xamarin.Essentials.Resource.Layout.notification_template_icon_group = global::DeviceTests.Droid.Resource.Layout.notification_template_icon_group;
+ global::Xamarin.Essentials.Resource.Layout.notification_template_part_chronometer = global::DeviceTests.Droid.Resource.Layout.notification_template_part_chronometer;
+ global::Xamarin.Essentials.Resource.Layout.notification_template_part_time = global::DeviceTests.Droid.Resource.Layout.notification_template_part_time;
+ global::Xamarin.Essentials.Resource.String.status_bar_notification_info_overflow = global::DeviceTests.Droid.Resource.String.status_bar_notification_info_overflow;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification = global::DeviceTests.Droid.Resource.Style.TextAppearance_Compat_Notification;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Info = global::DeviceTests.Droid.Resource.Style.TextAppearance_Compat_Notification_Info;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Line2 = global::DeviceTests.Droid.Resource.Style.TextAppearance_Compat_Notification_Line2;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Time = global::DeviceTests.Droid.Resource.Style.TextAppearance_Compat_Notification_Time;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Title = global::DeviceTests.Droid.Resource.Style.TextAppearance_Compat_Notification_Title;
+ global::Xamarin.Essentials.Resource.Style.Widget_Compat_NotificationActionContainer = global::DeviceTests.Droid.Resource.Style.Widget_Compat_NotificationActionContainer;
+ global::Xamarin.Essentials.Resource.Style.Widget_Compat_NotificationActionText = global::DeviceTests.Droid.Resource.Style.Widget_Compat_NotificationActionText;
+ global::Xamarin.Essentials.Resource.Xml.xamarin_essentials_fileprovider_file_paths = global::DeviceTests.Droid.Resource.Xml.xamarin_essentials_fileprovider_file_paths;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily = global::DeviceTests.Droid.Resource.Styleable.FontFamily;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderAuthority = global::DeviceTests.Droid.Resource.Styleable.FontFamily_fontProviderAuthority;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderCerts = global::DeviceTests.Droid.Resource.Styleable.FontFamily_fontProviderCerts;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderFetchStrategy = global::DeviceTests.Droid.Resource.Styleable.FontFamily_fontProviderFetchStrategy;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderFetchTimeout = global::DeviceTests.Droid.Resource.Styleable.FontFamily_fontProviderFetchTimeout;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderPackage = global::DeviceTests.Droid.Resource.Styleable.FontFamily_fontProviderPackage;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderQuery = global::DeviceTests.Droid.Resource.Styleable.FontFamily_fontProviderQuery;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont = global::DeviceTests.Droid.Resource.Styleable.FontFamilyFont;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_android_font = global::DeviceTests.Droid.Resource.Styleable.FontFamilyFont_android_font;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_android_fontStyle = global::DeviceTests.Droid.Resource.Styleable.FontFamilyFont_android_fontStyle;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_android_fontWeight = global::DeviceTests.Droid.Resource.Styleable.FontFamilyFont_android_fontWeight;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_font = global::DeviceTests.Droid.Resource.Styleable.FontFamilyFont_font;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_fontStyle = global::DeviceTests.Droid.Resource.Styleable.FontFamilyFont_fontStyle;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_fontWeight = global::DeviceTests.Droid.Resource.Styleable.FontFamilyFont_fontWeight;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarSize = global::DeviceTests.Droid.Resource.Attribute.actionBarSize;
}
@@ -1235,20 +1337,20 @@ private Attribute()
public partial class Boolean
{
- // aapt resource value: 0x7f0e0000
- public const int abc_action_bar_embed_tabs = 2131623936;
+ // aapt resource value: 0x7f0f0000
+ public const int abc_action_bar_embed_tabs = 2131689472;
- // aapt resource value: 0x7f0e0001
- public const int abc_allow_stacked_button_bar = 2131623937;
+ // aapt resource value: 0x7f0f0001
+ public const int abc_allow_stacked_button_bar = 2131689473;
- // aapt resource value: 0x7f0e0002
- public const int abc_config_actionMenuItemAllCaps = 2131623938;
+ // aapt resource value: 0x7f0f0002
+ public const int abc_config_actionMenuItemAllCaps = 2131689474;
- // aapt resource value: 0x7f0e0003
- public const int abc_config_closeDialogWhenTouchOutside = 2131623939;
+ // aapt resource value: 0x7f0f0003
+ public const int abc_config_closeDialogWhenTouchOutside = 2131689475;
- // aapt resource value: 0x7f0e0004
- public const int abc_config_showMenuShortcutsWhenKeyboardPresent = 2131623940;
+ // aapt resource value: 0x7f0f0004
+ public const int abc_config_showMenuShortcutsWhenKeyboardPresent = 2131689476;
static Boolean()
{
@@ -1263,305 +1365,305 @@ private Boolean()
public partial class Color
{
- // aapt resource value: 0x7f0d004c
- public const int abc_background_cache_hint_selector_material_dark = 2131558476;
+ // aapt resource value: 0x7f0e004c
+ public const int abc_background_cache_hint_selector_material_dark = 2131624012;
- // aapt resource value: 0x7f0d004d
- public const int abc_background_cache_hint_selector_material_light = 2131558477;
+ // aapt resource value: 0x7f0e004d
+ public const int abc_background_cache_hint_selector_material_light = 2131624013;
- // aapt resource value: 0x7f0d004e
- public const int abc_btn_colored_borderless_text_material = 2131558478;
+ // aapt resource value: 0x7f0e004e
+ public const int abc_btn_colored_borderless_text_material = 2131624014;
- // aapt resource value: 0x7f0d004f
- public const int abc_btn_colored_text_material = 2131558479;
+ // aapt resource value: 0x7f0e004f
+ public const int abc_btn_colored_text_material = 2131624015;
- // aapt resource value: 0x7f0d0050
- public const int abc_color_highlight_material = 2131558480;
+ // aapt resource value: 0x7f0e0050
+ public const int abc_color_highlight_material = 2131624016;
- // aapt resource value: 0x7f0d0051
- public const int abc_hint_foreground_material_dark = 2131558481;
+ // aapt resource value: 0x7f0e0051
+ public const int abc_hint_foreground_material_dark = 2131624017;
- // aapt resource value: 0x7f0d0052
- public const int abc_hint_foreground_material_light = 2131558482;
+ // aapt resource value: 0x7f0e0052
+ public const int abc_hint_foreground_material_light = 2131624018;
- // aapt resource value: 0x7f0d0004
- public const int abc_input_method_navigation_guard = 2131558404;
+ // aapt resource value: 0x7f0e0004
+ public const int abc_input_method_navigation_guard = 2131623940;
- // aapt resource value: 0x7f0d0053
- public const int abc_primary_text_disable_only_material_dark = 2131558483;
+ // aapt resource value: 0x7f0e0053
+ public const int abc_primary_text_disable_only_material_dark = 2131624019;
- // aapt resource value: 0x7f0d0054
- public const int abc_primary_text_disable_only_material_light = 2131558484;
+ // aapt resource value: 0x7f0e0054
+ public const int abc_primary_text_disable_only_material_light = 2131624020;
- // aapt resource value: 0x7f0d0055
- public const int abc_primary_text_material_dark = 2131558485;
+ // aapt resource value: 0x7f0e0055
+ public const int abc_primary_text_material_dark = 2131624021;
- // aapt resource value: 0x7f0d0056
- public const int abc_primary_text_material_light = 2131558486;
+ // aapt resource value: 0x7f0e0056
+ public const int abc_primary_text_material_light = 2131624022;
- // aapt resource value: 0x7f0d0057
- public const int abc_search_url_text = 2131558487;
+ // aapt resource value: 0x7f0e0057
+ public const int abc_search_url_text = 2131624023;
- // aapt resource value: 0x7f0d0005
- public const int abc_search_url_text_normal = 2131558405;
+ // aapt resource value: 0x7f0e0005
+ public const int abc_search_url_text_normal = 2131623941;
- // aapt resource value: 0x7f0d0006
- public const int abc_search_url_text_pressed = 2131558406;
+ // aapt resource value: 0x7f0e0006
+ public const int abc_search_url_text_pressed = 2131623942;
- // aapt resource value: 0x7f0d0007
- public const int abc_search_url_text_selected = 2131558407;
+ // aapt resource value: 0x7f0e0007
+ public const int abc_search_url_text_selected = 2131623943;
- // aapt resource value: 0x7f0d0058
- public const int abc_secondary_text_material_dark = 2131558488;
+ // aapt resource value: 0x7f0e0058
+ public const int abc_secondary_text_material_dark = 2131624024;
- // aapt resource value: 0x7f0d0059
- public const int abc_secondary_text_material_light = 2131558489;
+ // aapt resource value: 0x7f0e0059
+ public const int abc_secondary_text_material_light = 2131624025;
- // aapt resource value: 0x7f0d005a
- public const int abc_tint_btn_checkable = 2131558490;
+ // aapt resource value: 0x7f0e005a
+ public const int abc_tint_btn_checkable = 2131624026;
- // aapt resource value: 0x7f0d005b
- public const int abc_tint_default = 2131558491;
+ // aapt resource value: 0x7f0e005b
+ public const int abc_tint_default = 2131624027;
- // aapt resource value: 0x7f0d005c
- public const int abc_tint_edittext = 2131558492;
+ // aapt resource value: 0x7f0e005c
+ public const int abc_tint_edittext = 2131624028;
- // aapt resource value: 0x7f0d005d
- public const int abc_tint_seek_thumb = 2131558493;
+ // aapt resource value: 0x7f0e005d
+ public const int abc_tint_seek_thumb = 2131624029;
- // aapt resource value: 0x7f0d005e
- public const int abc_tint_spinner = 2131558494;
+ // aapt resource value: 0x7f0e005e
+ public const int abc_tint_spinner = 2131624030;
- // aapt resource value: 0x7f0d005f
- public const int abc_tint_switch_track = 2131558495;
+ // aapt resource value: 0x7f0e005f
+ public const int abc_tint_switch_track = 2131624031;
- // aapt resource value: 0x7f0d0008
- public const int accent_material_dark = 2131558408;
+ // aapt resource value: 0x7f0e0008
+ public const int accent_material_dark = 2131623944;
- // aapt resource value: 0x7f0d0009
- public const int accent_material_light = 2131558409;
+ // aapt resource value: 0x7f0e0009
+ public const int accent_material_light = 2131623945;
- // aapt resource value: 0x7f0d000a
- public const int background_floating_material_dark = 2131558410;
+ // aapt resource value: 0x7f0e000a
+ public const int background_floating_material_dark = 2131623946;
- // aapt resource value: 0x7f0d000b
- public const int background_floating_material_light = 2131558411;
+ // aapt resource value: 0x7f0e000b
+ public const int background_floating_material_light = 2131623947;
- // aapt resource value: 0x7f0d000c
- public const int background_material_dark = 2131558412;
+ // aapt resource value: 0x7f0e000c
+ public const int background_material_dark = 2131623948;
- // aapt resource value: 0x7f0d000d
- public const int background_material_light = 2131558413;
+ // aapt resource value: 0x7f0e000d
+ public const int background_material_light = 2131623949;
- // aapt resource value: 0x7f0d000e
- public const int bright_foreground_disabled_material_dark = 2131558414;
+ // aapt resource value: 0x7f0e000e
+ public const int bright_foreground_disabled_material_dark = 2131623950;
- // aapt resource value: 0x7f0d000f
- public const int bright_foreground_disabled_material_light = 2131558415;
+ // aapt resource value: 0x7f0e000f
+ public const int bright_foreground_disabled_material_light = 2131623951;
- // aapt resource value: 0x7f0d0010
- public const int bright_foreground_inverse_material_dark = 2131558416;
+ // aapt resource value: 0x7f0e0010
+ public const int bright_foreground_inverse_material_dark = 2131623952;
- // aapt resource value: 0x7f0d0011
- public const int bright_foreground_inverse_material_light = 2131558417;
+ // aapt resource value: 0x7f0e0011
+ public const int bright_foreground_inverse_material_light = 2131623953;
- // aapt resource value: 0x7f0d0012
- public const int bright_foreground_material_dark = 2131558418;
+ // aapt resource value: 0x7f0e0012
+ public const int bright_foreground_material_dark = 2131623954;
- // aapt resource value: 0x7f0d0013
- public const int bright_foreground_material_light = 2131558419;
+ // aapt resource value: 0x7f0e0013
+ public const int bright_foreground_material_light = 2131623955;
- // aapt resource value: 0x7f0d0014
- public const int button_material_dark = 2131558420;
+ // aapt resource value: 0x7f0e0014
+ public const int button_material_dark = 2131623956;
- // aapt resource value: 0x7f0d0015
- public const int button_material_light = 2131558421;
+ // aapt resource value: 0x7f0e0015
+ public const int button_material_light = 2131623957;
- // aapt resource value: 0x7f0d0000
- public const int cardview_dark_background = 2131558400;
+ // aapt resource value: 0x7f0e0000
+ public const int cardview_dark_background = 2131623936;
- // aapt resource value: 0x7f0d0001
- public const int cardview_light_background = 2131558401;
+ // aapt resource value: 0x7f0e0001
+ public const int cardview_light_background = 2131623937;
- // aapt resource value: 0x7f0d0002
- public const int cardview_shadow_end_color = 2131558402;
+ // aapt resource value: 0x7f0e0002
+ public const int cardview_shadow_end_color = 2131623938;
- // aapt resource value: 0x7f0d0003
- public const int cardview_shadow_start_color = 2131558403;
+ // aapt resource value: 0x7f0e0003
+ public const int cardview_shadow_start_color = 2131623939;
- // aapt resource value: 0x7f0d0040
- public const int design_bottom_navigation_shadow_color = 2131558464;
+ // aapt resource value: 0x7f0e0040
+ public const int design_bottom_navigation_shadow_color = 2131624000;
- // aapt resource value: 0x7f0d0060
- public const int design_error = 2131558496;
+ // aapt resource value: 0x7f0e0060
+ public const int design_error = 2131624032;
- // aapt resource value: 0x7f0d0041
- public const int design_fab_shadow_end_color = 2131558465;
+ // aapt resource value: 0x7f0e0041
+ public const int design_fab_shadow_end_color = 2131624001;
- // aapt resource value: 0x7f0d0042
- public const int design_fab_shadow_mid_color = 2131558466;
+ // aapt resource value: 0x7f0e0042
+ public const int design_fab_shadow_mid_color = 2131624002;
- // aapt resource value: 0x7f0d0043
- public const int design_fab_shadow_start_color = 2131558467;
+ // aapt resource value: 0x7f0e0043
+ public const int design_fab_shadow_start_color = 2131624003;
- // aapt resource value: 0x7f0d0044
- public const int design_fab_stroke_end_inner_color = 2131558468;
+ // aapt resource value: 0x7f0e0044
+ public const int design_fab_stroke_end_inner_color = 2131624004;
- // aapt resource value: 0x7f0d0045
- public const int design_fab_stroke_end_outer_color = 2131558469;
+ // aapt resource value: 0x7f0e0045
+ public const int design_fab_stroke_end_outer_color = 2131624005;
- // aapt resource value: 0x7f0d0046
- public const int design_fab_stroke_top_inner_color = 2131558470;
+ // aapt resource value: 0x7f0e0046
+ public const int design_fab_stroke_top_inner_color = 2131624006;
- // aapt resource value: 0x7f0d0047
- public const int design_fab_stroke_top_outer_color = 2131558471;
+ // aapt resource value: 0x7f0e0047
+ public const int design_fab_stroke_top_outer_color = 2131624007;
- // aapt resource value: 0x7f0d0048
- public const int design_snackbar_background_color = 2131558472;
+ // aapt resource value: 0x7f0e0048
+ public const int design_snackbar_background_color = 2131624008;
- // aapt resource value: 0x7f0d0061
- public const int design_tint_password_toggle = 2131558497;
+ // aapt resource value: 0x7f0e0061
+ public const int design_tint_password_toggle = 2131624033;
- // aapt resource value: 0x7f0d0016
- public const int dim_foreground_disabled_material_dark = 2131558422;
+ // aapt resource value: 0x7f0e0016
+ public const int dim_foreground_disabled_material_dark = 2131623958;
- // aapt resource value: 0x7f0d0017
- public const int dim_foreground_disabled_material_light = 2131558423;
+ // aapt resource value: 0x7f0e0017
+ public const int dim_foreground_disabled_material_light = 2131623959;
- // aapt resource value: 0x7f0d0018
- public const int dim_foreground_material_dark = 2131558424;
+ // aapt resource value: 0x7f0e0018
+ public const int dim_foreground_material_dark = 2131623960;
- // aapt resource value: 0x7f0d0019
- public const int dim_foreground_material_light = 2131558425;
+ // aapt resource value: 0x7f0e0019
+ public const int dim_foreground_material_light = 2131623961;
- // aapt resource value: 0x7f0d001a
- public const int error_color_material = 2131558426;
+ // aapt resource value: 0x7f0e001a
+ public const int error_color_material = 2131623962;
- // aapt resource value: 0x7f0d001b
- public const int foreground_material_dark = 2131558427;
+ // aapt resource value: 0x7f0e001b
+ public const int foreground_material_dark = 2131623963;
- // aapt resource value: 0x7f0d001c
- public const int foreground_material_light = 2131558428;
+ // aapt resource value: 0x7f0e001c
+ public const int foreground_material_light = 2131623964;
- // aapt resource value: 0x7f0d001d
- public const int highlighted_text_material_dark = 2131558429;
+ // aapt resource value: 0x7f0e001d
+ public const int highlighted_text_material_dark = 2131623965;
- // aapt resource value: 0x7f0d001e
- public const int highlighted_text_material_light = 2131558430;
+ // aapt resource value: 0x7f0e001e
+ public const int highlighted_text_material_light = 2131623966;
- // aapt resource value: 0x7f0d004b
- public const int ic_launcher_background = 2131558475;
+ // aapt resource value: 0x7f0e004b
+ public const int ic_launcher_background = 2131624011;
- // aapt resource value: 0x7f0d001f
- public const int material_blue_grey_800 = 2131558431;
+ // aapt resource value: 0x7f0e001f
+ public const int material_blue_grey_800 = 2131623967;
- // aapt resource value: 0x7f0d0020
- public const int material_blue_grey_900 = 2131558432;
+ // aapt resource value: 0x7f0e0020
+ public const int material_blue_grey_900 = 2131623968;
- // aapt resource value: 0x7f0d0021
- public const int material_blue_grey_950 = 2131558433;
+ // aapt resource value: 0x7f0e0021
+ public const int material_blue_grey_950 = 2131623969;
- // aapt resource value: 0x7f0d0022
- public const int material_deep_teal_200 = 2131558434;
+ // aapt resource value: 0x7f0e0022
+ public const int material_deep_teal_200 = 2131623970;
- // aapt resource value: 0x7f0d0023
- public const int material_deep_teal_500 = 2131558435;
+ // aapt resource value: 0x7f0e0023
+ public const int material_deep_teal_500 = 2131623971;
- // aapt resource value: 0x7f0d0024
- public const int material_grey_100 = 2131558436;
+ // aapt resource value: 0x7f0e0024
+ public const int material_grey_100 = 2131623972;
- // aapt resource value: 0x7f0d0025
- public const int material_grey_300 = 2131558437;
+ // aapt resource value: 0x7f0e0025
+ public const int material_grey_300 = 2131623973;
- // aapt resource value: 0x7f0d0026
- public const int material_grey_50 = 2131558438;
+ // aapt resource value: 0x7f0e0026
+ public const int material_grey_50 = 2131623974;
- // aapt resource value: 0x7f0d0027
- public const int material_grey_600 = 2131558439;
+ // aapt resource value: 0x7f0e0027
+ public const int material_grey_600 = 2131623975;
- // aapt resource value: 0x7f0d0028
- public const int material_grey_800 = 2131558440;
+ // aapt resource value: 0x7f0e0028
+ public const int material_grey_800 = 2131623976;
- // aapt resource value: 0x7f0d0029
- public const int material_grey_850 = 2131558441;
+ // aapt resource value: 0x7f0e0029
+ public const int material_grey_850 = 2131623977;
- // aapt resource value: 0x7f0d002a
- public const int material_grey_900 = 2131558442;
+ // aapt resource value: 0x7f0e002a
+ public const int material_grey_900 = 2131623978;
- // aapt resource value: 0x7f0d0049
- public const int notification_action_color_filter = 2131558473;
+ // aapt resource value: 0x7f0e0049
+ public const int notification_action_color_filter = 2131624009;
- // aapt resource value: 0x7f0d004a
- public const int notification_icon_bg_color = 2131558474;
+ // aapt resource value: 0x7f0e004a
+ public const int notification_icon_bg_color = 2131624010;
- // aapt resource value: 0x7f0d003f
- public const int notification_material_background_media_default_color = 2131558463;
+ // aapt resource value: 0x7f0e003f
+ public const int notification_material_background_media_default_color = 2131623999;
- // aapt resource value: 0x7f0d002b
- public const int primary_dark_material_dark = 2131558443;
+ // aapt resource value: 0x7f0e002b
+ public const int primary_dark_material_dark = 2131623979;
- // aapt resource value: 0x7f0d002c
- public const int primary_dark_material_light = 2131558444;
+ // aapt resource value: 0x7f0e002c
+ public const int primary_dark_material_light = 2131623980;
- // aapt resource value: 0x7f0d002d
- public const int primary_material_dark = 2131558445;
+ // aapt resource value: 0x7f0e002d
+ public const int primary_material_dark = 2131623981;
- // aapt resource value: 0x7f0d002e
- public const int primary_material_light = 2131558446;
+ // aapt resource value: 0x7f0e002e
+ public const int primary_material_light = 2131623982;
- // aapt resource value: 0x7f0d002f
- public const int primary_text_default_material_dark = 2131558447;
+ // aapt resource value: 0x7f0e002f
+ public const int primary_text_default_material_dark = 2131623983;
- // aapt resource value: 0x7f0d0030
- public const int primary_text_default_material_light = 2131558448;
+ // aapt resource value: 0x7f0e0030
+ public const int primary_text_default_material_light = 2131623984;
- // aapt resource value: 0x7f0d0031
- public const int primary_text_disabled_material_dark = 2131558449;
+ // aapt resource value: 0x7f0e0031
+ public const int primary_text_disabled_material_dark = 2131623985;
- // aapt resource value: 0x7f0d0032
- public const int primary_text_disabled_material_light = 2131558450;
+ // aapt resource value: 0x7f0e0032
+ public const int primary_text_disabled_material_light = 2131623986;
- // aapt resource value: 0x7f0d0033
- public const int ripple_material_dark = 2131558451;
+ // aapt resource value: 0x7f0e0033
+ public const int ripple_material_dark = 2131623987;
- // aapt resource value: 0x7f0d0034
- public const int ripple_material_light = 2131558452;
+ // aapt resource value: 0x7f0e0034
+ public const int ripple_material_light = 2131623988;
- // aapt resource value: 0x7f0d0035
- public const int secondary_text_default_material_dark = 2131558453;
+ // aapt resource value: 0x7f0e0035
+ public const int secondary_text_default_material_dark = 2131623989;
- // aapt resource value: 0x7f0d0036
- public const int secondary_text_default_material_light = 2131558454;
+ // aapt resource value: 0x7f0e0036
+ public const int secondary_text_default_material_light = 2131623990;
- // aapt resource value: 0x7f0d0037
- public const int secondary_text_disabled_material_dark = 2131558455;
+ // aapt resource value: 0x7f0e0037
+ public const int secondary_text_disabled_material_dark = 2131623991;
- // aapt resource value: 0x7f0d0038
- public const int secondary_text_disabled_material_light = 2131558456;
+ // aapt resource value: 0x7f0e0038
+ public const int secondary_text_disabled_material_light = 2131623992;
- // aapt resource value: 0x7f0d0039
- public const int switch_thumb_disabled_material_dark = 2131558457;
+ // aapt resource value: 0x7f0e0039
+ public const int switch_thumb_disabled_material_dark = 2131623993;
- // aapt resource value: 0x7f0d003a
- public const int switch_thumb_disabled_material_light = 2131558458;
+ // aapt resource value: 0x7f0e003a
+ public const int switch_thumb_disabled_material_light = 2131623994;
- // aapt resource value: 0x7f0d0062
- public const int switch_thumb_material_dark = 2131558498;
+ // aapt resource value: 0x7f0e0062
+ public const int switch_thumb_material_dark = 2131624034;
- // aapt resource value: 0x7f0d0063
- public const int switch_thumb_material_light = 2131558499;
+ // aapt resource value: 0x7f0e0063
+ public const int switch_thumb_material_light = 2131624035;
- // aapt resource value: 0x7f0d003b
- public const int switch_thumb_normal_material_dark = 2131558459;
+ // aapt resource value: 0x7f0e003b
+ public const int switch_thumb_normal_material_dark = 2131623995;
- // aapt resource value: 0x7f0d003c
- public const int switch_thumb_normal_material_light = 2131558460;
+ // aapt resource value: 0x7f0e003c
+ public const int switch_thumb_normal_material_light = 2131623996;
- // aapt resource value: 0x7f0d003d
- public const int tooltip_background_dark = 2131558461;
+ // aapt resource value: 0x7f0e003d
+ public const int tooltip_background_dark = 2131623997;
- // aapt resource value: 0x7f0d003e
- public const int tooltip_background_light = 2131558462;
+ // aapt resource value: 0x7f0e003e
+ public const int tooltip_background_light = 2131623998;
static Color()
{
@@ -1576,497 +1678,497 @@ private Color()
public partial class Dimension
{
- // aapt resource value: 0x7f08001b
- public const int abc_action_bar_content_inset_material = 2131230747;
+ // aapt resource value: 0x7f09001b
+ public const int abc_action_bar_content_inset_material = 2131296283;
- // aapt resource value: 0x7f08001c
- public const int abc_action_bar_content_inset_with_nav = 2131230748;
+ // aapt resource value: 0x7f09001c
+ public const int abc_action_bar_content_inset_with_nav = 2131296284;
- // aapt resource value: 0x7f080010
- public const int abc_action_bar_default_height_material = 2131230736;
+ // aapt resource value: 0x7f090010
+ public const int abc_action_bar_default_height_material = 2131296272;
- // aapt resource value: 0x7f08001d
- public const int abc_action_bar_default_padding_end_material = 2131230749;
+ // aapt resource value: 0x7f09001d
+ public const int abc_action_bar_default_padding_end_material = 2131296285;
- // aapt resource value: 0x7f08001e
- public const int abc_action_bar_default_padding_start_material = 2131230750;
+ // aapt resource value: 0x7f09001e
+ public const int abc_action_bar_default_padding_start_material = 2131296286;
- // aapt resource value: 0x7f080020
- public const int abc_action_bar_elevation_material = 2131230752;
+ // aapt resource value: 0x7f090020
+ public const int abc_action_bar_elevation_material = 2131296288;
- // aapt resource value: 0x7f080021
- public const int abc_action_bar_icon_vertical_padding_material = 2131230753;
+ // aapt resource value: 0x7f090021
+ public const int abc_action_bar_icon_vertical_padding_material = 2131296289;
- // aapt resource value: 0x7f080022
- public const int abc_action_bar_overflow_padding_end_material = 2131230754;
+ // aapt resource value: 0x7f090022
+ public const int abc_action_bar_overflow_padding_end_material = 2131296290;
- // aapt resource value: 0x7f080023
- public const int abc_action_bar_overflow_padding_start_material = 2131230755;
+ // aapt resource value: 0x7f090023
+ public const int abc_action_bar_overflow_padding_start_material = 2131296291;
- // aapt resource value: 0x7f080011
- public const int abc_action_bar_progress_bar_size = 2131230737;
+ // aapt resource value: 0x7f090011
+ public const int abc_action_bar_progress_bar_size = 2131296273;
- // aapt resource value: 0x7f080024
- public const int abc_action_bar_stacked_max_height = 2131230756;
+ // aapt resource value: 0x7f090024
+ public const int abc_action_bar_stacked_max_height = 2131296292;
- // aapt resource value: 0x7f080025
- public const int abc_action_bar_stacked_tab_max_width = 2131230757;
+ // aapt resource value: 0x7f090025
+ public const int abc_action_bar_stacked_tab_max_width = 2131296293;
- // aapt resource value: 0x7f080026
- public const int abc_action_bar_subtitle_bottom_margin_material = 2131230758;
+ // aapt resource value: 0x7f090026
+ public const int abc_action_bar_subtitle_bottom_margin_material = 2131296294;
- // aapt resource value: 0x7f080027
- public const int abc_action_bar_subtitle_top_margin_material = 2131230759;
+ // aapt resource value: 0x7f090027
+ public const int abc_action_bar_subtitle_top_margin_material = 2131296295;
- // aapt resource value: 0x7f080028
- public const int abc_action_button_min_height_material = 2131230760;
+ // aapt resource value: 0x7f090028
+ public const int abc_action_button_min_height_material = 2131296296;
- // aapt resource value: 0x7f080029
- public const int abc_action_button_min_width_material = 2131230761;
+ // aapt resource value: 0x7f090029
+ public const int abc_action_button_min_width_material = 2131296297;
- // aapt resource value: 0x7f08002a
- public const int abc_action_button_min_width_overflow_material = 2131230762;
+ // aapt resource value: 0x7f09002a
+ public const int abc_action_button_min_width_overflow_material = 2131296298;
- // aapt resource value: 0x7f08000f
- public const int abc_alert_dialog_button_bar_height = 2131230735;
+ // aapt resource value: 0x7f09000f
+ public const int abc_alert_dialog_button_bar_height = 2131296271;
- // aapt resource value: 0x7f08002b
- public const int abc_button_inset_horizontal_material = 2131230763;
+ // aapt resource value: 0x7f09002b
+ public const int abc_button_inset_horizontal_material = 2131296299;
- // aapt resource value: 0x7f08002c
- public const int abc_button_inset_vertical_material = 2131230764;
+ // aapt resource value: 0x7f09002c
+ public const int abc_button_inset_vertical_material = 2131296300;
- // aapt resource value: 0x7f08002d
- public const int abc_button_padding_horizontal_material = 2131230765;
+ // aapt resource value: 0x7f09002d
+ public const int abc_button_padding_horizontal_material = 2131296301;
- // aapt resource value: 0x7f08002e
- public const int abc_button_padding_vertical_material = 2131230766;
+ // aapt resource value: 0x7f09002e
+ public const int abc_button_padding_vertical_material = 2131296302;
- // aapt resource value: 0x7f08002f
- public const int abc_cascading_menus_min_smallest_width = 2131230767;
+ // aapt resource value: 0x7f09002f
+ public const int abc_cascading_menus_min_smallest_width = 2131296303;
- // aapt resource value: 0x7f080014
- public const int abc_config_prefDialogWidth = 2131230740;
+ // aapt resource value: 0x7f090014
+ public const int abc_config_prefDialogWidth = 2131296276;
- // aapt resource value: 0x7f080030
- public const int abc_control_corner_material = 2131230768;
+ // aapt resource value: 0x7f090030
+ public const int abc_control_corner_material = 2131296304;
- // aapt resource value: 0x7f080031
- public const int abc_control_inset_material = 2131230769;
+ // aapt resource value: 0x7f090031
+ public const int abc_control_inset_material = 2131296305;
- // aapt resource value: 0x7f080032
- public const int abc_control_padding_material = 2131230770;
+ // aapt resource value: 0x7f090032
+ public const int abc_control_padding_material = 2131296306;
- // aapt resource value: 0x7f080015
- public const int abc_dialog_fixed_height_major = 2131230741;
+ // aapt resource value: 0x7f090015
+ public const int abc_dialog_fixed_height_major = 2131296277;
- // aapt resource value: 0x7f080016
- public const int abc_dialog_fixed_height_minor = 2131230742;
+ // aapt resource value: 0x7f090016
+ public const int abc_dialog_fixed_height_minor = 2131296278;
- // aapt resource value: 0x7f080017
- public const int abc_dialog_fixed_width_major = 2131230743;
+ // aapt resource value: 0x7f090017
+ public const int abc_dialog_fixed_width_major = 2131296279;
- // aapt resource value: 0x7f080018
- public const int abc_dialog_fixed_width_minor = 2131230744;
+ // aapt resource value: 0x7f090018
+ public const int abc_dialog_fixed_width_minor = 2131296280;
- // aapt resource value: 0x7f080033
- public const int abc_dialog_list_padding_bottom_no_buttons = 2131230771;
+ // aapt resource value: 0x7f090033
+ public const int abc_dialog_list_padding_bottom_no_buttons = 2131296307;
- // aapt resource value: 0x7f080034
- public const int abc_dialog_list_padding_top_no_title = 2131230772;
+ // aapt resource value: 0x7f090034
+ public const int abc_dialog_list_padding_top_no_title = 2131296308;
- // aapt resource value: 0x7f080019
- public const int abc_dialog_min_width_major = 2131230745;
+ // aapt resource value: 0x7f090019
+ public const int abc_dialog_min_width_major = 2131296281;
- // aapt resource value: 0x7f08001a
- public const int abc_dialog_min_width_minor = 2131230746;
+ // aapt resource value: 0x7f09001a
+ public const int abc_dialog_min_width_minor = 2131296282;
- // aapt resource value: 0x7f080035
- public const int abc_dialog_padding_material = 2131230773;
+ // aapt resource value: 0x7f090035
+ public const int abc_dialog_padding_material = 2131296309;
- // aapt resource value: 0x7f080036
- public const int abc_dialog_padding_top_material = 2131230774;
+ // aapt resource value: 0x7f090036
+ public const int abc_dialog_padding_top_material = 2131296310;
- // aapt resource value: 0x7f080037
- public const int abc_dialog_title_divider_material = 2131230775;
+ // aapt resource value: 0x7f090037
+ public const int abc_dialog_title_divider_material = 2131296311;
- // aapt resource value: 0x7f080038
- public const int abc_disabled_alpha_material_dark = 2131230776;
+ // aapt resource value: 0x7f090038
+ public const int abc_disabled_alpha_material_dark = 2131296312;
- // aapt resource value: 0x7f080039
- public const int abc_disabled_alpha_material_light = 2131230777;
+ // aapt resource value: 0x7f090039
+ public const int abc_disabled_alpha_material_light = 2131296313;
- // aapt resource value: 0x7f08003a
- public const int abc_dropdownitem_icon_width = 2131230778;
+ // aapt resource value: 0x7f09003a
+ public const int abc_dropdownitem_icon_width = 2131296314;
- // aapt resource value: 0x7f08003b
- public const int abc_dropdownitem_text_padding_left = 2131230779;
+ // aapt resource value: 0x7f09003b
+ public const int abc_dropdownitem_text_padding_left = 2131296315;
- // aapt resource value: 0x7f08003c
- public const int abc_dropdownitem_text_padding_right = 2131230780;
+ // aapt resource value: 0x7f09003c
+ public const int abc_dropdownitem_text_padding_right = 2131296316;
- // aapt resource value: 0x7f08003d
- public const int abc_edit_text_inset_bottom_material = 2131230781;
+ // aapt resource value: 0x7f09003d
+ public const int abc_edit_text_inset_bottom_material = 2131296317;
- // aapt resource value: 0x7f08003e
- public const int abc_edit_text_inset_horizontal_material = 2131230782;
+ // aapt resource value: 0x7f09003e
+ public const int abc_edit_text_inset_horizontal_material = 2131296318;
- // aapt resource value: 0x7f08003f
- public const int abc_edit_text_inset_top_material = 2131230783;
+ // aapt resource value: 0x7f09003f
+ public const int abc_edit_text_inset_top_material = 2131296319;
- // aapt resource value: 0x7f080040
- public const int abc_floating_window_z = 2131230784;
+ // aapt resource value: 0x7f090040
+ public const int abc_floating_window_z = 2131296320;
- // aapt resource value: 0x7f080041
- public const int abc_list_item_padding_horizontal_material = 2131230785;
+ // aapt resource value: 0x7f090041
+ public const int abc_list_item_padding_horizontal_material = 2131296321;
- // aapt resource value: 0x7f080042
- public const int abc_panel_menu_list_width = 2131230786;
+ // aapt resource value: 0x7f090042
+ public const int abc_panel_menu_list_width = 2131296322;
- // aapt resource value: 0x7f080043
- public const int abc_progress_bar_height_material = 2131230787;
+ // aapt resource value: 0x7f090043
+ public const int abc_progress_bar_height_material = 2131296323;
- // aapt resource value: 0x7f080044
- public const int abc_search_view_preferred_height = 2131230788;
+ // aapt resource value: 0x7f090044
+ public const int abc_search_view_preferred_height = 2131296324;
- // aapt resource value: 0x7f080045
- public const int abc_search_view_preferred_width = 2131230789;
+ // aapt resource value: 0x7f090045
+ public const int abc_search_view_preferred_width = 2131296325;
- // aapt resource value: 0x7f080046
- public const int abc_seekbar_track_background_height_material = 2131230790;
+ // aapt resource value: 0x7f090046
+ public const int abc_seekbar_track_background_height_material = 2131296326;
- // aapt resource value: 0x7f080047
- public const int abc_seekbar_track_progress_height_material = 2131230791;
+ // aapt resource value: 0x7f090047
+ public const int abc_seekbar_track_progress_height_material = 2131296327;
- // aapt resource value: 0x7f080048
- public const int abc_select_dialog_padding_start_material = 2131230792;
+ // aapt resource value: 0x7f090048
+ public const int abc_select_dialog_padding_start_material = 2131296328;
- // aapt resource value: 0x7f08001f
- public const int abc_switch_padding = 2131230751;
+ // aapt resource value: 0x7f09001f
+ public const int abc_switch_padding = 2131296287;
- // aapt resource value: 0x7f080049
- public const int abc_text_size_body_1_material = 2131230793;
+ // aapt resource value: 0x7f090049
+ public const int abc_text_size_body_1_material = 2131296329;
- // aapt resource value: 0x7f08004a
- public const int abc_text_size_body_2_material = 2131230794;
+ // aapt resource value: 0x7f09004a
+ public const int abc_text_size_body_2_material = 2131296330;
- // aapt resource value: 0x7f08004b
- public const int abc_text_size_button_material = 2131230795;
+ // aapt resource value: 0x7f09004b
+ public const int abc_text_size_button_material = 2131296331;
- // aapt resource value: 0x7f08004c
- public const int abc_text_size_caption_material = 2131230796;
+ // aapt resource value: 0x7f09004c
+ public const int abc_text_size_caption_material = 2131296332;
- // aapt resource value: 0x7f08004d
- public const int abc_text_size_display_1_material = 2131230797;
+ // aapt resource value: 0x7f09004d
+ public const int abc_text_size_display_1_material = 2131296333;
- // aapt resource value: 0x7f08004e
- public const int abc_text_size_display_2_material = 2131230798;
+ // aapt resource value: 0x7f09004e
+ public const int abc_text_size_display_2_material = 2131296334;
- // aapt resource value: 0x7f08004f
- public const int abc_text_size_display_3_material = 2131230799;
+ // aapt resource value: 0x7f09004f
+ public const int abc_text_size_display_3_material = 2131296335;
- // aapt resource value: 0x7f080050
- public const int abc_text_size_display_4_material = 2131230800;
+ // aapt resource value: 0x7f090050
+ public const int abc_text_size_display_4_material = 2131296336;
- // aapt resource value: 0x7f080051
- public const int abc_text_size_headline_material = 2131230801;
+ // aapt resource value: 0x7f090051
+ public const int abc_text_size_headline_material = 2131296337;
- // aapt resource value: 0x7f080052
- public const int abc_text_size_large_material = 2131230802;
+ // aapt resource value: 0x7f090052
+ public const int abc_text_size_large_material = 2131296338;
- // aapt resource value: 0x7f080053
- public const int abc_text_size_medium_material = 2131230803;
+ // aapt resource value: 0x7f090053
+ public const int abc_text_size_medium_material = 2131296339;
- // aapt resource value: 0x7f080054
- public const int abc_text_size_menu_header_material = 2131230804;
+ // aapt resource value: 0x7f090054
+ public const int abc_text_size_menu_header_material = 2131296340;
- // aapt resource value: 0x7f080055
- public const int abc_text_size_menu_material = 2131230805;
+ // aapt resource value: 0x7f090055
+ public const int abc_text_size_menu_material = 2131296341;
- // aapt resource value: 0x7f080056
- public const int abc_text_size_small_material = 2131230806;
+ // aapt resource value: 0x7f090056
+ public const int abc_text_size_small_material = 2131296342;
- // aapt resource value: 0x7f080057
- public const int abc_text_size_subhead_material = 2131230807;
+ // aapt resource value: 0x7f090057
+ public const int abc_text_size_subhead_material = 2131296343;
- // aapt resource value: 0x7f080012
- public const int abc_text_size_subtitle_material_toolbar = 2131230738;
+ // aapt resource value: 0x7f090012
+ public const int abc_text_size_subtitle_material_toolbar = 2131296274;
- // aapt resource value: 0x7f080058
- public const int abc_text_size_title_material = 2131230808;
+ // aapt resource value: 0x7f090058
+ public const int abc_text_size_title_material = 2131296344;
- // aapt resource value: 0x7f080013
- public const int abc_text_size_title_material_toolbar = 2131230739;
+ // aapt resource value: 0x7f090013
+ public const int abc_text_size_title_material_toolbar = 2131296275;
- // aapt resource value: 0x7f08000c
- public const int cardview_compat_inset_shadow = 2131230732;
+ // aapt resource value: 0x7f09000c
+ public const int cardview_compat_inset_shadow = 2131296268;
- // aapt resource value: 0x7f08000d
- public const int cardview_default_elevation = 2131230733;
+ // aapt resource value: 0x7f09000d
+ public const int cardview_default_elevation = 2131296269;
- // aapt resource value: 0x7f08000e
- public const int cardview_default_radius = 2131230734;
+ // aapt resource value: 0x7f09000e
+ public const int cardview_default_radius = 2131296270;
- // aapt resource value: 0x7f080094
- public const int compat_button_inset_horizontal_material = 2131230868;
+ // aapt resource value: 0x7f090094
+ public const int compat_button_inset_horizontal_material = 2131296404;
- // aapt resource value: 0x7f080095
- public const int compat_button_inset_vertical_material = 2131230869;
+ // aapt resource value: 0x7f090095
+ public const int compat_button_inset_vertical_material = 2131296405;
- // aapt resource value: 0x7f080096
- public const int compat_button_padding_horizontal_material = 2131230870;
+ // aapt resource value: 0x7f090096
+ public const int compat_button_padding_horizontal_material = 2131296406;
- // aapt resource value: 0x7f080097
- public const int compat_button_padding_vertical_material = 2131230871;
+ // aapt resource value: 0x7f090097
+ public const int compat_button_padding_vertical_material = 2131296407;
- // aapt resource value: 0x7f080098
- public const int compat_control_corner_material = 2131230872;
+ // aapt resource value: 0x7f090098
+ public const int compat_control_corner_material = 2131296408;
- // aapt resource value: 0x7f080072
- public const int design_appbar_elevation = 2131230834;
+ // aapt resource value: 0x7f090072
+ public const int design_appbar_elevation = 2131296370;
- // aapt resource value: 0x7f080073
- public const int design_bottom_navigation_active_item_max_width = 2131230835;
+ // aapt resource value: 0x7f090073
+ public const int design_bottom_navigation_active_item_max_width = 2131296371;
- // aapt resource value: 0x7f080074
- public const int design_bottom_navigation_active_text_size = 2131230836;
+ // aapt resource value: 0x7f090074
+ public const int design_bottom_navigation_active_text_size = 2131296372;
- // aapt resource value: 0x7f080075
- public const int design_bottom_navigation_elevation = 2131230837;
+ // aapt resource value: 0x7f090075
+ public const int design_bottom_navigation_elevation = 2131296373;
- // aapt resource value: 0x7f080076
- public const int design_bottom_navigation_height = 2131230838;
+ // aapt resource value: 0x7f090076
+ public const int design_bottom_navigation_height = 2131296374;
- // aapt resource value: 0x7f080077
- public const int design_bottom_navigation_item_max_width = 2131230839;
+ // aapt resource value: 0x7f090077
+ public const int design_bottom_navigation_item_max_width = 2131296375;
- // aapt resource value: 0x7f080078
- public const int design_bottom_navigation_item_min_width = 2131230840;
+ // aapt resource value: 0x7f090078
+ public const int design_bottom_navigation_item_min_width = 2131296376;
- // aapt resource value: 0x7f080079
- public const int design_bottom_navigation_margin = 2131230841;
+ // aapt resource value: 0x7f090079
+ public const int design_bottom_navigation_margin = 2131296377;
- // aapt resource value: 0x7f08007a
- public const int design_bottom_navigation_shadow_height = 2131230842;
+ // aapt resource value: 0x7f09007a
+ public const int design_bottom_navigation_shadow_height = 2131296378;
- // aapt resource value: 0x7f08007b
- public const int design_bottom_navigation_text_size = 2131230843;
+ // aapt resource value: 0x7f09007b
+ public const int design_bottom_navigation_text_size = 2131296379;
- // aapt resource value: 0x7f08007c
- public const int design_bottom_sheet_modal_elevation = 2131230844;
+ // aapt resource value: 0x7f09007c
+ public const int design_bottom_sheet_modal_elevation = 2131296380;
- // aapt resource value: 0x7f08007d
- public const int design_bottom_sheet_peek_height_min = 2131230845;
+ // aapt resource value: 0x7f09007d
+ public const int design_bottom_sheet_peek_height_min = 2131296381;
- // aapt resource value: 0x7f08007e
- public const int design_fab_border_width = 2131230846;
+ // aapt resource value: 0x7f09007e
+ public const int design_fab_border_width = 2131296382;
- // aapt resource value: 0x7f08007f
- public const int design_fab_elevation = 2131230847;
+ // aapt resource value: 0x7f09007f
+ public const int design_fab_elevation = 2131296383;
- // aapt resource value: 0x7f080080
- public const int design_fab_image_size = 2131230848;
+ // aapt resource value: 0x7f090080
+ public const int design_fab_image_size = 2131296384;
- // aapt resource value: 0x7f080081
- public const int design_fab_size_mini = 2131230849;
+ // aapt resource value: 0x7f090081
+ public const int design_fab_size_mini = 2131296385;
- // aapt resource value: 0x7f080082
- public const int design_fab_size_normal = 2131230850;
+ // aapt resource value: 0x7f090082
+ public const int design_fab_size_normal = 2131296386;
- // aapt resource value: 0x7f080083
- public const int design_fab_translation_z_pressed = 2131230851;
+ // aapt resource value: 0x7f090083
+ public const int design_fab_translation_z_pressed = 2131296387;
- // aapt resource value: 0x7f080084
- public const int design_navigation_elevation = 2131230852;
+ // aapt resource value: 0x7f090084
+ public const int design_navigation_elevation = 2131296388;
- // aapt resource value: 0x7f080085
- public const int design_navigation_icon_padding = 2131230853;
+ // aapt resource value: 0x7f090085
+ public const int design_navigation_icon_padding = 2131296389;
- // aapt resource value: 0x7f080086
- public const int design_navigation_icon_size = 2131230854;
+ // aapt resource value: 0x7f090086
+ public const int design_navigation_icon_size = 2131296390;
- // aapt resource value: 0x7f08006a
- public const int design_navigation_max_width = 2131230826;
+ // aapt resource value: 0x7f09006a
+ public const int design_navigation_max_width = 2131296362;
- // aapt resource value: 0x7f080087
- public const int design_navigation_padding_bottom = 2131230855;
+ // aapt resource value: 0x7f090087
+ public const int design_navigation_padding_bottom = 2131296391;
- // aapt resource value: 0x7f080088
- public const int design_navigation_separator_vertical_padding = 2131230856;
+ // aapt resource value: 0x7f090088
+ public const int design_navigation_separator_vertical_padding = 2131296392;
- // aapt resource value: 0x7f08006b
- public const int design_snackbar_action_inline_max_width = 2131230827;
+ // aapt resource value: 0x7f09006b
+ public const int design_snackbar_action_inline_max_width = 2131296363;
- // aapt resource value: 0x7f08006c
- public const int design_snackbar_background_corner_radius = 2131230828;
+ // aapt resource value: 0x7f09006c
+ public const int design_snackbar_background_corner_radius = 2131296364;
- // aapt resource value: 0x7f080089
- public const int design_snackbar_elevation = 2131230857;
+ // aapt resource value: 0x7f090089
+ public const int design_snackbar_elevation = 2131296393;
- // aapt resource value: 0x7f08006d
- public const int design_snackbar_extra_spacing_horizontal = 2131230829;
+ // aapt resource value: 0x7f09006d
+ public const int design_snackbar_extra_spacing_horizontal = 2131296365;
- // aapt resource value: 0x7f08006e
- public const int design_snackbar_max_width = 2131230830;
+ // aapt resource value: 0x7f09006e
+ public const int design_snackbar_max_width = 2131296366;
- // aapt resource value: 0x7f08006f
- public const int design_snackbar_min_width = 2131230831;
+ // aapt resource value: 0x7f09006f
+ public const int design_snackbar_min_width = 2131296367;
- // aapt resource value: 0x7f08008a
- public const int design_snackbar_padding_horizontal = 2131230858;
+ // aapt resource value: 0x7f09008a
+ public const int design_snackbar_padding_horizontal = 2131296394;
- // aapt resource value: 0x7f08008b
- public const int design_snackbar_padding_vertical = 2131230859;
+ // aapt resource value: 0x7f09008b
+ public const int design_snackbar_padding_vertical = 2131296395;
- // aapt resource value: 0x7f080070
- public const int design_snackbar_padding_vertical_2lines = 2131230832;
+ // aapt resource value: 0x7f090070
+ public const int design_snackbar_padding_vertical_2lines = 2131296368;
- // aapt resource value: 0x7f08008c
- public const int design_snackbar_text_size = 2131230860;
+ // aapt resource value: 0x7f09008c
+ public const int design_snackbar_text_size = 2131296396;
- // aapt resource value: 0x7f08008d
- public const int design_tab_max_width = 2131230861;
+ // aapt resource value: 0x7f09008d
+ public const int design_tab_max_width = 2131296397;
- // aapt resource value: 0x7f080071
- public const int design_tab_scrollable_min_width = 2131230833;
+ // aapt resource value: 0x7f090071
+ public const int design_tab_scrollable_min_width = 2131296369;
- // aapt resource value: 0x7f08008e
- public const int design_tab_text_size = 2131230862;
+ // aapt resource value: 0x7f09008e
+ public const int design_tab_text_size = 2131296398;
- // aapt resource value: 0x7f08008f
- public const int design_tab_text_size_2line = 2131230863;
+ // aapt resource value: 0x7f09008f
+ public const int design_tab_text_size_2line = 2131296399;
- // aapt resource value: 0x7f080059
- public const int disabled_alpha_material_dark = 2131230809;
+ // aapt resource value: 0x7f090059
+ public const int disabled_alpha_material_dark = 2131296345;
- // aapt resource value: 0x7f08005a
- public const int disabled_alpha_material_light = 2131230810;
+ // aapt resource value: 0x7f09005a
+ public const int disabled_alpha_material_light = 2131296346;
- // aapt resource value: 0x7f080000
- public const int fastscroll_default_thickness = 2131230720;
+ // aapt resource value: 0x7f090000
+ public const int fastscroll_default_thickness = 2131296256;
- // aapt resource value: 0x7f080001
- public const int fastscroll_margin = 2131230721;
+ // aapt resource value: 0x7f090001
+ public const int fastscroll_margin = 2131296257;
- // aapt resource value: 0x7f080002
- public const int fastscroll_minimum_range = 2131230722;
+ // aapt resource value: 0x7f090002
+ public const int fastscroll_minimum_range = 2131296258;
- // aapt resource value: 0x7f08005b
- public const int highlight_alpha_material_colored = 2131230811;
+ // aapt resource value: 0x7f09005b
+ public const int highlight_alpha_material_colored = 2131296347;
- // aapt resource value: 0x7f08005c
- public const int highlight_alpha_material_dark = 2131230812;
+ // aapt resource value: 0x7f09005c
+ public const int highlight_alpha_material_dark = 2131296348;
- // aapt resource value: 0x7f08005d
- public const int highlight_alpha_material_light = 2131230813;
+ // aapt resource value: 0x7f09005d
+ public const int highlight_alpha_material_light = 2131296349;
- // aapt resource value: 0x7f08005e
- public const int hint_alpha_material_dark = 2131230814;
+ // aapt resource value: 0x7f09005e
+ public const int hint_alpha_material_dark = 2131296350;
- // aapt resource value: 0x7f08005f
- public const int hint_alpha_material_light = 2131230815;
+ // aapt resource value: 0x7f09005f
+ public const int hint_alpha_material_light = 2131296351;
- // aapt resource value: 0x7f080060
- public const int hint_pressed_alpha_material_dark = 2131230816;
+ // aapt resource value: 0x7f090060
+ public const int hint_pressed_alpha_material_dark = 2131296352;
- // aapt resource value: 0x7f080061
- public const int hint_pressed_alpha_material_light = 2131230817;
+ // aapt resource value: 0x7f090061
+ public const int hint_pressed_alpha_material_light = 2131296353;
- // aapt resource value: 0x7f080003
- public const int item_touch_helper_max_drag_scroll_per_frame = 2131230723;
+ // aapt resource value: 0x7f090003
+ public const int item_touch_helper_max_drag_scroll_per_frame = 2131296259;
- // aapt resource value: 0x7f080004
- public const int item_touch_helper_swipe_escape_max_velocity = 2131230724;
+ // aapt resource value: 0x7f090004
+ public const int item_touch_helper_swipe_escape_max_velocity = 2131296260;
- // aapt resource value: 0x7f080005
- public const int item_touch_helper_swipe_escape_velocity = 2131230725;
+ // aapt resource value: 0x7f090005
+ public const int item_touch_helper_swipe_escape_velocity = 2131296261;
- // aapt resource value: 0x7f080006
- public const int mr_controller_volume_group_list_item_height = 2131230726;
+ // aapt resource value: 0x7f090006
+ public const int mr_controller_volume_group_list_item_height = 2131296262;
- // aapt resource value: 0x7f080007
- public const int mr_controller_volume_group_list_item_icon_size = 2131230727;
+ // aapt resource value: 0x7f090007
+ public const int mr_controller_volume_group_list_item_icon_size = 2131296263;
- // aapt resource value: 0x7f080008
- public const int mr_controller_volume_group_list_max_height = 2131230728;
+ // aapt resource value: 0x7f090008
+ public const int mr_controller_volume_group_list_max_height = 2131296264;
- // aapt resource value: 0x7f08000b
- public const int mr_controller_volume_group_list_padding_top = 2131230731;
+ // aapt resource value: 0x7f09000b
+ public const int mr_controller_volume_group_list_padding_top = 2131296267;
- // aapt resource value: 0x7f080009
- public const int mr_dialog_fixed_width_major = 2131230729;
+ // aapt resource value: 0x7f090009
+ public const int mr_dialog_fixed_width_major = 2131296265;
- // aapt resource value: 0x7f08000a
- public const int mr_dialog_fixed_width_minor = 2131230730;
+ // aapt resource value: 0x7f09000a
+ public const int mr_dialog_fixed_width_minor = 2131296266;
- // aapt resource value: 0x7f080099
- public const int notification_action_icon_size = 2131230873;
+ // aapt resource value: 0x7f090099
+ public const int notification_action_icon_size = 2131296409;
- // aapt resource value: 0x7f08009a
- public const int notification_action_text_size = 2131230874;
+ // aapt resource value: 0x7f09009a
+ public const int notification_action_text_size = 2131296410;
- // aapt resource value: 0x7f08009b
- public const int notification_big_circle_margin = 2131230875;
+ // aapt resource value: 0x7f09009b
+ public const int notification_big_circle_margin = 2131296411;
- // aapt resource value: 0x7f080091
- public const int notification_content_margin_start = 2131230865;
+ // aapt resource value: 0x7f090091
+ public const int notification_content_margin_start = 2131296401;
- // aapt resource value: 0x7f08009c
- public const int notification_large_icon_height = 2131230876;
+ // aapt resource value: 0x7f09009c
+ public const int notification_large_icon_height = 2131296412;
- // aapt resource value: 0x7f08009d
- public const int notification_large_icon_width = 2131230877;
+ // aapt resource value: 0x7f09009d
+ public const int notification_large_icon_width = 2131296413;
- // aapt resource value: 0x7f080092
- public const int notification_main_column_padding_top = 2131230866;
+ // aapt resource value: 0x7f090092
+ public const int notification_main_column_padding_top = 2131296402;
- // aapt resource value: 0x7f080093
- public const int notification_media_narrow_margin = 2131230867;
+ // aapt resource value: 0x7f090093
+ public const int notification_media_narrow_margin = 2131296403;
- // aapt resource value: 0x7f08009e
- public const int notification_right_icon_size = 2131230878;
+ // aapt resource value: 0x7f09009e
+ public const int notification_right_icon_size = 2131296414;
- // aapt resource value: 0x7f080090
- public const int notification_right_side_padding_top = 2131230864;
+ // aapt resource value: 0x7f090090
+ public const int notification_right_side_padding_top = 2131296400;
- // aapt resource value: 0x7f08009f
- public const int notification_small_icon_background_padding = 2131230879;
+ // aapt resource value: 0x7f09009f
+ public const int notification_small_icon_background_padding = 2131296415;
- // aapt resource value: 0x7f0800a0
- public const int notification_small_icon_size_as_large = 2131230880;
+ // aapt resource value: 0x7f0900a0
+ public const int notification_small_icon_size_as_large = 2131296416;
- // aapt resource value: 0x7f0800a1
- public const int notification_subtext_size = 2131230881;
+ // aapt resource value: 0x7f0900a1
+ public const int notification_subtext_size = 2131296417;
- // aapt resource value: 0x7f0800a2
- public const int notification_top_pad = 2131230882;
+ // aapt resource value: 0x7f0900a2
+ public const int notification_top_pad = 2131296418;
- // aapt resource value: 0x7f0800a3
- public const int notification_top_pad_large_text = 2131230883;
+ // aapt resource value: 0x7f0900a3
+ public const int notification_top_pad_large_text = 2131296419;
- // aapt resource value: 0x7f080062
- public const int tooltip_corner_radius = 2131230818;
+ // aapt resource value: 0x7f090062
+ public const int tooltip_corner_radius = 2131296354;
- // aapt resource value: 0x7f080063
- public const int tooltip_horizontal_padding = 2131230819;
+ // aapt resource value: 0x7f090063
+ public const int tooltip_horizontal_padding = 2131296355;
- // aapt resource value: 0x7f080064
- public const int tooltip_margin = 2131230820;
+ // aapt resource value: 0x7f090064
+ public const int tooltip_margin = 2131296356;
- // aapt resource value: 0x7f080065
- public const int tooltip_precise_anchor_extra_offset = 2131230821;
+ // aapt resource value: 0x7f090065
+ public const int tooltip_precise_anchor_extra_offset = 2131296357;
- // aapt resource value: 0x7f080066
- public const int tooltip_precise_anchor_threshold = 2131230822;
+ // aapt resource value: 0x7f090066
+ public const int tooltip_precise_anchor_threshold = 2131296358;
- // aapt resource value: 0x7f080067
- public const int tooltip_vertical_padding = 2131230823;
+ // aapt resource value: 0x7f090067
+ public const int tooltip_vertical_padding = 2131296359;
- // aapt resource value: 0x7f080068
- public const int tooltip_y_offset_non_touch = 2131230824;
+ // aapt resource value: 0x7f090068
+ public const int tooltip_y_offset_non_touch = 2131296360;
- // aapt resource value: 0x7f080069
- public const int tooltip_y_offset_touch = 2131230825;
+ // aapt resource value: 0x7f090069
+ public const int tooltip_y_offset_touch = 2131296361;
static Dimension()
{
@@ -3024,614 +3126,614 @@ private Drawable()
public partial class Id
{
- // aapt resource value: 0x7f090032
- public const int ALT = 2131296306;
+ // aapt resource value: 0x7f0a0032
+ public const int ALT = 2131361842;
- // aapt resource value: 0x7f090033
- public const int CTRL = 2131296307;
+ // aapt resource value: 0x7f0a0033
+ public const int CTRL = 2131361843;
- // aapt resource value: 0x7f090034
- public const int FUNCTION = 2131296308;
+ // aapt resource value: 0x7f0a0034
+ public const int FUNCTION = 2131361844;
- // aapt resource value: 0x7f090035
- public const int META = 2131296309;
+ // aapt resource value: 0x7f0a0035
+ public const int META = 2131361845;
- // aapt resource value: 0x7f090036
- public const int SHIFT = 2131296310;
+ // aapt resource value: 0x7f0a0036
+ public const int SHIFT = 2131361846;
- // aapt resource value: 0x7f090037
- public const int SYM = 2131296311;
+ // aapt resource value: 0x7f0a0037
+ public const int SYM = 2131361847;
- // aapt resource value: 0x7f0900b6
- public const int action0 = 2131296438;
+ // aapt resource value: 0x7f0a00b6
+ public const int action0 = 2131361974;
- // aapt resource value: 0x7f09007c
- public const int action_bar = 2131296380;
+ // aapt resource value: 0x7f0a007c
+ public const int action_bar = 2131361916;
- // aapt resource value: 0x7f090001
- public const int action_bar_activity_content = 2131296257;
+ // aapt resource value: 0x7f0a0001
+ public const int action_bar_activity_content = 2131361793;
- // aapt resource value: 0x7f09007b
- public const int action_bar_container = 2131296379;
+ // aapt resource value: 0x7f0a007b
+ public const int action_bar_container = 2131361915;
- // aapt resource value: 0x7f090077
- public const int action_bar_root = 2131296375;
+ // aapt resource value: 0x7f0a0077
+ public const int action_bar_root = 2131361911;
- // aapt resource value: 0x7f090002
- public const int action_bar_spinner = 2131296258;
+ // aapt resource value: 0x7f0a0002
+ public const int action_bar_spinner = 2131361794;
- // aapt resource value: 0x7f09005b
- public const int action_bar_subtitle = 2131296347;
+ // aapt resource value: 0x7f0a005b
+ public const int action_bar_subtitle = 2131361883;
- // aapt resource value: 0x7f09005a
- public const int action_bar_title = 2131296346;
+ // aapt resource value: 0x7f0a005a
+ public const int action_bar_title = 2131361882;
- // aapt resource value: 0x7f0900b3
- public const int action_container = 2131296435;
+ // aapt resource value: 0x7f0a00b3
+ public const int action_container = 2131361971;
- // aapt resource value: 0x7f09007d
- public const int action_context_bar = 2131296381;
+ // aapt resource value: 0x7f0a007d
+ public const int action_context_bar = 2131361917;
- // aapt resource value: 0x7f0900ba
- public const int action_divider = 2131296442;
+ // aapt resource value: 0x7f0a00ba
+ public const int action_divider = 2131361978;
- // aapt resource value: 0x7f0900b4
- public const int action_image = 2131296436;
+ // aapt resource value: 0x7f0a00b4
+ public const int action_image = 2131361972;
- // aapt resource value: 0x7f090003
- public const int action_menu_divider = 2131296259;
+ // aapt resource value: 0x7f0a0003
+ public const int action_menu_divider = 2131361795;
- // aapt resource value: 0x7f090004
- public const int action_menu_presenter = 2131296260;
+ // aapt resource value: 0x7f0a0004
+ public const int action_menu_presenter = 2131361796;
- // aapt resource value: 0x7f090079
- public const int action_mode_bar = 2131296377;
+ // aapt resource value: 0x7f0a0079
+ public const int action_mode_bar = 2131361913;
- // aapt resource value: 0x7f090078
- public const int action_mode_bar_stub = 2131296376;
+ // aapt resource value: 0x7f0a0078
+ public const int action_mode_bar_stub = 2131361912;
- // aapt resource value: 0x7f09005c
- public const int action_mode_close_button = 2131296348;
+ // aapt resource value: 0x7f0a005c
+ public const int action_mode_close_button = 2131361884;
- // aapt resource value: 0x7f0900b5
- public const int action_text = 2131296437;
+ // aapt resource value: 0x7f0a00b5
+ public const int action_text = 2131361973;
- // aapt resource value: 0x7f0900c3
- public const int actions = 2131296451;
+ // aapt resource value: 0x7f0a00c3
+ public const int actions = 2131361987;
- // aapt resource value: 0x7f09005d
- public const int activity_chooser_view_content = 2131296349;
+ // aapt resource value: 0x7f0a005d
+ public const int activity_chooser_view_content = 2131361885;
- // aapt resource value: 0x7f090027
- public const int add = 2131296295;
+ // aapt resource value: 0x7f0a0027
+ public const int add = 2131361831;
- // aapt resource value: 0x7f090070
- public const int alertTitle = 2131296368;
+ // aapt resource value: 0x7f0a0070
+ public const int alertTitle = 2131361904;
- // aapt resource value: 0x7f090052
- public const int all = 2131296338;
+ // aapt resource value: 0x7f0a0052
+ public const int all = 2131361874;
- // aapt resource value: 0x7f090038
- public const int always = 2131296312;
+ // aapt resource value: 0x7f0a0038
+ public const int always = 2131361848;
- // aapt resource value: 0x7f090056
- public const int async = 2131296342;
+ // aapt resource value: 0x7f0a0056
+ public const int async = 2131361878;
- // aapt resource value: 0x7f090044
- public const int auto = 2131296324;
+ // aapt resource value: 0x7f0a0044
+ public const int auto = 2131361860;
- // aapt resource value: 0x7f09002f
- public const int beginning = 2131296303;
+ // aapt resource value: 0x7f0a002f
+ public const int beginning = 2131361839;
- // aapt resource value: 0x7f090057
- public const int blocking = 2131296343;
+ // aapt resource value: 0x7f0a0057
+ public const int blocking = 2131361879;
- // aapt resource value: 0x7f09003d
- public const int bottom = 2131296317;
+ // aapt resource value: 0x7f0a003d
+ public const int bottom = 2131361853;
- // aapt resource value: 0x7f090063
- public const int buttonPanel = 2131296355;
+ // aapt resource value: 0x7f0a0063
+ public const int buttonPanel = 2131361891;
- // aapt resource value: 0x7f0900b7
- public const int cancel_action = 2131296439;
+ // aapt resource value: 0x7f0a00b7
+ public const int cancel_action = 2131361975;
- // aapt resource value: 0x7f090045
- public const int center = 2131296325;
+ // aapt resource value: 0x7f0a0045
+ public const int center = 2131361861;
- // aapt resource value: 0x7f090046
- public const int center_horizontal = 2131296326;
+ // aapt resource value: 0x7f0a0046
+ public const int center_horizontal = 2131361862;
- // aapt resource value: 0x7f090047
- public const int center_vertical = 2131296327;
+ // aapt resource value: 0x7f0a0047
+ public const int center_vertical = 2131361863;
- // aapt resource value: 0x7f090073
- public const int checkbox = 2131296371;
+ // aapt resource value: 0x7f0a0073
+ public const int checkbox = 2131361907;
- // aapt resource value: 0x7f0900bf
- public const int chronometer = 2131296447;
+ // aapt resource value: 0x7f0a00bf
+ public const int chronometer = 2131361983;
- // aapt resource value: 0x7f09004e
- public const int clip_horizontal = 2131296334;
+ // aapt resource value: 0x7f0a004e
+ public const int clip_horizontal = 2131361870;
- // aapt resource value: 0x7f09004f
- public const int clip_vertical = 2131296335;
+ // aapt resource value: 0x7f0a004f
+ public const int clip_vertical = 2131361871;
- // aapt resource value: 0x7f090039
- public const int collapseActionView = 2131296313;
+ // aapt resource value: 0x7f0a0039
+ public const int collapseActionView = 2131361849;
- // aapt resource value: 0x7f09008d
- public const int container = 2131296397;
+ // aapt resource value: 0x7f0a008d
+ public const int container = 2131361933;
- // aapt resource value: 0x7f090066
- public const int contentPanel = 2131296358;
+ // aapt resource value: 0x7f0a0066
+ public const int contentPanel = 2131361894;
- // aapt resource value: 0x7f09008e
- public const int coordinator = 2131296398;
+ // aapt resource value: 0x7f0a008e
+ public const int coordinator = 2131361934;
- // aapt resource value: 0x7f09006d
- public const int custom = 2131296365;
+ // aapt resource value: 0x7f0a006d
+ public const int custom = 2131361901;
- // aapt resource value: 0x7f09006c
- public const int customPanel = 2131296364;
+ // aapt resource value: 0x7f0a006c
+ public const int customPanel = 2131361900;
- // aapt resource value: 0x7f09007a
- public const int decor_content_parent = 2131296378;
+ // aapt resource value: 0x7f0a007a
+ public const int decor_content_parent = 2131361914;
- // aapt resource value: 0x7f090060
- public const int default_activity_button = 2131296352;
+ // aapt resource value: 0x7f0a0060
+ public const int default_activity_button = 2131361888;
- // aapt resource value: 0x7f090090
- public const int design_bottom_sheet = 2131296400;
+ // aapt resource value: 0x7f0a0090
+ public const int design_bottom_sheet = 2131361936;
- // aapt resource value: 0x7f090097
- public const int design_menu_item_action_area = 2131296407;
+ // aapt resource value: 0x7f0a0097
+ public const int design_menu_item_action_area = 2131361943;
- // aapt resource value: 0x7f090096
- public const int design_menu_item_action_area_stub = 2131296406;
+ // aapt resource value: 0x7f0a0096
+ public const int design_menu_item_action_area_stub = 2131361942;
- // aapt resource value: 0x7f090095
- public const int design_menu_item_text = 2131296405;
+ // aapt resource value: 0x7f0a0095
+ public const int design_menu_item_text = 2131361941;
- // aapt resource value: 0x7f090094
- public const int design_navigation_view = 2131296404;
+ // aapt resource value: 0x7f0a0094
+ public const int design_navigation_view = 2131361940;
- // aapt resource value: 0x7f090020
- public const int disableHome = 2131296288;
+ // aapt resource value: 0x7f0a0020
+ public const int disableHome = 2131361824;
- // aapt resource value: 0x7f09007e
- public const int edit_query = 2131296382;
+ // aapt resource value: 0x7f0a007e
+ public const int edit_query = 2131361918;
- // aapt resource value: 0x7f090030
- public const int end = 2131296304;
+ // aapt resource value: 0x7f0a0030
+ public const int end = 2131361840;
- // aapt resource value: 0x7f0900c5
- public const int end_padder = 2131296453;
+ // aapt resource value: 0x7f0a00c5
+ public const int end_padder = 2131361989;
- // aapt resource value: 0x7f09003f
- public const int enterAlways = 2131296319;
+ // aapt resource value: 0x7f0a003f
+ public const int enterAlways = 2131361855;
- // aapt resource value: 0x7f090040
- public const int enterAlwaysCollapsed = 2131296320;
+ // aapt resource value: 0x7f0a0040
+ public const int enterAlwaysCollapsed = 2131361856;
- // aapt resource value: 0x7f090041
- public const int exitUntilCollapsed = 2131296321;
+ // aapt resource value: 0x7f0a0041
+ public const int exitUntilCollapsed = 2131361857;
- // aapt resource value: 0x7f09005e
- public const int expand_activities_button = 2131296350;
+ // aapt resource value: 0x7f0a005e
+ public const int expand_activities_button = 2131361886;
- // aapt resource value: 0x7f090072
- public const int expanded_menu = 2131296370;
+ // aapt resource value: 0x7f0a0072
+ public const int expanded_menu = 2131361906;
- // aapt resource value: 0x7f090050
- public const int fill = 2131296336;
+ // aapt resource value: 0x7f0a0050
+ public const int fill = 2131361872;
- // aapt resource value: 0x7f090051
- public const int fill_horizontal = 2131296337;
+ // aapt resource value: 0x7f0a0051
+ public const int fill_horizontal = 2131361873;
- // aapt resource value: 0x7f090048
- public const int fill_vertical = 2131296328;
+ // aapt resource value: 0x7f0a0048
+ public const int fill_vertical = 2131361864;
- // aapt resource value: 0x7f090054
- public const int @fixed = 2131296340;
+ // aapt resource value: 0x7f0a0054
+ public const int @fixed = 2131361876;
- // aapt resource value: 0x7f090058
- public const int forever = 2131296344;
+ // aapt resource value: 0x7f0a0058
+ public const int forever = 2131361880;
- // aapt resource value: 0x7f09000a
- public const int ghost_view = 2131296266;
+ // aapt resource value: 0x7f0a000a
+ public const int ghost_view = 2131361802;
- // aapt resource value: 0x7f090005
- public const int home = 2131296261;
+ // aapt resource value: 0x7f0a0005
+ public const int home = 2131361797;
- // aapt resource value: 0x7f090021
- public const int homeAsUp = 2131296289;
+ // aapt resource value: 0x7f0a0021
+ public const int homeAsUp = 2131361825;
- // aapt resource value: 0x7f090062
- public const int icon = 2131296354;
+ // aapt resource value: 0x7f0a0062
+ public const int icon = 2131361890;
- // aapt resource value: 0x7f0900c4
- public const int icon_group = 2131296452;
+ // aapt resource value: 0x7f0a00c4
+ public const int icon_group = 2131361988;
- // aapt resource value: 0x7f09003a
- public const int ifRoom = 2131296314;
+ // aapt resource value: 0x7f0a003a
+ public const int ifRoom = 2131361850;
- // aapt resource value: 0x7f09005f
- public const int image = 2131296351;
+ // aapt resource value: 0x7f0a005f
+ public const int image = 2131361887;
- // aapt resource value: 0x7f0900c0
- public const int info = 2131296448;
+ // aapt resource value: 0x7f0a00c0
+ public const int info = 2131361984;
- // aapt resource value: 0x7f090059
- public const int italic = 2131296345;
+ // aapt resource value: 0x7f0a0059
+ public const int italic = 2131361881;
- // aapt resource value: 0x7f090000
- public const int item_touch_helper_previous_elevation = 2131296256;
+ // aapt resource value: 0x7f0a0000
+ public const int item_touch_helper_previous_elevation = 2131361792;
- // aapt resource value: 0x7f09008c
- public const int largeLabel = 2131296396;
+ // aapt resource value: 0x7f0a008c
+ public const int largeLabel = 2131361932;
- // aapt resource value: 0x7f090049
- public const int left = 2131296329;
+ // aapt resource value: 0x7f0a0049
+ public const int left = 2131361865;
- // aapt resource value: 0x7f090017
- public const int line1 = 2131296279;
+ // aapt resource value: 0x7f0a0017
+ public const int line1 = 2131361815;
- // aapt resource value: 0x7f090018
- public const int line3 = 2131296280;
+ // aapt resource value: 0x7f0a0018
+ public const int line3 = 2131361816;
- // aapt resource value: 0x7f09001d
- public const int listMode = 2131296285;
+ // aapt resource value: 0x7f0a001d
+ public const int listMode = 2131361821;
- // aapt resource value: 0x7f090061
- public const int list_item = 2131296353;
+ // aapt resource value: 0x7f0a0061
+ public const int list_item = 2131361889;
- // aapt resource value: 0x7f0900ca
- public const int masked = 2131296458;
+ // aapt resource value: 0x7f0a00ca
+ public const int masked = 2131361994;
- // aapt resource value: 0x7f0900b9
- public const int media_actions = 2131296441;
+ // aapt resource value: 0x7f0a00b9
+ public const int media_actions = 2131361977;
- // aapt resource value: 0x7f0900c8
- public const int message = 2131296456;
+ // aapt resource value: 0x7f0a00c8
+ public const int message = 2131361992;
- // aapt resource value: 0x7f090031
- public const int middle = 2131296305;
+ // aapt resource value: 0x7f0a0031
+ public const int middle = 2131361841;
- // aapt resource value: 0x7f090053
- public const int mini = 2131296339;
+ // aapt resource value: 0x7f0a0053
+ public const int mini = 2131361875;
- // aapt resource value: 0x7f0900a5
- public const int mr_art = 2131296421;
+ // aapt resource value: 0x7f0a00a5
+ public const int mr_art = 2131361957;
- // aapt resource value: 0x7f09009a
- public const int mr_chooser_list = 2131296410;
+ // aapt resource value: 0x7f0a009a
+ public const int mr_chooser_list = 2131361946;
- // aapt resource value: 0x7f09009d
- public const int mr_chooser_route_desc = 2131296413;
+ // aapt resource value: 0x7f0a009d
+ public const int mr_chooser_route_desc = 2131361949;
- // aapt resource value: 0x7f09009b
- public const int mr_chooser_route_icon = 2131296411;
+ // aapt resource value: 0x7f0a009b
+ public const int mr_chooser_route_icon = 2131361947;
- // aapt resource value: 0x7f09009c
- public const int mr_chooser_route_name = 2131296412;
+ // aapt resource value: 0x7f0a009c
+ public const int mr_chooser_route_name = 2131361948;
- // aapt resource value: 0x7f090099
- public const int mr_chooser_title = 2131296409;
+ // aapt resource value: 0x7f0a0099
+ public const int mr_chooser_title = 2131361945;
- // aapt resource value: 0x7f0900a2
- public const int mr_close = 2131296418;
+ // aapt resource value: 0x7f0a00a2
+ public const int mr_close = 2131361954;
- // aapt resource value: 0x7f0900a8
- public const int mr_control_divider = 2131296424;
+ // aapt resource value: 0x7f0a00a8
+ public const int mr_control_divider = 2131361960;
- // aapt resource value: 0x7f0900ae
- public const int mr_control_playback_ctrl = 2131296430;
+ // aapt resource value: 0x7f0a00ae
+ public const int mr_control_playback_ctrl = 2131361966;
- // aapt resource value: 0x7f0900b1
- public const int mr_control_subtitle = 2131296433;
+ // aapt resource value: 0x7f0a00b1
+ public const int mr_control_subtitle = 2131361969;
- // aapt resource value: 0x7f0900b0
- public const int mr_control_title = 2131296432;
+ // aapt resource value: 0x7f0a00b0
+ public const int mr_control_title = 2131361968;
- // aapt resource value: 0x7f0900af
- public const int mr_control_title_container = 2131296431;
+ // aapt resource value: 0x7f0a00af
+ public const int mr_control_title_container = 2131361967;
- // aapt resource value: 0x7f0900a3
- public const int mr_custom_control = 2131296419;
+ // aapt resource value: 0x7f0a00a3
+ public const int mr_custom_control = 2131361955;
- // aapt resource value: 0x7f0900a4
- public const int mr_default_control = 2131296420;
+ // aapt resource value: 0x7f0a00a4
+ public const int mr_default_control = 2131361956;
- // aapt resource value: 0x7f09009f
- public const int mr_dialog_area = 2131296415;
+ // aapt resource value: 0x7f0a009f
+ public const int mr_dialog_area = 2131361951;
- // aapt resource value: 0x7f09009e
- public const int mr_expandable_area = 2131296414;
+ // aapt resource value: 0x7f0a009e
+ public const int mr_expandable_area = 2131361950;
- // aapt resource value: 0x7f0900b2
- public const int mr_group_expand_collapse = 2131296434;
+ // aapt resource value: 0x7f0a00b2
+ public const int mr_group_expand_collapse = 2131361970;
- // aapt resource value: 0x7f0900a6
- public const int mr_media_main_control = 2131296422;
+ // aapt resource value: 0x7f0a00a6
+ public const int mr_media_main_control = 2131361958;
- // aapt resource value: 0x7f0900a1
- public const int mr_name = 2131296417;
+ // aapt resource value: 0x7f0a00a1
+ public const int mr_name = 2131361953;
- // aapt resource value: 0x7f0900a7
- public const int mr_playback_control = 2131296423;
+ // aapt resource value: 0x7f0a00a7
+ public const int mr_playback_control = 2131361959;
- // aapt resource value: 0x7f0900a0
- public const int mr_title_bar = 2131296416;
+ // aapt resource value: 0x7f0a00a0
+ public const int mr_title_bar = 2131361952;
- // aapt resource value: 0x7f0900a9
- public const int mr_volume_control = 2131296425;
+ // aapt resource value: 0x7f0a00a9
+ public const int mr_volume_control = 2131361961;
- // aapt resource value: 0x7f0900aa
- public const int mr_volume_group_list = 2131296426;
+ // aapt resource value: 0x7f0a00aa
+ public const int mr_volume_group_list = 2131361962;
- // aapt resource value: 0x7f0900ac
- public const int mr_volume_item_icon = 2131296428;
+ // aapt resource value: 0x7f0a00ac
+ public const int mr_volume_item_icon = 2131361964;
- // aapt resource value: 0x7f0900ad
- public const int mr_volume_slider = 2131296429;
+ // aapt resource value: 0x7f0a00ad
+ public const int mr_volume_slider = 2131361965;
- // aapt resource value: 0x7f090028
- public const int multiply = 2131296296;
+ // aapt resource value: 0x7f0a0028
+ public const int multiply = 2131361832;
- // aapt resource value: 0x7f090093
- public const int navigation_header_container = 2131296403;
+ // aapt resource value: 0x7f0a0093
+ public const int navigation_header_container = 2131361939;
- // aapt resource value: 0x7f09003b
- public const int never = 2131296315;
+ // aapt resource value: 0x7f0a003b
+ public const int never = 2131361851;
- // aapt resource value: 0x7f090022
- public const int none = 2131296290;
+ // aapt resource value: 0x7f0a0022
+ public const int none = 2131361826;
- // aapt resource value: 0x7f09001e
- public const int normal = 2131296286;
+ // aapt resource value: 0x7f0a001e
+ public const int normal = 2131361822;
- // aapt resource value: 0x7f0900c2
- public const int notification_background = 2131296450;
+ // aapt resource value: 0x7f0a00c2
+ public const int notification_background = 2131361986;
- // aapt resource value: 0x7f0900bc
- public const int notification_main_column = 2131296444;
+ // aapt resource value: 0x7f0a00bc
+ public const int notification_main_column = 2131361980;
- // aapt resource value: 0x7f0900bb
- public const int notification_main_column_container = 2131296443;
+ // aapt resource value: 0x7f0a00bb
+ public const int notification_main_column_container = 2131361979;
- // aapt resource value: 0x7f09004c
- public const int parallax = 2131296332;
+ // aapt resource value: 0x7f0a004c
+ public const int parallax = 2131361868;
- // aapt resource value: 0x7f090065
- public const int parentPanel = 2131296357;
+ // aapt resource value: 0x7f0a0065
+ public const int parentPanel = 2131361893;
- // aapt resource value: 0x7f09000b
- public const int parent_matrix = 2131296267;
+ // aapt resource value: 0x7f0a000b
+ public const int parent_matrix = 2131361803;
- // aapt resource value: 0x7f09004d
- public const int pin = 2131296333;
+ // aapt resource value: 0x7f0a004d
+ public const int pin = 2131361869;
- // aapt resource value: 0x7f090006
- public const int progress_circular = 2131296262;
+ // aapt resource value: 0x7f0a0006
+ public const int progress_circular = 2131361798;
- // aapt resource value: 0x7f090007
- public const int progress_horizontal = 2131296263;
+ // aapt resource value: 0x7f0a0007
+ public const int progress_horizontal = 2131361799;
- // aapt resource value: 0x7f090075
- public const int radio = 2131296373;
+ // aapt resource value: 0x7f0a0075
+ public const int radio = 2131361909;
- // aapt resource value: 0x7f09004a
- public const int right = 2131296330;
+ // aapt resource value: 0x7f0a004a
+ public const int right = 2131361866;
- // aapt resource value: 0x7f0900c1
- public const int right_icon = 2131296449;
+ // aapt resource value: 0x7f0a00c1
+ public const int right_icon = 2131361985;
- // aapt resource value: 0x7f0900bd
- public const int right_side = 2131296445;
+ // aapt resource value: 0x7f0a00bd
+ public const int right_side = 2131361981;
- // aapt resource value: 0x7f09000c
- public const int save_image_matrix = 2131296268;
+ // aapt resource value: 0x7f0a000c
+ public const int save_image_matrix = 2131361804;
- // aapt resource value: 0x7f09000d
- public const int save_non_transition_alpha = 2131296269;
+ // aapt resource value: 0x7f0a000d
+ public const int save_non_transition_alpha = 2131361805;
- // aapt resource value: 0x7f09000e
- public const int save_scale_type = 2131296270;
+ // aapt resource value: 0x7f0a000e
+ public const int save_scale_type = 2131361806;
- // aapt resource value: 0x7f090029
- public const int screen = 2131296297;
+ // aapt resource value: 0x7f0a0029
+ public const int screen = 2131361833;
- // aapt resource value: 0x7f090042
- public const int scroll = 2131296322;
+ // aapt resource value: 0x7f0a0042
+ public const int scroll = 2131361858;
- // aapt resource value: 0x7f09006b
- public const int scrollIndicatorDown = 2131296363;
+ // aapt resource value: 0x7f0a006b
+ public const int scrollIndicatorDown = 2131361899;
- // aapt resource value: 0x7f090067
- public const int scrollIndicatorUp = 2131296359;
+ // aapt resource value: 0x7f0a0067
+ public const int scrollIndicatorUp = 2131361895;
- // aapt resource value: 0x7f090068
- public const int scrollView = 2131296360;
+ // aapt resource value: 0x7f0a0068
+ public const int scrollView = 2131361896;
- // aapt resource value: 0x7f090055
- public const int scrollable = 2131296341;
+ // aapt resource value: 0x7f0a0055
+ public const int scrollable = 2131361877;
- // aapt resource value: 0x7f090080
- public const int search_badge = 2131296384;
+ // aapt resource value: 0x7f0a0080
+ public const int search_badge = 2131361920;
- // aapt resource value: 0x7f09007f
- public const int search_bar = 2131296383;
+ // aapt resource value: 0x7f0a007f
+ public const int search_bar = 2131361919;
- // aapt resource value: 0x7f090081
- public const int search_button = 2131296385;
+ // aapt resource value: 0x7f0a0081
+ public const int search_button = 2131361921;
- // aapt resource value: 0x7f090086
- public const int search_close_btn = 2131296390;
+ // aapt resource value: 0x7f0a0086
+ public const int search_close_btn = 2131361926;
- // aapt resource value: 0x7f090082
- public const int search_edit_frame = 2131296386;
+ // aapt resource value: 0x7f0a0082
+ public const int search_edit_frame = 2131361922;
- // aapt resource value: 0x7f090088
- public const int search_go_btn = 2131296392;
+ // aapt resource value: 0x7f0a0088
+ public const int search_go_btn = 2131361928;
- // aapt resource value: 0x7f090083
- public const int search_mag_icon = 2131296387;
+ // aapt resource value: 0x7f0a0083
+ public const int search_mag_icon = 2131361923;
- // aapt resource value: 0x7f090084
- public const int search_plate = 2131296388;
+ // aapt resource value: 0x7f0a0084
+ public const int search_plate = 2131361924;
- // aapt resource value: 0x7f090085
- public const int search_src_text = 2131296389;
+ // aapt resource value: 0x7f0a0085
+ public const int search_src_text = 2131361925;
- // aapt resource value: 0x7f090089
- public const int search_voice_btn = 2131296393;
+ // aapt resource value: 0x7f0a0089
+ public const int search_voice_btn = 2131361929;
- // aapt resource value: 0x7f09008a
- public const int select_dialog_listview = 2131296394;
+ // aapt resource value: 0x7f0a008a
+ public const int select_dialog_listview = 2131361930;
- // aapt resource value: 0x7f090074
- public const int shortcut = 2131296372;
+ // aapt resource value: 0x7f0a0074
+ public const int shortcut = 2131361908;
- // aapt resource value: 0x7f090023
- public const int showCustom = 2131296291;
+ // aapt resource value: 0x7f0a0023
+ public const int showCustom = 2131361827;
- // aapt resource value: 0x7f090024
- public const int showHome = 2131296292;
+ // aapt resource value: 0x7f0a0024
+ public const int showHome = 2131361828;
- // aapt resource value: 0x7f090025
- public const int showTitle = 2131296293;
+ // aapt resource value: 0x7f0a0025
+ public const int showTitle = 2131361829;
- // aapt resource value: 0x7f0900c6
- public const int sliding_tabs = 2131296454;
+ // aapt resource value: 0x7f0a00c6
+ public const int sliding_tabs = 2131361990;
- // aapt resource value: 0x7f09008b
- public const int smallLabel = 2131296395;
+ // aapt resource value: 0x7f0a008b
+ public const int smallLabel = 2131361931;
- // aapt resource value: 0x7f090092
- public const int snackbar_action = 2131296402;
+ // aapt resource value: 0x7f0a0092
+ public const int snackbar_action = 2131361938;
- // aapt resource value: 0x7f090091
- public const int snackbar_text = 2131296401;
+ // aapt resource value: 0x7f0a0091
+ public const int snackbar_text = 2131361937;
- // aapt resource value: 0x7f090043
- public const int snap = 2131296323;
+ // aapt resource value: 0x7f0a0043
+ public const int snap = 2131361859;
- // aapt resource value: 0x7f090064
- public const int spacer = 2131296356;
+ // aapt resource value: 0x7f0a0064
+ public const int spacer = 2131361892;
- // aapt resource value: 0x7f090008
- public const int split_action_bar = 2131296264;
+ // aapt resource value: 0x7f0a0008
+ public const int split_action_bar = 2131361800;
- // aapt resource value: 0x7f09002a
- public const int src_atop = 2131296298;
+ // aapt resource value: 0x7f0a002a
+ public const int src_atop = 2131361834;
- // aapt resource value: 0x7f09002b
- public const int src_in = 2131296299;
+ // aapt resource value: 0x7f0a002b
+ public const int src_in = 2131361835;
- // aapt resource value: 0x7f09002c
- public const int src_over = 2131296300;
+ // aapt resource value: 0x7f0a002c
+ public const int src_over = 2131361836;
- // aapt resource value: 0x7f09004b
- public const int start = 2131296331;
+ // aapt resource value: 0x7f0a004b
+ public const int start = 2131361867;
- // aapt resource value: 0x7f0900b8
- public const int status_bar_latest_event_content = 2131296440;
+ // aapt resource value: 0x7f0a00b8
+ public const int status_bar_latest_event_content = 2131361976;
- // aapt resource value: 0x7f090076
- public const int submenuarrow = 2131296374;
+ // aapt resource value: 0x7f0a0076
+ public const int submenuarrow = 2131361910;
- // aapt resource value: 0x7f090087
- public const int submit_area = 2131296391;
+ // aapt resource value: 0x7f0a0087
+ public const int submit_area = 2131361927;
- // aapt resource value: 0x7f09001f
- public const int tabMode = 2131296287;
+ // aapt resource value: 0x7f0a001f
+ public const int tabMode = 2131361823;
- // aapt resource value: 0x7f090019
- public const int tag_transition_group = 2131296281;
+ // aapt resource value: 0x7f0a0019
+ public const int tag_transition_group = 2131361817;
- // aapt resource value: 0x7f09001a
- public const int text = 2131296282;
+ // aapt resource value: 0x7f0a001a
+ public const int text = 2131361818;
- // aapt resource value: 0x7f09001b
- public const int text2 = 2131296283;
+ // aapt resource value: 0x7f0a001b
+ public const int text2 = 2131361819;
- // aapt resource value: 0x7f09006a
- public const int textSpacerNoButtons = 2131296362;
+ // aapt resource value: 0x7f0a006a
+ public const int textSpacerNoButtons = 2131361898;
- // aapt resource value: 0x7f090069
- public const int textSpacerNoTitle = 2131296361;
+ // aapt resource value: 0x7f0a0069
+ public const int textSpacerNoTitle = 2131361897;
- // aapt resource value: 0x7f090098
- public const int text_input_password_toggle = 2131296408;
+ // aapt resource value: 0x7f0a0098
+ public const int text_input_password_toggle = 2131361944;
- // aapt resource value: 0x7f090014
- public const int textinput_counter = 2131296276;
+ // aapt resource value: 0x7f0a0014
+ public const int textinput_counter = 2131361812;
- // aapt resource value: 0x7f090015
- public const int textinput_error = 2131296277;
+ // aapt resource value: 0x7f0a0015
+ public const int textinput_error = 2131361813;
- // aapt resource value: 0x7f0900be
- public const int time = 2131296446;
+ // aapt resource value: 0x7f0a00be
+ public const int time = 2131361982;
- // aapt resource value: 0x7f09001c
- public const int title = 2131296284;
+ // aapt resource value: 0x7f0a001c
+ public const int title = 2131361820;
- // aapt resource value: 0x7f090071
- public const int titleDividerNoCustom = 2131296369;
+ // aapt resource value: 0x7f0a0071
+ public const int titleDividerNoCustom = 2131361905;
- // aapt resource value: 0x7f09006f
- public const int title_template = 2131296367;
+ // aapt resource value: 0x7f0a006f
+ public const int title_template = 2131361903;
- // aapt resource value: 0x7f0900c7
- public const int toolbar = 2131296455;
+ // aapt resource value: 0x7f0a00c7
+ public const int toolbar = 2131361991;
- // aapt resource value: 0x7f09003e
- public const int top = 2131296318;
+ // aapt resource value: 0x7f0a003e
+ public const int top = 2131361854;
- // aapt resource value: 0x7f09006e
- public const int topPanel = 2131296366;
+ // aapt resource value: 0x7f0a006e
+ public const int topPanel = 2131361902;
- // aapt resource value: 0x7f09008f
- public const int touch_outside = 2131296399;
+ // aapt resource value: 0x7f0a008f
+ public const int touch_outside = 2131361935;
- // aapt resource value: 0x7f09000f
- public const int transition_current_scene = 2131296271;
+ // aapt resource value: 0x7f0a000f
+ public const int transition_current_scene = 2131361807;
- // aapt resource value: 0x7f090010
- public const int transition_layout_save = 2131296272;
+ // aapt resource value: 0x7f0a0010
+ public const int transition_layout_save = 2131361808;
- // aapt resource value: 0x7f090011
- public const int transition_position = 2131296273;
+ // aapt resource value: 0x7f0a0011
+ public const int transition_position = 2131361809;
- // aapt resource value: 0x7f090012
- public const int transition_scene_layoutid_cache = 2131296274;
+ // aapt resource value: 0x7f0a0012
+ public const int transition_scene_layoutid_cache = 2131361810;
- // aapt resource value: 0x7f090013
- public const int transition_transform = 2131296275;
+ // aapt resource value: 0x7f0a0013
+ public const int transition_transform = 2131361811;
- // aapt resource value: 0x7f09002d
- public const int uniform = 2131296301;
+ // aapt resource value: 0x7f0a002d
+ public const int uniform = 2131361837;
- // aapt resource value: 0x7f090009
- public const int up = 2131296265;
+ // aapt resource value: 0x7f0a0009
+ public const int up = 2131361801;
- // aapt resource value: 0x7f090026
- public const int useLogo = 2131296294;
+ // aapt resource value: 0x7f0a0026
+ public const int useLogo = 2131361830;
- // aapt resource value: 0x7f090016
- public const int view_offset_helper = 2131296278;
+ // aapt resource value: 0x7f0a0016
+ public const int view_offset_helper = 2131361814;
- // aapt resource value: 0x7f0900c9
- public const int visible = 2131296457;
+ // aapt resource value: 0x7f0a00c9
+ public const int visible = 2131361993;
- // aapt resource value: 0x7f0900ab
- public const int volume_item_container = 2131296427;
+ // aapt resource value: 0x7f0a00ab
+ public const int volume_item_container = 2131361963;
- // aapt resource value: 0x7f09003c
- public const int withText = 2131296316;
+ // aapt resource value: 0x7f0a003c
+ public const int withText = 2131361852;
- // aapt resource value: 0x7f09002e
- public const int wrap_content = 2131296302;
+ // aapt resource value: 0x7f0a002e
+ public const int wrap_content = 2131361838;
static Id()
{
@@ -3646,44 +3748,44 @@ private Id()
public partial class Integer
{
- // aapt resource value: 0x7f0b0003
- public const int abc_config_activityDefaultDur = 2131427331;
+ // aapt resource value: 0x7f0c0003
+ public const int abc_config_activityDefaultDur = 2131492867;
- // aapt resource value: 0x7f0b0004
- public const int abc_config_activityShortDur = 2131427332;
+ // aapt resource value: 0x7f0c0004
+ public const int abc_config_activityShortDur = 2131492868;
- // aapt resource value: 0x7f0b0008
- public const int app_bar_elevation_anim_duration = 2131427336;
+ // aapt resource value: 0x7f0c0008
+ public const int app_bar_elevation_anim_duration = 2131492872;
- // aapt resource value: 0x7f0b0009
- public const int bottom_sheet_slide_duration = 2131427337;
+ // aapt resource value: 0x7f0c0009
+ public const int bottom_sheet_slide_duration = 2131492873;
- // aapt resource value: 0x7f0b0005
- public const int cancel_button_image_alpha = 2131427333;
+ // aapt resource value: 0x7f0c0005
+ public const int cancel_button_image_alpha = 2131492869;
- // aapt resource value: 0x7f0b0006
- public const int config_tooltipAnimTime = 2131427334;
+ // aapt resource value: 0x7f0c0006
+ public const int config_tooltipAnimTime = 2131492870;
- // aapt resource value: 0x7f0b0007
- public const int design_snackbar_text_max_lines = 2131427335;
+ // aapt resource value: 0x7f0c0007
+ public const int design_snackbar_text_max_lines = 2131492871;
- // aapt resource value: 0x7f0b000a
- public const int hide_password_duration = 2131427338;
+ // aapt resource value: 0x7f0c000a
+ public const int hide_password_duration = 2131492874;
- // aapt resource value: 0x7f0b0000
- public const int mr_controller_volume_group_list_animation_duration_ms = 2131427328;
+ // aapt resource value: 0x7f0c0000
+ public const int mr_controller_volume_group_list_animation_duration_ms = 2131492864;
- // aapt resource value: 0x7f0b0001
- public const int mr_controller_volume_group_list_fade_in_duration_ms = 2131427329;
+ // aapt resource value: 0x7f0c0001
+ public const int mr_controller_volume_group_list_fade_in_duration_ms = 2131492865;
- // aapt resource value: 0x7f0b0002
- public const int mr_controller_volume_group_list_fade_out_duration_ms = 2131427330;
+ // aapt resource value: 0x7f0c0002
+ public const int mr_controller_volume_group_list_fade_out_duration_ms = 2131492866;
- // aapt resource value: 0x7f0b000b
- public const int show_password_duration = 2131427339;
+ // aapt resource value: 0x7f0c000b
+ public const int show_password_duration = 2131492875;
- // aapt resource value: 0x7f0b000c
- public const int status_bar_notification_info_maxnum = 2131427340;
+ // aapt resource value: 0x7f0c000c
+ public const int status_bar_notification_info_maxnum = 2131492876;
static Integer()
{
@@ -3956,188 +4058,188 @@ private Mipmap()
public partial class String
{
- // aapt resource value: 0x7f0a0015
- public const int abc_action_bar_home_description = 2131361813;
+ // aapt resource value: 0x7f0b0015
+ public const int abc_action_bar_home_description = 2131427349;
- // aapt resource value: 0x7f0a0016
- public const int abc_action_bar_up_description = 2131361814;
+ // aapt resource value: 0x7f0b0016
+ public const int abc_action_bar_up_description = 2131427350;
- // aapt resource value: 0x7f0a0017
- public const int abc_action_menu_overflow_description = 2131361815;
+ // aapt resource value: 0x7f0b0017
+ public const int abc_action_menu_overflow_description = 2131427351;
- // aapt resource value: 0x7f0a0018
- public const int abc_action_mode_done = 2131361816;
+ // aapt resource value: 0x7f0b0018
+ public const int abc_action_mode_done = 2131427352;
- // aapt resource value: 0x7f0a0019
- public const int abc_activity_chooser_view_see_all = 2131361817;
+ // aapt resource value: 0x7f0b0019
+ public const int abc_activity_chooser_view_see_all = 2131427353;
- // aapt resource value: 0x7f0a001a
- public const int abc_activitychooserview_choose_application = 2131361818;
+ // aapt resource value: 0x7f0b001a
+ public const int abc_activitychooserview_choose_application = 2131427354;
- // aapt resource value: 0x7f0a001b
- public const int abc_capital_off = 2131361819;
+ // aapt resource value: 0x7f0b001b
+ public const int abc_capital_off = 2131427355;
- // aapt resource value: 0x7f0a001c
- public const int abc_capital_on = 2131361820;
+ // aapt resource value: 0x7f0b001c
+ public const int abc_capital_on = 2131427356;
- // aapt resource value: 0x7f0a0027
- public const int abc_font_family_body_1_material = 2131361831;
+ // aapt resource value: 0x7f0b0027
+ public const int abc_font_family_body_1_material = 2131427367;
- // aapt resource value: 0x7f0a0028
- public const int abc_font_family_body_2_material = 2131361832;
+ // aapt resource value: 0x7f0b0028
+ public const int abc_font_family_body_2_material = 2131427368;
- // aapt resource value: 0x7f0a0029
- public const int abc_font_family_button_material = 2131361833;
+ // aapt resource value: 0x7f0b0029
+ public const int abc_font_family_button_material = 2131427369;
- // aapt resource value: 0x7f0a002a
- public const int abc_font_family_caption_material = 2131361834;
+ // aapt resource value: 0x7f0b002a
+ public const int abc_font_family_caption_material = 2131427370;
- // aapt resource value: 0x7f0a002b
- public const int abc_font_family_display_1_material = 2131361835;
+ // aapt resource value: 0x7f0b002b
+ public const int abc_font_family_display_1_material = 2131427371;
- // aapt resource value: 0x7f0a002c
- public const int abc_font_family_display_2_material = 2131361836;
+ // aapt resource value: 0x7f0b002c
+ public const int abc_font_family_display_2_material = 2131427372;
- // aapt resource value: 0x7f0a002d
- public const int abc_font_family_display_3_material = 2131361837;
+ // aapt resource value: 0x7f0b002d
+ public const int abc_font_family_display_3_material = 2131427373;
- // aapt resource value: 0x7f0a002e
- public const int abc_font_family_display_4_material = 2131361838;
+ // aapt resource value: 0x7f0b002e
+ public const int abc_font_family_display_4_material = 2131427374;
- // aapt resource value: 0x7f0a002f
- public const int abc_font_family_headline_material = 2131361839;
+ // aapt resource value: 0x7f0b002f
+ public const int abc_font_family_headline_material = 2131427375;
- // aapt resource value: 0x7f0a0030
- public const int abc_font_family_menu_material = 2131361840;
+ // aapt resource value: 0x7f0b0030
+ public const int abc_font_family_menu_material = 2131427376;
- // aapt resource value: 0x7f0a0031
- public const int abc_font_family_subhead_material = 2131361841;
+ // aapt resource value: 0x7f0b0031
+ public const int abc_font_family_subhead_material = 2131427377;
- // aapt resource value: 0x7f0a0032
- public const int abc_font_family_title_material = 2131361842;
+ // aapt resource value: 0x7f0b0032
+ public const int abc_font_family_title_material = 2131427378;
- // aapt resource value: 0x7f0a001d
- public const int abc_search_hint = 2131361821;
+ // aapt resource value: 0x7f0b001d
+ public const int abc_search_hint = 2131427357;
- // aapt resource value: 0x7f0a001e
- public const int abc_searchview_description_clear = 2131361822;
+ // aapt resource value: 0x7f0b001e
+ public const int abc_searchview_description_clear = 2131427358;
- // aapt resource value: 0x7f0a001f
- public const int abc_searchview_description_query = 2131361823;
+ // aapt resource value: 0x7f0b001f
+ public const int abc_searchview_description_query = 2131427359;
- // aapt resource value: 0x7f0a0020
- public const int abc_searchview_description_search = 2131361824;
+ // aapt resource value: 0x7f0b0020
+ public const int abc_searchview_description_search = 2131427360;
- // aapt resource value: 0x7f0a0021
- public const int abc_searchview_description_submit = 2131361825;
+ // aapt resource value: 0x7f0b0021
+ public const int abc_searchview_description_submit = 2131427361;
- // aapt resource value: 0x7f0a0022
- public const int abc_searchview_description_voice = 2131361826;
+ // aapt resource value: 0x7f0b0022
+ public const int abc_searchview_description_voice = 2131427362;
- // aapt resource value: 0x7f0a0023
- public const int abc_shareactionprovider_share_with = 2131361827;
+ // aapt resource value: 0x7f0b0023
+ public const int abc_shareactionprovider_share_with = 2131427363;
- // aapt resource value: 0x7f0a0024
- public const int abc_shareactionprovider_share_with_application = 2131361828;
+ // aapt resource value: 0x7f0b0024
+ public const int abc_shareactionprovider_share_with_application = 2131427364;
- // aapt resource value: 0x7f0a0025
- public const int abc_toolbar_collapse_description = 2131361829;
+ // aapt resource value: 0x7f0b0025
+ public const int abc_toolbar_collapse_description = 2131427365;
- // aapt resource value: 0x7f0a003c
- public const int app_name = 2131361852;
+ // aapt resource value: 0x7f0b003c
+ public const int app_name = 2131427388;
- // aapt resource value: 0x7f0a0033
- public const int appbar_scrolling_view_behavior = 2131361843;
+ // aapt resource value: 0x7f0b0033
+ public const int appbar_scrolling_view_behavior = 2131427379;
- // aapt resource value: 0x7f0a0034
- public const int bottom_sheet_behavior = 2131361844;
+ // aapt resource value: 0x7f0b0034
+ public const int bottom_sheet_behavior = 2131427380;
- // aapt resource value: 0x7f0a0035
- public const int character_counter_pattern = 2131361845;
+ // aapt resource value: 0x7f0b0035
+ public const int character_counter_pattern = 2131427381;
- // aapt resource value: 0x7f0a0000
- public const int mr_button_content_description = 2131361792;
+ // aapt resource value: 0x7f0b0000
+ public const int mr_button_content_description = 2131427328;
- // aapt resource value: 0x7f0a0001
- public const int mr_cast_button_connected = 2131361793;
+ // aapt resource value: 0x7f0b0001
+ public const int mr_cast_button_connected = 2131427329;
- // aapt resource value: 0x7f0a0002
- public const int mr_cast_button_connecting = 2131361794;
+ // aapt resource value: 0x7f0b0002
+ public const int mr_cast_button_connecting = 2131427330;
- // aapt resource value: 0x7f0a0003
- public const int mr_cast_button_disconnected = 2131361795;
+ // aapt resource value: 0x7f0b0003
+ public const int mr_cast_button_disconnected = 2131427331;
- // aapt resource value: 0x7f0a0004
- public const int mr_chooser_searching = 2131361796;
+ // aapt resource value: 0x7f0b0004
+ public const int mr_chooser_searching = 2131427332;
- // aapt resource value: 0x7f0a0005
- public const int mr_chooser_title = 2131361797;
+ // aapt resource value: 0x7f0b0005
+ public const int mr_chooser_title = 2131427333;
- // aapt resource value: 0x7f0a0006
- public const int mr_controller_album_art = 2131361798;
+ // aapt resource value: 0x7f0b0006
+ public const int mr_controller_album_art = 2131427334;
- // aapt resource value: 0x7f0a0007
- public const int mr_controller_casting_screen = 2131361799;
+ // aapt resource value: 0x7f0b0007
+ public const int mr_controller_casting_screen = 2131427335;
- // aapt resource value: 0x7f0a0008
- public const int mr_controller_close_description = 2131361800;
+ // aapt resource value: 0x7f0b0008
+ public const int mr_controller_close_description = 2131427336;
- // aapt resource value: 0x7f0a0009
- public const int mr_controller_collapse_group = 2131361801;
+ // aapt resource value: 0x7f0b0009
+ public const int mr_controller_collapse_group = 2131427337;
- // aapt resource value: 0x7f0a000a
- public const int mr_controller_disconnect = 2131361802;
+ // aapt resource value: 0x7f0b000a
+ public const int mr_controller_disconnect = 2131427338;
- // aapt resource value: 0x7f0a000b
- public const int mr_controller_expand_group = 2131361803;
+ // aapt resource value: 0x7f0b000b
+ public const int mr_controller_expand_group = 2131427339;
- // aapt resource value: 0x7f0a000c
- public const int mr_controller_no_info_available = 2131361804;
+ // aapt resource value: 0x7f0b000c
+ public const int mr_controller_no_info_available = 2131427340;
- // aapt resource value: 0x7f0a000d
- public const int mr_controller_no_media_selected = 2131361805;
+ // aapt resource value: 0x7f0b000d
+ public const int mr_controller_no_media_selected = 2131427341;
- // aapt resource value: 0x7f0a000e
- public const int mr_controller_pause = 2131361806;
+ // aapt resource value: 0x7f0b000e
+ public const int mr_controller_pause = 2131427342;
- // aapt resource value: 0x7f0a000f
- public const int mr_controller_play = 2131361807;
+ // aapt resource value: 0x7f0b000f
+ public const int mr_controller_play = 2131427343;
- // aapt resource value: 0x7f0a0010
- public const int mr_controller_stop = 2131361808;
+ // aapt resource value: 0x7f0b0010
+ public const int mr_controller_stop = 2131427344;
- // aapt resource value: 0x7f0a0011
- public const int mr_controller_stop_casting = 2131361809;
+ // aapt resource value: 0x7f0b0011
+ public const int mr_controller_stop_casting = 2131427345;
- // aapt resource value: 0x7f0a0012
- public const int mr_controller_volume_slider = 2131361810;
+ // aapt resource value: 0x7f0b0012
+ public const int mr_controller_volume_slider = 2131427346;
- // aapt resource value: 0x7f0a0013
- public const int mr_system_route_name = 2131361811;
+ // aapt resource value: 0x7f0b0013
+ public const int mr_system_route_name = 2131427347;
- // aapt resource value: 0x7f0a0014
- public const int mr_user_route_category_name = 2131361812;
+ // aapt resource value: 0x7f0b0014
+ public const int mr_user_route_category_name = 2131427348;
- // aapt resource value: 0x7f0a0036
- public const int password_toggle_content_description = 2131361846;
+ // aapt resource value: 0x7f0b0036
+ public const int password_toggle_content_description = 2131427382;
- // aapt resource value: 0x7f0a0037
- public const int path_password_eye = 2131361847;
+ // aapt resource value: 0x7f0b0037
+ public const int path_password_eye = 2131427383;
- // aapt resource value: 0x7f0a0038
- public const int path_password_eye_mask_strike_through = 2131361848;
+ // aapt resource value: 0x7f0b0038
+ public const int path_password_eye_mask_strike_through = 2131427384;
- // aapt resource value: 0x7f0a0039
- public const int path_password_eye_mask_visible = 2131361849;
+ // aapt resource value: 0x7f0b0039
+ public const int path_password_eye_mask_visible = 2131427385;
- // aapt resource value: 0x7f0a003a
- public const int path_password_strike_through = 2131361850;
+ // aapt resource value: 0x7f0b003a
+ public const int path_password_strike_through = 2131427386;
- // aapt resource value: 0x7f0a0026
- public const int search_menu_title = 2131361830;
+ // aapt resource value: 0x7f0b0026
+ public const int search_menu_title = 2131427366;
- // aapt resource value: 0x7f0a003b
- public const int status_bar_notification_info_overflow = 2131361851;
+ // aapt resource value: 0x7f0b003b
+ public const int status_bar_notification_info_overflow = 2131427387;
static String()
{
@@ -4152,1211 +4254,1211 @@ private String()
public partial class Style
{
- // aapt resource value: 0x7f0c00a4
- public const int AlertDialog_AppCompat = 2131493028;
+ // aapt resource value: 0x7f0d00a4
+ public const int AlertDialog_AppCompat = 2131558564;
- // aapt resource value: 0x7f0c00a5
- public const int AlertDialog_AppCompat_Light = 2131493029;
+ // aapt resource value: 0x7f0d00a5
+ public const int AlertDialog_AppCompat_Light = 2131558565;
- // aapt resource value: 0x7f0c00a6
- public const int Animation_AppCompat_Dialog = 2131493030;
+ // aapt resource value: 0x7f0d00a6
+ public const int Animation_AppCompat_Dialog = 2131558566;
- // aapt resource value: 0x7f0c00a7
- public const int Animation_AppCompat_DropDownUp = 2131493031;
+ // aapt resource value: 0x7f0d00a7
+ public const int Animation_AppCompat_DropDownUp = 2131558567;
- // aapt resource value: 0x7f0c00a8
- public const int Animation_AppCompat_Tooltip = 2131493032;
+ // aapt resource value: 0x7f0d00a8
+ public const int Animation_AppCompat_Tooltip = 2131558568;
- // aapt resource value: 0x7f0c016e
- public const int Animation_Design_BottomSheetDialog = 2131493230;
+ // aapt resource value: 0x7f0d016e
+ public const int Animation_Design_BottomSheetDialog = 2131558766;
- // aapt resource value: 0x7f0c0191
- public const int AppCompatDialogStyle = 2131493265;
+ // aapt resource value: 0x7f0d0191
+ public const int AppCompatDialogStyle = 2131558801;
- // aapt resource value: 0x7f0c00a9
- public const int Base_AlertDialog_AppCompat = 2131493033;
+ // aapt resource value: 0x7f0d00a9
+ public const int Base_AlertDialog_AppCompat = 2131558569;
- // aapt resource value: 0x7f0c00aa
- public const int Base_AlertDialog_AppCompat_Light = 2131493034;
+ // aapt resource value: 0x7f0d00aa
+ public const int Base_AlertDialog_AppCompat_Light = 2131558570;
- // aapt resource value: 0x7f0c00ab
- public const int Base_Animation_AppCompat_Dialog = 2131493035;
+ // aapt resource value: 0x7f0d00ab
+ public const int Base_Animation_AppCompat_Dialog = 2131558571;
- // aapt resource value: 0x7f0c00ac
- public const int Base_Animation_AppCompat_DropDownUp = 2131493036;
+ // aapt resource value: 0x7f0d00ac
+ public const int Base_Animation_AppCompat_DropDownUp = 2131558572;
- // aapt resource value: 0x7f0c00ad
- public const int Base_Animation_AppCompat_Tooltip = 2131493037;
+ // aapt resource value: 0x7f0d00ad
+ public const int Base_Animation_AppCompat_Tooltip = 2131558573;
- // aapt resource value: 0x7f0c000c
- public const int Base_CardView = 2131492876;
+ // aapt resource value: 0x7f0d000c
+ public const int Base_CardView = 2131558412;
- // aapt resource value: 0x7f0c00ae
- public const int Base_DialogWindowTitle_AppCompat = 2131493038;
+ // aapt resource value: 0x7f0d00ae
+ public const int Base_DialogWindowTitle_AppCompat = 2131558574;
- // aapt resource value: 0x7f0c00af
- public const int Base_DialogWindowTitleBackground_AppCompat = 2131493039;
+ // aapt resource value: 0x7f0d00af
+ public const int Base_DialogWindowTitleBackground_AppCompat = 2131558575;
- // aapt resource value: 0x7f0c0048
- public const int Base_TextAppearance_AppCompat = 2131492936;
+ // aapt resource value: 0x7f0d0048
+ public const int Base_TextAppearance_AppCompat = 2131558472;
- // aapt resource value: 0x7f0c0049
- public const int Base_TextAppearance_AppCompat_Body1 = 2131492937;
+ // aapt resource value: 0x7f0d0049
+ public const int Base_TextAppearance_AppCompat_Body1 = 2131558473;
- // aapt resource value: 0x7f0c004a
- public const int Base_TextAppearance_AppCompat_Body2 = 2131492938;
+ // aapt resource value: 0x7f0d004a
+ public const int Base_TextAppearance_AppCompat_Body2 = 2131558474;
- // aapt resource value: 0x7f0c0036
- public const int Base_TextAppearance_AppCompat_Button = 2131492918;
+ // aapt resource value: 0x7f0d0036
+ public const int Base_TextAppearance_AppCompat_Button = 2131558454;
- // aapt resource value: 0x7f0c004b
- public const int Base_TextAppearance_AppCompat_Caption = 2131492939;
+ // aapt resource value: 0x7f0d004b
+ public const int Base_TextAppearance_AppCompat_Caption = 2131558475;
- // aapt resource value: 0x7f0c004c
- public const int Base_TextAppearance_AppCompat_Display1 = 2131492940;
+ // aapt resource value: 0x7f0d004c
+ public const int Base_TextAppearance_AppCompat_Display1 = 2131558476;
- // aapt resource value: 0x7f0c004d
- public const int Base_TextAppearance_AppCompat_Display2 = 2131492941;
+ // aapt resource value: 0x7f0d004d
+ public const int Base_TextAppearance_AppCompat_Display2 = 2131558477;
- // aapt resource value: 0x7f0c004e
- public const int Base_TextAppearance_AppCompat_Display3 = 2131492942;
+ // aapt resource value: 0x7f0d004e
+ public const int Base_TextAppearance_AppCompat_Display3 = 2131558478;
- // aapt resource value: 0x7f0c004f
- public const int Base_TextAppearance_AppCompat_Display4 = 2131492943;
+ // aapt resource value: 0x7f0d004f
+ public const int Base_TextAppearance_AppCompat_Display4 = 2131558479;
- // aapt resource value: 0x7f0c0050
- public const int Base_TextAppearance_AppCompat_Headline = 2131492944;
+ // aapt resource value: 0x7f0d0050
+ public const int Base_TextAppearance_AppCompat_Headline = 2131558480;
- // aapt resource value: 0x7f0c001a
- public const int Base_TextAppearance_AppCompat_Inverse = 2131492890;
+ // aapt resource value: 0x7f0d001a
+ public const int Base_TextAppearance_AppCompat_Inverse = 2131558426;
- // aapt resource value: 0x7f0c0051
- public const int Base_TextAppearance_AppCompat_Large = 2131492945;
+ // aapt resource value: 0x7f0d0051
+ public const int Base_TextAppearance_AppCompat_Large = 2131558481;
- // aapt resource value: 0x7f0c001b
- public const int Base_TextAppearance_AppCompat_Large_Inverse = 2131492891;
+ // aapt resource value: 0x7f0d001b
+ public const int Base_TextAppearance_AppCompat_Large_Inverse = 2131558427;
- // aapt resource value: 0x7f0c0052
- public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131492946;
+ // aapt resource value: 0x7f0d0052
+ public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131558482;
- // aapt resource value: 0x7f0c0053
- public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131492947;
+ // aapt resource value: 0x7f0d0053
+ public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131558483;
- // aapt resource value: 0x7f0c0054
- public const int Base_TextAppearance_AppCompat_Medium = 2131492948;
+ // aapt resource value: 0x7f0d0054
+ public const int Base_TextAppearance_AppCompat_Medium = 2131558484;
- // aapt resource value: 0x7f0c001c
- public const int Base_TextAppearance_AppCompat_Medium_Inverse = 2131492892;
+ // aapt resource value: 0x7f0d001c
+ public const int Base_TextAppearance_AppCompat_Medium_Inverse = 2131558428;
- // aapt resource value: 0x7f0c0055
- public const int Base_TextAppearance_AppCompat_Menu = 2131492949;
+ // aapt resource value: 0x7f0d0055
+ public const int Base_TextAppearance_AppCompat_Menu = 2131558485;
- // aapt resource value: 0x7f0c00b0
- public const int Base_TextAppearance_AppCompat_SearchResult = 2131493040;
+ // aapt resource value: 0x7f0d00b0
+ public const int Base_TextAppearance_AppCompat_SearchResult = 2131558576;
- // aapt resource value: 0x7f0c0056
- public const int Base_TextAppearance_AppCompat_SearchResult_Subtitle = 2131492950;
+ // aapt resource value: 0x7f0d0056
+ public const int Base_TextAppearance_AppCompat_SearchResult_Subtitle = 2131558486;
- // aapt resource value: 0x7f0c0057
- public const int Base_TextAppearance_AppCompat_SearchResult_Title = 2131492951;
+ // aapt resource value: 0x7f0d0057
+ public const int Base_TextAppearance_AppCompat_SearchResult_Title = 2131558487;
- // aapt resource value: 0x7f0c0058
- public const int Base_TextAppearance_AppCompat_Small = 2131492952;
+ // aapt resource value: 0x7f0d0058
+ public const int Base_TextAppearance_AppCompat_Small = 2131558488;
- // aapt resource value: 0x7f0c001d
- public const int Base_TextAppearance_AppCompat_Small_Inverse = 2131492893;
+ // aapt resource value: 0x7f0d001d
+ public const int Base_TextAppearance_AppCompat_Small_Inverse = 2131558429;
- // aapt resource value: 0x7f0c0059
- public const int Base_TextAppearance_AppCompat_Subhead = 2131492953;
+ // aapt resource value: 0x7f0d0059
+ public const int Base_TextAppearance_AppCompat_Subhead = 2131558489;
- // aapt resource value: 0x7f0c001e
- public const int Base_TextAppearance_AppCompat_Subhead_Inverse = 2131492894;
+ // aapt resource value: 0x7f0d001e
+ public const int Base_TextAppearance_AppCompat_Subhead_Inverse = 2131558430;
- // aapt resource value: 0x7f0c005a
- public const int Base_TextAppearance_AppCompat_Title = 2131492954;
+ // aapt resource value: 0x7f0d005a
+ public const int Base_TextAppearance_AppCompat_Title = 2131558490;
- // aapt resource value: 0x7f0c001f
- public const int Base_TextAppearance_AppCompat_Title_Inverse = 2131492895;
+ // aapt resource value: 0x7f0d001f
+ public const int Base_TextAppearance_AppCompat_Title_Inverse = 2131558431;
- // aapt resource value: 0x7f0c00b1
- public const int Base_TextAppearance_AppCompat_Tooltip = 2131493041;
+ // aapt resource value: 0x7f0d00b1
+ public const int Base_TextAppearance_AppCompat_Tooltip = 2131558577;
- // aapt resource value: 0x7f0c0095
- public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131493013;
+ // aapt resource value: 0x7f0d0095
+ public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131558549;
- // aapt resource value: 0x7f0c005b
- public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131492955;
+ // aapt resource value: 0x7f0d005b
+ public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131558491;
- // aapt resource value: 0x7f0c005c
- public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131492956;
+ // aapt resource value: 0x7f0d005c
+ public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131558492;
- // aapt resource value: 0x7f0c005d
- public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title = 2131492957;
+ // aapt resource value: 0x7f0d005d
+ public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title = 2131558493;
- // aapt resource value: 0x7f0c005e
- public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131492958;
+ // aapt resource value: 0x7f0d005e
+ public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131558494;
- // aapt resource value: 0x7f0c005f
- public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131492959;
+ // aapt resource value: 0x7f0d005f
+ public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131558495;
- // aapt resource value: 0x7f0c0060
- public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Title = 2131492960;
+ // aapt resource value: 0x7f0d0060
+ public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Title = 2131558496;
- // aapt resource value: 0x7f0c0061
- public const int Base_TextAppearance_AppCompat_Widget_Button = 2131492961;
+ // aapt resource value: 0x7f0d0061
+ public const int Base_TextAppearance_AppCompat_Widget_Button = 2131558497;
- // aapt resource value: 0x7f0c009c
- public const int Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131493020;
+ // aapt resource value: 0x7f0d009c
+ public const int Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131558556;
- // aapt resource value: 0x7f0c009d
- public const int Base_TextAppearance_AppCompat_Widget_Button_Colored = 2131493021;
+ // aapt resource value: 0x7f0d009d
+ public const int Base_TextAppearance_AppCompat_Widget_Button_Colored = 2131558557;
- // aapt resource value: 0x7f0c0096
- public const int Base_TextAppearance_AppCompat_Widget_Button_Inverse = 2131493014;
+ // aapt resource value: 0x7f0d0096
+ public const int Base_TextAppearance_AppCompat_Widget_Button_Inverse = 2131558550;
- // aapt resource value: 0x7f0c00b2
- public const int Base_TextAppearance_AppCompat_Widget_DropDownItem = 2131493042;
+ // aapt resource value: 0x7f0d00b2
+ public const int Base_TextAppearance_AppCompat_Widget_DropDownItem = 2131558578;
- // aapt resource value: 0x7f0c0062
- public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131492962;
+ // aapt resource value: 0x7f0d0062
+ public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131558498;
- // aapt resource value: 0x7f0c0063
- public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131492963;
+ // aapt resource value: 0x7f0d0063
+ public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131558499;
- // aapt resource value: 0x7f0c0064
- public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131492964;
+ // aapt resource value: 0x7f0d0064
+ public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131558500;
- // aapt resource value: 0x7f0c0065
- public const int Base_TextAppearance_AppCompat_Widget_Switch = 2131492965;
+ // aapt resource value: 0x7f0d0065
+ public const int Base_TextAppearance_AppCompat_Widget_Switch = 2131558501;
- // aapt resource value: 0x7f0c0066
- public const int Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131492966;
+ // aapt resource value: 0x7f0d0066
+ public const int Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131558502;
- // aapt resource value: 0x7f0c00b3
- public const int Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131493043;
+ // aapt resource value: 0x7f0d00b3
+ public const int Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131558579;
- // aapt resource value: 0x7f0c0067
- public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131492967;
+ // aapt resource value: 0x7f0d0067
+ public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131558503;
- // aapt resource value: 0x7f0c0068
- public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Title = 2131492968;
+ // aapt resource value: 0x7f0d0068
+ public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Title = 2131558504;
- // aapt resource value: 0x7f0c0069
- public const int Base_Theme_AppCompat = 2131492969;
+ // aapt resource value: 0x7f0d0069
+ public const int Base_Theme_AppCompat = 2131558505;
- // aapt resource value: 0x7f0c00b4
- public const int Base_Theme_AppCompat_CompactMenu = 2131493044;
+ // aapt resource value: 0x7f0d00b4
+ public const int Base_Theme_AppCompat_CompactMenu = 2131558580;
- // aapt resource value: 0x7f0c0020
- public const int Base_Theme_AppCompat_Dialog = 2131492896;
+ // aapt resource value: 0x7f0d0020
+ public const int Base_Theme_AppCompat_Dialog = 2131558432;
- // aapt resource value: 0x7f0c0021
- public const int Base_Theme_AppCompat_Dialog_Alert = 2131492897;
+ // aapt resource value: 0x7f0d0021
+ public const int Base_Theme_AppCompat_Dialog_Alert = 2131558433;
- // aapt resource value: 0x7f0c00b5
- public const int Base_Theme_AppCompat_Dialog_FixedSize = 2131493045;
+ // aapt resource value: 0x7f0d00b5
+ public const int Base_Theme_AppCompat_Dialog_FixedSize = 2131558581;
- // aapt resource value: 0x7f0c0022
- public const int Base_Theme_AppCompat_Dialog_MinWidth = 2131492898;
+ // aapt resource value: 0x7f0d0022
+ public const int Base_Theme_AppCompat_Dialog_MinWidth = 2131558434;
- // aapt resource value: 0x7f0c0010
- public const int Base_Theme_AppCompat_DialogWhenLarge = 2131492880;
+ // aapt resource value: 0x7f0d0010
+ public const int Base_Theme_AppCompat_DialogWhenLarge = 2131558416;
- // aapt resource value: 0x7f0c006a
- public const int Base_Theme_AppCompat_Light = 2131492970;
+ // aapt resource value: 0x7f0d006a
+ public const int Base_Theme_AppCompat_Light = 2131558506;
- // aapt resource value: 0x7f0c00b6
- public const int Base_Theme_AppCompat_Light_DarkActionBar = 2131493046;
+ // aapt resource value: 0x7f0d00b6
+ public const int Base_Theme_AppCompat_Light_DarkActionBar = 2131558582;
- // aapt resource value: 0x7f0c0023
- public const int Base_Theme_AppCompat_Light_Dialog = 2131492899;
+ // aapt resource value: 0x7f0d0023
+ public const int Base_Theme_AppCompat_Light_Dialog = 2131558435;
- // aapt resource value: 0x7f0c0024
- public const int Base_Theme_AppCompat_Light_Dialog_Alert = 2131492900;
+ // aapt resource value: 0x7f0d0024
+ public const int Base_Theme_AppCompat_Light_Dialog_Alert = 2131558436;
- // aapt resource value: 0x7f0c00b7
- public const int Base_Theme_AppCompat_Light_Dialog_FixedSize = 2131493047;
+ // aapt resource value: 0x7f0d00b7
+ public const int Base_Theme_AppCompat_Light_Dialog_FixedSize = 2131558583;
- // aapt resource value: 0x7f0c0025
- public const int Base_Theme_AppCompat_Light_Dialog_MinWidth = 2131492901;
+ // aapt resource value: 0x7f0d0025
+ public const int Base_Theme_AppCompat_Light_Dialog_MinWidth = 2131558437;
- // aapt resource value: 0x7f0c0011
- public const int Base_Theme_AppCompat_Light_DialogWhenLarge = 2131492881;
+ // aapt resource value: 0x7f0d0011
+ public const int Base_Theme_AppCompat_Light_DialogWhenLarge = 2131558417;
- // aapt resource value: 0x7f0c00b8
- public const int Base_ThemeOverlay_AppCompat = 2131493048;
+ // aapt resource value: 0x7f0d00b8
+ public const int Base_ThemeOverlay_AppCompat = 2131558584;
- // aapt resource value: 0x7f0c00b9
- public const int Base_ThemeOverlay_AppCompat_ActionBar = 2131493049;
+ // aapt resource value: 0x7f0d00b9
+ public const int Base_ThemeOverlay_AppCompat_ActionBar = 2131558585;
- // aapt resource value: 0x7f0c00ba
- public const int Base_ThemeOverlay_AppCompat_Dark = 2131493050;
+ // aapt resource value: 0x7f0d00ba
+ public const int Base_ThemeOverlay_AppCompat_Dark = 2131558586;
- // aapt resource value: 0x7f0c00bb
- public const int Base_ThemeOverlay_AppCompat_Dark_ActionBar = 2131493051;
+ // aapt resource value: 0x7f0d00bb
+ public const int Base_ThemeOverlay_AppCompat_Dark_ActionBar = 2131558587;
- // aapt resource value: 0x7f0c0026
- public const int Base_ThemeOverlay_AppCompat_Dialog = 2131492902;
+ // aapt resource value: 0x7f0d0026
+ public const int Base_ThemeOverlay_AppCompat_Dialog = 2131558438;
- // aapt resource value: 0x7f0c0027
- public const int Base_ThemeOverlay_AppCompat_Dialog_Alert = 2131492903;
+ // aapt resource value: 0x7f0d0027
+ public const int Base_ThemeOverlay_AppCompat_Dialog_Alert = 2131558439;
- // aapt resource value: 0x7f0c00bc
- public const int Base_ThemeOverlay_AppCompat_Light = 2131493052;
+ // aapt resource value: 0x7f0d00bc
+ public const int Base_ThemeOverlay_AppCompat_Light = 2131558588;
- // aapt resource value: 0x7f0c0028
- public const int Base_V11_Theme_AppCompat_Dialog = 2131492904;
+ // aapt resource value: 0x7f0d0028
+ public const int Base_V11_Theme_AppCompat_Dialog = 2131558440;
- // aapt resource value: 0x7f0c0029
- public const int Base_V11_Theme_AppCompat_Light_Dialog = 2131492905;
+ // aapt resource value: 0x7f0d0029
+ public const int Base_V11_Theme_AppCompat_Light_Dialog = 2131558441;
- // aapt resource value: 0x7f0c002a
- public const int Base_V11_ThemeOverlay_AppCompat_Dialog = 2131492906;
+ // aapt resource value: 0x7f0d002a
+ public const int Base_V11_ThemeOverlay_AppCompat_Dialog = 2131558442;
- // aapt resource value: 0x7f0c0032
- public const int Base_V12_Widget_AppCompat_AutoCompleteTextView = 2131492914;
+ // aapt resource value: 0x7f0d0032
+ public const int Base_V12_Widget_AppCompat_AutoCompleteTextView = 2131558450;
- // aapt resource value: 0x7f0c0033
- public const int Base_V12_Widget_AppCompat_EditText = 2131492915;
+ // aapt resource value: 0x7f0d0033
+ public const int Base_V12_Widget_AppCompat_EditText = 2131558451;
- // aapt resource value: 0x7f0c016f
- public const int Base_V14_Widget_Design_AppBarLayout = 2131493231;
+ // aapt resource value: 0x7f0d016f
+ public const int Base_V14_Widget_Design_AppBarLayout = 2131558767;
- // aapt resource value: 0x7f0c006b
- public const int Base_V21_Theme_AppCompat = 2131492971;
+ // aapt resource value: 0x7f0d006b
+ public const int Base_V21_Theme_AppCompat = 2131558507;
- // aapt resource value: 0x7f0c006c
- public const int Base_V21_Theme_AppCompat_Dialog = 2131492972;
+ // aapt resource value: 0x7f0d006c
+ public const int Base_V21_Theme_AppCompat_Dialog = 2131558508;
- // aapt resource value: 0x7f0c006d
- public const int Base_V21_Theme_AppCompat_Light = 2131492973;
+ // aapt resource value: 0x7f0d006d
+ public const int Base_V21_Theme_AppCompat_Light = 2131558509;
- // aapt resource value: 0x7f0c006e
- public const int Base_V21_Theme_AppCompat_Light_Dialog = 2131492974;
+ // aapt resource value: 0x7f0d006e
+ public const int Base_V21_Theme_AppCompat_Light_Dialog = 2131558510;
- // aapt resource value: 0x7f0c006f
- public const int Base_V21_ThemeOverlay_AppCompat_Dialog = 2131492975;
+ // aapt resource value: 0x7f0d006f
+ public const int Base_V21_ThemeOverlay_AppCompat_Dialog = 2131558511;
- // aapt resource value: 0x7f0c016b
- public const int Base_V21_Widget_Design_AppBarLayout = 2131493227;
+ // aapt resource value: 0x7f0d016b
+ public const int Base_V21_Widget_Design_AppBarLayout = 2131558763;
- // aapt resource value: 0x7f0c0093
- public const int Base_V22_Theme_AppCompat = 2131493011;
+ // aapt resource value: 0x7f0d0093
+ public const int Base_V22_Theme_AppCompat = 2131558547;
- // aapt resource value: 0x7f0c0094
- public const int Base_V22_Theme_AppCompat_Light = 2131493012;
+ // aapt resource value: 0x7f0d0094
+ public const int Base_V22_Theme_AppCompat_Light = 2131558548;
- // aapt resource value: 0x7f0c0097
- public const int Base_V23_Theme_AppCompat = 2131493015;
+ // aapt resource value: 0x7f0d0097
+ public const int Base_V23_Theme_AppCompat = 2131558551;
- // aapt resource value: 0x7f0c0098
- public const int Base_V23_Theme_AppCompat_Light = 2131493016;
+ // aapt resource value: 0x7f0d0098
+ public const int Base_V23_Theme_AppCompat_Light = 2131558552;
- // aapt resource value: 0x7f0c00a0
- public const int Base_V26_Theme_AppCompat = 2131493024;
+ // aapt resource value: 0x7f0d00a0
+ public const int Base_V26_Theme_AppCompat = 2131558560;
- // aapt resource value: 0x7f0c00a1
- public const int Base_V26_Theme_AppCompat_Light = 2131493025;
+ // aapt resource value: 0x7f0d00a1
+ public const int Base_V26_Theme_AppCompat_Light = 2131558561;
- // aapt resource value: 0x7f0c00a2
- public const int Base_V26_Widget_AppCompat_Toolbar = 2131493026;
+ // aapt resource value: 0x7f0d00a2
+ public const int Base_V26_Widget_AppCompat_Toolbar = 2131558562;
- // aapt resource value: 0x7f0c016d
- public const int Base_V26_Widget_Design_AppBarLayout = 2131493229;
+ // aapt resource value: 0x7f0d016d
+ public const int Base_V26_Widget_Design_AppBarLayout = 2131558765;
- // aapt resource value: 0x7f0c00bd
- public const int Base_V7_Theme_AppCompat = 2131493053;
+ // aapt resource value: 0x7f0d00bd
+ public const int Base_V7_Theme_AppCompat = 2131558589;
- // aapt resource value: 0x7f0c00be
- public const int Base_V7_Theme_AppCompat_Dialog = 2131493054;
+ // aapt resource value: 0x7f0d00be
+ public const int Base_V7_Theme_AppCompat_Dialog = 2131558590;
- // aapt resource value: 0x7f0c00bf
- public const int Base_V7_Theme_AppCompat_Light = 2131493055;
+ // aapt resource value: 0x7f0d00bf
+ public const int Base_V7_Theme_AppCompat_Light = 2131558591;
- // aapt resource value: 0x7f0c00c0
- public const int Base_V7_Theme_AppCompat_Light_Dialog = 2131493056;
+ // aapt resource value: 0x7f0d00c0
+ public const int Base_V7_Theme_AppCompat_Light_Dialog = 2131558592;
- // aapt resource value: 0x7f0c00c1
- public const int Base_V7_ThemeOverlay_AppCompat_Dialog = 2131493057;
+ // aapt resource value: 0x7f0d00c1
+ public const int Base_V7_ThemeOverlay_AppCompat_Dialog = 2131558593;
- // aapt resource value: 0x7f0c00c2
- public const int Base_V7_Widget_AppCompat_AutoCompleteTextView = 2131493058;
+ // aapt resource value: 0x7f0d00c2
+ public const int Base_V7_Widget_AppCompat_AutoCompleteTextView = 2131558594;
- // aapt resource value: 0x7f0c00c3
- public const int Base_V7_Widget_AppCompat_EditText = 2131493059;
+ // aapt resource value: 0x7f0d00c3
+ public const int Base_V7_Widget_AppCompat_EditText = 2131558595;
- // aapt resource value: 0x7f0c00c4
- public const int Base_V7_Widget_AppCompat_Toolbar = 2131493060;
+ // aapt resource value: 0x7f0d00c4
+ public const int Base_V7_Widget_AppCompat_Toolbar = 2131558596;
- // aapt resource value: 0x7f0c00c5
- public const int Base_Widget_AppCompat_ActionBar = 2131493061;
+ // aapt resource value: 0x7f0d00c5
+ public const int Base_Widget_AppCompat_ActionBar = 2131558597;
- // aapt resource value: 0x7f0c00c6
- public const int Base_Widget_AppCompat_ActionBar_Solid = 2131493062;
+ // aapt resource value: 0x7f0d00c6
+ public const int Base_Widget_AppCompat_ActionBar_Solid = 2131558598;
- // aapt resource value: 0x7f0c00c7
- public const int Base_Widget_AppCompat_ActionBar_TabBar = 2131493063;
+ // aapt resource value: 0x7f0d00c7
+ public const int Base_Widget_AppCompat_ActionBar_TabBar = 2131558599;
- // aapt resource value: 0x7f0c0070
- public const int Base_Widget_AppCompat_ActionBar_TabText = 2131492976;
+ // aapt resource value: 0x7f0d0070
+ public const int Base_Widget_AppCompat_ActionBar_TabText = 2131558512;
- // aapt resource value: 0x7f0c0071
- public const int Base_Widget_AppCompat_ActionBar_TabView = 2131492977;
+ // aapt resource value: 0x7f0d0071
+ public const int Base_Widget_AppCompat_ActionBar_TabView = 2131558513;
- // aapt resource value: 0x7f0c0072
- public const int Base_Widget_AppCompat_ActionButton = 2131492978;
+ // aapt resource value: 0x7f0d0072
+ public const int Base_Widget_AppCompat_ActionButton = 2131558514;
- // aapt resource value: 0x7f0c0073
- public const int Base_Widget_AppCompat_ActionButton_CloseMode = 2131492979;
+ // aapt resource value: 0x7f0d0073
+ public const int Base_Widget_AppCompat_ActionButton_CloseMode = 2131558515;
- // aapt resource value: 0x7f0c0074
- public const int Base_Widget_AppCompat_ActionButton_Overflow = 2131492980;
+ // aapt resource value: 0x7f0d0074
+ public const int Base_Widget_AppCompat_ActionButton_Overflow = 2131558516;
- // aapt resource value: 0x7f0c00c8
- public const int Base_Widget_AppCompat_ActionMode = 2131493064;
+ // aapt resource value: 0x7f0d00c8
+ public const int Base_Widget_AppCompat_ActionMode = 2131558600;
- // aapt resource value: 0x7f0c00c9
- public const int Base_Widget_AppCompat_ActivityChooserView = 2131493065;
+ // aapt resource value: 0x7f0d00c9
+ public const int Base_Widget_AppCompat_ActivityChooserView = 2131558601;
- // aapt resource value: 0x7f0c0034
- public const int Base_Widget_AppCompat_AutoCompleteTextView = 2131492916;
+ // aapt resource value: 0x7f0d0034
+ public const int Base_Widget_AppCompat_AutoCompleteTextView = 2131558452;
- // aapt resource value: 0x7f0c0075
- public const int Base_Widget_AppCompat_Button = 2131492981;
+ // aapt resource value: 0x7f0d0075
+ public const int Base_Widget_AppCompat_Button = 2131558517;
- // aapt resource value: 0x7f0c0076
- public const int Base_Widget_AppCompat_Button_Borderless = 2131492982;
+ // aapt resource value: 0x7f0d0076
+ public const int Base_Widget_AppCompat_Button_Borderless = 2131558518;
- // aapt resource value: 0x7f0c0077
- public const int Base_Widget_AppCompat_Button_Borderless_Colored = 2131492983;
+ // aapt resource value: 0x7f0d0077
+ public const int Base_Widget_AppCompat_Button_Borderless_Colored = 2131558519;
- // aapt resource value: 0x7f0c00ca
- public const int Base_Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131493066;
+ // aapt resource value: 0x7f0d00ca
+ public const int Base_Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131558602;
- // aapt resource value: 0x7f0c0099
- public const int Base_Widget_AppCompat_Button_Colored = 2131493017;
+ // aapt resource value: 0x7f0d0099
+ public const int Base_Widget_AppCompat_Button_Colored = 2131558553;
- // aapt resource value: 0x7f0c0078
- public const int Base_Widget_AppCompat_Button_Small = 2131492984;
+ // aapt resource value: 0x7f0d0078
+ public const int Base_Widget_AppCompat_Button_Small = 2131558520;
- // aapt resource value: 0x7f0c0079
- public const int Base_Widget_AppCompat_ButtonBar = 2131492985;
+ // aapt resource value: 0x7f0d0079
+ public const int Base_Widget_AppCompat_ButtonBar = 2131558521;
- // aapt resource value: 0x7f0c00cb
- public const int Base_Widget_AppCompat_ButtonBar_AlertDialog = 2131493067;
+ // aapt resource value: 0x7f0d00cb
+ public const int Base_Widget_AppCompat_ButtonBar_AlertDialog = 2131558603;
- // aapt resource value: 0x7f0c007a
- public const int Base_Widget_AppCompat_CompoundButton_CheckBox = 2131492986;
+ // aapt resource value: 0x7f0d007a
+ public const int Base_Widget_AppCompat_CompoundButton_CheckBox = 2131558522;
- // aapt resource value: 0x7f0c007b
- public const int Base_Widget_AppCompat_CompoundButton_RadioButton = 2131492987;
+ // aapt resource value: 0x7f0d007b
+ public const int Base_Widget_AppCompat_CompoundButton_RadioButton = 2131558523;
- // aapt resource value: 0x7f0c00cc
- public const int Base_Widget_AppCompat_CompoundButton_Switch = 2131493068;
+ // aapt resource value: 0x7f0d00cc
+ public const int Base_Widget_AppCompat_CompoundButton_Switch = 2131558604;
- // aapt resource value: 0x7f0c000f
- public const int Base_Widget_AppCompat_DrawerArrowToggle = 2131492879;
+ // aapt resource value: 0x7f0d000f
+ public const int Base_Widget_AppCompat_DrawerArrowToggle = 2131558415;
- // aapt resource value: 0x7f0c00cd
- public const int Base_Widget_AppCompat_DrawerArrowToggle_Common = 2131493069;
+ // aapt resource value: 0x7f0d00cd
+ public const int Base_Widget_AppCompat_DrawerArrowToggle_Common = 2131558605;
- // aapt resource value: 0x7f0c007c
- public const int Base_Widget_AppCompat_DropDownItem_Spinner = 2131492988;
+ // aapt resource value: 0x7f0d007c
+ public const int Base_Widget_AppCompat_DropDownItem_Spinner = 2131558524;
- // aapt resource value: 0x7f0c0035
- public const int Base_Widget_AppCompat_EditText = 2131492917;
+ // aapt resource value: 0x7f0d0035
+ public const int Base_Widget_AppCompat_EditText = 2131558453;
- // aapt resource value: 0x7f0c007d
- public const int Base_Widget_AppCompat_ImageButton = 2131492989;
+ // aapt resource value: 0x7f0d007d
+ public const int Base_Widget_AppCompat_ImageButton = 2131558525;
- // aapt resource value: 0x7f0c00ce
- public const int Base_Widget_AppCompat_Light_ActionBar = 2131493070;
+ // aapt resource value: 0x7f0d00ce
+ public const int Base_Widget_AppCompat_Light_ActionBar = 2131558606;
- // aapt resource value: 0x7f0c00cf
- public const int Base_Widget_AppCompat_Light_ActionBar_Solid = 2131493071;
+ // aapt resource value: 0x7f0d00cf
+ public const int Base_Widget_AppCompat_Light_ActionBar_Solid = 2131558607;
- // aapt resource value: 0x7f0c00d0
- public const int Base_Widget_AppCompat_Light_ActionBar_TabBar = 2131493072;
+ // aapt resource value: 0x7f0d00d0
+ public const int Base_Widget_AppCompat_Light_ActionBar_TabBar = 2131558608;
- // aapt resource value: 0x7f0c007e
- public const int Base_Widget_AppCompat_Light_ActionBar_TabText = 2131492990;
+ // aapt resource value: 0x7f0d007e
+ public const int Base_Widget_AppCompat_Light_ActionBar_TabText = 2131558526;
- // aapt resource value: 0x7f0c007f
- public const int Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131492991;
+ // aapt resource value: 0x7f0d007f
+ public const int Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131558527;
- // aapt resource value: 0x7f0c0080
- public const int Base_Widget_AppCompat_Light_ActionBar_TabView = 2131492992;
+ // aapt resource value: 0x7f0d0080
+ public const int Base_Widget_AppCompat_Light_ActionBar_TabView = 2131558528;
- // aapt resource value: 0x7f0c0081
- public const int Base_Widget_AppCompat_Light_PopupMenu = 2131492993;
+ // aapt resource value: 0x7f0d0081
+ public const int Base_Widget_AppCompat_Light_PopupMenu = 2131558529;
- // aapt resource value: 0x7f0c0082
- public const int Base_Widget_AppCompat_Light_PopupMenu_Overflow = 2131492994;
+ // aapt resource value: 0x7f0d0082
+ public const int Base_Widget_AppCompat_Light_PopupMenu_Overflow = 2131558530;
- // aapt resource value: 0x7f0c00d1
- public const int Base_Widget_AppCompat_ListMenuView = 2131493073;
+ // aapt resource value: 0x7f0d00d1
+ public const int Base_Widget_AppCompat_ListMenuView = 2131558609;
- // aapt resource value: 0x7f0c0083
- public const int Base_Widget_AppCompat_ListPopupWindow = 2131492995;
+ // aapt resource value: 0x7f0d0083
+ public const int Base_Widget_AppCompat_ListPopupWindow = 2131558531;
- // aapt resource value: 0x7f0c0084
- public const int Base_Widget_AppCompat_ListView = 2131492996;
+ // aapt resource value: 0x7f0d0084
+ public const int Base_Widget_AppCompat_ListView = 2131558532;
- // aapt resource value: 0x7f0c0085
- public const int Base_Widget_AppCompat_ListView_DropDown = 2131492997;
+ // aapt resource value: 0x7f0d0085
+ public const int Base_Widget_AppCompat_ListView_DropDown = 2131558533;
- // aapt resource value: 0x7f0c0086
- public const int Base_Widget_AppCompat_ListView_Menu = 2131492998;
+ // aapt resource value: 0x7f0d0086
+ public const int Base_Widget_AppCompat_ListView_Menu = 2131558534;
- // aapt resource value: 0x7f0c0087
- public const int Base_Widget_AppCompat_PopupMenu = 2131492999;
+ // aapt resource value: 0x7f0d0087
+ public const int Base_Widget_AppCompat_PopupMenu = 2131558535;
- // aapt resource value: 0x7f0c0088
- public const int Base_Widget_AppCompat_PopupMenu_Overflow = 2131493000;
+ // aapt resource value: 0x7f0d0088
+ public const int Base_Widget_AppCompat_PopupMenu_Overflow = 2131558536;
- // aapt resource value: 0x7f0c00d2
- public const int Base_Widget_AppCompat_PopupWindow = 2131493074;
+ // aapt resource value: 0x7f0d00d2
+ public const int Base_Widget_AppCompat_PopupWindow = 2131558610;
- // aapt resource value: 0x7f0c002b
- public const int Base_Widget_AppCompat_ProgressBar = 2131492907;
+ // aapt resource value: 0x7f0d002b
+ public const int Base_Widget_AppCompat_ProgressBar = 2131558443;
- // aapt resource value: 0x7f0c002c
- public const int Base_Widget_AppCompat_ProgressBar_Horizontal = 2131492908;
+ // aapt resource value: 0x7f0d002c
+ public const int Base_Widget_AppCompat_ProgressBar_Horizontal = 2131558444;
- // aapt resource value: 0x7f0c0089
- public const int Base_Widget_AppCompat_RatingBar = 2131493001;
+ // aapt resource value: 0x7f0d0089
+ public const int Base_Widget_AppCompat_RatingBar = 2131558537;
- // aapt resource value: 0x7f0c009a
- public const int Base_Widget_AppCompat_RatingBar_Indicator = 2131493018;
+ // aapt resource value: 0x7f0d009a
+ public const int Base_Widget_AppCompat_RatingBar_Indicator = 2131558554;
- // aapt resource value: 0x7f0c009b
- public const int Base_Widget_AppCompat_RatingBar_Small = 2131493019;
+ // aapt resource value: 0x7f0d009b
+ public const int Base_Widget_AppCompat_RatingBar_Small = 2131558555;
- // aapt resource value: 0x7f0c00d3
- public const int Base_Widget_AppCompat_SearchView = 2131493075;
+ // aapt resource value: 0x7f0d00d3
+ public const int Base_Widget_AppCompat_SearchView = 2131558611;
- // aapt resource value: 0x7f0c00d4
- public const int Base_Widget_AppCompat_SearchView_ActionBar = 2131493076;
+ // aapt resource value: 0x7f0d00d4
+ public const int Base_Widget_AppCompat_SearchView_ActionBar = 2131558612;
- // aapt resource value: 0x7f0c008a
- public const int Base_Widget_AppCompat_SeekBar = 2131493002;
+ // aapt resource value: 0x7f0d008a
+ public const int Base_Widget_AppCompat_SeekBar = 2131558538;
- // aapt resource value: 0x7f0c00d5
- public const int Base_Widget_AppCompat_SeekBar_Discrete = 2131493077;
+ // aapt resource value: 0x7f0d00d5
+ public const int Base_Widget_AppCompat_SeekBar_Discrete = 2131558613;
- // aapt resource value: 0x7f0c008b
- public const int Base_Widget_AppCompat_Spinner = 2131493003;
+ // aapt resource value: 0x7f0d008b
+ public const int Base_Widget_AppCompat_Spinner = 2131558539;
- // aapt resource value: 0x7f0c0012
- public const int Base_Widget_AppCompat_Spinner_Underlined = 2131492882;
+ // aapt resource value: 0x7f0d0012
+ public const int Base_Widget_AppCompat_Spinner_Underlined = 2131558418;
- // aapt resource value: 0x7f0c008c
- public const int Base_Widget_AppCompat_TextView_SpinnerItem = 2131493004;
+ // aapt resource value: 0x7f0d008c
+ public const int Base_Widget_AppCompat_TextView_SpinnerItem = 2131558540;
- // aapt resource value: 0x7f0c00a3
- public const int Base_Widget_AppCompat_Toolbar = 2131493027;
+ // aapt resource value: 0x7f0d00a3
+ public const int Base_Widget_AppCompat_Toolbar = 2131558563;
- // aapt resource value: 0x7f0c008d
- public const int Base_Widget_AppCompat_Toolbar_Button_Navigation = 2131493005;
+ // aapt resource value: 0x7f0d008d
+ public const int Base_Widget_AppCompat_Toolbar_Button_Navigation = 2131558541;
- // aapt resource value: 0x7f0c016c
- public const int Base_Widget_Design_AppBarLayout = 2131493228;
+ // aapt resource value: 0x7f0d016c
+ public const int Base_Widget_Design_AppBarLayout = 2131558764;
- // aapt resource value: 0x7f0c0170
- public const int Base_Widget_Design_TabLayout = 2131493232;
+ // aapt resource value: 0x7f0d0170
+ public const int Base_Widget_Design_TabLayout = 2131558768;
- // aapt resource value: 0x7f0c000b
- public const int CardView = 2131492875;
+ // aapt resource value: 0x7f0d000b
+ public const int CardView = 2131558411;
- // aapt resource value: 0x7f0c000d
- public const int CardView_Dark = 2131492877;
+ // aapt resource value: 0x7f0d000d
+ public const int CardView_Dark = 2131558413;
- // aapt resource value: 0x7f0c000e
- public const int CardView_Light = 2131492878;
+ // aapt resource value: 0x7f0d000e
+ public const int CardView_Light = 2131558414;
- // aapt resource value: 0x7f0c018f
- public const int MainTheme = 2131493263;
+ // aapt resource value: 0x7f0d018f
+ public const int MainTheme = 2131558799;
- // aapt resource value: 0x7f0c0190
- public const int MainTheme_Base = 2131493264;
+ // aapt resource value: 0x7f0d0190
+ public const int MainTheme_Base = 2131558800;
- // aapt resource value: 0x7f0c002d
- public const int Platform_AppCompat = 2131492909;
+ // aapt resource value: 0x7f0d002d
+ public const int Platform_AppCompat = 2131558445;
- // aapt resource value: 0x7f0c002e
- public const int Platform_AppCompat_Light = 2131492910;
+ // aapt resource value: 0x7f0d002e
+ public const int Platform_AppCompat_Light = 2131558446;
- // aapt resource value: 0x7f0c008e
- public const int Platform_ThemeOverlay_AppCompat = 2131493006;
+ // aapt resource value: 0x7f0d008e
+ public const int Platform_ThemeOverlay_AppCompat = 2131558542;
- // aapt resource value: 0x7f0c008f
- public const int Platform_ThemeOverlay_AppCompat_Dark = 2131493007;
+ // aapt resource value: 0x7f0d008f
+ public const int Platform_ThemeOverlay_AppCompat_Dark = 2131558543;
- // aapt resource value: 0x7f0c0090
- public const int Platform_ThemeOverlay_AppCompat_Light = 2131493008;
+ // aapt resource value: 0x7f0d0090
+ public const int Platform_ThemeOverlay_AppCompat_Light = 2131558544;
- // aapt resource value: 0x7f0c002f
- public const int Platform_V11_AppCompat = 2131492911;
+ // aapt resource value: 0x7f0d002f
+ public const int Platform_V11_AppCompat = 2131558447;
- // aapt resource value: 0x7f0c0030
- public const int Platform_V11_AppCompat_Light = 2131492912;
+ // aapt resource value: 0x7f0d0030
+ public const int Platform_V11_AppCompat_Light = 2131558448;
- // aapt resource value: 0x7f0c0037
- public const int Platform_V14_AppCompat = 2131492919;
+ // aapt resource value: 0x7f0d0037
+ public const int Platform_V14_AppCompat = 2131558455;
- // aapt resource value: 0x7f0c0038
- public const int Platform_V14_AppCompat_Light = 2131492920;
+ // aapt resource value: 0x7f0d0038
+ public const int Platform_V14_AppCompat_Light = 2131558456;
- // aapt resource value: 0x7f0c0091
- public const int Platform_V21_AppCompat = 2131493009;
+ // aapt resource value: 0x7f0d0091
+ public const int Platform_V21_AppCompat = 2131558545;
- // aapt resource value: 0x7f0c0092
- public const int Platform_V21_AppCompat_Light = 2131493010;
+ // aapt resource value: 0x7f0d0092
+ public const int Platform_V21_AppCompat_Light = 2131558546;
- // aapt resource value: 0x7f0c009e
- public const int Platform_V25_AppCompat = 2131493022;
+ // aapt resource value: 0x7f0d009e
+ public const int Platform_V25_AppCompat = 2131558558;
- // aapt resource value: 0x7f0c009f
- public const int Platform_V25_AppCompat_Light = 2131493023;
+ // aapt resource value: 0x7f0d009f
+ public const int Platform_V25_AppCompat_Light = 2131558559;
- // aapt resource value: 0x7f0c0031
- public const int Platform_Widget_AppCompat_Spinner = 2131492913;
+ // aapt resource value: 0x7f0d0031
+ public const int Platform_Widget_AppCompat_Spinner = 2131558449;
- // aapt resource value: 0x7f0c003a
- public const int RtlOverlay_DialogWindowTitle_AppCompat = 2131492922;
+ // aapt resource value: 0x7f0d003a
+ public const int RtlOverlay_DialogWindowTitle_AppCompat = 2131558458;
- // aapt resource value: 0x7f0c003b
- public const int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem = 2131492923;
+ // aapt resource value: 0x7f0d003b
+ public const int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem = 2131558459;
- // aapt resource value: 0x7f0c003c
- public const int RtlOverlay_Widget_AppCompat_DialogTitle_Icon = 2131492924;
+ // aapt resource value: 0x7f0d003c
+ public const int RtlOverlay_Widget_AppCompat_DialogTitle_Icon = 2131558460;
- // aapt resource value: 0x7f0c003d
- public const int RtlOverlay_Widget_AppCompat_PopupMenuItem = 2131492925;
+ // aapt resource value: 0x7f0d003d
+ public const int RtlOverlay_Widget_AppCompat_PopupMenuItem = 2131558461;
- // aapt resource value: 0x7f0c003e
- public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup = 2131492926;
+ // aapt resource value: 0x7f0d003e
+ public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup = 2131558462;
- // aapt resource value: 0x7f0c003f
- public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_Text = 2131492927;
+ // aapt resource value: 0x7f0d003f
+ public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_Text = 2131558463;
- // aapt resource value: 0x7f0c0040
- public const int RtlOverlay_Widget_AppCompat_Search_DropDown = 2131492928;
+ // aapt resource value: 0x7f0d0040
+ public const int RtlOverlay_Widget_AppCompat_Search_DropDown = 2131558464;
- // aapt resource value: 0x7f0c0041
- public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 = 2131492929;
+ // aapt resource value: 0x7f0d0041
+ public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 = 2131558465;
- // aapt resource value: 0x7f0c0042
- public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 = 2131492930;
+ // aapt resource value: 0x7f0d0042
+ public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 = 2131558466;
- // aapt resource value: 0x7f0c0043
- public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Query = 2131492931;
+ // aapt resource value: 0x7f0d0043
+ public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Query = 2131558467;
- // aapt resource value: 0x7f0c0044
- public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Text = 2131492932;
+ // aapt resource value: 0x7f0d0044
+ public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Text = 2131558468;
- // aapt resource value: 0x7f0c0045
- public const int RtlOverlay_Widget_AppCompat_SearchView_MagIcon = 2131492933;
+ // aapt resource value: 0x7f0d0045
+ public const int RtlOverlay_Widget_AppCompat_SearchView_MagIcon = 2131558469;
- // aapt resource value: 0x7f0c0046
- public const int RtlUnderlay_Widget_AppCompat_ActionButton = 2131492934;
+ // aapt resource value: 0x7f0d0046
+ public const int RtlUnderlay_Widget_AppCompat_ActionButton = 2131558470;
- // aapt resource value: 0x7f0c0047
- public const int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow = 2131492935;
+ // aapt resource value: 0x7f0d0047
+ public const int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow = 2131558471;
- // aapt resource value: 0x7f0c00d6
- public const int TextAppearance_AppCompat = 2131493078;
+ // aapt resource value: 0x7f0d00d6
+ public const int TextAppearance_AppCompat = 2131558614;
- // aapt resource value: 0x7f0c00d7
- public const int TextAppearance_AppCompat_Body1 = 2131493079;
+ // aapt resource value: 0x7f0d00d7
+ public const int TextAppearance_AppCompat_Body1 = 2131558615;
- // aapt resource value: 0x7f0c00d8
- public const int TextAppearance_AppCompat_Body2 = 2131493080;
+ // aapt resource value: 0x7f0d00d8
+ public const int TextAppearance_AppCompat_Body2 = 2131558616;
- // aapt resource value: 0x7f0c00d9
- public const int TextAppearance_AppCompat_Button = 2131493081;
+ // aapt resource value: 0x7f0d00d9
+ public const int TextAppearance_AppCompat_Button = 2131558617;
- // aapt resource value: 0x7f0c00da
- public const int TextAppearance_AppCompat_Caption = 2131493082;
+ // aapt resource value: 0x7f0d00da
+ public const int TextAppearance_AppCompat_Caption = 2131558618;
- // aapt resource value: 0x7f0c00db
- public const int TextAppearance_AppCompat_Display1 = 2131493083;
+ // aapt resource value: 0x7f0d00db
+ public const int TextAppearance_AppCompat_Display1 = 2131558619;
- // aapt resource value: 0x7f0c00dc
- public const int TextAppearance_AppCompat_Display2 = 2131493084;
+ // aapt resource value: 0x7f0d00dc
+ public const int TextAppearance_AppCompat_Display2 = 2131558620;
- // aapt resource value: 0x7f0c00dd
- public const int TextAppearance_AppCompat_Display3 = 2131493085;
+ // aapt resource value: 0x7f0d00dd
+ public const int TextAppearance_AppCompat_Display3 = 2131558621;
- // aapt resource value: 0x7f0c00de
- public const int TextAppearance_AppCompat_Display4 = 2131493086;
+ // aapt resource value: 0x7f0d00de
+ public const int TextAppearance_AppCompat_Display4 = 2131558622;
- // aapt resource value: 0x7f0c00df
- public const int TextAppearance_AppCompat_Headline = 2131493087;
+ // aapt resource value: 0x7f0d00df
+ public const int TextAppearance_AppCompat_Headline = 2131558623;
- // aapt resource value: 0x7f0c00e0
- public const int TextAppearance_AppCompat_Inverse = 2131493088;
+ // aapt resource value: 0x7f0d00e0
+ public const int TextAppearance_AppCompat_Inverse = 2131558624;
- // aapt resource value: 0x7f0c00e1
- public const int TextAppearance_AppCompat_Large = 2131493089;
+ // aapt resource value: 0x7f0d00e1
+ public const int TextAppearance_AppCompat_Large = 2131558625;
- // aapt resource value: 0x7f0c00e2
- public const int TextAppearance_AppCompat_Large_Inverse = 2131493090;
+ // aapt resource value: 0x7f0d00e2
+ public const int TextAppearance_AppCompat_Large_Inverse = 2131558626;
- // aapt resource value: 0x7f0c00e3
- public const int TextAppearance_AppCompat_Light_SearchResult_Subtitle = 2131493091;
+ // aapt resource value: 0x7f0d00e3
+ public const int TextAppearance_AppCompat_Light_SearchResult_Subtitle = 2131558627;
- // aapt resource value: 0x7f0c00e4
- public const int TextAppearance_AppCompat_Light_SearchResult_Title = 2131493092;
+ // aapt resource value: 0x7f0d00e4
+ public const int TextAppearance_AppCompat_Light_SearchResult_Title = 2131558628;
- // aapt resource value: 0x7f0c00e5
- public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131493093;
+ // aapt resource value: 0x7f0d00e5
+ public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131558629;
- // aapt resource value: 0x7f0c00e6
- public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131493094;
+ // aapt resource value: 0x7f0d00e6
+ public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131558630;
- // aapt resource value: 0x7f0c00e7
- public const int TextAppearance_AppCompat_Medium = 2131493095;
+ // aapt resource value: 0x7f0d00e7
+ public const int TextAppearance_AppCompat_Medium = 2131558631;
- // aapt resource value: 0x7f0c00e8
- public const int TextAppearance_AppCompat_Medium_Inverse = 2131493096;
+ // aapt resource value: 0x7f0d00e8
+ public const int TextAppearance_AppCompat_Medium_Inverse = 2131558632;
- // aapt resource value: 0x7f0c00e9
- public const int TextAppearance_AppCompat_Menu = 2131493097;
+ // aapt resource value: 0x7f0d00e9
+ public const int TextAppearance_AppCompat_Menu = 2131558633;
- // aapt resource value: 0x7f0c00ea
- public const int TextAppearance_AppCompat_SearchResult_Subtitle = 2131493098;
+ // aapt resource value: 0x7f0d00ea
+ public const int TextAppearance_AppCompat_SearchResult_Subtitle = 2131558634;
- // aapt resource value: 0x7f0c00eb
- public const int TextAppearance_AppCompat_SearchResult_Title = 2131493099;
+ // aapt resource value: 0x7f0d00eb
+ public const int TextAppearance_AppCompat_SearchResult_Title = 2131558635;
- // aapt resource value: 0x7f0c00ec
- public const int TextAppearance_AppCompat_Small = 2131493100;
+ // aapt resource value: 0x7f0d00ec
+ public const int TextAppearance_AppCompat_Small = 2131558636;
- // aapt resource value: 0x7f0c00ed
- public const int TextAppearance_AppCompat_Small_Inverse = 2131493101;
+ // aapt resource value: 0x7f0d00ed
+ public const int TextAppearance_AppCompat_Small_Inverse = 2131558637;
- // aapt resource value: 0x7f0c00ee
- public const int TextAppearance_AppCompat_Subhead = 2131493102;
+ // aapt resource value: 0x7f0d00ee
+ public const int TextAppearance_AppCompat_Subhead = 2131558638;
- // aapt resource value: 0x7f0c00ef
- public const int TextAppearance_AppCompat_Subhead_Inverse = 2131493103;
+ // aapt resource value: 0x7f0d00ef
+ public const int TextAppearance_AppCompat_Subhead_Inverse = 2131558639;
- // aapt resource value: 0x7f0c00f0
- public const int TextAppearance_AppCompat_Title = 2131493104;
+ // aapt resource value: 0x7f0d00f0
+ public const int TextAppearance_AppCompat_Title = 2131558640;
- // aapt resource value: 0x7f0c00f1
- public const int TextAppearance_AppCompat_Title_Inverse = 2131493105;
+ // aapt resource value: 0x7f0d00f1
+ public const int TextAppearance_AppCompat_Title_Inverse = 2131558641;
- // aapt resource value: 0x7f0c0039
- public const int TextAppearance_AppCompat_Tooltip = 2131492921;
+ // aapt resource value: 0x7f0d0039
+ public const int TextAppearance_AppCompat_Tooltip = 2131558457;
- // aapt resource value: 0x7f0c00f2
- public const int TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131493106;
+ // aapt resource value: 0x7f0d00f2
+ public const int TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131558642;
- // aapt resource value: 0x7f0c00f3
- public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131493107;
+ // aapt resource value: 0x7f0d00f3
+ public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131558643;
- // aapt resource value: 0x7f0c00f4
- public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131493108;
+ // aapt resource value: 0x7f0d00f4
+ public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131558644;
- // aapt resource value: 0x7f0c00f5
- public const int TextAppearance_AppCompat_Widget_ActionBar_Title = 2131493109;
+ // aapt resource value: 0x7f0d00f5
+ public const int TextAppearance_AppCompat_Widget_ActionBar_Title = 2131558645;
- // aapt resource value: 0x7f0c00f6
- public const int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131493110;
+ // aapt resource value: 0x7f0d00f6
+ public const int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131558646;
- // aapt resource value: 0x7f0c00f7
- public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131493111;
+ // aapt resource value: 0x7f0d00f7
+ public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131558647;
- // aapt resource value: 0x7f0c00f8
- public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse = 2131493112;
+ // aapt resource value: 0x7f0d00f8
+ public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse = 2131558648;
- // aapt resource value: 0x7f0c00f9
- public const int TextAppearance_AppCompat_Widget_ActionMode_Title = 2131493113;
+ // aapt resource value: 0x7f0d00f9
+ public const int TextAppearance_AppCompat_Widget_ActionMode_Title = 2131558649;
- // aapt resource value: 0x7f0c00fa
- public const int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse = 2131493114;
+ // aapt resource value: 0x7f0d00fa
+ public const int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse = 2131558650;
- // aapt resource value: 0x7f0c00fb
- public const int TextAppearance_AppCompat_Widget_Button = 2131493115;
+ // aapt resource value: 0x7f0d00fb
+ public const int TextAppearance_AppCompat_Widget_Button = 2131558651;
- // aapt resource value: 0x7f0c00fc
- public const int TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131493116;
+ // aapt resource value: 0x7f0d00fc
+ public const int TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131558652;
- // aapt resource value: 0x7f0c00fd
- public const int TextAppearance_AppCompat_Widget_Button_Colored = 2131493117;
+ // aapt resource value: 0x7f0d00fd
+ public const int TextAppearance_AppCompat_Widget_Button_Colored = 2131558653;
- // aapt resource value: 0x7f0c00fe
- public const int TextAppearance_AppCompat_Widget_Button_Inverse = 2131493118;
+ // aapt resource value: 0x7f0d00fe
+ public const int TextAppearance_AppCompat_Widget_Button_Inverse = 2131558654;
- // aapt resource value: 0x7f0c00ff
- public const int TextAppearance_AppCompat_Widget_DropDownItem = 2131493119;
+ // aapt resource value: 0x7f0d00ff
+ public const int TextAppearance_AppCompat_Widget_DropDownItem = 2131558655;
- // aapt resource value: 0x7f0c0100
- public const int TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131493120;
+ // aapt resource value: 0x7f0d0100
+ public const int TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131558656;
- // aapt resource value: 0x7f0c0101
- public const int TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131493121;
+ // aapt resource value: 0x7f0d0101
+ public const int TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131558657;
- // aapt resource value: 0x7f0c0102
- public const int TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131493122;
+ // aapt resource value: 0x7f0d0102
+ public const int TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131558658;
- // aapt resource value: 0x7f0c0103
- public const int TextAppearance_AppCompat_Widget_Switch = 2131493123;
+ // aapt resource value: 0x7f0d0103
+ public const int TextAppearance_AppCompat_Widget_Switch = 2131558659;
- // aapt resource value: 0x7f0c0104
- public const int TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131493124;
+ // aapt resource value: 0x7f0d0104
+ public const int TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131558660;
- // aapt resource value: 0x7f0c0188
- public const int TextAppearance_Compat_Notification = 2131493256;
+ // aapt resource value: 0x7f0d0188
+ public const int TextAppearance_Compat_Notification = 2131558792;
- // aapt resource value: 0x7f0c0189
- public const int TextAppearance_Compat_Notification_Info = 2131493257;
+ // aapt resource value: 0x7f0d0189
+ public const int TextAppearance_Compat_Notification_Info = 2131558793;
- // aapt resource value: 0x7f0c0165
- public const int TextAppearance_Compat_Notification_Info_Media = 2131493221;
+ // aapt resource value: 0x7f0d0165
+ public const int TextAppearance_Compat_Notification_Info_Media = 2131558757;
- // aapt resource value: 0x7f0c018e
- public const int TextAppearance_Compat_Notification_Line2 = 2131493262;
+ // aapt resource value: 0x7f0d018e
+ public const int TextAppearance_Compat_Notification_Line2 = 2131558798;
- // aapt resource value: 0x7f0c0169
- public const int TextAppearance_Compat_Notification_Line2_Media = 2131493225;
+ // aapt resource value: 0x7f0d0169
+ public const int TextAppearance_Compat_Notification_Line2_Media = 2131558761;
- // aapt resource value: 0x7f0c0166
- public const int TextAppearance_Compat_Notification_Media = 2131493222;
+ // aapt resource value: 0x7f0d0166
+ public const int TextAppearance_Compat_Notification_Media = 2131558758;
- // aapt resource value: 0x7f0c018a
- public const int TextAppearance_Compat_Notification_Time = 2131493258;
+ // aapt resource value: 0x7f0d018a
+ public const int TextAppearance_Compat_Notification_Time = 2131558794;
- // aapt resource value: 0x7f0c0167
- public const int TextAppearance_Compat_Notification_Time_Media = 2131493223;
+ // aapt resource value: 0x7f0d0167
+ public const int TextAppearance_Compat_Notification_Time_Media = 2131558759;
- // aapt resource value: 0x7f0c018b
- public const int TextAppearance_Compat_Notification_Title = 2131493259;
+ // aapt resource value: 0x7f0d018b
+ public const int TextAppearance_Compat_Notification_Title = 2131558795;
- // aapt resource value: 0x7f0c0168
- public const int TextAppearance_Compat_Notification_Title_Media = 2131493224;
+ // aapt resource value: 0x7f0d0168
+ public const int TextAppearance_Compat_Notification_Title_Media = 2131558760;
- // aapt resource value: 0x7f0c0171
- public const int TextAppearance_Design_CollapsingToolbar_Expanded = 2131493233;
+ // aapt resource value: 0x7f0d0171
+ public const int TextAppearance_Design_CollapsingToolbar_Expanded = 2131558769;
- // aapt resource value: 0x7f0c0172
- public const int TextAppearance_Design_Counter = 2131493234;
+ // aapt resource value: 0x7f0d0172
+ public const int TextAppearance_Design_Counter = 2131558770;
- // aapt resource value: 0x7f0c0173
- public const int TextAppearance_Design_Counter_Overflow = 2131493235;
+ // aapt resource value: 0x7f0d0173
+ public const int TextAppearance_Design_Counter_Overflow = 2131558771;
- // aapt resource value: 0x7f0c0174
- public const int TextAppearance_Design_Error = 2131493236;
+ // aapt resource value: 0x7f0d0174
+ public const int TextAppearance_Design_Error = 2131558772;
- // aapt resource value: 0x7f0c0175
- public const int TextAppearance_Design_Hint = 2131493237;
+ // aapt resource value: 0x7f0d0175
+ public const int TextAppearance_Design_Hint = 2131558773;
- // aapt resource value: 0x7f0c0176
- public const int TextAppearance_Design_Snackbar_Message = 2131493238;
+ // aapt resource value: 0x7f0d0176
+ public const int TextAppearance_Design_Snackbar_Message = 2131558774;
- // aapt resource value: 0x7f0c0177
- public const int TextAppearance_Design_Tab = 2131493239;
+ // aapt resource value: 0x7f0d0177
+ public const int TextAppearance_Design_Tab = 2131558775;
- // aapt resource value: 0x7f0c0000
- public const int TextAppearance_MediaRouter_PrimaryText = 2131492864;
+ // aapt resource value: 0x7f0d0000
+ public const int TextAppearance_MediaRouter_PrimaryText = 2131558400;
- // aapt resource value: 0x7f0c0001
- public const int TextAppearance_MediaRouter_SecondaryText = 2131492865;
+ // aapt resource value: 0x7f0d0001
+ public const int TextAppearance_MediaRouter_SecondaryText = 2131558401;
- // aapt resource value: 0x7f0c0002
- public const int TextAppearance_MediaRouter_Title = 2131492866;
+ // aapt resource value: 0x7f0d0002
+ public const int TextAppearance_MediaRouter_Title = 2131558402;
- // aapt resource value: 0x7f0c0105
- public const int TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131493125;
+ // aapt resource value: 0x7f0d0105
+ public const int TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131558661;
- // aapt resource value: 0x7f0c0106
- public const int TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131493126;
+ // aapt resource value: 0x7f0d0106
+ public const int TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131558662;
- // aapt resource value: 0x7f0c0107
- public const int TextAppearance_Widget_AppCompat_Toolbar_Title = 2131493127;
+ // aapt resource value: 0x7f0d0107
+ public const int TextAppearance_Widget_AppCompat_Toolbar_Title = 2131558663;
- // aapt resource value: 0x7f0c0108
- public const int Theme_AppCompat = 2131493128;
+ // aapt resource value: 0x7f0d0108
+ public const int Theme_AppCompat = 2131558664;
- // aapt resource value: 0x7f0c0109
- public const int Theme_AppCompat_CompactMenu = 2131493129;
+ // aapt resource value: 0x7f0d0109
+ public const int Theme_AppCompat_CompactMenu = 2131558665;
- // aapt resource value: 0x7f0c0013
- public const int Theme_AppCompat_DayNight = 2131492883;
+ // aapt resource value: 0x7f0d0013
+ public const int Theme_AppCompat_DayNight = 2131558419;
- // aapt resource value: 0x7f0c0014
- public const int Theme_AppCompat_DayNight_DarkActionBar = 2131492884;
+ // aapt resource value: 0x7f0d0014
+ public const int Theme_AppCompat_DayNight_DarkActionBar = 2131558420;
- // aapt resource value: 0x7f0c0015
- public const int Theme_AppCompat_DayNight_Dialog = 2131492885;
+ // aapt resource value: 0x7f0d0015
+ public const int Theme_AppCompat_DayNight_Dialog = 2131558421;
- // aapt resource value: 0x7f0c0016
- public const int Theme_AppCompat_DayNight_Dialog_Alert = 2131492886;
+ // aapt resource value: 0x7f0d0016
+ public const int Theme_AppCompat_DayNight_Dialog_Alert = 2131558422;
- // aapt resource value: 0x7f0c0017
- public const int Theme_AppCompat_DayNight_Dialog_MinWidth = 2131492887;
+ // aapt resource value: 0x7f0d0017
+ public const int Theme_AppCompat_DayNight_Dialog_MinWidth = 2131558423;
- // aapt resource value: 0x7f0c0018
- public const int Theme_AppCompat_DayNight_DialogWhenLarge = 2131492888;
+ // aapt resource value: 0x7f0d0018
+ public const int Theme_AppCompat_DayNight_DialogWhenLarge = 2131558424;
- // aapt resource value: 0x7f0c0019
- public const int Theme_AppCompat_DayNight_NoActionBar = 2131492889;
+ // aapt resource value: 0x7f0d0019
+ public const int Theme_AppCompat_DayNight_NoActionBar = 2131558425;
- // aapt resource value: 0x7f0c010a
- public const int Theme_AppCompat_Dialog = 2131493130;
+ // aapt resource value: 0x7f0d010a
+ public const int Theme_AppCompat_Dialog = 2131558666;
- // aapt resource value: 0x7f0c010b
- public const int Theme_AppCompat_Dialog_Alert = 2131493131;
+ // aapt resource value: 0x7f0d010b
+ public const int Theme_AppCompat_Dialog_Alert = 2131558667;
- // aapt resource value: 0x7f0c010c
- public const int Theme_AppCompat_Dialog_MinWidth = 2131493132;
+ // aapt resource value: 0x7f0d010c
+ public const int Theme_AppCompat_Dialog_MinWidth = 2131558668;
- // aapt resource value: 0x7f0c010d
- public const int Theme_AppCompat_DialogWhenLarge = 2131493133;
+ // aapt resource value: 0x7f0d010d
+ public const int Theme_AppCompat_DialogWhenLarge = 2131558669;
- // aapt resource value: 0x7f0c010e
- public const int Theme_AppCompat_Light = 2131493134;
+ // aapt resource value: 0x7f0d010e
+ public const int Theme_AppCompat_Light = 2131558670;
- // aapt resource value: 0x7f0c010f
- public const int Theme_AppCompat_Light_DarkActionBar = 2131493135;
+ // aapt resource value: 0x7f0d010f
+ public const int Theme_AppCompat_Light_DarkActionBar = 2131558671;
- // aapt resource value: 0x7f0c0110
- public const int Theme_AppCompat_Light_Dialog = 2131493136;
+ // aapt resource value: 0x7f0d0110
+ public const int Theme_AppCompat_Light_Dialog = 2131558672;
- // aapt resource value: 0x7f0c0111
- public const int Theme_AppCompat_Light_Dialog_Alert = 2131493137;
+ // aapt resource value: 0x7f0d0111
+ public const int Theme_AppCompat_Light_Dialog_Alert = 2131558673;
- // aapt resource value: 0x7f0c0112
- public const int Theme_AppCompat_Light_Dialog_MinWidth = 2131493138;
+ // aapt resource value: 0x7f0d0112
+ public const int Theme_AppCompat_Light_Dialog_MinWidth = 2131558674;
- // aapt resource value: 0x7f0c0113
- public const int Theme_AppCompat_Light_DialogWhenLarge = 2131493139;
+ // aapt resource value: 0x7f0d0113
+ public const int Theme_AppCompat_Light_DialogWhenLarge = 2131558675;
- // aapt resource value: 0x7f0c0114
- public const int Theme_AppCompat_Light_NoActionBar = 2131493140;
+ // aapt resource value: 0x7f0d0114
+ public const int Theme_AppCompat_Light_NoActionBar = 2131558676;
- // aapt resource value: 0x7f0c0115
- public const int Theme_AppCompat_NoActionBar = 2131493141;
+ // aapt resource value: 0x7f0d0115
+ public const int Theme_AppCompat_NoActionBar = 2131558677;
- // aapt resource value: 0x7f0c0178
- public const int Theme_Design = 2131493240;
+ // aapt resource value: 0x7f0d0178
+ public const int Theme_Design = 2131558776;
- // aapt resource value: 0x7f0c0179
- public const int Theme_Design_BottomSheetDialog = 2131493241;
+ // aapt resource value: 0x7f0d0179
+ public const int Theme_Design_BottomSheetDialog = 2131558777;
- // aapt resource value: 0x7f0c017a
- public const int Theme_Design_Light = 2131493242;
+ // aapt resource value: 0x7f0d017a
+ public const int Theme_Design_Light = 2131558778;
- // aapt resource value: 0x7f0c017b
- public const int Theme_Design_Light_BottomSheetDialog = 2131493243;
+ // aapt resource value: 0x7f0d017b
+ public const int Theme_Design_Light_BottomSheetDialog = 2131558779;
- // aapt resource value: 0x7f0c017c
- public const int Theme_Design_Light_NoActionBar = 2131493244;
+ // aapt resource value: 0x7f0d017c
+ public const int Theme_Design_Light_NoActionBar = 2131558780;
- // aapt resource value: 0x7f0c017d
- public const int Theme_Design_NoActionBar = 2131493245;
+ // aapt resource value: 0x7f0d017d
+ public const int Theme_Design_NoActionBar = 2131558781;
- // aapt resource value: 0x7f0c0003
- public const int Theme_MediaRouter = 2131492867;
+ // aapt resource value: 0x7f0d0003
+ public const int Theme_MediaRouter = 2131558403;
- // aapt resource value: 0x7f0c0004
- public const int Theme_MediaRouter_Light = 2131492868;
+ // aapt resource value: 0x7f0d0004
+ public const int Theme_MediaRouter_Light = 2131558404;
- // aapt resource value: 0x7f0c0005
- public const int Theme_MediaRouter_Light_DarkControlPanel = 2131492869;
+ // aapt resource value: 0x7f0d0005
+ public const int Theme_MediaRouter_Light_DarkControlPanel = 2131558405;
- // aapt resource value: 0x7f0c0006
- public const int Theme_MediaRouter_LightControlPanel = 2131492870;
+ // aapt resource value: 0x7f0d0006
+ public const int Theme_MediaRouter_LightControlPanel = 2131558406;
- // aapt resource value: 0x7f0c0116
- public const int ThemeOverlay_AppCompat = 2131493142;
+ // aapt resource value: 0x7f0d0116
+ public const int ThemeOverlay_AppCompat = 2131558678;
- // aapt resource value: 0x7f0c0117
- public const int ThemeOverlay_AppCompat_ActionBar = 2131493143;
+ // aapt resource value: 0x7f0d0117
+ public const int ThemeOverlay_AppCompat_ActionBar = 2131558679;
- // aapt resource value: 0x7f0c0118
- public const int ThemeOverlay_AppCompat_Dark = 2131493144;
+ // aapt resource value: 0x7f0d0118
+ public const int ThemeOverlay_AppCompat_Dark = 2131558680;
- // aapt resource value: 0x7f0c0119
- public const int ThemeOverlay_AppCompat_Dark_ActionBar = 2131493145;
+ // aapt resource value: 0x7f0d0119
+ public const int ThemeOverlay_AppCompat_Dark_ActionBar = 2131558681;
- // aapt resource value: 0x7f0c011a
- public const int ThemeOverlay_AppCompat_Dialog = 2131493146;
+ // aapt resource value: 0x7f0d011a
+ public const int ThemeOverlay_AppCompat_Dialog = 2131558682;
- // aapt resource value: 0x7f0c011b
- public const int ThemeOverlay_AppCompat_Dialog_Alert = 2131493147;
+ // aapt resource value: 0x7f0d011b
+ public const int ThemeOverlay_AppCompat_Dialog_Alert = 2131558683;
- // aapt resource value: 0x7f0c011c
- public const int ThemeOverlay_AppCompat_Light = 2131493148;
+ // aapt resource value: 0x7f0d011c
+ public const int ThemeOverlay_AppCompat_Light = 2131558684;
- // aapt resource value: 0x7f0c0007
- public const int ThemeOverlay_MediaRouter_Dark = 2131492871;
+ // aapt resource value: 0x7f0d0007
+ public const int ThemeOverlay_MediaRouter_Dark = 2131558407;
- // aapt resource value: 0x7f0c0008
- public const int ThemeOverlay_MediaRouter_Light = 2131492872;
+ // aapt resource value: 0x7f0d0008
+ public const int ThemeOverlay_MediaRouter_Light = 2131558408;
- // aapt resource value: 0x7f0c011d
- public const int Widget_AppCompat_ActionBar = 2131493149;
+ // aapt resource value: 0x7f0d011d
+ public const int Widget_AppCompat_ActionBar = 2131558685;
- // aapt resource value: 0x7f0c011e
- public const int Widget_AppCompat_ActionBar_Solid = 2131493150;
+ // aapt resource value: 0x7f0d011e
+ public const int Widget_AppCompat_ActionBar_Solid = 2131558686;
- // aapt resource value: 0x7f0c011f
- public const int Widget_AppCompat_ActionBar_TabBar = 2131493151;
+ // aapt resource value: 0x7f0d011f
+ public const int Widget_AppCompat_ActionBar_TabBar = 2131558687;
- // aapt resource value: 0x7f0c0120
- public const int Widget_AppCompat_ActionBar_TabText = 2131493152;
+ // aapt resource value: 0x7f0d0120
+ public const int Widget_AppCompat_ActionBar_TabText = 2131558688;
- // aapt resource value: 0x7f0c0121
- public const int Widget_AppCompat_ActionBar_TabView = 2131493153;
+ // aapt resource value: 0x7f0d0121
+ public const int Widget_AppCompat_ActionBar_TabView = 2131558689;
- // aapt resource value: 0x7f0c0122
- public const int Widget_AppCompat_ActionButton = 2131493154;
+ // aapt resource value: 0x7f0d0122
+ public const int Widget_AppCompat_ActionButton = 2131558690;
- // aapt resource value: 0x7f0c0123
- public const int Widget_AppCompat_ActionButton_CloseMode = 2131493155;
+ // aapt resource value: 0x7f0d0123
+ public const int Widget_AppCompat_ActionButton_CloseMode = 2131558691;
- // aapt resource value: 0x7f0c0124
- public const int Widget_AppCompat_ActionButton_Overflow = 2131493156;
+ // aapt resource value: 0x7f0d0124
+ public const int Widget_AppCompat_ActionButton_Overflow = 2131558692;
- // aapt resource value: 0x7f0c0125
- public const int Widget_AppCompat_ActionMode = 2131493157;
+ // aapt resource value: 0x7f0d0125
+ public const int Widget_AppCompat_ActionMode = 2131558693;
- // aapt resource value: 0x7f0c0126
- public const int Widget_AppCompat_ActivityChooserView = 2131493158;
+ // aapt resource value: 0x7f0d0126
+ public const int Widget_AppCompat_ActivityChooserView = 2131558694;
- // aapt resource value: 0x7f0c0127
- public const int Widget_AppCompat_AutoCompleteTextView = 2131493159;
+ // aapt resource value: 0x7f0d0127
+ public const int Widget_AppCompat_AutoCompleteTextView = 2131558695;
- // aapt resource value: 0x7f0c0128
- public const int Widget_AppCompat_Button = 2131493160;
+ // aapt resource value: 0x7f0d0128
+ public const int Widget_AppCompat_Button = 2131558696;
- // aapt resource value: 0x7f0c0129
- public const int Widget_AppCompat_Button_Borderless = 2131493161;
+ // aapt resource value: 0x7f0d0129
+ public const int Widget_AppCompat_Button_Borderless = 2131558697;
- // aapt resource value: 0x7f0c012a
- public const int Widget_AppCompat_Button_Borderless_Colored = 2131493162;
+ // aapt resource value: 0x7f0d012a
+ public const int Widget_AppCompat_Button_Borderless_Colored = 2131558698;
- // aapt resource value: 0x7f0c012b
- public const int Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131493163;
+ // aapt resource value: 0x7f0d012b
+ public const int Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131558699;
- // aapt resource value: 0x7f0c012c
- public const int Widget_AppCompat_Button_Colored = 2131493164;
+ // aapt resource value: 0x7f0d012c
+ public const int Widget_AppCompat_Button_Colored = 2131558700;
- // aapt resource value: 0x7f0c012d
- public const int Widget_AppCompat_Button_Small = 2131493165;
+ // aapt resource value: 0x7f0d012d
+ public const int Widget_AppCompat_Button_Small = 2131558701;
- // aapt resource value: 0x7f0c012e
- public const int Widget_AppCompat_ButtonBar = 2131493166;
+ // aapt resource value: 0x7f0d012e
+ public const int Widget_AppCompat_ButtonBar = 2131558702;
- // aapt resource value: 0x7f0c012f
- public const int Widget_AppCompat_ButtonBar_AlertDialog = 2131493167;
+ // aapt resource value: 0x7f0d012f
+ public const int Widget_AppCompat_ButtonBar_AlertDialog = 2131558703;
- // aapt resource value: 0x7f0c0130
- public const int Widget_AppCompat_CompoundButton_CheckBox = 2131493168;
+ // aapt resource value: 0x7f0d0130
+ public const int Widget_AppCompat_CompoundButton_CheckBox = 2131558704;
- // aapt resource value: 0x7f0c0131
- public const int Widget_AppCompat_CompoundButton_RadioButton = 2131493169;
+ // aapt resource value: 0x7f0d0131
+ public const int Widget_AppCompat_CompoundButton_RadioButton = 2131558705;
- // aapt resource value: 0x7f0c0132
- public const int Widget_AppCompat_CompoundButton_Switch = 2131493170;
+ // aapt resource value: 0x7f0d0132
+ public const int Widget_AppCompat_CompoundButton_Switch = 2131558706;
- // aapt resource value: 0x7f0c0133
- public const int Widget_AppCompat_DrawerArrowToggle = 2131493171;
+ // aapt resource value: 0x7f0d0133
+ public const int Widget_AppCompat_DrawerArrowToggle = 2131558707;
- // aapt resource value: 0x7f0c0134
- public const int Widget_AppCompat_DropDownItem_Spinner = 2131493172;
+ // aapt resource value: 0x7f0d0134
+ public const int Widget_AppCompat_DropDownItem_Spinner = 2131558708;
- // aapt resource value: 0x7f0c0135
- public const int Widget_AppCompat_EditText = 2131493173;
+ // aapt resource value: 0x7f0d0135
+ public const int Widget_AppCompat_EditText = 2131558709;
- // aapt resource value: 0x7f0c0136
- public const int Widget_AppCompat_ImageButton = 2131493174;
+ // aapt resource value: 0x7f0d0136
+ public const int Widget_AppCompat_ImageButton = 2131558710;
- // aapt resource value: 0x7f0c0137
- public const int Widget_AppCompat_Light_ActionBar = 2131493175;
+ // aapt resource value: 0x7f0d0137
+ public const int Widget_AppCompat_Light_ActionBar = 2131558711;
- // aapt resource value: 0x7f0c0138
- public const int Widget_AppCompat_Light_ActionBar_Solid = 2131493176;
+ // aapt resource value: 0x7f0d0138
+ public const int Widget_AppCompat_Light_ActionBar_Solid = 2131558712;
- // aapt resource value: 0x7f0c0139
- public const int Widget_AppCompat_Light_ActionBar_Solid_Inverse = 2131493177;
+ // aapt resource value: 0x7f0d0139
+ public const int Widget_AppCompat_Light_ActionBar_Solid_Inverse = 2131558713;
- // aapt resource value: 0x7f0c013a
- public const int Widget_AppCompat_Light_ActionBar_TabBar = 2131493178;
+ // aapt resource value: 0x7f0d013a
+ public const int Widget_AppCompat_Light_ActionBar_TabBar = 2131558714;
- // aapt resource value: 0x7f0c013b
- public const int Widget_AppCompat_Light_ActionBar_TabBar_Inverse = 2131493179;
+ // aapt resource value: 0x7f0d013b
+ public const int Widget_AppCompat_Light_ActionBar_TabBar_Inverse = 2131558715;
- // aapt resource value: 0x7f0c013c
- public const int Widget_AppCompat_Light_ActionBar_TabText = 2131493180;
+ // aapt resource value: 0x7f0d013c
+ public const int Widget_AppCompat_Light_ActionBar_TabText = 2131558716;
- // aapt resource value: 0x7f0c013d
- public const int Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131493181;
+ // aapt resource value: 0x7f0d013d
+ public const int Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131558717;
- // aapt resource value: 0x7f0c013e
- public const int Widget_AppCompat_Light_ActionBar_TabView = 2131493182;
+ // aapt resource value: 0x7f0d013e
+ public const int Widget_AppCompat_Light_ActionBar_TabView = 2131558718;
- // aapt resource value: 0x7f0c013f
- public const int Widget_AppCompat_Light_ActionBar_TabView_Inverse = 2131493183;
+ // aapt resource value: 0x7f0d013f
+ public const int Widget_AppCompat_Light_ActionBar_TabView_Inverse = 2131558719;
- // aapt resource value: 0x7f0c0140
- public const int Widget_AppCompat_Light_ActionButton = 2131493184;
+ // aapt resource value: 0x7f0d0140
+ public const int Widget_AppCompat_Light_ActionButton = 2131558720;
- // aapt resource value: 0x7f0c0141
- public const int Widget_AppCompat_Light_ActionButton_CloseMode = 2131493185;
+ // aapt resource value: 0x7f0d0141
+ public const int Widget_AppCompat_Light_ActionButton_CloseMode = 2131558721;
- // aapt resource value: 0x7f0c0142
- public const int Widget_AppCompat_Light_ActionButton_Overflow = 2131493186;
+ // aapt resource value: 0x7f0d0142
+ public const int Widget_AppCompat_Light_ActionButton_Overflow = 2131558722;
- // aapt resource value: 0x7f0c0143
- public const int Widget_AppCompat_Light_ActionMode_Inverse = 2131493187;
+ // aapt resource value: 0x7f0d0143
+ public const int Widget_AppCompat_Light_ActionMode_Inverse = 2131558723;
- // aapt resource value: 0x7f0c0144
- public const int Widget_AppCompat_Light_ActivityChooserView = 2131493188;
+ // aapt resource value: 0x7f0d0144
+ public const int Widget_AppCompat_Light_ActivityChooserView = 2131558724;
- // aapt resource value: 0x7f0c0145
- public const int Widget_AppCompat_Light_AutoCompleteTextView = 2131493189;
+ // aapt resource value: 0x7f0d0145
+ public const int Widget_AppCompat_Light_AutoCompleteTextView = 2131558725;
- // aapt resource value: 0x7f0c0146
- public const int Widget_AppCompat_Light_DropDownItem_Spinner = 2131493190;
+ // aapt resource value: 0x7f0d0146
+ public const int Widget_AppCompat_Light_DropDownItem_Spinner = 2131558726;
- // aapt resource value: 0x7f0c0147
- public const int Widget_AppCompat_Light_ListPopupWindow = 2131493191;
+ // aapt resource value: 0x7f0d0147
+ public const int Widget_AppCompat_Light_ListPopupWindow = 2131558727;
- // aapt resource value: 0x7f0c0148
- public const int Widget_AppCompat_Light_ListView_DropDown = 2131493192;
+ // aapt resource value: 0x7f0d0148
+ public const int Widget_AppCompat_Light_ListView_DropDown = 2131558728;
- // aapt resource value: 0x7f0c0149
- public const int Widget_AppCompat_Light_PopupMenu = 2131493193;
+ // aapt resource value: 0x7f0d0149
+ public const int Widget_AppCompat_Light_PopupMenu = 2131558729;
- // aapt resource value: 0x7f0c014a
- public const int Widget_AppCompat_Light_PopupMenu_Overflow = 2131493194;
+ // aapt resource value: 0x7f0d014a
+ public const int Widget_AppCompat_Light_PopupMenu_Overflow = 2131558730;
- // aapt resource value: 0x7f0c014b
- public const int Widget_AppCompat_Light_SearchView = 2131493195;
+ // aapt resource value: 0x7f0d014b
+ public const int Widget_AppCompat_Light_SearchView = 2131558731;
- // aapt resource value: 0x7f0c014c
- public const int Widget_AppCompat_Light_Spinner_DropDown_ActionBar = 2131493196;
+ // aapt resource value: 0x7f0d014c
+ public const int Widget_AppCompat_Light_Spinner_DropDown_ActionBar = 2131558732;
- // aapt resource value: 0x7f0c014d
- public const int Widget_AppCompat_ListMenuView = 2131493197;
+ // aapt resource value: 0x7f0d014d
+ public const int Widget_AppCompat_ListMenuView = 2131558733;
- // aapt resource value: 0x7f0c014e
- public const int Widget_AppCompat_ListPopupWindow = 2131493198;
+ // aapt resource value: 0x7f0d014e
+ public const int Widget_AppCompat_ListPopupWindow = 2131558734;
- // aapt resource value: 0x7f0c014f
- public const int Widget_AppCompat_ListView = 2131493199;
+ // aapt resource value: 0x7f0d014f
+ public const int Widget_AppCompat_ListView = 2131558735;
- // aapt resource value: 0x7f0c0150
- public const int Widget_AppCompat_ListView_DropDown = 2131493200;
+ // aapt resource value: 0x7f0d0150
+ public const int Widget_AppCompat_ListView_DropDown = 2131558736;
- // aapt resource value: 0x7f0c0151
- public const int Widget_AppCompat_ListView_Menu = 2131493201;
+ // aapt resource value: 0x7f0d0151
+ public const int Widget_AppCompat_ListView_Menu = 2131558737;
- // aapt resource value: 0x7f0c0152
- public const int Widget_AppCompat_PopupMenu = 2131493202;
+ // aapt resource value: 0x7f0d0152
+ public const int Widget_AppCompat_PopupMenu = 2131558738;
- // aapt resource value: 0x7f0c0153
- public const int Widget_AppCompat_PopupMenu_Overflow = 2131493203;
+ // aapt resource value: 0x7f0d0153
+ public const int Widget_AppCompat_PopupMenu_Overflow = 2131558739;
- // aapt resource value: 0x7f0c0154
- public const int Widget_AppCompat_PopupWindow = 2131493204;
+ // aapt resource value: 0x7f0d0154
+ public const int Widget_AppCompat_PopupWindow = 2131558740;
- // aapt resource value: 0x7f0c0155
- public const int Widget_AppCompat_ProgressBar = 2131493205;
+ // aapt resource value: 0x7f0d0155
+ public const int Widget_AppCompat_ProgressBar = 2131558741;
- // aapt resource value: 0x7f0c0156
- public const int Widget_AppCompat_ProgressBar_Horizontal = 2131493206;
+ // aapt resource value: 0x7f0d0156
+ public const int Widget_AppCompat_ProgressBar_Horizontal = 2131558742;
- // aapt resource value: 0x7f0c0157
- public const int Widget_AppCompat_RatingBar = 2131493207;
+ // aapt resource value: 0x7f0d0157
+ public const int Widget_AppCompat_RatingBar = 2131558743;
- // aapt resource value: 0x7f0c0158
- public const int Widget_AppCompat_RatingBar_Indicator = 2131493208;
+ // aapt resource value: 0x7f0d0158
+ public const int Widget_AppCompat_RatingBar_Indicator = 2131558744;
- // aapt resource value: 0x7f0c0159
- public const int Widget_AppCompat_RatingBar_Small = 2131493209;
+ // aapt resource value: 0x7f0d0159
+ public const int Widget_AppCompat_RatingBar_Small = 2131558745;
- // aapt resource value: 0x7f0c015a
- public const int Widget_AppCompat_SearchView = 2131493210;
+ // aapt resource value: 0x7f0d015a
+ public const int Widget_AppCompat_SearchView = 2131558746;
- // aapt resource value: 0x7f0c015b
- public const int Widget_AppCompat_SearchView_ActionBar = 2131493211;
+ // aapt resource value: 0x7f0d015b
+ public const int Widget_AppCompat_SearchView_ActionBar = 2131558747;
- // aapt resource value: 0x7f0c015c
- public const int Widget_AppCompat_SeekBar = 2131493212;
+ // aapt resource value: 0x7f0d015c
+ public const int Widget_AppCompat_SeekBar = 2131558748;
- // aapt resource value: 0x7f0c015d
- public const int Widget_AppCompat_SeekBar_Discrete = 2131493213;
+ // aapt resource value: 0x7f0d015d
+ public const int Widget_AppCompat_SeekBar_Discrete = 2131558749;
- // aapt resource value: 0x7f0c015e
- public const int Widget_AppCompat_Spinner = 2131493214;
+ // aapt resource value: 0x7f0d015e
+ public const int Widget_AppCompat_Spinner = 2131558750;
- // aapt resource value: 0x7f0c015f
- public const int Widget_AppCompat_Spinner_DropDown = 2131493215;
+ // aapt resource value: 0x7f0d015f
+ public const int Widget_AppCompat_Spinner_DropDown = 2131558751;
- // aapt resource value: 0x7f0c0160
- public const int Widget_AppCompat_Spinner_DropDown_ActionBar = 2131493216;
+ // aapt resource value: 0x7f0d0160
+ public const int Widget_AppCompat_Spinner_DropDown_ActionBar = 2131558752;
- // aapt resource value: 0x7f0c0161
- public const int Widget_AppCompat_Spinner_Underlined = 2131493217;
+ // aapt resource value: 0x7f0d0161
+ public const int Widget_AppCompat_Spinner_Underlined = 2131558753;
- // aapt resource value: 0x7f0c0162
- public const int Widget_AppCompat_TextView_SpinnerItem = 2131493218;
+ // aapt resource value: 0x7f0d0162
+ public const int Widget_AppCompat_TextView_SpinnerItem = 2131558754;
- // aapt resource value: 0x7f0c0163
- public const int Widget_AppCompat_Toolbar = 2131493219;
+ // aapt resource value: 0x7f0d0163
+ public const int Widget_AppCompat_Toolbar = 2131558755;
- // aapt resource value: 0x7f0c0164
- public const int Widget_AppCompat_Toolbar_Button_Navigation = 2131493220;
+ // aapt resource value: 0x7f0d0164
+ public const int Widget_AppCompat_Toolbar_Button_Navigation = 2131558756;
- // aapt resource value: 0x7f0c018c
- public const int Widget_Compat_NotificationActionContainer = 2131493260;
+ // aapt resource value: 0x7f0d018c
+ public const int Widget_Compat_NotificationActionContainer = 2131558796;
- // aapt resource value: 0x7f0c018d
- public const int Widget_Compat_NotificationActionText = 2131493261;
+ // aapt resource value: 0x7f0d018d
+ public const int Widget_Compat_NotificationActionText = 2131558797;
- // aapt resource value: 0x7f0c017e
- public const int Widget_Design_AppBarLayout = 2131493246;
+ // aapt resource value: 0x7f0d017e
+ public const int Widget_Design_AppBarLayout = 2131558782;
- // aapt resource value: 0x7f0c017f
- public const int Widget_Design_BottomNavigationView = 2131493247;
+ // aapt resource value: 0x7f0d017f
+ public const int Widget_Design_BottomNavigationView = 2131558783;
- // aapt resource value: 0x7f0c0180
- public const int Widget_Design_BottomSheet_Modal = 2131493248;
+ // aapt resource value: 0x7f0d0180
+ public const int Widget_Design_BottomSheet_Modal = 2131558784;
- // aapt resource value: 0x7f0c0181
- public const int Widget_Design_CollapsingToolbar = 2131493249;
+ // aapt resource value: 0x7f0d0181
+ public const int Widget_Design_CollapsingToolbar = 2131558785;
- // aapt resource value: 0x7f0c0182
- public const int Widget_Design_CoordinatorLayout = 2131493250;
+ // aapt resource value: 0x7f0d0182
+ public const int Widget_Design_CoordinatorLayout = 2131558786;
- // aapt resource value: 0x7f0c0183
- public const int Widget_Design_FloatingActionButton = 2131493251;
+ // aapt resource value: 0x7f0d0183
+ public const int Widget_Design_FloatingActionButton = 2131558787;
- // aapt resource value: 0x7f0c0184
- public const int Widget_Design_NavigationView = 2131493252;
+ // aapt resource value: 0x7f0d0184
+ public const int Widget_Design_NavigationView = 2131558788;
- // aapt resource value: 0x7f0c0185
- public const int Widget_Design_ScrimInsetsFrameLayout = 2131493253;
+ // aapt resource value: 0x7f0d0185
+ public const int Widget_Design_ScrimInsetsFrameLayout = 2131558789;
- // aapt resource value: 0x7f0c0186
- public const int Widget_Design_Snackbar = 2131493254;
+ // aapt resource value: 0x7f0d0186
+ public const int Widget_Design_Snackbar = 2131558790;
- // aapt resource value: 0x7f0c016a
- public const int Widget_Design_TabLayout = 2131493226;
+ // aapt resource value: 0x7f0d016a
+ public const int Widget_Design_TabLayout = 2131558762;
- // aapt resource value: 0x7f0c0187
- public const int Widget_Design_TextInputLayout = 2131493255;
+ // aapt resource value: 0x7f0d0187
+ public const int Widget_Design_TextInputLayout = 2131558791;
- // aapt resource value: 0x7f0c0009
- public const int Widget_MediaRouter_Light_MediaRouteButton = 2131492873;
+ // aapt resource value: 0x7f0d0009
+ public const int Widget_MediaRouter_Light_MediaRouteButton = 2131558409;
- // aapt resource value: 0x7f0c000a
- public const int Widget_MediaRouter_MediaRouteButton = 2131492874;
+ // aapt resource value: 0x7f0d000a
+ public const int Widget_MediaRouter_MediaRouteButton = 2131558410;
static Style()
{
@@ -5368,6 +5470,22 @@ private Style()
}
}
+ public partial class Xml
+ {
+
+ // aapt resource value: 0x7f080000
+ public const int xamarin_essentials_fileprovider_file_paths = 2131230720;
+
+ static Xml()
+ {
+ global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+ }
+
+ private Xml()
+ {
+ }
+ }
+
public partial class Styleable
{
diff --git a/DeviceTests/DeviceTests.Android/Tests/FileProvider_Tests.cs b/DeviceTests/DeviceTests.Android/Tests/FileProvider_Tests.cs
new file mode 100644
index 000000000..a368603d9
--- /dev/null
+++ b/DeviceTests/DeviceTests.Android/Tests/FileProvider_Tests.cs
@@ -0,0 +1,238 @@
+using System;
+using System.IO;
+using System.Linq;
+using Xamarin.Essentials;
+using Xunit;
+using AndroidEnvironment = Android.OS.Environment;
+
+namespace DeviceTests.Shared
+{
+ public class Android_FileProvider_Tests
+ {
+ [Fact]
+ [Trait(Traits.InteractionType, Traits.InteractionTypes.Human)]
+ public void Share_Simple_Text_File_Test()
+ {
+ // Save a local cache data directory file
+ var file = CreateFile(FileSystem.AppDataDirectory, "share-test.txt");
+
+ // Make sure it is where we expect it to be
+ Assert.False(FileProvider.IsFileInPublicLocation(file));
+
+ // Actually get a safe shareable file uri
+ var shareableUri = Platform.GetShareableFileUri(file);
+
+ // Launch an intent to let tye user pick where to open this content
+ var intent = new Android.Content.Intent(Android.Content.Intent.ActionSend);
+ intent.SetType("text/plain");
+ intent.PutExtra(Android.Content.Intent.ExtraStream, shareableUri);
+ intent.PutExtra(Android.Content.Intent.ExtraTitle, "Title Here");
+ intent.SetFlags(Android.Content.ActivityFlags.GrantReadUriPermission);
+
+ var intentChooser = Android.Content.Intent.CreateChooser(intent, "Pick something");
+
+ Platform.AppContext.StartActivity(intentChooser);
+ }
+
+ [Theory]
+ [InlineData(true, FileProviderLocation.Internal)]
+ [InlineData(true, FileProviderLocation.PreferExternal)]
+ [InlineData(false, FileProviderLocation.Internal)]
+ [InlineData(false, FileProviderLocation.PreferExternal)]
+ public void Get_Shareable_Uri(bool failAccess, FileProviderLocation location)
+ {
+ // Always fail to simulate unmounted media
+ FileProvider.AlwaysFailExternalMediaAccess = failAccess;
+
+ try
+ {
+ // Save a local cache data directory file
+ var file = CreateFile(FileSystem.AppDataDirectory);
+
+ // Make sure it is where we expect it to be
+ Assert.False(FileProvider.IsFileInPublicLocation(file));
+
+ // Actually get a safe shareable file uri
+ var shareableUri = GetShareableUri(file, location);
+
+ // Determine where the file should be found
+ var isInternal = (failAccess || location == FileProviderLocation.Internal);
+ var expectedCache = isInternal ? "internal_cache" : "external_cache";
+ var expectedCacheDir = isInternal
+ ? Platform.AppContext.CacheDir.AbsolutePath
+ : Platform.AppContext.ExternalCacheDir.AbsolutePath;
+
+ // Make sure the uri is what we expected
+ Assert.NotNull(shareableUri);
+ Assert.Equal("content", shareableUri.Scheme);
+ Assert.Equal("com.xamarin.essentials.devicetests.fileProvider", shareableUri.Authority);
+ Assert.Equal(4, shareableUri.PathSegments.Count);
+ Assert.Equal(expectedCache, shareableUri.PathSegments[0]);
+ Assert.Equal("2203693cc04e0be7f4f024d5f9499e13", shareableUri.PathSegments[1]);
+ Assert.True(Guid.TryParseExact(shareableUri.PathSegments[2], "N", out var guid));
+ Assert.Equal(Path.GetFileName(file), shareableUri.PathSegments[3]);
+
+ // Make sure the underlying file exists
+ var realPath = Path.Combine(shareableUri.PathSegments.ToArray())
+ .Replace(expectedCache, expectedCacheDir);
+ Assert.True(File.Exists(realPath));
+ }
+ finally
+ {
+ FileProvider.AlwaysFailExternalMediaAccess = false;
+ }
+ }
+
+ [Fact]
+ public void No_Media_Fails_Get_External_Cache_Shareable_Uri()
+ {
+ // Always fail to simulate unmounted media
+ FileProvider.AlwaysFailExternalMediaAccess = true;
+
+ try
+ {
+ // Save a local cache data directory file
+ var file = CreateFile(FileSystem.AppDataDirectory);
+
+ // Make sure it is where we expect it to be
+ Assert.False(FileProvider.IsFileInPublicLocation(file));
+
+ // try get a uri, but fail as there is no external storage
+ Assert.Throws(() => GetShareableUri(file, FileProviderLocation.External));
+ }
+ finally
+ {
+ FileProvider.AlwaysFailExternalMediaAccess = false;
+ }
+ }
+
+ [Fact]
+ public void Get_External_Cache_Shareable_Uri()
+ {
+ // Save a local cache data directory file
+ var file = CreateFile(FileSystem.AppDataDirectory);
+
+ // Make sure it is where we expect it to be
+ Assert.False(FileProvider.IsFileInPublicLocation(file));
+
+ // Actually get a safe shareable file uri
+ var shareableUri = GetShareableUri(file, FileProviderLocation.External);
+
+ // Make sure the uri is what we expected
+ Assert.NotNull(shareableUri);
+ Assert.Equal("content", shareableUri.Scheme);
+ Assert.Equal("com.xamarin.essentials.devicetests.fileProvider", shareableUri.Authority);
+ Assert.Equal(4, shareableUri.PathSegments.Count);
+ Assert.Equal("external_cache", shareableUri.PathSegments[0]);
+ Assert.Equal("2203693cc04e0be7f4f024d5f9499e13", shareableUri.PathSegments[1]);
+ Assert.True(Guid.TryParseExact(shareableUri.PathSegments[2], "N", out var guid));
+ Assert.Equal(Path.GetFileName(file), shareableUri.PathSegments[3]);
+
+ // Make sure the underlying file exists
+ var realPath = Path.Combine(shareableUri.PathSegments.ToArray())
+ .Replace("external_cache", Platform.AppContext.ExternalCacheDir.AbsolutePath);
+ Assert.True(File.Exists(realPath));
+ }
+
+ [Theory]
+ [InlineData(FileProviderLocation.External)]
+ [InlineData(FileProviderLocation.Internal)]
+ [InlineData(FileProviderLocation.PreferExternal)]
+ public void Get_Existing_Internal_Cache_Shareable_Uri(FileProviderLocation location)
+ {
+ // Save a local cache directory file
+ var file = CreateFile(Platform.AppContext.CacheDir.AbsolutePath);
+
+ // Make sure it is where we expect it to be
+ Assert.True(FileProvider.IsFileInPublicLocation(file));
+
+ // Actually get a safe shareable file uri
+ var shareableUri = GetShareableUri(file, location);
+
+ // Make sure the uri is what we expected
+ Assert.NotNull(shareableUri);
+ Assert.Equal("content", shareableUri.Scheme);
+ Assert.Equal("com.xamarin.essentials.devicetests.fileProvider", shareableUri.Authority);
+ Assert.Equal(new[] { "internal_cache", Path.GetFileName(file) }, shareableUri.PathSegments);
+ }
+
+ [Theory]
+ [InlineData(FileProviderLocation.External)]
+ [InlineData(FileProviderLocation.Internal)]
+ [InlineData(FileProviderLocation.PreferExternal)]
+ public void Get_Existing_External_Cache_Shareable_Uri(FileProviderLocation location)
+ {
+ // Save an external cache directory file
+ var file = CreateFile(Platform.AppContext.ExternalCacheDir.AbsolutePath);
+
+ // Make sure it is where we expect it to be
+ Assert.True(FileProvider.IsFileInPublicLocation(file));
+
+ // Actually get a safe shareable file uri
+ var shareableUri = GetShareableUri(file, location);
+
+ // Make sure the uri is what we expected
+ Assert.NotNull(shareableUri);
+ Assert.Equal("content", shareableUri.Scheme);
+ Assert.Equal("com.xamarin.essentials.devicetests.fileProvider", shareableUri.Authority);
+ Assert.Equal(new[] { "external_cache", Path.GetFileName(file) }, shareableUri.PathSegments);
+ }
+
+ [Theory]
+ [InlineData(FileProviderLocation.External)]
+ [InlineData(FileProviderLocation.Internal)]
+ [InlineData(FileProviderLocation.PreferExternal)]
+ public void Get_Existing_External_Shareable_Uri(FileProviderLocation location)
+ {
+ // Save an external directory file
+ var externalRoot = AndroidEnvironment.ExternalStorageDirectory.AbsolutePath;
+ var root = Platform.AppContext.GetExternalFilesDir(null).AbsolutePath;
+ var file = CreateFile(root);
+
+ // Make sure it is where we expect it to be
+ Assert.True(FileProvider.IsFileInPublicLocation(file));
+
+ // Actually get a safe shareable file uri
+ var shareableUri = GetShareableUri(file, location);
+
+ // Make sure the uri is what we expected
+ Assert.NotNull(shareableUri);
+ Assert.Equal("content", shareableUri.Scheme);
+ Assert.Equal("com.xamarin.essentials.devicetests.fileProvider", shareableUri.Authority);
+
+ // replace the real root with the providers "root"
+ var segements = Path.Combine(root.Replace(externalRoot, "external_files"), Path.GetFileName(file));
+
+ Assert.Equal(segements.Split(Path.DirectorySeparatorChar), shareableUri.PathSegments);
+ }
+
+ static string CreateFile(string root, string name = "the-file.txt")
+ {
+ var file = Path.Combine(root, name);
+
+ if (File.Exists(file))
+ File.Delete(file);
+
+ File.WriteAllText(file, "The file contents.");
+
+ return file;
+ }
+
+ static Android.Net.Uri GetShareableUri(string file, FileProviderLocation location)
+ {
+ try
+ {
+ // use the specific location
+ FileProvider.TemporaryLocation = location;
+
+ // get the uri
+ return Platform.GetShareableFileUri(file);
+ }
+ finally
+ {
+ // reset the location
+ FileProvider.TemporaryLocation = FileProviderLocation.PreferExternal;
+ }
+ }
+ }
+}
diff --git a/DeviceTests/DeviceTests.Shared/Color_Tests.cs b/DeviceTests/DeviceTests.Shared/Color_Tests.cs
new file mode 100644
index 000000000..11096e433
--- /dev/null
+++ b/DeviceTests/DeviceTests.Shared/Color_Tests.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Xamarin.Essentials;
+using Xunit;
+
+namespace DeviceTests
+{
+ public class Color_Tests
+ {
+ byte a = 187;
+ byte r = 52;
+ byte g = 152;
+ byte b = 219;
+
+ [Fact]
+ public void SystemToPlatform()
+ {
+ var system = System.Drawing.Color.FromArgb(a, r, g, b);
+ var platform = system.ToPlatformColor();
+
+#if __IOS__
+ platform.GetRGBA(out var red, out var green, out var blue, out var alpha);
+ Assert.Equal(a, (byte)(alpha * 255));
+ Assert.Equal(r, (byte)(red * 255));
+ Assert.Equal(g, (byte)(green * 255));
+ Assert.Equal(b, (byte)(blue * 255));
+#else
+ Assert.Equal(a, platform.A);
+ Assert.Equal(r, platform.R);
+ Assert.Equal(g, platform.G);
+ Assert.Equal(b, platform.B);
+#endif
+ }
+
+ [Fact]
+ public void PlatformToColor()
+ {
+#if __IOS__
+ var platform = UIKit.UIColor.FromRGBA(r, g, b, a);
+#elif __ANDROID__
+ var platform = new Android.Graphics.Color(r, g, b, a);
+#else
+ var platform = Windows.UI.Color.FromArgb(a, r, g, b);
+#endif
+
+ var system = platform.ToSystemColor();
+ Assert.Equal(a, system.A);
+ Assert.Equal(r, system.R);
+ Assert.Equal(g, system.G);
+ Assert.Equal(b, system.B);
+ }
+ }
+}
diff --git a/DeviceTests/DeviceTests.Shared/DeviceTests.Shared.csproj b/DeviceTests/DeviceTests.Shared/DeviceTests.Shared.csproj
index 2ad635c8e..f94734dc5 100644
--- a/DeviceTests/DeviceTests.Shared/DeviceTests.Shared.csproj
+++ b/DeviceTests/DeviceTests.Shared/DeviceTests.Shared.csproj
@@ -16,7 +16,7 @@
7.2
$(DefineConstants);
$(MSBuildThisFileDirectory)..\docs\en
- Debug;Release;Samples
+ Debug;Release;Samples;Docs
full
@@ -25,13 +25,16 @@
pdbonly
+
+ pdbonly
+
pdbonly
-
+
-
+
@@ -45,19 +48,21 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/DeviceTests/DeviceTests.Shared/Email_Tests.cs b/DeviceTests/DeviceTests.Shared/Email_Tests.cs
index b260dd591..ad53fd9eb 100644
--- a/DeviceTests/DeviceTests.Shared/Email_Tests.cs
+++ b/DeviceTests/DeviceTests.Shared/Email_Tests.cs
@@ -1,4 +1,6 @@
-using System.Threading.Tasks;
+using System;
+using System.IO;
+using System.Threading.Tasks;
using Xamarin.Essentials;
using Xunit;
@@ -31,5 +33,48 @@ public Task Compose_With_Message_Shows_New_Window()
return Email.ComposeAsync(email);
});
}
+
+ [Fact]
+ [Trait(Traits.InteractionType, Traits.InteractionTypes.Human)]
+ public Task Compose_With_Message_Shows_New_Window_BlankCC()
+ {
+ return Utils.OnMainThread(() =>
+ {
+ var email = new EmailMessage
+ {
+ Subject = "Hello World!",
+ Body = "This is a greeting email.",
+ To = { "everyone@example.org" },
+ Cc = { string.Empty },
+ Bcc = { string.Empty },
+ };
+
+ return Email.ComposeAsync(email);
+ });
+ }
+
+ [Fact]
+ [Trait(Traits.InteractionType, Traits.InteractionTypes.Human)]
+ public Task Email_Attachments_are_Sent()
+ {
+ // Save a local cache data directory file
+ var file = Path.Combine(FileSystem.AppDataDirectory, "EmailTest.txt");
+ File.WriteAllText(file, "Attachment contents goes here...");
+
+ return Utils.OnMainThread(() =>
+ {
+ var email = new EmailMessage
+ {
+ Subject = "Hello World!",
+ Body =
+ "This is a greeting email." + Environment.NewLine +
+ "There should be an attachment attached.",
+ To = { "everyone@example.org" },
+ Attachments = { new EmailAttachment(file) }
+ };
+
+ return Email.ComposeAsync(email);
+ });
+ }
}
}
diff --git a/DeviceTests/DeviceTests.Shared/Point_Tests.cs b/DeviceTests/DeviceTests.Shared/Point_Tests.cs
new file mode 100644
index 000000000..902912b9d
--- /dev/null
+++ b/DeviceTests/DeviceTests.Shared/Point_Tests.cs
@@ -0,0 +1,83 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Xamarin.Essentials;
+using Xunit;
+
+namespace DeviceTests
+{
+ public class Point_Tests
+ {
+ int x = 50;
+ int y = 40;
+
+ [Fact]
+ public void SystemToPlatform()
+ {
+ var system = new System.Drawing.Point(x, y);
+ var platform = system.ToPlatformPoint();
+ Assert.Equal(x, platform.X);
+ Assert.Equal(y, platform.Y);
+ }
+
+ [Fact]
+ public void PlatformToSystem()
+ {
+#if __IOS__
+ var platform = new CoreGraphics.CGPoint(x, y);
+#elif __ANDROID__
+ var platform = new Android.Graphics.Point(x, y);
+#else
+ var platform = new Windows.Foundation.Point(x, y);
+#endif
+ var system = platform.ToSystemPoint();
+
+ Assert.Equal(x, system.X);
+ Assert.Equal(y, system.Y);
+ }
+
+ [Theory]
+ [InlineData(float.MaxValue, 0)]
+ [InlineData(0, float.MaxValue)]
+ public void PlatformToSystemException(float x, float y)
+ {
+#if __IOS__
+ var platform = new CoreGraphics.CGPoint(x, y);
+ Assert.Throws(() => platform.ToSystemPoint());
+#elif WINDOWS_UWP
+ var platform = new Windows.Foundation.Point(x, y);
+ Assert.Throws(() => platform.ToSystemPoint());
+#endif
+ }
+
+ [Fact]
+ public void SystemToPlatformF()
+ {
+ var system = new System.Drawing.PointF(x, y);
+#if __IOS__
+ var platform = system.ToPlatformPoint();
+#elif __ANDROID__
+ var platform = system.ToPlatformPointF();
+#else
+ var platform = system.ToPlatformPoint();
+#endif
+ Assert.Equal(x, platform.X);
+ Assert.Equal(y, platform.Y);
+ }
+
+ [Fact]
+ public void PlatformToSystemF()
+ {
+#if __IOS__
+ var platform = new CoreGraphics.CGPoint(x, y);
+#elif __ANDROID__
+ var platform = new Android.Graphics.PointF(x, y);
+#else
+ var platform = new Windows.Foundation.Point(x, y);
+#endif
+ var system = platform.ToSystemPointF();
+ Assert.Equal(x, system.X);
+ Assert.Equal(y, system.Y);
+ }
+ }
+}
diff --git a/DeviceTests/DeviceTests.Shared/Rectangle_Tests.cs b/DeviceTests/DeviceTests.Shared/Rectangle_Tests.cs
new file mode 100644
index 000000000..8a0293eb1
--- /dev/null
+++ b/DeviceTests/DeviceTests.Shared/Rectangle_Tests.cs
@@ -0,0 +1,107 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Xamarin.Essentials;
+using Xunit;
+
+namespace DeviceTests
+{
+ public class Rectangle_Tests
+ {
+ int x = 50;
+ int y = 40;
+ int width = 100;
+ int height = 80;
+
+ [Fact]
+ public void SystemToPlatform()
+ {
+ var system = new System.Drawing.Rectangle(x, y, width, height);
+ var platform = system.ToPlatformRectangle();
+#if __ANDROID__
+ Assert.Equal(x, platform.Left);
+ Assert.Equal(y, platform.Top);
+ Assert.Equal(system.Left, platform.Left);
+ Assert.Equal(system.Top, platform.Top);
+ Assert.Equal(width, platform.Width());
+ Assert.Equal(height, platform.Height());
+#else
+ Assert.Equal(x, platform.X);
+ Assert.Equal(y, platform.Y);
+ Assert.Equal(width, platform.Width);
+ Assert.Equal(height, platform.Height);
+#endif
+ }
+
+ [Fact]
+ public void PlatformToSystem()
+ {
+#if __IOS__
+ var platform = new CoreGraphics.CGRect(x, y, width, height);
+#elif __ANDROID__
+ var platform = new Android.Graphics.Rect(x, y, x + width, y + height);
+#else
+ var platform = new Windows.Foundation.Rect(x, y, width, height);
+#endif
+ var system = platform.ToSystemRectangle();
+
+ Assert.Equal(x, system.X);
+ Assert.Equal(y, system.Y);
+ Assert.Equal(width, system.Width);
+ Assert.Equal(height, system.Height);
+ }
+
+ [Theory]
+ [InlineData(float.MaxValue, 0, 0, 0)]
+ [InlineData(0, float.MaxValue, 0, 0)]
+ [InlineData(0, 0, float.MaxValue, 0)]
+ [InlineData(0, 0, 0, float.MaxValue)]
+ public void PlatformToSystemException(float x, float y, float height, float width)
+ {
+#if __IOS__
+ var platform = new CoreGraphics.CGRect(x, y, height, width);
+ Assert.Throws(() => platform.ToSystemRectangle());
+#elif WINDOWS_UWP
+ var platform = new Windows.Foundation.Rect(x, y, height, width);
+ Assert.Throws(() => platform.ToSystemRectangle());
+#endif
+ }
+
+ [Fact]
+ public void SystemToPlatformF()
+ {
+ var system = new System.Drawing.RectangleF(x, y, width, height);
+#if __ANDROID__
+ var platform = system.ToPlatformRectangleF();
+ Assert.Equal(x, platform.Left);
+ Assert.Equal(y, platform.Top);
+ Assert.Equal(width, platform.Width());
+ Assert.Equal(height, platform.Height());
+#else
+ var platform = system.ToPlatformRectangle();
+ Assert.Equal(x, platform.X);
+ Assert.Equal(y, platform.Y);
+ Assert.Equal(width, platform.Width);
+ Assert.Equal(height, platform.Height);
+#endif
+ }
+
+ [Fact]
+ public void PlatformToSystemF()
+ {
+#if __IOS__
+ var platform = new CoreGraphics.CGRect(x, y, width, height);
+#elif __ANDROID__
+ var platform = new Android.Graphics.RectF(x, y, x + width, y + height);
+#else
+ var platform = new Windows.Foundation.Rect(x, y, width, height);
+#endif
+
+ var system = platform.ToSystemRectangleF();
+ Assert.Equal(x, system.X);
+ Assert.Equal(y, system.Y);
+ Assert.Equal(width, system.Width);
+ Assert.Equal(height, system.Height);
+ }
+ }
+}
diff --git a/DeviceTests/DeviceTests.Shared/Size_Tests.cs b/DeviceTests/DeviceTests.Shared/Size_Tests.cs
new file mode 100644
index 000000000..163c449d0
--- /dev/null
+++ b/DeviceTests/DeviceTests.Shared/Size_Tests.cs
@@ -0,0 +1,86 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Xamarin.Essentials;
+using Xunit;
+
+namespace DeviceTests
+{
+ public class Size_Tests
+ {
+ int width = 50;
+ int height = 40;
+
+ [Fact]
+ public void SystemToPlatform()
+ {
+ var system = new System.Drawing.Size(width, height);
+ var platform = system.ToPlatformSize();
+ Assert.Equal(width, platform.Width);
+ Assert.Equal(height, platform.Height);
+ }
+
+ [Fact]
+ public void PlatformToSystem()
+ {
+#if __IOS__
+ var platform = new CoreGraphics.CGSize(width, height);
+#elif __ANDROID__
+ var platform = new Android.Util.Size(width, height);
+#else
+ var platform = new Windows.Foundation.Size(width, height);
+#endif
+ var system = platform.ToSystemSize();
+
+ Assert.Equal(width, system.Width);
+ Assert.Equal(height, system.Height);
+ }
+
+ [Theory]
+ [InlineData(float.MaxValue, 0)]
+ [InlineData(0, float.MaxValue)]
+ public void PlatformToSystemException(float width, float height)
+ {
+#if __IOS__
+ var platform = new CoreGraphics.CGSize(width, height);
+ Assert.Throws(() => platform.ToSystemSize());
+#elif WINDOWS_UWP
+ var platform = new Windows.Foundation.Size(width, height);
+ Assert.Throws(() => platform.ToSystemSize());
+#endif
+ }
+
+ [Fact]
+ public void SystemToPlatformF()
+ {
+ var system = new System.Drawing.SizeF(width, height);
+#if __IOS__
+ var platform = system.ToPlatformSize();
+#elif __ANDROID__
+ var platform = system.ToPlatformSizeF();
+#else
+ var platform = system.ToPlatformSize();
+#endif
+ Assert.Equal(width, platform.Width);
+ Assert.Equal(height, platform.Height);
+ }
+
+ [Fact]
+ public void PlatformToSystemF()
+ {
+#if __IOS__
+ var platform = new CoreGraphics.CGSize(width, height);
+ var system = platform.ToSystemSize();
+#elif __ANDROID__
+ var platform = new Android.Util.SizeF(width, height);
+ var system = platform.ToSystemSizeF();
+#else
+ var platform = new Windows.Foundation.Size(width, height);
+ var system = platform.ToSystemSize();
+#endif
+
+ Assert.Equal(width, system.Width);
+ Assert.Equal(height, system.Height);
+ }
+ }
+}
diff --git a/DeviceTests/DeviceTests.UWP/DeviceTests.UWP.csproj b/DeviceTests/DeviceTests.UWP/DeviceTests.UWP.csproj
index 47eec6b4f..eccaed9fd 100644
--- a/DeviceTests/DeviceTests.UWP/DeviceTests.UWP.csproj
+++ b/DeviceTests/DeviceTests.UWP/DeviceTests.UWP.csproj
@@ -18,7 +18,7 @@
512
{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
DeviceTests.UWP_TemporaryKey.pfx
- 167A368DF44D3492E081E0A0317B51A870E26E61
+ B6AECFF881A1BBD4BCCC82C9C2798FF4C89DD38B
true
@@ -127,7 +127,7 @@
-
+
@@ -211,5 +211,47 @@
14.0
+
+ true
+ bin\ARM\Docs\
+ TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS
+ true
+ ;2008;NU1603
+ true
+ pdbonly
+ ARM
+ false
+ prompt
+ MinimumRecommendedRules.ruleset
+ true
+
+
+ true
+ bin\x64\Docs\
+ TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS
+ true
+ ;2008;NU1603
+ true
+ pdbonly
+ x64
+ false
+ prompt
+ MinimumRecommendedRules.ruleset
+ true
+
+
+ true
+ bin\x86\Docs\
+ TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS
+ true
+ ;2008;NU1603
+ true
+ pdbonly
+ x86
+ false
+ prompt
+ MinimumRecommendedRules.ruleset
+ true
+
\ No newline at end of file
diff --git a/DeviceTests/DeviceTests.UWP/DeviceTests.UWP_TemporaryKey.pfx b/DeviceTests/DeviceTests.UWP/DeviceTests.UWP_TemporaryKey.pfx
index 463dc0abf..ac3916784 100644
Binary files a/DeviceTests/DeviceTests.UWP/DeviceTests.UWP_TemporaryKey.pfx and b/DeviceTests/DeviceTests.UWP/DeviceTests.UWP_TemporaryKey.pfx differ
diff --git a/DeviceTests/DeviceTests.UWP/Package.appxmanifest b/DeviceTests/DeviceTests.UWP/Package.appxmanifest
index 8a39f2a2b..f0a33b62f 100644
--- a/DeviceTests/DeviceTests.UWP/Package.appxmanifest
+++ b/DeviceTests/DeviceTests.UWP/Package.appxmanifest
@@ -1,10 +1,10 @@
-
+
Tests
- Xamarin Inc.
+ Microsoft
Assets\StoreLogo.png
diff --git a/DeviceTests/DeviceTests.iOS/DeviceTests.iOS.csproj b/DeviceTests/DeviceTests.iOS/DeviceTests.iOS.csproj
index 27923203a..e09b3e11c 100644
--- a/DeviceTests/DeviceTests.iOS/DeviceTests.iOS.csproj
+++ b/DeviceTests/DeviceTests.iOS/DeviceTests.iOS.csproj
@@ -103,14 +103,37 @@
+
+ true
+ bin\iPhoneSimulator\Docs\
+ __IOS__;__MOBILE__;__UNIFIED__;
+ true
+ pdbonly
+ AnyCPU
+ false
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+ true
+ bin\iPhone\Docs\
+ __IOS__;__MOBILE__;__UNIFIED__;
+ true
+ pdbonly
+ AnyCPU
+ false
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
-
+
diff --git a/DeviceTests/DeviceTests.iOS/Entitlements.plist b/DeviceTests/DeviceTests.iOS/Entitlements.plist
index 404630c3c..44c362266 100644
--- a/DeviceTests/DeviceTests.iOS/Entitlements.plist
+++ b/DeviceTests/DeviceTests.iOS/Entitlements.plist
@@ -4,7 +4,7 @@
keychain-access-groups
- com.xamarin.essentials.devicetests
+ $(AppIdentifierPrefix)$(CFBundleIdentifier)
diff --git a/DeviceTests/build.cake b/DeviceTests/build.cake
index d92735965..848210d93 100644
--- a/DeviceTests/build.cake
+++ b/DeviceTests/build.cake
@@ -15,7 +15,7 @@ var IOS_TEST_RESULTS_PATH = "./xunit-ios.xml";
var ANDROID_PROJ = "./DeviceTests.Android/DeviceTests.Android.csproj";
var ANDROID_APK_PATH = "./DeviceTests.Android/bin/Release/com.xamarin.essentials.devicetests-Signed.apk";
var ANDROID_TEST_RESULTS_PATH = "./xunit-android.xml";
-var ANDROID_AVD = "CABOODLE";
+var ANDROID_AVD = EnvironmentVariable("ANDROID_AVD") ?? "CABOODLE";
var ANDROID_PKG_NAME = "com.xamarin.essentials.devicetests";
var ANDROID_EMU_TARGET = EnvironmentVariable("ANDROID_EMU_TARGET") ?? "system-images;android-26;google_apis;x86";
var ANDROID_EMU_DEVICE = EnvironmentVariable("ANDROID_EMU_DEVICE") ?? "Nexus 5X";
@@ -176,10 +176,14 @@ Task ("test-android-emu")
.IsDependentOn ("build-android")
.Does (() =>
{
- if (EnvironmentVariable("ANDROID_SKIP_AVD_CREATE") == null) {
- var avdSettings = new AndroidAvdManagerToolSettings { SdkRoot = ANDROID_HOME };
+ var avdSettings = new AndroidAvdManagerToolSettings { SdkRoot = ANDROID_HOME };
+ Information ("Available AVDs:");
+ foreach (var avd in AndroidAvdListAvds (avdSettings)) {
+ Information (" - " + avd);
+ }
- // Create the AVD if necessary
+ // Create the AVD if necessary
+ if (EnvironmentVariable("ANDROID_SKIP_AVD_CREATE") == null) {
Information ("Creating AVD if necessary: {0}...", ANDROID_AVD);
if (!AndroidAvdListAvds (avdSettings).Any (a => a.Name == ANDROID_AVD))
AndroidAvdCreate (ANDROID_AVD, ANDROID_EMU_TARGET, ANDROID_EMU_DEVICE, force: true, settings: avdSettings);
diff --git a/README.md b/README.md
index d461a5639..c3423cc1d 100644
--- a/README.md
+++ b/README.md
@@ -92,7 +92,7 @@ If building on Visual Studio 2017, you will need the following SDKs and workload
### You will need the following SDKs
-* Android 8.1 SDK Installed
+* Android 9.0, 8.1, 8.0, 7.1, 7.0, & 6.0 SDK Installed
* UWP 10.0.16299 SDK Installed
If using Visual Studio for Mac the project can be built at the command line with MSBuild. To change the project type that you are working with, simply edit Xamarin.Essentials.csproj and modify the TargetFrameworks for only the project type you want to use.
@@ -110,3 +110,4 @@ Here are some frequently asked questions about Xamarin.Essentials, but be sure t
## License
Please see the [License](LICENSE).
+
diff --git a/Samples/Samples.Android/Resources/Resource.designer.cs b/Samples/Samples.Android/Resources/Resource.designer.cs
index 953777081..147433d0a 100644
--- a/Samples/Samples.Android/Resources/Resource.designer.cs
+++ b/Samples/Samples.Android/Resources/Resource.designer.cs
@@ -45,6 +45,108 @@ public static void UpdateIdValues()
global::Microsoft.AppCenter.Distribute.Resource.String.appcenter_distribute_update_failed_dialog_message = global::Samples.Droid.Resource.String.appcenter_distribute_update_failed_dialog_message;
global::Microsoft.AppCenter.Distribute.Resource.String.appcenter_distribute_update_failed_dialog_reinstall = global::Samples.Droid.Resource.String.appcenter_distribute_update_failed_dialog_reinstall;
global::Microsoft.AppCenter.Distribute.Resource.String.appcenter_distribute_update_failed_dialog_title = global::Samples.Droid.Resource.String.appcenter_distribute_update_failed_dialog_title;
+ global::Xamarin.Essentials.Resource.Attribute.font = global::Samples.Droid.Resource.Attribute.font;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderAuthority = global::Samples.Droid.Resource.Attribute.fontProviderAuthority;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderCerts = global::Samples.Droid.Resource.Attribute.fontProviderCerts;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderFetchStrategy = global::Samples.Droid.Resource.Attribute.fontProviderFetchStrategy;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderFetchTimeout = global::Samples.Droid.Resource.Attribute.fontProviderFetchTimeout;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderPackage = global::Samples.Droid.Resource.Attribute.fontProviderPackage;
+ global::Xamarin.Essentials.Resource.Attribute.fontProviderQuery = global::Samples.Droid.Resource.Attribute.fontProviderQuery;
+ global::Xamarin.Essentials.Resource.Attribute.fontStyle = global::Samples.Droid.Resource.Attribute.fontStyle;
+ global::Xamarin.Essentials.Resource.Attribute.fontWeight = global::Samples.Droid.Resource.Attribute.fontWeight;
+ global::Xamarin.Essentials.Resource.Boolean.abc_action_bar_embed_tabs = global::Samples.Droid.Resource.Boolean.abc_action_bar_embed_tabs;
+ global::Xamarin.Essentials.Resource.Color.notification_action_color_filter = global::Samples.Droid.Resource.Color.notification_action_color_filter;
+ global::Xamarin.Essentials.Resource.Color.notification_icon_bg_color = global::Samples.Droid.Resource.Color.notification_icon_bg_color;
+ global::Xamarin.Essentials.Resource.Color.ripple_material_light = global::Samples.Droid.Resource.Color.ripple_material_light;
+ global::Xamarin.Essentials.Resource.Color.secondary_text_default_material_light = global::Samples.Droid.Resource.Color.secondary_text_default_material_light;
+ global::Xamarin.Essentials.Resource.Dimension.compat_button_inset_horizontal_material = global::Samples.Droid.Resource.Dimension.compat_button_inset_horizontal_material;
+ global::Xamarin.Essentials.Resource.Dimension.compat_button_inset_vertical_material = global::Samples.Droid.Resource.Dimension.compat_button_inset_vertical_material;
+ global::Xamarin.Essentials.Resource.Dimension.compat_button_padding_horizontal_material = global::Samples.Droid.Resource.Dimension.compat_button_padding_horizontal_material;
+ global::Xamarin.Essentials.Resource.Dimension.compat_button_padding_vertical_material = global::Samples.Droid.Resource.Dimension.compat_button_padding_vertical_material;
+ global::Xamarin.Essentials.Resource.Dimension.compat_control_corner_material = global::Samples.Droid.Resource.Dimension.compat_control_corner_material;
+ global::Xamarin.Essentials.Resource.Dimension.notification_action_icon_size = global::Samples.Droid.Resource.Dimension.notification_action_icon_size;
+ global::Xamarin.Essentials.Resource.Dimension.notification_action_text_size = global::Samples.Droid.Resource.Dimension.notification_action_text_size;
+ global::Xamarin.Essentials.Resource.Dimension.notification_big_circle_margin = global::Samples.Droid.Resource.Dimension.notification_big_circle_margin;
+ global::Xamarin.Essentials.Resource.Dimension.notification_content_margin_start = global::Samples.Droid.Resource.Dimension.notification_content_margin_start;
+ global::Xamarin.Essentials.Resource.Dimension.notification_large_icon_height = global::Samples.Droid.Resource.Dimension.notification_large_icon_height;
+ global::Xamarin.Essentials.Resource.Dimension.notification_large_icon_width = global::Samples.Droid.Resource.Dimension.notification_large_icon_width;
+ global::Xamarin.Essentials.Resource.Dimension.notification_main_column_padding_top = global::Samples.Droid.Resource.Dimension.notification_main_column_padding_top;
+ global::Xamarin.Essentials.Resource.Dimension.notification_media_narrow_margin = global::Samples.Droid.Resource.Dimension.notification_media_narrow_margin;
+ global::Xamarin.Essentials.Resource.Dimension.notification_right_icon_size = global::Samples.Droid.Resource.Dimension.notification_right_icon_size;
+ global::Xamarin.Essentials.Resource.Dimension.notification_right_side_padding_top = global::Samples.Droid.Resource.Dimension.notification_right_side_padding_top;
+ global::Xamarin.Essentials.Resource.Dimension.notification_small_icon_background_padding = global::Samples.Droid.Resource.Dimension.notification_small_icon_background_padding;
+ global::Xamarin.Essentials.Resource.Dimension.notification_small_icon_size_as_large = global::Samples.Droid.Resource.Dimension.notification_small_icon_size_as_large;
+ global::Xamarin.Essentials.Resource.Dimension.notification_subtext_size = global::Samples.Droid.Resource.Dimension.notification_subtext_size;
+ global::Xamarin.Essentials.Resource.Dimension.notification_top_pad = global::Samples.Droid.Resource.Dimension.notification_top_pad;
+ global::Xamarin.Essentials.Resource.Dimension.notification_top_pad_large_text = global::Samples.Droid.Resource.Dimension.notification_top_pad_large_text;
+ global::Xamarin.Essentials.Resource.Drawable.notification_action_background = global::Samples.Droid.Resource.Drawable.notification_action_background;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg = global::Samples.Droid.Resource.Drawable.notification_bg;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_low = global::Samples.Droid.Resource.Drawable.notification_bg_low;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_low_normal = global::Samples.Droid.Resource.Drawable.notification_bg_low_normal;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_low_pressed = global::Samples.Droid.Resource.Drawable.notification_bg_low_pressed;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_normal = global::Samples.Droid.Resource.Drawable.notification_bg_normal;
+ global::Xamarin.Essentials.Resource.Drawable.notification_bg_normal_pressed = global::Samples.Droid.Resource.Drawable.notification_bg_normal_pressed;
+ global::Xamarin.Essentials.Resource.Drawable.notification_icon_background = global::Samples.Droid.Resource.Drawable.notification_icon_background;
+ global::Xamarin.Essentials.Resource.Drawable.notification_template_icon_bg = global::Samples.Droid.Resource.Drawable.notification_template_icon_bg;
+ global::Xamarin.Essentials.Resource.Drawable.notification_template_icon_low_bg = global::Samples.Droid.Resource.Drawable.notification_template_icon_low_bg;
+ global::Xamarin.Essentials.Resource.Drawable.notification_tile_bg = global::Samples.Droid.Resource.Drawable.notification_tile_bg;
+ global::Xamarin.Essentials.Resource.Drawable.notify_panel_notification_icon_bg = global::Samples.Droid.Resource.Drawable.notify_panel_notification_icon_bg;
+ global::Xamarin.Essentials.Resource.Id.action_container = global::Samples.Droid.Resource.Id.action_container;
+ global::Xamarin.Essentials.Resource.Id.action_divider = global::Samples.Droid.Resource.Id.action_divider;
+ global::Xamarin.Essentials.Resource.Id.action_image = global::Samples.Droid.Resource.Id.action_image;
+ global::Xamarin.Essentials.Resource.Id.action_text = global::Samples.Droid.Resource.Id.action_text;
+ global::Xamarin.Essentials.Resource.Id.actions = global::Samples.Droid.Resource.Id.actions;
+ global::Xamarin.Essentials.Resource.Id.async = global::Samples.Droid.Resource.Id.async;
+ global::Xamarin.Essentials.Resource.Id.blocking = global::Samples.Droid.Resource.Id.blocking;
+ global::Xamarin.Essentials.Resource.Id.chronometer = global::Samples.Droid.Resource.Id.chronometer;
+ global::Xamarin.Essentials.Resource.Id.forever = global::Samples.Droid.Resource.Id.forever;
+ global::Xamarin.Essentials.Resource.Id.icon = global::Samples.Droid.Resource.Id.icon;
+ global::Xamarin.Essentials.Resource.Id.icon_group = global::Samples.Droid.Resource.Id.icon_group;
+ global::Xamarin.Essentials.Resource.Id.info = global::Samples.Droid.Resource.Id.info;
+ global::Xamarin.Essentials.Resource.Id.italic = global::Samples.Droid.Resource.Id.italic;
+ global::Xamarin.Essentials.Resource.Id.line1 = global::Samples.Droid.Resource.Id.line1;
+ global::Xamarin.Essentials.Resource.Id.line3 = global::Samples.Droid.Resource.Id.line3;
+ global::Xamarin.Essentials.Resource.Id.normal = global::Samples.Droid.Resource.Id.normal;
+ global::Xamarin.Essentials.Resource.Id.notification_background = global::Samples.Droid.Resource.Id.notification_background;
+ global::Xamarin.Essentials.Resource.Id.notification_main_column = global::Samples.Droid.Resource.Id.notification_main_column;
+ global::Xamarin.Essentials.Resource.Id.notification_main_column_container = global::Samples.Droid.Resource.Id.notification_main_column_container;
+ global::Xamarin.Essentials.Resource.Id.right_icon = global::Samples.Droid.Resource.Id.right_icon;
+ global::Xamarin.Essentials.Resource.Id.right_side = global::Samples.Droid.Resource.Id.right_side;
+ global::Xamarin.Essentials.Resource.Id.tag_transition_group = global::Samples.Droid.Resource.Id.tag_transition_group;
+ global::Xamarin.Essentials.Resource.Id.text = global::Samples.Droid.Resource.Id.text;
+ global::Xamarin.Essentials.Resource.Id.text2 = global::Samples.Droid.Resource.Id.text2;
+ global::Xamarin.Essentials.Resource.Id.time = global::Samples.Droid.Resource.Id.time;
+ global::Xamarin.Essentials.Resource.Id.title = global::Samples.Droid.Resource.Id.title;
+ global::Xamarin.Essentials.Resource.Integer.status_bar_notification_info_maxnum = global::Samples.Droid.Resource.Integer.status_bar_notification_info_maxnum;
+ global::Xamarin.Essentials.Resource.Layout.notification_action = global::Samples.Droid.Resource.Layout.notification_action;
+ global::Xamarin.Essentials.Resource.Layout.notification_action_tombstone = global::Samples.Droid.Resource.Layout.notification_action_tombstone;
+ global::Xamarin.Essentials.Resource.Layout.notification_template_custom_big = global::Samples.Droid.Resource.Layout.notification_template_custom_big;
+ global::Xamarin.Essentials.Resource.Layout.notification_template_icon_group = global::Samples.Droid.Resource.Layout.notification_template_icon_group;
+ global::Xamarin.Essentials.Resource.Layout.notification_template_part_chronometer = global::Samples.Droid.Resource.Layout.notification_template_part_chronometer;
+ global::Xamarin.Essentials.Resource.Layout.notification_template_part_time = global::Samples.Droid.Resource.Layout.notification_template_part_time;
+ global::Xamarin.Essentials.Resource.String.status_bar_notification_info_overflow = global::Samples.Droid.Resource.String.status_bar_notification_info_overflow;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification = global::Samples.Droid.Resource.Style.TextAppearance_Compat_Notification;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Info = global::Samples.Droid.Resource.Style.TextAppearance_Compat_Notification_Info;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Line2 = global::Samples.Droid.Resource.Style.TextAppearance_Compat_Notification_Line2;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Time = global::Samples.Droid.Resource.Style.TextAppearance_Compat_Notification_Time;
+ global::Xamarin.Essentials.Resource.Style.TextAppearance_Compat_Notification_Title = global::Samples.Droid.Resource.Style.TextAppearance_Compat_Notification_Title;
+ global::Xamarin.Essentials.Resource.Style.Widget_Compat_NotificationActionContainer = global::Samples.Droid.Resource.Style.Widget_Compat_NotificationActionContainer;
+ global::Xamarin.Essentials.Resource.Style.Widget_Compat_NotificationActionText = global::Samples.Droid.Resource.Style.Widget_Compat_NotificationActionText;
+ global::Xamarin.Essentials.Resource.Xml.xamarin_essentials_fileprovider_file_paths = global::Samples.Droid.Resource.Xml.xamarin_essentials_fileprovider_file_paths;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily = global::Samples.Droid.Resource.Styleable.FontFamily;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderAuthority = global::Samples.Droid.Resource.Styleable.FontFamily_fontProviderAuthority;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderCerts = global::Samples.Droid.Resource.Styleable.FontFamily_fontProviderCerts;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderFetchStrategy = global::Samples.Droid.Resource.Styleable.FontFamily_fontProviderFetchStrategy;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderFetchTimeout = global::Samples.Droid.Resource.Styleable.FontFamily_fontProviderFetchTimeout;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderPackage = global::Samples.Droid.Resource.Styleable.FontFamily_fontProviderPackage;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamily_fontProviderQuery = global::Samples.Droid.Resource.Styleable.FontFamily_fontProviderQuery;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont = global::Samples.Droid.Resource.Styleable.FontFamilyFont;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_android_font = global::Samples.Droid.Resource.Styleable.FontFamilyFont_android_font;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_android_fontStyle = global::Samples.Droid.Resource.Styleable.FontFamilyFont_android_fontStyle;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_android_fontWeight = global::Samples.Droid.Resource.Styleable.FontFamilyFont_android_fontWeight;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_font = global::Samples.Droid.Resource.Styleable.FontFamilyFont_font;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_fontStyle = global::Samples.Droid.Resource.Styleable.FontFamilyFont_fontStyle;
+ global::Xamarin.Essentials.Resource.Styleable.FontFamilyFont_fontWeight = global::Samples.Droid.Resource.Styleable.FontFamilyFont_fontWeight;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarSize = global::Samples.Droid.Resource.Attribute.actionBarSize;
}
@@ -5450,6 +5552,9 @@ public partial class Xml
// aapt resource value: 0x7f080000
public const int my_backup_rules = 2131230720;
+ // aapt resource value: 0x7f080001
+ public const int xamarin_essentials_fileprovider_file_paths = 2131230721;
+
static Xml()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
diff --git a/Samples/Samples.Android/Samples.Android.csproj b/Samples/Samples.Android/Samples.Android.csproj
index 584c92bac..2fd646278 100644
--- a/Samples/Samples.Android/Samples.Android.csproj
+++ b/Samples/Samples.Android/Samples.Android.csproj
@@ -66,6 +66,17 @@
Full
Xamarin.Forms.Platform.Android;Xamarin.Forms.Platform;Xamarin.Forms.Core;Xamarin.Forms.Xaml;Samples;FormsViewGroup;
+
+ true
+ bin\Docs\
+ true
+ true
+ pdbonly
+ AnyCPU
+ Off
+ prompt
+ C:\GitHub\xamarin\Essentials\Xamarin.Essentials.ruleset
+
@@ -74,18 +85,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/Samples.UWP/Package.appxmanifest b/Samples/Samples.UWP/Package.appxmanifest
index 7e0d9e011..428cd14c5 100644
--- a/Samples/Samples.UWP/Package.appxmanifest
+++ b/Samples/Samples.UWP/Package.appxmanifest
@@ -1,10 +1,10 @@
-
+
Xamarin.Essentials
- Xamarin Inc.
+ Microsoft
Assets\StoreLogo.png
diff --git a/Samples/Samples.UWP/Samples.UWP.csproj b/Samples/Samples.UWP/Samples.UWP.csproj
index 5e43d9dbd..1ce7498c7 100644
--- a/Samples/Samples.UWP/Samples.UWP.csproj
+++ b/Samples/Samples.UWP/Samples.UWP.csproj
@@ -18,7 +18,7 @@
512
{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
Samples.UWP_TemporaryKey.pfx
- C6BC5BC8980F7F989B31D5313F863DE37B9AB9C2
+ 14BD7347CBFCD5496C3BCD7EE1688BEE6B4BC1FD
true
@@ -126,11 +126,11 @@
true
-
-
-
-
-
+
+
+
+
+
@@ -214,6 +214,58 @@
14.0
+
+ bin\ARM\Docs\
+ TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS
+ true
+ true
+ ;2008
+ true
+ pdbonly
+ ARM
+ false
+ prompt
+ C:\GitHub\xamarin\Essentials\Xamarin.Essentials.ruleset
+ true
+
+
+ bin\x64\Docs\
+ TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS
+ true
+ true
+ ;2008
+ true
+ pdbonly
+ x64
+ false
+ prompt
+ C:\GitHub\xamarin\Essentials\Xamarin.Essentials.ruleset
+ true
+
+
+ bin\x86\Docs\
+ TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS
+ true
+ true
+ ;2008
+ true
+ pdbonly
+ x86
+ false
+ prompt
+ C:\GitHub\xamarin\Essentials\Xamarin.Essentials.ruleset
+ true
+
+
+ bin\Win32\Docs\
+ ;CODE_ANALYSIS
+ true
+ true
+ AnyCPU
+ false
+ C:\GitHub\xamarin\Essentials\Xamarin.Essentials.ruleset
+ true
+
\ No newline at end of file
diff --git a/Samples/Samples.UWP/Samples.UWP_TemporaryKey.pfx b/Samples/Samples.UWP/Samples.UWP_TemporaryKey.pfx
index ea4be393d..113fef117 100644
Binary files a/Samples/Samples.UWP/Samples.UWP_TemporaryKey.pfx and b/Samples/Samples.UWP/Samples.UWP_TemporaryKey.pfx differ
diff --git a/Samples/Samples.iOS/Entitlements.plist b/Samples/Samples.iOS/Entitlements.plist
index 6512aef47..44c362266 100644
--- a/Samples/Samples.iOS/Entitlements.plist
+++ b/Samples/Samples.iOS/Entitlements.plist
@@ -4,7 +4,7 @@
keychain-access-groups
- com.xamarin.essentials
+ $(AppIdentifierPrefix)$(CFBundleIdentifier)
diff --git a/Samples/Samples.iOS/Samples.iOS.csproj b/Samples/Samples.iOS/Samples.iOS.csproj
index e5164258f..9b38928fa 100644
--- a/Samples/Samples.iOS/Samples.iOS.csproj
+++ b/Samples/Samples.iOS/Samples.iOS.csproj
@@ -91,6 +91,30 @@
iPhone Developer
Entitlements.plist
+
+ true
+ bin\iPhoneSimulator\Docs\
+ __IOS__;__MOBILE__;__UNIFIED__;
+ true
+ true
+ pdbonly
+ AnyCPU
+ false
+ prompt
+ C:\GitHub\xamarin\Essentials\Xamarin.Essentials.ruleset
+
+
+ true
+ bin\iPhone\Docs\
+ __IOS__;__MOBILE__;__UNIFIED__;
+ true
+ true
+ pdbonly
+ AnyCPU
+ false
+ prompt
+ C:\GitHub\xamarin\Essentials\Xamarin.Essentials.ruleset
+
@@ -98,11 +122,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/Samples/Samples/App.xaml.cs b/Samples/Samples/App.xaml.cs
index 068b4160f..d1aeea401 100644
--- a/Samples/Samples/App.xaml.cs
+++ b/Samples/Samples/App.xaml.cs
@@ -19,6 +19,11 @@ public App()
{
InitializeComponent();
+ // Enable currently experimental features
+ ExperimentalFeatures.Enable(
+ ExperimentalFeatures.EmailAttachments,
+ ExperimentalFeatures.ShareFileRequest);
+
VersionTracking.Track();
MainPage = new NavigationPage(new HomePage());
diff --git a/Samples/Samples/Samples.csproj b/Samples/Samples/Samples.csproj
index ed3c1829a..3685478f0 100644
--- a/Samples/Samples/Samples.csproj
+++ b/Samples/Samples/Samples.csproj
@@ -2,7 +2,7 @@
netstandard2.0
- Debug;Release;Samples
+ Debug;Release;Samples;Docs
@@ -13,17 +13,21 @@
pdbonly
true
+
+ pdbonly
+ true
+
pdbonly
true
-
-
-
-
-
+
+
+
+
+
diff --git a/Samples/Samples/View/AccelerometerPage.xaml b/Samples/Samples/View/AccelerometerPage.xaml
index 917c7a35e..290bd1331 100644
--- a/Samples/Samples/View/AccelerometerPage.xaml
+++ b/Samples/Samples/View/AccelerometerPage.xaml
@@ -9,7 +9,7 @@
-
+
@@ -20,6 +20,7 @@
+
@@ -40,6 +41,8 @@
+
+
diff --git a/Samples/Samples/View/BrowserPage.xaml b/Samples/Samples/View/BrowserPage.xaml
index eaa6eb0ab..7c5069b22 100644
--- a/Samples/Samples/View/BrowserPage.xaml
+++ b/Samples/Samples/View/BrowserPage.xaml
@@ -20,11 +20,28 @@
Command="{Binding OpenUriCommand}"
IsEnabled="{Binding IsNotBusy}" />
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/Samples/View/EmailPage.xaml b/Samples/Samples/View/EmailPage.xaml
index 3e92da02f..70acd451f 100644
--- a/Samples/Samples/View/EmailPage.xaml
+++ b/Samples/Samples/View/EmailPage.xaml
@@ -8,6 +8,10 @@
+
+
+
+
@@ -17,12 +21,15 @@
-
+
+
-
+
-
+
+
+
@@ -34,6 +41,15 @@
AutoSize="TextChanges"
VerticalOptions="FillAndExpand" HeightRequest="100" />
+
+
+
+
+
+
+
+
diff --git a/Samples/Samples/View/SharePage.xaml b/Samples/Samples/View/SharePage.xaml
index 5d80d882f..4519c99b8 100644
--- a/Samples/Samples/View/SharePage.xaml
+++ b/Samples/Samples/View/SharePage.xaml
@@ -9,11 +9,13 @@
-
+
+
+
@@ -34,7 +36,22 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/Samples/ViewModel/AccelerometerViewModel.cs b/Samples/Samples/ViewModel/AccelerometerViewModel.cs
index 56924bcdc..08976d86e 100644
--- a/Samples/Samples/ViewModel/AccelerometerViewModel.cs
+++ b/Samples/Samples/ViewModel/AccelerometerViewModel.cs
@@ -11,6 +11,7 @@ public class AccelerometerViewModel : BaseViewModel
double x;
double y;
double z;
+ string shakeTime = string.Empty;
bool isActive;
int speed = 0;
@@ -24,6 +25,12 @@ public AccelerometerViewModel()
public ICommand StopCommand { get; }
+ public string ShakeTime
+ {
+ get => shakeTime;
+ set => SetProperty(ref shakeTime, value);
+ }
+
public double X
{
get => x;
@@ -60,14 +67,19 @@ public int Speed
public override void OnAppearing()
{
Accelerometer.ReadingChanged += OnReadingChanged;
+ Accelerometer.ShakeDetected += Accelerometer_OnShaked;
+
base.OnAppearing();
}
+ void Accelerometer_OnShaked(object sender, EventArgs e) =>
+ ShakeTime = $"Shake detected: {DateTime.Now.ToLongTimeString()}";
+
public override void OnDisappearing()
{
OnStop();
Accelerometer.ReadingChanged -= OnReadingChanged;
-
+ Accelerometer.ShakeDetected -= Accelerometer_OnShaked;
base.OnDisappearing();
}
diff --git a/Samples/Samples/ViewModel/BrowserViewModel.cs b/Samples/Samples/ViewModel/BrowserViewModel.cs
index b81360d38..0483aff85 100644
--- a/Samples/Samples/ViewModel/BrowserViewModel.cs
+++ b/Samples/Samples/ViewModel/BrowserViewModel.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
+using System.Linq;
using System.Windows.Input;
using Xamarin.Essentials;
using Xamarin.Forms;
@@ -12,10 +13,27 @@ public class BrowserViewModel : BaseViewModel
string browserStatus;
string uri = "http://xamarin.com";
int browserType = (int)BrowserLaunchMode.SystemPreferred;
+ int browserTitleType = (int)BrowserTitleMode.Default;
+ int controlColor = 0;
+ int toolbarColor = 0;
+
+ Dictionary colorDictionary;
+
+ public List AllColors { get; }
public BrowserViewModel()
{
OpenUriCommand = new Command(OpenUri);
+
+ colorDictionary = typeof(Color)
+ .GetFields()
+ .Where(f => f.FieldType == typeof(Color) && f.IsStatic && f.IsPublic)
+ .ToDictionary(f => f.Name, f => (Color)f.GetValue(null));
+
+ var colors = colorDictionary.Keys.ToList();
+ colors.Insert(0, "None");
+
+ AllColors = colors;
}
public ICommand OpenUriCommand { get; }
@@ -35,8 +53,8 @@ public string Uri
public List BrowserLaunchModes { get; } =
new List
{
- $"Use Default Browser App",
$"Use System-Preferred Browser",
+ $"Use Default Browser App"
};
public int BrowserType
@@ -45,6 +63,32 @@ public int BrowserType
set => SetProperty(ref browserType, value);
}
+ public List BrowserTitleModes { get; } =
+ new List
+ {
+ $"Use Default Mode",
+ $"Show Title",
+ $"Hide Title"
+ };
+
+ public int BrowserTitleType
+ {
+ get => browserTitleType;
+ set => SetProperty(ref browserTitleType, value);
+ }
+
+ public int ToolbarColor
+ {
+ get => toolbarColor;
+ set => SetProperty(ref toolbarColor, value);
+ }
+
+ public int ControlColor
+ {
+ get => controlColor;
+ set => SetProperty(ref controlColor, value);
+ }
+
async void OpenUri()
{
if (IsBusy)
@@ -53,7 +97,13 @@ async void OpenUri()
IsBusy = true;
try
{
- await Browser.OpenAsync(uri, (BrowserLaunchMode)BrowserType);
+ await Browser.OpenAsync(uri, new BrowserLaunchOptions
+ {
+ LaunchMode = (BrowserLaunchMode)BrowserType,
+ TitleMode = (BrowserTitleMode)BrowserTitleType,
+ PreferredToolbarColor = GetColor(ToolbarColor),
+ PreferredControlColor = GetColor(ControlColor)
+ });
}
catch (Exception e)
{
@@ -64,6 +114,13 @@ async void OpenUri()
{
IsBusy = false;
}
+
+ Color? GetColor(int index)
+ {
+ return index <= 0
+ ? (Color?)null
+ : (System.Drawing.Color)colorDictionary[AllColors[index]];
+ }
}
}
}
diff --git a/Samples/Samples/ViewModel/DeviceInfoViewModel.cs b/Samples/Samples/ViewModel/DeviceInfoViewModel.cs
index 6fab032d8..a1925d59f 100644
--- a/Samples/Samples/ViewModel/DeviceInfoViewModel.cs
+++ b/Samples/Samples/ViewModel/DeviceInfoViewModel.cs
@@ -31,7 +31,6 @@ public DisplayInfo ScreenMetrics
public override void OnAppearing()
{
base.OnAppearing();
-
DeviceDisplay.MainDisplayInfoChanged += OnScreenMetricsChanged;
ScreenMetrics = DeviceDisplay.MainDisplayInfo;
}
diff --git a/Samples/Samples/ViewModel/EmailViewModel.cs b/Samples/Samples/ViewModel/EmailViewModel.cs
index 22e1ff0cb..eb6b65b6d 100644
--- a/Samples/Samples/ViewModel/EmailViewModel.cs
+++ b/Samples/Samples/ViewModel/EmailViewModel.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
using System.Windows.Input;
using Xamarin.Essentials;
@@ -9,11 +10,13 @@ namespace Samples.ViewModel
{
public class EmailViewModel : BaseViewModel
{
- string subject;
- string body;
- string recipientsTo;
+ string subject = "Hello World!";
+ string body = "This is the email body.\nWe hope you like it!";
+ string recipientsTo = "someone@example.org";
string recipientsCc;
string recipientsBcc;
+ string attachmentContents;
+ string attachmentName;
bool isHtml;
public EmailViewModel()
@@ -53,6 +56,18 @@ public string RecipientsBcc
set => SetProperty(ref recipientsBcc, value);
}
+ public string AttachmentContents
+ {
+ get => attachmentContents;
+ set => SetProperty(ref attachmentContents, value);
+ }
+
+ public string AttachmentName
+ {
+ get => attachmentName;
+ set => SetProperty(ref attachmentName, value);
+ }
+
public bool IsHtml
{
get => isHtml;
@@ -67,7 +82,7 @@ async void OnSendEmail()
IsBusy = true;
try
{
- await Email.ComposeAsync(new EmailMessage
+ var message = new EmailMessage
{
Subject = Subject,
Body = Body,
@@ -75,7 +90,19 @@ await Email.ComposeAsync(new EmailMessage
To = Split(RecipientsTo),
Cc = Split(RecipientsCc),
Bcc = Split(RecipientsBcc),
- });
+ };
+
+ if (!string.IsNullOrWhiteSpace(AttachmentName) || !string.IsNullOrWhiteSpace(AttachmentContents))
+ {
+ // create a temprary file
+ var fn = string.IsNullOrWhiteSpace(AttachmentName) ? "Attachment.txt" : AttachmentName.Trim();
+ var file = Path.Combine(FileSystem.CacheDirectory, fn);
+ File.WriteAllText(file, AttachmentContents);
+
+ message.Attachments.Add(new EmailAttachment(file));
+ }
+
+ await Email.ComposeAsync(message);
}
finally
{
diff --git a/Samples/Samples/ViewModel/GeolocationViewModel.cs b/Samples/Samples/ViewModel/GeolocationViewModel.cs
index 09c85ed3f..9627eb22d 100644
--- a/Samples/Samples/ViewModel/GeolocationViewModel.cs
+++ b/Samples/Samples/ViewModel/GeolocationViewModel.cs
@@ -103,7 +103,8 @@ string FormatLocation(Location location, Exception ex = null)
$"Heading: {(location.Course.HasValue ? location.Course.Value.ToString() : notAvailable)}\n" +
$"Speed: {(location.Speed.HasValue ? location.Speed.Value.ToString() : notAvailable)}\n" +
$"Date (UTC): {location.Timestamp:d}\n" +
- $"Time (UTC): {location.Timestamp:T}";
+ $"Time (UTC): {location.Timestamp:T}" +
+ $"Moking Provider: {location.IsFromMockProvider}";
}
public override void OnDisappearing()
diff --git a/Samples/Samples/ViewModel/HomeViewModel.cs b/Samples/Samples/ViewModel/HomeViewModel.cs
index 18612963e..25fd1b29a 100644
--- a/Samples/Samples/ViewModel/HomeViewModel.cs
+++ b/Samples/Samples/ViewModel/HomeViewModel.cs
@@ -166,7 +166,7 @@ public HomeViewModel()
"📲",
"Share",
typeof(SharePage),
- "Send text and website uris to other apps.",
+ "Send text, website uris and files to other apps.",
new[] { "data", "transfer", "share", "communication" }),
new SampleItem(
"💬",
diff --git a/Samples/Samples/ViewModel/ShareViewModel.cs b/Samples/Samples/ViewModel/ShareViewModel.cs
index 7602269bc..dd63df134 100644
--- a/Samples/Samples/ViewModel/ShareViewModel.cs
+++ b/Samples/Samples/ViewModel/ShareViewModel.cs
@@ -1,4 +1,5 @@
-using System.Windows.Input;
+using System.IO;
+using System.Windows.Input;
using Xamarin.Essentials;
using Xamarin.Forms;
@@ -12,12 +13,18 @@ class ShareViewModel : BaseViewModel
string uri;
string subject;
string title;
+ string shareFileAttachmentContents;
+ string shareFileAttachmentName;
+ string shareFileTitle;
public ICommand RequestCommand { get; }
+ public ICommand RequestFileCommand { get; }
+
public ShareViewModel()
{
RequestCommand = new Command(OnRequest);
+ RequestFileCommand = new Command(OnFileRequest);
}
public bool ShareText
@@ -56,6 +63,24 @@ public string Title
set => SetProperty(ref title, value);
}
+ public string ShareFileTitle
+ {
+ get => shareFileTitle;
+ set => SetProperty(ref shareFileTitle, value);
+ }
+
+ public string ShareFileAttachmentContents
+ {
+ get => shareFileAttachmentContents;
+ set => SetProperty(ref shareFileAttachmentContents, value);
+ }
+
+ public string ShareFileAttachmentName
+ {
+ get => shareFileAttachmentName;
+ set => SetProperty(ref shareFileAttachmentName, value);
+ }
+
async void OnRequest()
{
await Share.RequestAsync(new ShareTextRequest
@@ -66,5 +91,22 @@ await Share.RequestAsync(new ShareTextRequest
Title = Title
});
}
+
+ async void OnFileRequest()
+ {
+ if (!string.IsNullOrWhiteSpace(ShareFileAttachmentContents))
+ {
+ // create a temprary file
+ var fn = string.IsNullOrWhiteSpace(ShareFileAttachmentName) ? "Attachment.txt" : ShareFileAttachmentName.Trim();
+ var file = Path.Combine(FileSystem.CacheDirectory, fn);
+ File.WriteAllText(file, ShareFileAttachmentContents);
+
+ await Share.RequestAsync(new ShareFileRequest
+ {
+ Title = Title,
+ File = new ShareFile(file)
+ });
+ }
+ }
}
}
diff --git a/Tests/Accelerometer_Tests.cs b/Tests/Accelerometer_Tests.cs
index 5696f5157..02819833c 100644
--- a/Tests/Accelerometer_Tests.cs
+++ b/Tests/Accelerometer_Tests.cs
@@ -1,4 +1,5 @@
-using Xamarin.Essentials;
+using System;
+using Xamarin.Essentials;
using Xunit;
namespace Tests
@@ -54,5 +55,55 @@ public void Accelerometer_Comparison(
Assert.NotEqual(data1.GetHashCode(), data2.GetHashCode());
}
}
+
+ [Fact]
+ public void InitialShaking()
+ {
+ var q = new AccelerometerQueue();
+ Assert.False(q.IsShaking);
+ }
+
+ [Fact]
+ public void ShakingTests()
+ {
+ var now = DateTime.UtcNow;
+ var q = new AccelerometerQueue();
+ q.Add(GetShakeTime(now, 0), false);
+ q.Add(GetShakeTime(now, .3), false);
+ q.Add(GetShakeTime(now, .6), false);
+ q.Add(GetShakeTime(now, .9), false);
+ Assert.False(q.IsShaking);
+
+ // The oldest two entries will be removed.
+ q.Add(GetShakeTime(now, 1.2), true);
+ q.Add(GetShakeTime(now, 1.5), true);
+ Assert.False(q.IsShaking);
+
+ // Another entry should be removed, now 3 out of 4 are true.
+ q.Add(GetShakeTime(now, 1.8), true);
+ Assert.True(q.IsShaking);
+
+ q.Add(GetShakeTime(now, 2.1), false);
+ Assert.True(q.IsShaking);
+
+ q.Add(GetShakeTime(now, 2.4), false);
+ Assert.False(q.IsShaking);
+ }
+
+ [Fact]
+ public void ClearQueue()
+ {
+ var now = DateTime.UtcNow;
+ var q = new AccelerometerQueue();
+ q.Add(GetShakeTime(now, 0), true);
+ q.Add(GetShakeTime(now, .1), true);
+ q.Add(GetShakeTime(now, .3), true);
+ Assert.True(q.IsShaking);
+ q.Clear();
+ Assert.False(q.IsShaking);
+ }
+
+ long GetShakeTime(DateTime now, double seconds) =>
+ now.AddSeconds(seconds).Nanoseconds();
}
}
diff --git a/Tests/Color_Tests.cs b/Tests/Color_Tests.cs
new file mode 100644
index 000000000..47aefa896
--- /dev/null
+++ b/Tests/Color_Tests.cs
@@ -0,0 +1,129 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Text;
+using Xamarin.Essentials;
+using Xunit;
+
+namespace Tests
+{
+ public class Color_Tests
+ {
+ float h = 204;
+ float s = 69.9f;
+ float l = 53.1f;
+ int r = 52;
+ int g = 152;
+ int b = 219;
+
+ [Fact]
+ public void FromHsl()
+ {
+ var color = ColorConverters.FromHsl(h, s, l);
+ Assert.Equal(255, color.A);
+ Assert.Equal(r, color.R);
+ Assert.Equal(g, color.G);
+ Assert.Equal(b, color.B);
+ }
+
+ [Fact]
+ public void FromUint()
+ {
+ var color = ColorConverters.FromUInt(4294933007);
+ Assert.Equal(255, color.A);
+ Assert.Equal(255, color.R);
+ Assert.Equal(122, color.G);
+ Assert.Equal(15, color.B);
+ }
+
+ [Fact]
+ public void ToUInt()
+ {
+ var color = Color.FromArgb(255, 255, 122, 15);
+ var i = color.ToUInt();
+ Assert.Equal(4294933007U, i);
+ }
+
+ [Theory]
+ [InlineData("#3498DB", 255, 52, 152, 219)]
+ [InlineData("#C0C0C0", 255, 192, 192, 192)]
+ [InlineData("3498DB", 255, 52, 152, 219)]
+ [InlineData("C0C0C0", 255, 192, 192, 192)]
+ [InlineData("#903498DB", 144, 52, 152, 219)]
+ [InlineData("#90C0C0C0", 144, 192, 192, 192)]
+ public void FromHex(string hex, int a, int r, int g, int b)
+ {
+ var color = ColorConverters.FromHex(hex);
+ Assert.Equal(a, color.A);
+ Assert.Equal(r, color.R);
+ Assert.Equal(g, color.G);
+ Assert.Equal(b, color.B);
+ }
+
+ [Fact]
+ public void FromHsla()
+ {
+ var a = 186;
+ var color = ColorConverters.FromHsla(h, s, l, 186);
+ Assert.Equal(a, color.A);
+ Assert.Equal(r, color.R);
+ Assert.Equal(g, color.G);
+ Assert.Equal(b, color.B);
+ }
+
+ [Fact]
+ public void MuliplyAlpha()
+ {
+ var color = Color.FromArgb(r, g, b);
+ color = color.MultiplyAlpha(.5f);
+ Assert.Equal((int)(255 * .5f), color.A);
+ Assert.Equal(r, color.R);
+ Assert.Equal(g, color.G);
+ Assert.Equal(b, color.B);
+ }
+
+ [Fact]
+ public void WithHue()
+ {
+ var color = Color.FromArgb(r, g, b);
+ color = color.WithHue(10);
+ Assert.Equal(255, color.A);
+ Assert.Equal(219, color.R);
+ Assert.Equal(80, color.G);
+ Assert.Equal(52, color.B);
+ }
+
+ [Fact]
+ public void WithAlpha()
+ {
+ var color = Color.FromArgb(r, g, b);
+ color = color.WithAlpha(10);
+ Assert.Equal(10, color.A);
+ Assert.Equal(r, color.R);
+ Assert.Equal(g, color.G);
+ Assert.Equal(b, color.B);
+ }
+
+ [Fact]
+ public void WithSaturation()
+ {
+ var color = Color.FromArgb(r, g, b);
+ color = color.WithSaturation(10);
+ Assert.Equal(255, color.A);
+ Assert.Equal(124, color.R);
+ Assert.Equal(138, color.G);
+ Assert.Equal(147, color.B);
+ }
+
+ [Fact]
+ public void WithLuminosity()
+ {
+ var color = Color.FromArgb(r, g, b);
+ color = color.WithLuminosity(10);
+ Assert.Equal(255, color.A);
+ Assert.Equal(8, color.R);
+ Assert.Equal(29, color.G);
+ Assert.Equal(43, color.B);
+ }
+ }
+}
diff --git a/Tests/Share_Tests.cs b/Tests/Share_Tests.cs
index d4d838fc1..99b87590a 100644
--- a/Tests/Share_Tests.cs
+++ b/Tests/Share_Tests.cs
@@ -1,4 +1,5 @@
-using System.Threading.Tasks;
+using System;
+using System.Threading.Tasks;
using Xamarin.Essentials;
using Xunit;
@@ -17,5 +18,9 @@ public async Task Request_Text_Title_NetStandard() =>
[Fact]
public async Task Request_Text_Request_NetStandard() =>
await Assert.ThrowsAsync(() => Share.RequestAsync(new ShareTextRequest()));
+
+ [Fact]
+ public async Task Request_File_Request_NetStandard() =>
+ await Assert.ThrowsAsync(() => Share.RequestAsync(new ShareFileRequest()));
}
}
diff --git a/Tests/Tests.csproj b/Tests/Tests.csproj
index d0d7bae98..1770d65c3 100644
--- a/Tests/Tests.csproj
+++ b/Tests/Tests.csproj
@@ -3,7 +3,7 @@
netcoreapp2.0
false
- Debug;Release;Samples
+ Debug;Release;Samples;Docs
XamarinEssentialsTests
@@ -11,7 +11,6 @@
-
diff --git a/Tests/UnitConverters_Tests.cs b/Tests/UnitConverters_Tests.cs
index f4a1a6ed8..8d7679c83 100644
--- a/Tests/UnitConverters_Tests.cs
+++ b/Tests/UnitConverters_Tests.cs
@@ -130,9 +130,41 @@ public void KilometersToMiles(double km, double miles)
[InlineData(42.93708, -75.6107, -33.92528, 18.42389, 12789.5628)] // new york -> cape town
[InlineData(45.80721, 15.96757, 19.432608, -99.133209, 10264.4796)] // zagreb -> mexico city
[InlineData(43.623409, -79.368683, 42.35866, -71.05674, 690.2032)] // toronto -> boston, ma
+ [InlineData(37.720134, -122.182552, 37.720266, -122.181969, .0533)]
public void CoordinatesToKilometers(double lat1, double lon1, double lat2, double lon2, double distance)
{
Assert.Equal(distance, UnitConverters.CoordinatesToKilometers(lat1, lon1, lat2, lon2), 4);
+ var location1 = new Location(lat1, lon1);
+ var location2 = new Location(lat2, lon2);
+ Assert.Equal(distance, Location.CalculateDistance(location1, location2, DistanceUnits.Kilometers), 4);
+ Assert.Equal(distance, Location.CalculateDistance(location2, location1, DistanceUnits.Kilometers), 4);
+ Assert.Equal(distance, location1.CalculateDistance(location2, DistanceUnits.Kilometers), 4);
+ Assert.Equal(distance, location2.CalculateDistance(location1, DistanceUnits.Kilometers), 4);
+ Assert.Equal(distance, LocationExtensions.CalculateDistance(location1, location2, DistanceUnits.Kilometers), 4);
+ Assert.Equal(distance, LocationExtensions.CalculateDistance(location2, location1, DistanceUnits.Kilometers), 4);
+ }
+
+ [Theory]
+ [InlineData(55.85781, -4.24253, 51.509865, -0.118092, 554.3128)] // glasgow -> london
+ [InlineData(36.12, -86.67, 33.94, -118.40, 2886.4444)] // nashville, tn -> los angeles, ca
+ [InlineData(51.509865, -0.118092, -33.92528, 18.42389, 9671.1251)] // london -> cape town
+ [InlineData(51.509865, -0.118092, 40.42028, -3.70577, 1263.4938)] // london -> madrid
+ [InlineData(42.93708, -75.6107, -33.92528, 18.42389, 12789.5628)] // new york -> cape town
+ [InlineData(45.80721, 15.96757, 19.432608, -99.133209, 10264.4796)] // zagreb -> mexico city
+ [InlineData(43.623409, -79.368683, 42.35866, -71.05674, 690.2032)] // toronto -> boston, ma
+ [InlineData(37.720134, -122.182552, 37.720266, -122.181969, .0533)]
+ public void CoordinatesToMiles(double lat1, double lon1, double lat2, double lon2, double distance)
+ {
+ distance = UnitConverters.KilometersToMiles(distance);
+ Assert.Equal(distance, UnitConverters.CoordinatesToMiles(lat1, lon1, lat2, lon2), 3);
+ var location1 = new Location(lat1, lon1);
+ var location2 = new Location(lat2, lon2);
+ Assert.Equal(distance, Location.CalculateDistance(location1, location2, DistanceUnits.Miles), 3);
+ Assert.Equal(distance, Location.CalculateDistance(location2, location1, DistanceUnits.Miles), 3);
+ Assert.Equal(distance, location1.CalculateDistance(location2, DistanceUnits.Miles), 3);
+ Assert.Equal(distance, location2.CalculateDistance(location1, DistanceUnits.Miles), 3);
+ Assert.Equal(distance, LocationExtensions.CalculateDistance(location1, location2, DistanceUnits.Miles), 3);
+ Assert.Equal(distance, LocationExtensions.CalculateDistance(location2, location1, DistanceUnits.Miles), 3);
}
}
}
diff --git a/Xamarin.Essentials.sln b/Xamarin.Essentials.sln
index 41283a8fe..3ab5e7c1c 100644
--- a/Xamarin.Essentials.sln
+++ b/Xamarin.Essentials.sln
@@ -52,6 +52,12 @@ Global
Debug|iPhoneSimulator = Debug|iPhoneSimulator
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
+ Docs|Any CPU = Docs|Any CPU
+ Docs|ARM = Docs|ARM
+ Docs|iPhone = Docs|iPhone
+ Docs|iPhoneSimulator = Docs|iPhoneSimulator
+ Docs|x64 = Docs|x64
+ Docs|x86 = Docs|x86
Release|Any CPU = Release|Any CPU
Release|ARM = Release|ARM
Release|iPhone = Release|iPhone
@@ -78,6 +84,18 @@ Global
{63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Debug|x64.Build.0 = Debug|Any CPU
{63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Debug|x86.ActiveCfg = Debug|Any CPU
{63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Debug|x86.Build.0 = Debug|Any CPU
+ {63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Docs|Any CPU.ActiveCfg = Docs|Any CPU
+ {63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Docs|Any CPU.Build.0 = Docs|Any CPU
+ {63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Docs|ARM.ActiveCfg = Docs|Any CPU
+ {63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Docs|ARM.Build.0 = Docs|Any CPU
+ {63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Docs|iPhone.ActiveCfg = Docs|Any CPU
+ {63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Docs|iPhone.Build.0 = Docs|Any CPU
+ {63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Docs|iPhoneSimulator.ActiveCfg = Docs|Any CPU
+ {63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Docs|iPhoneSimulator.Build.0 = Docs|Any CPU
+ {63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Docs|x64.ActiveCfg = Docs|Any CPU
+ {63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Docs|x64.Build.0 = Docs|Any CPU
+ {63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Docs|x86.ActiveCfg = Docs|Any CPU
+ {63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Docs|x86.Build.0 = Docs|Any CPU
{63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Release|Any CPU.ActiveCfg = Release|Any CPU
{63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Release|Any CPU.Build.0 = Release|Any CPU
{63A4F6A1-48BF-4D32-AED7-82F605EDB042}.Release|ARM.ActiveCfg = Release|Any CPU
@@ -114,6 +132,18 @@ Global
{77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Debug|x64.Build.0 = Debug|Any CPU
{77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Debug|x86.ActiveCfg = Debug|Any CPU
{77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Debug|x86.Build.0 = Debug|Any CPU
+ {77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Docs|Any CPU.ActiveCfg = Docs|Any CPU
+ {77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Docs|Any CPU.Build.0 = Docs|Any CPU
+ {77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Docs|ARM.ActiveCfg = Docs|Any CPU
+ {77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Docs|ARM.Build.0 = Docs|Any CPU
+ {77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Docs|iPhone.ActiveCfg = Docs|Any CPU
+ {77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Docs|iPhone.Build.0 = Docs|Any CPU
+ {77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Docs|iPhoneSimulator.ActiveCfg = Docs|Any CPU
+ {77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Docs|iPhoneSimulator.Build.0 = Docs|Any CPU
+ {77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Docs|x64.ActiveCfg = Docs|Any CPU
+ {77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Docs|x64.Build.0 = Docs|Any CPU
+ {77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Docs|x86.ActiveCfg = Docs|Any CPU
+ {77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Docs|x86.Build.0 = Docs|Any CPU
{77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Release|Any CPU.Build.0 = Release|Any CPU
{77C2F93D-6EB7-49F7-A74A-C80499EC206A}.Release|ARM.ActiveCfg = Release|Any CPU
@@ -149,6 +179,18 @@ Global
{2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Debug|x64.Build.0 = Debug|Any CPU
{2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Debug|x86.ActiveCfg = Debug|Any CPU
{2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Debug|x86.Build.0 = Debug|Any CPU
+ {2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Docs|Any CPU.ActiveCfg = Docs|Any CPU
+ {2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Docs|Any CPU.Build.0 = Docs|Any CPU
+ {2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Docs|ARM.ActiveCfg = Docs|Any CPU
+ {2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Docs|ARM.Build.0 = Docs|Any CPU
+ {2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Docs|iPhone.ActiveCfg = Docs|Any CPU
+ {2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Docs|iPhone.Build.0 = Docs|Any CPU
+ {2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Docs|iPhoneSimulator.ActiveCfg = Docs|Any CPU
+ {2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Docs|iPhoneSimulator.Build.0 = Docs|Any CPU
+ {2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Docs|x64.ActiveCfg = Docs|Any CPU
+ {2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Docs|x64.Build.0 = Docs|Any CPU
+ {2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Docs|x86.ActiveCfg = Docs|Any CPU
+ {2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Docs|x86.Build.0 = Docs|Any CPU
{2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Release|Any CPU.Build.0 = Release|Any CPU
{2550ED91-8AE1-4E9A-A964-C11515C8FA28}.Release|ARM.ActiveCfg = Release|Any CPU
@@ -191,6 +233,24 @@ Global
{C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Debug|x86.ActiveCfg = Debug|Any CPU
{C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Debug|x86.Build.0 = Debug|Any CPU
{C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Debug|x86.Deploy.0 = Debug|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|Any CPU.ActiveCfg = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|Any CPU.Build.0 = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|Any CPU.Deploy.0 = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|ARM.ActiveCfg = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|ARM.Build.0 = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|ARM.Deploy.0 = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|iPhone.ActiveCfg = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|iPhone.Build.0 = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|iPhone.Deploy.0 = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|iPhoneSimulator.ActiveCfg = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|iPhoneSimulator.Build.0 = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|iPhoneSimulator.Deploy.0 = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|x64.ActiveCfg = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|x64.Build.0 = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|x64.Deploy.0 = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|x86.ActiveCfg = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|x86.Build.0 = Docs|Any CPU
+ {C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Docs|x86.Deploy.0 = Docs|Any CPU
{C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Release|Any CPU.Build.0 = Release|Any CPU
{C1CD30D3-52CA-4F8E-8499-BE88567CA2F8}.Release|Any CPU.Deploy.0 = Release|Any CPU
@@ -239,6 +299,15 @@ Global
{E2571C97-C048-4F91-8BB3-546CF7410C4C}.Debug|x64.Build.0 = Debug|iPhoneSimulator
{E2571C97-C048-4F91-8BB3-546CF7410C4C}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
{E2571C97-C048-4F91-8BB3-546CF7410C4C}.Debug|x86.Build.0 = Debug|iPhoneSimulator
+ {E2571C97-C048-4F91-8BB3-546CF7410C4C}.Docs|Any CPU.ActiveCfg = Docs|iPhoneSimulator
+ {E2571C97-C048-4F91-8BB3-546CF7410C4C}.Docs|Any CPU.Build.0 = Docs|iPhoneSimulator
+ {E2571C97-C048-4F91-8BB3-546CF7410C4C}.Docs|ARM.ActiveCfg = Docs|iPhone
+ {E2571C97-C048-4F91-8BB3-546CF7410C4C}.Docs|iPhone.ActiveCfg = Docs|iPhone
+ {E2571C97-C048-4F91-8BB3-546CF7410C4C}.Docs|iPhone.Build.0 = Docs|iPhone
+ {E2571C97-C048-4F91-8BB3-546CF7410C4C}.Docs|iPhoneSimulator.ActiveCfg = Docs|iPhoneSimulator
+ {E2571C97-C048-4F91-8BB3-546CF7410C4C}.Docs|iPhoneSimulator.Build.0 = Docs|iPhoneSimulator
+ {E2571C97-C048-4F91-8BB3-546CF7410C4C}.Docs|x64.ActiveCfg = Docs|iPhone
+ {E2571C97-C048-4F91-8BB3-546CF7410C4C}.Docs|x86.ActiveCfg = Docs|iPhone
{E2571C97-C048-4F91-8BB3-546CF7410C4C}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
{E2571C97-C048-4F91-8BB3-546CF7410C4C}.Release|Any CPU.Build.0 = Release|iPhoneSimulator
{E2571C97-C048-4F91-8BB3-546CF7410C4C}.Release|ARM.ActiveCfg = Release|iPhone
@@ -278,6 +347,20 @@ Global
{A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Debug|x86.ActiveCfg = Debug|x86
{A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Debug|x86.Build.0 = Debug|x86
{A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Debug|x86.Deploy.0 = Debug|x86
+ {A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Docs|Any CPU.ActiveCfg = Docs|x86
+ {A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Docs|Any CPU.Build.0 = Docs|x86
+ {A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Docs|Any CPU.Deploy.0 = Docs|x86
+ {A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Docs|ARM.ActiveCfg = Docs|ARM
+ {A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Docs|ARM.Build.0 = Docs|ARM
+ {A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Docs|ARM.Deploy.0 = Docs|ARM
+ {A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Docs|iPhone.ActiveCfg = Docs|x86
+ {A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Docs|iPhoneSimulator.ActiveCfg = Docs|x86
+ {A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Docs|x64.ActiveCfg = Docs|x64
+ {A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Docs|x64.Build.0 = Docs|x64
+ {A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Docs|x64.Deploy.0 = Docs|x64
+ {A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Docs|x86.ActiveCfg = Docs|x86
+ {A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Docs|x86.Build.0 = Docs|x86
+ {A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Docs|x86.Deploy.0 = Docs|x86
{A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Release|Any CPU.ActiveCfg = Release|x86
{A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Release|Any CPU.Build.0 = Release|x86
{A0798FC9-AB9D-4CCA-AF44-71B7A4691D5A}.Release|Any CPU.Deploy.0 = Release|x86
@@ -328,6 +411,24 @@ Global
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x86.ActiveCfg = Debug|Any CPU
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x86.Build.0 = Debug|Any CPU
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x86.Deploy.0 = Debug|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|Any CPU.ActiveCfg = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|Any CPU.Build.0 = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|Any CPU.Deploy.0 = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|ARM.ActiveCfg = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|ARM.Build.0 = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|ARM.Deploy.0 = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|iPhone.ActiveCfg = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|iPhone.Build.0 = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|iPhone.Deploy.0 = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|iPhoneSimulator.ActiveCfg = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|iPhoneSimulator.Build.0 = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|iPhoneSimulator.Deploy.0 = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|x64.ActiveCfg = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|x64.Build.0 = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|x64.Deploy.0 = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|x86.ActiveCfg = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|x86.Build.0 = Docs|Any CPU
+ {CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Docs|x86.Deploy.0 = Docs|Any CPU
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|Any CPU.Build.0 = Release|Any CPU
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|Any CPU.Deploy.0 = Release|Any CPU
@@ -374,6 +475,15 @@ Global
{EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|x64.Build.0 = Debug|iPhoneSimulator
{EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
{EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|x86.Build.0 = Debug|iPhoneSimulator
+ {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Docs|Any CPU.ActiveCfg = Docs|iPhoneSimulator
+ {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Docs|Any CPU.Build.0 = Docs|iPhoneSimulator
+ {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Docs|ARM.ActiveCfg = Docs|iPhone
+ {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Docs|iPhone.ActiveCfg = Docs|iPhone
+ {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Docs|iPhone.Build.0 = Docs|iPhone
+ {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Docs|iPhoneSimulator.ActiveCfg = Docs|iPhoneSimulator
+ {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Docs|iPhoneSimulator.Build.0 = Docs|iPhoneSimulator
+ {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Docs|x64.ActiveCfg = Docs|iPhone
+ {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Docs|x86.ActiveCfg = Docs|iPhone
{EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
{EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|Any CPU.Build.0 = Release|iPhoneSimulator
{EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|ARM.ActiveCfg = Release|iPhone
@@ -412,6 +522,19 @@ Global
{4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Debug|x86.ActiveCfg = Debug|x86
{4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Debug|x86.Build.0 = Debug|x86
{4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Debug|x86.Deploy.0 = Debug|x86
+ {4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Docs|Any CPU.ActiveCfg = Docs|x86
+ {4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Docs|Any CPU.Build.0 = Docs|x86
+ {4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Docs|ARM.ActiveCfg = Docs|ARM
+ {4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Docs|ARM.Build.0 = Docs|ARM
+ {4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Docs|ARM.Deploy.0 = Docs|ARM
+ {4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Docs|iPhone.ActiveCfg = Docs|x86
+ {4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Docs|iPhoneSimulator.ActiveCfg = Docs|x86
+ {4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Docs|x64.ActiveCfg = Docs|x64
+ {4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Docs|x64.Build.0 = Docs|x64
+ {4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Docs|x64.Deploy.0 = Docs|x64
+ {4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Docs|x86.ActiveCfg = Docs|x86
+ {4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Docs|x86.Build.0 = Docs|x86
+ {4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Docs|x86.Deploy.0 = Docs|x86
{4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Release|Any CPU.ActiveCfg = Release|x86
{4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Release|Any CPU.Build.0 = Release|x86
{4BD0D88F-7E7A-4C3B-9E34-BF3717A8FF4B}.Release|Any CPU.Deploy.0 = Release|x86
@@ -454,6 +577,18 @@ Global
{BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Debug|x64.Build.0 = Debug|Any CPU
{BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Debug|x86.ActiveCfg = Debug|Any CPU
{BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Debug|x86.Build.0 = Debug|Any CPU
+ {BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Docs|Any CPU.ActiveCfg = Docs|Any CPU
+ {BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Docs|Any CPU.Build.0 = Docs|Any CPU
+ {BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Docs|ARM.ActiveCfg = Docs|Any CPU
+ {BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Docs|ARM.Build.0 = Docs|Any CPU
+ {BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Docs|iPhone.ActiveCfg = Docs|Any CPU
+ {BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Docs|iPhone.Build.0 = Docs|Any CPU
+ {BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Docs|iPhoneSimulator.ActiveCfg = Docs|Any CPU
+ {BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Docs|iPhoneSimulator.Build.0 = Docs|Any CPU
+ {BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Docs|x64.ActiveCfg = Docs|Any CPU
+ {BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Docs|x64.Build.0 = Docs|Any CPU
+ {BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Docs|x86.ActiveCfg = Docs|Any CPU
+ {BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Docs|x86.Build.0 = Docs|Any CPU
{BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Release|Any CPU.Build.0 = Release|Any CPU
{BE0DE9A3-D92C-47C5-9EC4-DFB546BBDF77}.Release|ARM.ActiveCfg = Release|Any CPU
diff --git a/Xamarin.Essentials/Accelerometer/Accelerometer.shared.cs b/Xamarin.Essentials/Accelerometer/Accelerometer.shared.cs
index 05cb655a4..9754c8b30 100644
--- a/Xamarin.Essentials/Accelerometer/Accelerometer.shared.cs
+++ b/Xamarin.Essentials/Accelerometer/Accelerometer.shared.cs
@@ -5,10 +5,18 @@ namespace Xamarin.Essentials
{
public static partial class Accelerometer
{
+ const double accelerationThreshold = 169;
+
+ const double gravity = 9.81;
+
+ static readonly AccelerometerQueue queue = new AccelerometerQueue();
+
static bool useSyncContext;
public static event EventHandler ReadingChanged;
+ public static event EventHandler ShakeDetected;
+
public static bool IsMonitoring { get; private set; }
public static void Start(SensorSpeed sensorSpeed)
@@ -63,7 +71,38 @@ internal static void OnChanged(AccelerometerChangedEventArgs e)
MainThread.BeginInvokeOnMainThread(() => ReadingChanged?.Invoke(null, e));
else
ReadingChanged?.Invoke(null, e);
+
+ if (ShakeDetected != null)
+ ProcessShakeEvent(e.Reading.Acceleration);
+ }
+
+ static void ProcessShakeEvent(Vector3 acceleration)
+ {
+ var now = DateTime.UtcNow.Nanoseconds();
+
+ var x = acceleration.X * gravity;
+ var y = acceleration.Y * gravity;
+ var z = acceleration.Z * gravity;
+
+ var g = x.Square() + y.Square() + z.Square();
+ queue.Add(now, g > accelerationThreshold);
+
+ if (queue.IsShaking)
+ {
+ queue.Clear();
+ var args = new EventArgs();
+
+ if (useSyncContext)
+ MainThread.BeginInvokeOnMainThread(() => ShakeDetected?.Invoke(null, args));
+ else
+ ShakeDetected?.Invoke(null, args);
+ }
}
+
+ static double Square(this double q) => q * q;
+
+ internal static long Nanoseconds(this DateTime time) =>
+ (time.Ticks / TimeSpan.TicksPerMillisecond) * 1_000_000;
}
public class AccelerometerChangedEventArgs : EventArgs
diff --git a/Xamarin.Essentials/Accelerometer/AccelerometerQueue.shared.cs b/Xamarin.Essentials/Accelerometer/AccelerometerQueue.shared.cs
new file mode 100644
index 000000000..a8255ef12
--- /dev/null
+++ b/Xamarin.Essentials/Accelerometer/AccelerometerQueue.shared.cs
@@ -0,0 +1,112 @@
+namespace Xamarin.Essentials
+{
+ // Detect if 3/4ths of the accelerometer events in the last half second are accelerating
+ // this means we are free falling or shaking
+ class AccelerometerQueue
+ {
+ readonly AccelerometerDataPool pool = new AccelerometerDataPool();
+
+ // in nanoseconds
+ readonly long maxWindowSize = 500_000_000;
+ readonly long minWindowSize = 250_000_000;
+
+ readonly int minQueueSize = 4;
+
+ AccelerometerSample oldest;
+ AccelerometerSample newest;
+ int sampleCount;
+ int acceleratingCount;
+
+ internal void Add(long timestamp, bool accelerating)
+ {
+ Purge(timestamp - maxWindowSize);
+ var added = pool.Acquire();
+ added.Timestamp = timestamp;
+ added.IsAccelerating = accelerating;
+ added.Next = null;
+
+ if (newest != null)
+ newest.Next = added;
+
+ newest = added;
+
+ if (oldest == null)
+ oldest = added;
+
+ sampleCount++;
+
+ if (accelerating)
+ acceleratingCount++;
+ }
+
+ internal void Clear()
+ {
+ while (oldest != null)
+ {
+ var removed = oldest;
+ oldest = removed.Next;
+ pool.Release(removed);
+ }
+ newest = null;
+ sampleCount = 0;
+ acceleratingCount = 0;
+ }
+
+ void Purge(long cutoff)
+ {
+ while (sampleCount >= minQueueSize &&
+ oldest != null &&
+ cutoff - oldest.Timestamp > 0)
+ {
+ var removed = oldest;
+ if (removed.IsAccelerating)
+ acceleratingCount--;
+
+ sampleCount--;
+ oldest = removed.Next;
+
+ if (oldest == null)
+ newest = null;
+
+ pool.Release(removed);
+ }
+ }
+
+ // Returns true if we have enough samples to detect if we are shaking the device and that more than 3/4th of them are accelerating
+ internal bool IsShaking => newest != null &&
+ oldest != null &&
+ newest.Timestamp - oldest.Timestamp >= minWindowSize &&
+ acceleratingCount >= (sampleCount >> 1) + (sampleCount >> 2);
+
+ internal class AccelerometerSample
+ {
+ public long Timestamp { get; set; }
+
+ public bool IsAccelerating { get; set; }
+
+ public AccelerometerSample Next { get; set; }
+ }
+
+ internal class AccelerometerDataPool
+ {
+ AccelerometerSample head;
+
+ internal AccelerometerSample Acquire()
+ {
+ var aquired = head;
+ if (aquired == null)
+ aquired = new AccelerometerSample();
+ else
+ head = aquired.Next;
+
+ return aquired;
+ }
+
+ internal void Release(AccelerometerSample sample)
+ {
+ sample.Next = head;
+ head = sample;
+ }
+ }
+ }
+}
diff --git a/Xamarin.Essentials/Browser/Browser.android.cs b/Xamarin.Essentials/Browser/Browser.android.cs
index baa5c40c3..b3e682c9b 100644
--- a/Xamarin.Essentials/Browser/Browser.android.cs
+++ b/Xamarin.Essentials/Browser/Browser.android.cs
@@ -10,19 +10,28 @@ namespace Xamarin.Essentials
{
public static partial class Browser
{
- static Task PlatformOpenAsync(Uri uri, BrowserLaunchMode launchMode)
+ static Task PlatformOpenAsync(Uri uri, BrowserLaunchOptions options)
{
var nativeUri = AndroidUri.Parse(uri.AbsoluteUri);
- switch (launchMode)
+ switch (options.LaunchMode)
{
case BrowserLaunchMode.SystemPreferred:
var tabsBuilder = new CustomTabsIntent.Builder();
tabsBuilder.SetShowTitle(true);
+ if (options.PreferredToolbarColor.HasValue)
+ tabsBuilder.SetToolbarColor(options.PreferredToolbarColor.Value.ToInt());
+ if (options.TitleMode != BrowserTitleMode.Default)
+ tabsBuilder.SetShowTitle(options.TitleMode == BrowserTitleMode.Show);
+
var tabsIntent = tabsBuilder.Build();
tabsIntent.Intent.SetFlags(ActivityFlags.ClearTop);
tabsIntent.Intent.SetFlags(ActivityFlags.NewTask);
+#if __ANDROID_25__
tabsIntent.LaunchUrl(Platform.AppContext, nativeUri);
+#else
+ tabsIntent.LaunchUrl(Platform.GetCurrentActivity(true), nativeUri);
+#endif
break;
case BrowserLaunchMode.External:
var intent = new Intent(Intent.ActionView, nativeUri);
diff --git a/Xamarin.Essentials/Browser/Browser.ios.cs b/Xamarin.Essentials/Browser/Browser.ios.cs
index a5a2c5f93..0c845c2af 100644
--- a/Xamarin.Essentials/Browser/Browser.ios.cs
+++ b/Xamarin.Essentials/Browser/Browser.ios.cs
@@ -8,16 +8,22 @@ namespace Xamarin.Essentials
{
public static partial class Browser
{
- static async Task PlatformOpenAsync(Uri uri, BrowserLaunchMode launchMode)
+ static async Task PlatformOpenAsync(Uri uri, BrowserLaunchOptions options)
{
var nativeUrl = new NSUrl(uri.AbsoluteUri);
- switch (launchMode)
+ switch (options.LaunchMode)
{
case BrowserLaunchMode.SystemPreferred:
var sfViewController = new SFSafariViewController(nativeUrl, false);
var vc = Platform.GetCurrentViewController();
+ if (options.PreferredToolbarColor.HasValue)
+ sfViewController.PreferredBarTintColor = options.PreferredToolbarColor.Value.ToPlatformColor();
+
+ if (options.PreferredControlColor.HasValue)
+ sfViewController.PreferredControlTintColor = options.PreferredControlColor.Value.ToPlatformColor();
+
if (sfViewController.PopoverPresentationController != null)
{
sfViewController.PopoverPresentationController.SourceView = vc.View;
diff --git a/Xamarin.Essentials/Browser/Browser.netstandard.cs b/Xamarin.Essentials/Browser/Browser.netstandard.cs
index be881a6ed..e74377d6c 100644
--- a/Xamarin.Essentials/Browser/Browser.netstandard.cs
+++ b/Xamarin.Essentials/Browser/Browser.netstandard.cs
@@ -5,7 +5,7 @@ namespace Xamarin.Essentials
{
public static partial class Browser
{
- static Task PlatformOpenAsync(Uri uri, BrowserLaunchMode launchMode) =>
+ static Task PlatformOpenAsync(Uri uri, BrowserLaunchOptions options) =>
throw new NotImplementedInReferenceAssemblyException();
}
}
diff --git a/Xamarin.Essentials/Browser/Browser.shared.cs b/Xamarin.Essentials/Browser/Browser.shared.cs
index 771a12884..8f7daf782 100644
--- a/Xamarin.Essentials/Browser/Browser.shared.cs
+++ b/Xamarin.Essentials/Browser/Browser.shared.cs
@@ -8,21 +8,33 @@ public static partial class Browser
public static Task OpenAsync(string uri) =>
OpenAsync(uri, BrowserLaunchMode.SystemPreferred);
- public static Task OpenAsync(string uri, BrowserLaunchMode launchMode)
+ public static Task OpenAsync(string uri, BrowserLaunchMode launchMode) =>
+ OpenAsync(uri, new BrowserLaunchOptions()
+ {
+ LaunchMode = launchMode
+ });
+
+ public static Task OpenAsync(string uri, BrowserLaunchOptions options)
{
if (string.IsNullOrWhiteSpace(uri))
{
throw new ArgumentNullException(nameof(uri), $"Uri cannot be empty.");
}
- return OpenAsync(new Uri(uri), launchMode);
+ return OpenAsync(new Uri(uri), options);
}
public static Task OpenAsync(Uri uri) =>
- OpenAsync(uri, BrowserLaunchMode.SystemPreferred);
+ OpenAsync(uri, BrowserLaunchMode.SystemPreferred);
+
+ public static Task OpenAsync(Uri uri, BrowserLaunchMode launchMode) =>
+ OpenAsync(uri, new BrowserLaunchOptions()
+ {
+ LaunchMode = launchMode
+ });
- public static Task OpenAsync(Uri uri, BrowserLaunchMode launchMode) =>
- PlatformOpenAsync(EscapeUri(uri), launchMode);
+ public static Task OpenAsync(Uri uri, BrowserLaunchOptions options) =>
+ PlatformOpenAsync(EscapeUri(uri), options);
internal static Uri EscapeUri(Uri uri)
{
@@ -34,10 +46,4 @@ internal static Uri EscapeUri(Uri uri)
#endif
}
}
-
- public enum BrowserLaunchMode
- {
- SystemPreferred = 0,
- External = 1,
- }
}
diff --git a/Xamarin.Essentials/Browser/Browser.uwp.cs b/Xamarin.Essentials/Browser/Browser.uwp.cs
index acafdffa4..b73c86dda 100644
--- a/Xamarin.Essentials/Browser/Browser.uwp.cs
+++ b/Xamarin.Essentials/Browser/Browser.uwp.cs
@@ -5,7 +5,7 @@ namespace Xamarin.Essentials
{
public static partial class Browser
{
- static Task PlatformOpenAsync(Uri uri, BrowserLaunchMode launchType) =>
+ static Task PlatformOpenAsync(Uri uri, BrowserLaunchOptions options) =>
Windows.System.Launcher.LaunchUriAsync(uri).AsTask();
}
}
diff --git a/Xamarin.Essentials/Browser/BrowserLaunchMode.shared.cs b/Xamarin.Essentials/Browser/BrowserLaunchMode.shared.cs
new file mode 100644
index 000000000..36ae8baf1
--- /dev/null
+++ b/Xamarin.Essentials/Browser/BrowserLaunchMode.shared.cs
@@ -0,0 +1,8 @@
+namespace Xamarin.Essentials
+{
+ public enum BrowserLaunchMode
+ {
+ SystemPreferred = 0,
+ External = 1
+ }
+}
diff --git a/Xamarin.Essentials/Browser/BrowserLaunchOptions.shared.cs b/Xamarin.Essentials/Browser/BrowserLaunchOptions.shared.cs
new file mode 100644
index 000000000..17d12d1f1
--- /dev/null
+++ b/Xamarin.Essentials/Browser/BrowserLaunchOptions.shared.cs
@@ -0,0 +1,19 @@
+#if !NETSTANDARD1_0
+using System.Drawing;
+#endif
+
+namespace Xamarin.Essentials
+{
+ public class BrowserLaunchOptions
+ {
+#if !NETSTANDARD1_0
+ public Color? PreferredToolbarColor { get; set; }
+
+ public Color? PreferredControlColor { get; set; }
+#endif
+
+ public BrowserLaunchMode LaunchMode { get; set; } = BrowserLaunchMode.SystemPreferred;
+
+ public BrowserTitleMode TitleMode { get; set; } = BrowserTitleMode.Default;
+ }
+}
diff --git a/Xamarin.Essentials/Browser/BrowserTitleMode.shared.cs b/Xamarin.Essentials/Browser/BrowserTitleMode.shared.cs
new file mode 100644
index 000000000..df0c142a4
--- /dev/null
+++ b/Xamarin.Essentials/Browser/BrowserTitleMode.shared.cs
@@ -0,0 +1,9 @@
+namespace Xamarin.Essentials
+{
+ public enum BrowserTitleMode
+ {
+ Default = 0,
+ Show = 1,
+ Hide = 2
+ }
+}
diff --git a/Xamarin.Essentials/Connectivity/Connectivity.android.cs b/Xamarin.Essentials/Connectivity/Connectivity.android.cs
index d98039f5e..2c6aaf55c 100644
--- a/Xamarin.Essentials/Connectivity/Connectivity.android.cs
+++ b/Xamarin.Essentials/Connectivity/Connectivity.android.cs
@@ -18,7 +18,9 @@ static void StartListeners()
conectivityReceiver = new ConnectivityBroadcastReceiver(OnConnectivityChanged);
+#pragma warning disable CS0618 // Type or member is obsolete
Platform.AppContext.RegisterReceiver(conectivityReceiver, new IntentFilter(ConnectivityManager.ConnectivityAction));
+#pragma warning restore CS0618 // Type or member is obsolete
}
static void StopListeners()
@@ -64,7 +66,9 @@ static NetworkAccess PlatformNetworkAccess
var info = manager.GetNetworkInfo(network);
+#pragma warning disable CS0618 // Type or member is obsolete
if (info == null || !info.IsAvailable)
+#pragma warning restore CS0618 // Type or member is obsolete
continue;
// Check to see if it has the internet capability
@@ -95,12 +99,16 @@ static NetworkAccess PlatformNetworkAccess
void ProcessNetworkInfo(NetworkInfo info)
{
+#pragma warning disable CS0618 // Type or member is obsolete
if (info == null || !info.IsAvailable)
+#pragma warning restore CS0618 // Type or member is obsolete
return;
if (info.IsConnected)
currentAccess = IsBetterAccess(currentAccess, NetworkAccess.Internet);
+#pragma warning disable CS0618 // Type or member is obsolete
else if (info.IsConnectedOrConnecting)
+#pragma warning restore CS0618 // Type or member is obsolete
currentAccess = IsBetterAccess(currentAccess, NetworkAccess.ConstrainedInternet);
}
@@ -154,10 +162,12 @@ static IEnumerable PlatformConnectionProfiles
ConnectionProfile? ProcessNetworkInfo(NetworkInfo info)
{
+#pragma warning disable CS0618 // Type or member is obsolete
if (info == null || !info.IsAvailable || !info.IsConnectedOrConnecting)
return null;
return GetConnectionType(info.Type, info.TypeName);
+#pragma warning restore CS0618 // Type or member is obsolete
}
}
}
@@ -219,11 +229,13 @@ public ConnectivityBroadcastReceiver(Action onChanged) =>
public override async void OnReceive(Context context, Intent intent)
{
+#pragma warning disable CS0618 // Type or member is obsolete
if (intent.Action != ConnectivityManager.ConnectivityAction)
+#pragma warning restore CS0618 // Type or member is obsolete
return;
- // await 500ms to ensure that the the connection manager updates
- await Task.Delay(500);
+ // await 1500ms to ensure that the the connection manager updates
+ await Task.Delay(1500);
onChanged?.Invoke();
}
}
diff --git a/Xamarin.Essentials/DeviceInfo/DeviceInfo.android.cs b/Xamarin.Essentials/DeviceInfo/DeviceInfo.android.cs
index 3d1fe97e5..d3d99c2e3 100644
--- a/Xamarin.Essentials/DeviceInfo/DeviceInfo.android.cs
+++ b/Xamarin.Essentials/DeviceInfo/DeviceInfo.android.cs
@@ -95,6 +95,7 @@ static DeviceType GetDeviceType()
Build.Model.Contains("Emulator") ||
Build.Model.Contains("Android SDK built for x86") ||
Build.Manufacturer.Contains("Genymotion") ||
+ Build.Manufacturer.Contains("VS Emulator") ||
(Build.Brand.StartsWith("generic", StringComparison.InvariantCulture) && Build.Device.StartsWith("generic", StringComparison.InvariantCulture)) ||
Build.Product.Equals("google_sdk", StringComparison.InvariantCulture);
diff --git a/Xamarin.Essentials/Email/Email.android.cs b/Xamarin.Essentials/Email/Email.android.cs
index 8cc0a439c..85e576171 100644
--- a/Xamarin.Essentials/Email/Email.android.cs
+++ b/Xamarin.Essentials/Email/Email.android.cs
@@ -1,7 +1,10 @@
-using System.Threading.Tasks;
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
using Android.Content;
using Android.OS;
using Android.Text;
+using Android.Webkit;
namespace Xamarin.Essentials
{
@@ -31,14 +34,16 @@ static Intent CreateIntent(EmailMessage message)
if (!string.IsNullOrEmpty(message?.Body))
{
- if (message?.BodyFormat == EmailBodyFormat.Html)
+ if (message.BodyFormat == EmailBodyFormat.Html)
{
ISpanned html;
- if (Platform.HasApiLevel(BuildVersionCodes.N))
+#if __ANDROID_24__
+ if (Platform.HasApiLevelN)
{
html = Html.FromHtml(message.Body, FromHtmlOptions.ModeLegacy);
}
else
+#endif
{
#pragma warning disable CS0618 // Type or member is obsolete
html = Html.FromHtml(message.Body);
@@ -53,13 +58,29 @@ static Intent CreateIntent(EmailMessage message)
}
if (!string.IsNullOrEmpty(message?.Subject))
intent.PutExtra(Intent.ExtraSubject, message.Subject);
- if (message.To?.Count > 0)
+ if (message?.To?.Count > 0)
intent.PutExtra(Intent.ExtraEmail, message.To.ToArray());
- if (message.Cc?.Count > 0)
+ if (message?.Cc?.Count > 0)
intent.PutExtra(Intent.ExtraCc, message.Cc.ToArray());
- if (message.Bcc?.Count > 0)
+ if (message?.Bcc?.Count > 0)
intent.PutExtra(Intent.ExtraBcc, message.Bcc.ToArray());
+ if (message?.Attachments?.Count > 0)
+ {
+ var uris = new List();
+ foreach (var attachment in message.Attachments)
+ {
+ uris.Add(Platform.GetShareableFileUri(attachment.FullPath));
+ }
+
+ if (uris.Count > 1)
+ intent.PutParcelableArrayListExtra(Intent.ExtraStream, uris);
+ else
+ intent.PutExtra(Intent.ExtraStream, uris[0]);
+
+ intent.AddFlags(ActivityFlags.GrantReadUriPermission);
+ }
+
return intent;
}
}
diff --git a/Xamarin.Essentials/Email/Email.ios.cs b/Xamarin.Essentials/Email/Email.ios.cs
index 3a1d1ca2a..06c04d3c6 100644
--- a/Xamarin.Essentials/Email/Email.ios.cs
+++ b/Xamarin.Essentials/Email/Email.ios.cs
@@ -1,6 +1,8 @@
-using System.Threading.Tasks;
+using System;
+using System.Threading.Tasks;
using Foundation;
using MessageUI;
+using MobileCoreServices;
using UIKit;
namespace Xamarin.Essentials
@@ -37,16 +39,25 @@ static Task ComposeWithMailCompose(EmailMessage message)
// create the controller
var controller = new MFMailComposeViewController();
if (!string.IsNullOrEmpty(message?.Body))
- controller.SetMessageBody(message.Body, message?.BodyFormat == EmailBodyFormat.Html);
+ controller.SetMessageBody(message.Body, message.BodyFormat == EmailBodyFormat.Html);
if (!string.IsNullOrEmpty(message?.Subject))
controller.SetSubject(message.Subject);
- if (message?.To.Count > 0)
+ if (message?.To?.Count > 0)
controller.SetToRecipients(message.To.ToArray());
- if (message?.Cc.Count > 0)
+ if (message?.Cc?.Count > 0)
controller.SetCcRecipients(message.Cc.ToArray());
- if (message?.Bcc.Count > 0)
+ if (message?.Bcc?.Count > 0)
controller.SetBccRecipients(message.Bcc.ToArray());
+ if (message?.Attachments?.Count > 0)
+ {
+ foreach (var attachment in message.Attachments)
+ {
+ var data = NSData.FromFile(attachment.FullPath);
+ controller.AddAttachmentData(data, attachment.ContentType, attachment.AttachmentName);
+ }
+ }
+
// show the controller
var tcs = new TaskCompletionSource();
controller.Finished += (sender, e) =>
@@ -64,11 +75,8 @@ static Task ComposeWithUrl(EmailMessage message)
var url = GetMailToUri(message);
var tcs = new TaskCompletionSource();
- NSRunLoop.Main.InvokeOnMainThread(() =>
- {
- var nsurl = NSUrl.FromString(url);
- UIApplication.SharedApplication.OpenUrl(nsurl, new UIApplicationOpenUrlOptions(), r => tcs.TrySetResult(r));
- });
+ var nsurl = NSUrl.FromString(url);
+ UIApplication.SharedApplication.OpenUrl(nsurl, new UIApplicationOpenUrlOptions(), r => tcs.TrySetResult(r));
return tcs.Task;
}
}
diff --git a/Xamarin.Essentials/Email/Email.netstandard.cs b/Xamarin.Essentials/Email/Email.netstandard.cs
index ac87ebf54..2b74eadfe 100644
--- a/Xamarin.Essentials/Email/Email.netstandard.cs
+++ b/Xamarin.Essentials/Email/Email.netstandard.cs
@@ -10,4 +10,10 @@ public static partial class Email
static Task PlatformComposeAsync(EmailMessage message) =>
throw new NotImplementedInReferenceAssemblyException();
}
+
+ public partial class EmailAttachment
+ {
+ string PlatformGetContentType(string extension) =>
+ throw new NotImplementedInReferenceAssemblyException();
+ }
}
diff --git a/Xamarin.Essentials/Email/Email.shared.cs b/Xamarin.Essentials/Email/Email.shared.cs
index 65aa8064a..15f6eb501 100644
--- a/Xamarin.Essentials/Email/Email.shared.cs
+++ b/Xamarin.Essentials/Email/Email.shared.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
using System.Threading.Tasks;
@@ -69,6 +70,8 @@ public EmailMessage(string subject, string body, params string[] to)
public List Cc { get; set; } = new List();
public List Bcc { get; set; } = new List();
+
+ public List Attachments { get; set; } = new List();
}
public enum EmailBodyFormat
@@ -76,4 +79,47 @@ public enum EmailBodyFormat
PlainText,
Html
}
+
+ public partial class EmailAttachment : FileBase
+ {
+ public EmailAttachment(string fullPath)
+ : base(fullPath)
+ {
+ ExperimentalFeatures.VerifyEnabled(ExperimentalFeatures.EmailAttachments);
+ }
+
+ public EmailAttachment(string fullPath, string contentType)
+ : base(fullPath, contentType)
+ {
+ ExperimentalFeatures.VerifyEnabled(ExperimentalFeatures.EmailAttachments);
+ }
+
+ public EmailAttachment(FileBase file)
+ : base(file)
+ {
+ ExperimentalFeatures.VerifyEnabled(ExperimentalFeatures.EmailAttachments);
+ }
+
+ string attachmentName;
+
+ public string AttachmentName
+ {
+ get => GetAttachmentName();
+ set => attachmentName = value;
+ }
+
+ internal string GetAttachmentName()
+ {
+ // try the provided file name
+ if (!string.IsNullOrWhiteSpace(attachmentName))
+ return attachmentName;
+
+ // try get from the path
+ if (!string.IsNullOrWhiteSpace(FullPath))
+ return Path.GetFileName(FullPath);
+
+ // this should never happen as the path is validated in the constructor
+ throw new InvalidOperationException($"Unable to determine the attachment file name from '{FullPath}'.");
+ }
+ }
}
diff --git a/Xamarin.Essentials/Email/Email.uwp.cs b/Xamarin.Essentials/Email/Email.uwp.cs
index bd7a0d76e..b2591a023 100644
--- a/Xamarin.Essentials/Email/Email.uwp.cs
+++ b/Xamarin.Essentials/Email/Email.uwp.cs
@@ -1,9 +1,12 @@
using System;
using System.Collections.Generic;
+using System.IO;
using System.Threading.Tasks;
using Windows.ApplicationModel.Email;
using Windows.Foundation.Metadata;
-
+using Windows.Storage;
+using Windows.Storage.Streams;
+using NativeEmailAttachment = Windows.ApplicationModel.Email.EmailAttachment;
using NativeEmailMessage = Windows.ApplicationModel.Email.EmailMessage;
namespace Xamarin.Essentials
@@ -27,6 +30,25 @@ static async Task PlatformComposeAsync(EmailMessage message)
Sync(message?.Cc, nativeMessage.CC);
Sync(message?.Bcc, nativeMessage.Bcc);
+ if (message?.Attachments?.Count > 0)
+ {
+ foreach (var attachment in message.Attachments)
+ {
+ var path = FileSystem.NormalizePath(attachment.FullPath);
+ var file = attachment.File ?? await StorageFile.GetFileFromPathAsync(path);
+
+ var stream = RandomAccessStreamReference.CreateFromFile(file);
+ var nativeAttachment = new NativeEmailAttachment(attachment.AttachmentName, stream);
+
+ if (!string.IsNullOrEmpty(attachment.ContentType))
+ nativeAttachment.MimeType = attachment.ContentType;
+ else if (!string.IsNullOrWhiteSpace(file?.ContentType))
+ nativeAttachment.MimeType = file.ContentType;
+
+ nativeMessage.Attachments.Add(nativeAttachment);
+ }
+ }
+
await EmailManager.ShowComposeNewEmailAsync(nativeMessage);
}
@@ -37,6 +59,9 @@ static void Sync(List recipients, IList nativeRecipients
foreach (var recipient in recipients)
{
+ if (string.IsNullOrWhiteSpace(recipient))
+ continue;
+
nativeRecipients.Add(new EmailRecipient(recipient));
}
}
diff --git a/Xamarin.Essentials/FileSystem/FileSystem.android.cs b/Xamarin.Essentials/FileSystem/FileSystem.android.cs
index ad46dc12c..bb376d493 100644
--- a/Xamarin.Essentials/FileSystem/FileSystem.android.cs
+++ b/Xamarin.Essentials/FileSystem/FileSystem.android.cs
@@ -2,6 +2,7 @@
using System.IO;
using System.Threading.Tasks;
using Android.App;
+using Android.Webkit;
namespace Xamarin.Essentials
{
@@ -29,4 +30,19 @@ static Task PlatformOpenAppPackageFileAsync(string filename)
}
}
}
+
+ public partial class FileBase
+ {
+ internal FileBase(Java.IO.File file)
+ : this(file?.Path)
+ {
+ }
+
+ internal static string PlatformGetContentType(string extension) =>
+ MimeTypeMap.Singleton.GetMimeTypeFromExtension(extension.TrimStart('.'));
+
+ internal void PlatformInit(FileBase file)
+ {
+ }
+ }
}
diff --git a/Xamarin.Essentials/FileSystem/FileSystem.ios.cs b/Xamarin.Essentials/FileSystem/FileSystem.ios.cs
index d5f52430f..b5ce655c2 100644
--- a/Xamarin.Essentials/FileSystem/FileSystem.ios.cs
+++ b/Xamarin.Essentials/FileSystem/FileSystem.ios.cs
@@ -2,6 +2,7 @@
using System.IO;
using System.Threading.Tasks;
using Foundation;
+using MobileCoreServices;
namespace Xamarin.Essentials
{
@@ -34,4 +35,26 @@ static string GetDirectory(NSSearchPathDirectory directory)
return dirs[0];
}
}
+
+ public partial class FileBase
+ {
+ internal FileBase(NSUrl file)
+ : this(NSFileManager.DefaultManager.DisplayName(file?.Path))
+ {
+ }
+
+ internal static string PlatformGetContentType(string extension)
+ {
+ // ios does not like the extensions
+ extension = extension?.TrimStart('.');
+
+ var id = UTType.CreatePreferredIdentifier(UTType.TagClassFilenameExtension, extension, null);
+ var mimeTypes = UTType.CopyAllTags(id, UTType.TagClassMIMEType);
+ return mimeTypes.Length > 0 ? mimeTypes[0] : null;
+ }
+
+ internal void PlatformInit(FileBase file)
+ {
+ }
+ }
}
diff --git a/Xamarin.Essentials/FileSystem/FileSystem.netstandard.cs b/Xamarin.Essentials/FileSystem/FileSystem.netstandard.cs
index 11093b143..e0bff9c2c 100644
--- a/Xamarin.Essentials/FileSystem/FileSystem.netstandard.cs
+++ b/Xamarin.Essentials/FileSystem/FileSystem.netstandard.cs
@@ -14,4 +14,13 @@ static string PlatformAppDataDirectory
static Task PlatformOpenAppPackageFileAsync(string filename)
=> throw new NotImplementedInReferenceAssemblyException();
}
+
+ public partial class FileBase
+ {
+ static string PlatformGetContentType(string extension) =>
+ throw new NotImplementedInReferenceAssemblyException();
+
+ internal void PlatformInit(FileBase file) =>
+ throw new NotImplementedInReferenceAssemblyException();
+ }
}
diff --git a/Xamarin.Essentials/FileSystem/FileSystem.shared.cs b/Xamarin.Essentials/FileSystem/FileSystem.shared.cs
index 7405850bc..f6ce29fe5 100644
--- a/Xamarin.Essentials/FileSystem/FileSystem.shared.cs
+++ b/Xamarin.Essentials/FileSystem/FileSystem.shared.cs
@@ -1,4 +1,5 @@
-using System.IO;
+using System;
+using System.IO;
using System.Threading.Tasks;
namespace Xamarin.Essentials
@@ -14,4 +15,65 @@ public static string AppDataDirectory
public static Task OpenAppPackageFileAsync(string filename)
=> PlatformOpenAppPackageFileAsync(filename);
}
+
+ public abstract partial class FileBase
+ {
+ internal const string DefaultContentType = "application/octet-stream";
+
+ string contentType;
+
+ internal FileBase(string fullPath)
+ {
+ if (fullPath == null)
+ throw new ArgumentNullException(nameof(fullPath));
+ if (string.IsNullOrWhiteSpace(fullPath))
+ throw new ArgumentException("The attachment file path cannot be an empty string.", nameof(fullPath));
+ if (string.IsNullOrWhiteSpace(Path.GetFileName(fullPath)))
+ throw new ArgumentException("The attachment file path must be a file path.", nameof(fullPath));
+
+ FullPath = fullPath;
+ }
+
+ public FileBase(FileBase file)
+ {
+ FullPath = file.FullPath;
+ ContentType = file.ContentType;
+ PlatformInit(file);
+ }
+
+ internal FileBase(string fullPath, string contentType)
+ : this(fullPath)
+ {
+ FullPath = fullPath;
+ ContentType = contentType;
+ }
+
+ public string FullPath { get; }
+
+ public string ContentType
+ {
+ get => GetContentType();
+ set => contentType = value;
+ }
+
+ internal string GetContentType()
+ {
+ // try the provided type
+ if (!string.IsNullOrWhiteSpace(contentType))
+ return contentType;
+
+ // try get from the file extension
+ var ext = Path.GetExtension(FullPath);
+ if (!string.IsNullOrWhiteSpace(ext))
+ {
+ var content = PlatformGetContentType(ext);
+ if (!string.IsNullOrWhiteSpace(content))
+ return content;
+ }
+
+ // we haven't been able to determine this
+ // leave it up to the sender
+ return null;
+ }
+ }
}
diff --git a/Xamarin.Essentials/FileSystem/FileSystem.uwp.cs b/Xamarin.Essentials/FileSystem/FileSystem.uwp.cs
index 8b6d7c139..c7c8666ff 100644
--- a/Xamarin.Essentials/FileSystem/FileSystem.uwp.cs
+++ b/Xamarin.Essentials/FileSystem/FileSystem.uwp.cs
@@ -19,8 +19,30 @@ static Task PlatformOpenAppPackageFileAsync(string filename)
if (filename == null)
throw new ArgumentNullException(nameof(filename));
- filename = filename.Replace('/', Path.DirectorySeparatorChar);
- return Package.Current.InstalledLocation.OpenStreamForReadAsync(filename);
+ return Package.Current.InstalledLocation.OpenStreamForReadAsync(NormalizePath(filename));
}
+
+ internal static string NormalizePath(string path)
+ => path.Replace('/', Path.DirectorySeparatorChar);
+ }
+
+ public partial class FileBase
+ {
+ internal FileBase(IStorageFile file)
+ : this(file?.Path)
+ {
+ File = file;
+ ContentType = file?.ContentType;
+ }
+
+ internal void PlatformInit(FileBase file)
+ {
+ File = file.File;
+ }
+
+ internal IStorageFile File { get; set; }
+
+ // we can't do anything here, but Windows will take care of it
+ internal static string PlatformGetContentType(string extension) => null;
}
}
diff --git a/Xamarin.Essentials/Geolocation/Geolocation.ios.cs b/Xamarin.Essentials/Geolocation/Geolocation.ios.cs
index cf164a36c..b3084824b 100644
--- a/Xamarin.Essentials/Geolocation/Geolocation.ios.cs
+++ b/Xamarin.Essentials/Geolocation/Geolocation.ios.cs
@@ -45,8 +45,10 @@ static async Task PlatformLocationAsync(GeolocationRequest request, Ca
manager.DesiredAccuracy = request.PlatformDesiredAccuracy;
manager.Delegate = listener;
+#if __IOS__
// we're only listening for a single update
manager.PausesLocationUpdatesAutomatically = false;
+#endif
manager.StartUpdatingLocation();
diff --git a/Xamarin.Essentials/Launcher/Launcher.android.cs b/Xamarin.Essentials/Launcher/Launcher.android.cs
index c5fd2041d..8c65c11e9 100644
--- a/Xamarin.Essentials/Launcher/Launcher.android.cs
+++ b/Xamarin.Essentials/Launcher/Launcher.android.cs
@@ -11,7 +11,7 @@ public static partial class Launcher
{
static Task PlatformCanOpenAsync(Uri uri)
{
- var intent = new Intent(Intent.ActionView, AndroidUri.Parse(uri.AbsoluteUri));
+ var intent = new Intent(Intent.ActionView, AndroidUri.Parse(uri.OriginalString));
if (Platform.AppContext == null)
return Task.FromResult(false);
@@ -23,7 +23,7 @@ static Task PlatformCanOpenAsync(Uri uri)
static Task PlatformOpenAsync(Uri uri)
{
- var intent = new Intent(Intent.ActionView, AndroidUri.Parse(uri.AbsoluteUri));
+ var intent = new Intent(Intent.ActionView, AndroidUri.Parse(uri.OriginalString));
intent.SetFlags(ActivityFlags.ClearTop);
intent.SetFlags(ActivityFlags.NewTask);
Platform.AppContext.StartActivity(intent);
diff --git a/Xamarin.Essentials/Launcher/Launcher.ios.cs b/Xamarin.Essentials/Launcher/Launcher.ios.cs
index b12e081a7..7720f53c8 100644
--- a/Xamarin.Essentials/Launcher/Launcher.ios.cs
+++ b/Xamarin.Essentials/Launcher/Launcher.ios.cs
@@ -8,9 +8,9 @@ namespace Xamarin.Essentials
public static partial class Launcher
{
static Task PlatformCanOpenAsync(Uri uri) =>
- Task.FromResult(UIApplication.SharedApplication.CanOpenUrl(new NSUrl(uri.AbsoluteUri)));
+ Task.FromResult(UIApplication.SharedApplication.CanOpenUrl(new NSUrl(uri.OriginalString)));
static Task PlatformOpenAsync(Uri uri) =>
- UIApplication.SharedApplication.OpenUrlAsync(new NSUrl(uri.AbsoluteUri), new UIApplicationOpenUrlOptions());
+ UIApplication.SharedApplication.OpenUrlAsync(new NSUrl(uri.OriginalString), new UIApplicationOpenUrlOptions());
}
}
diff --git a/Xamarin.Essentials/Permissions/Permissions.android.cs b/Xamarin.Essentials/Permissions/Permissions.android.cs
index db7759029..afb006d16 100644
--- a/Xamarin.Essentials/Permissions/Permissions.android.cs
+++ b/Xamarin.Essentials/Permissions/Permissions.android.cs
@@ -18,13 +18,13 @@ internal static partial class Permissions
static Dictionary tcs)> requests =
new Dictionary)>();
- static void PlatformEnsureDeclared(PermissionType permission)
+ static bool PlatformEnsureDeclared(PermissionType permission, bool throwIfMissing)
{
var androidPermissions = permission.ToAndroidPermissions(onlyRuntimePermissions: false);
// No actual android permissions required here, just return
if (androidPermissions == null || !androidPermissions.Any())
- return;
+ return true;
var context = Platform.AppContext;
@@ -35,8 +35,15 @@ static void PlatformEnsureDeclared(PermissionType permission)
// If the manifest is missing any of the permissions we need, throw
if (!requestedPermissions?.Any(r => r.Equals(ap, StringComparison.OrdinalIgnoreCase)) ?? false)
- throw new PermissionException($"You need to declare the permission: `{ap}` in your AndroidManifest.xml");
+ {
+ if (throwIfMissing)
+ throw new PermissionException($"You need to declare the permission: `{ap}` in your AndroidManifest.xml");
+ else
+ return false;
+ }
}
+
+ return true;
}
static Task PlatformCheckStatusAsync(PermissionType permission)
@@ -164,6 +171,9 @@ internal static IEnumerable ToAndroidPermissions(this PermissionType per
case PermissionType.Vibrate:
permissions.Add((Manifest.Permission.Vibrate, true));
break;
+ case PermissionType.WriteExternalStorage:
+ permissions.Add((Manifest.Permission.WriteExternalStorage, false));
+ break;
}
if (onlyRuntimePermissions)
diff --git a/Xamarin.Essentials/Permissions/Permissions.ios.cs b/Xamarin.Essentials/Permissions/Permissions.ios.cs
index 6692e7569..e4a9c4835 100644
--- a/Xamarin.Essentials/Permissions/Permissions.ios.cs
+++ b/Xamarin.Essentials/Permissions/Permissions.ios.cs
@@ -6,15 +6,22 @@ namespace Xamarin.Essentials
{
internal static partial class Permissions
{
- static void PlatformEnsureDeclared(PermissionType permission)
+ static bool PlatformEnsureDeclared(PermissionType permission, bool throwIfMissing)
{
var info = NSBundle.MainBundle.InfoDictionary;
if (permission == PermissionType.LocationWhenInUse)
{
if (!info.ContainsKey(new NSString("NSLocationWhenInUseUsageDescription")))
- throw new PermissionException("You must set `NSLocationWhenInUseUsageDescription` in your Info.plist file to enable Authorization Requests for Location updates.");
+ {
+ if (throwIfMissing)
+ throw new PermissionException("You must set `NSLocationWhenInUseUsageDescription` in your Info.plist file to enable Authorization Requests for Location updates.");
+ else
+ return false;
+ }
}
+
+ return true;
}
static Task PlatformCheckStatusAsync(PermissionType permission)
diff --git a/Xamarin.Essentials/Permissions/Permissions.netstandard.cs b/Xamarin.Essentials/Permissions/Permissions.netstandard.cs
index 6a0a88085..2349cc00f 100644
--- a/Xamarin.Essentials/Permissions/Permissions.netstandard.cs
+++ b/Xamarin.Essentials/Permissions/Permissions.netstandard.cs
@@ -4,7 +4,7 @@ namespace Xamarin.Essentials
{
internal static partial class Permissions
{
- static void PlatformEnsureDeclared(PermissionType permission) =>
+ static bool PlatformEnsureDeclared(PermissionType permission, bool throwIfMissing) =>
throw new NotImplementedInReferenceAssemblyException();
static Task PlatformCheckStatusAsync(PermissionType permission) =>
diff --git a/Xamarin.Essentials/Permissions/Permissions.shared.cs b/Xamarin.Essentials/Permissions/Permissions.shared.cs
index 3262d202a..4ae97b29a 100644
--- a/Xamarin.Essentials/Permissions/Permissions.shared.cs
+++ b/Xamarin.Essentials/Permissions/Permissions.shared.cs
@@ -7,7 +7,10 @@ namespace Xamarin.Essentials
internal static partial class Permissions
{
internal static void EnsureDeclared(PermissionType permission) =>
- PlatformEnsureDeclared(permission);
+ PlatformEnsureDeclared(permission, true);
+
+ internal static bool EnsureDeclared(PermissionType permission, bool throwIfMissing) =>
+ PlatformEnsureDeclared(permission, throwIfMissing);
internal static Task CheckStatusAsync(PermissionType permission) =>
PlatformCheckStatusAsync(permission);
diff --git a/Xamarin.Essentials/Permissions/Permissions.shared.enums.cs b/Xamarin.Essentials/Permissions/Permissions.shared.enums.cs
index c5cbb7b27..cafca12fc 100644
--- a/Xamarin.Essentials/Permissions/Permissions.shared.enums.cs
+++ b/Xamarin.Essentials/Permissions/Permissions.shared.enums.cs
@@ -27,5 +27,6 @@ enum PermissionType
LocationWhenInUse,
NetworkState,
Vibrate,
+ WriteExternalStorage,
}
}
diff --git a/Xamarin.Essentials/Permissions/Permissions.uwp.cs b/Xamarin.Essentials/Permissions/Permissions.uwp.cs
index 13311ed34..602b2ddcd 100644
--- a/Xamarin.Essentials/Permissions/Permissions.uwp.cs
+++ b/Xamarin.Essentials/Permissions/Permissions.uwp.cs
@@ -14,13 +14,13 @@ internal static partial class Permissions
const string appManifestFilename = "AppxManifest.xml";
const string appManifestXmlns = "http://schemas.microsoft.com/appx/manifest/foundation/windows10";
- static void PlatformEnsureDeclared(PermissionType permission)
+ static bool PlatformEnsureDeclared(PermissionType permission, bool throwIfMissing)
{
var uwpCapabilities = permission.ToUWPCapabilities();
// If no actual UWP capabilities are required here, just return
if (uwpCapabilities == null || !uwpCapabilities.Any())
- return;
+ return true;
var doc = XDocument.Load(appManifestFilename, LoadOptions.None);
var reader = doc.CreateReader();
@@ -31,8 +31,15 @@ static void PlatformEnsureDeclared(PermissionType permission)
// If the manifest doesn't contain a capability we need, throw
if ((!doc.Root.XPathSelectElements($"//x:DeviceCapability[@Name='{cap}']", namespaceManager)?.Any() ?? false) &&
(!doc.Root.XPathSelectElements($"//x:Capability[@Name='{cap}']", namespaceManager)?.Any() ?? false))
- throw new PermissionException($"You need to declare the capability `{cap}` in your AppxManifest.xml file");
+ {
+ if (throwIfMissing)
+ throw new PermissionException($"You need to declare the capability `{cap}` in your AppxManifest.xml file");
+ else
+ return false;
+ }
}
+
+ return true;
}
static Task PlatformCheckStatusAsync(PermissionType permission)
diff --git a/Xamarin.Essentials/PhoneDialer/PhoneDialer.android.cs b/Xamarin.Essentials/PhoneDialer/PhoneDialer.android.cs
index 2ef16210c..697464d70 100644
--- a/Xamarin.Essentials/PhoneDialer/PhoneDialer.android.cs
+++ b/Xamarin.Essentials/PhoneDialer/PhoneDialer.android.cs
@@ -26,9 +26,14 @@ static void PlatformOpen(string number)
ValidateOpen(number);
var phoneNumber = string.Empty;
- if (Platform.HasApiLevel(BuildVersionCodes.N))
+#if __ANDROID_24__
+ if (Platform.HasApiLevelN)
phoneNumber = PhoneNumberUtils.FormatNumber(number, Java.Util.Locale.GetDefault(Java.Util.Locale.Category.Format).Country);
else if (Platform.HasApiLevel(BuildVersionCodes.Lollipop))
+#else
+ if (Platform.HasApiLevel(BuildVersionCodes.Lollipop))
+#endif
+
phoneNumber = PhoneNumberUtils.FormatNumber(number, Java.Util.Locale.Default.Country);
else
#pragma warning disable CS0618
diff --git a/Xamarin.Essentials/Platform/Platform.android.cs b/Xamarin.Essentials/Platform/Platform.android.cs
index 50a023deb..6a118dd05 100644
--- a/Xamarin.Essentials/Platform/Platform.android.cs
+++ b/Xamarin.Essentials/Platform/Platform.android.cs
@@ -9,6 +9,8 @@
using Android.Net;
using Android.Net.Wifi;
using Android.OS;
+using Android.Support.V4.Content;
+using AndroidUri = Android.Net.Uri;
namespace Xamarin.Essentials
{
@@ -61,6 +63,79 @@ internal static bool IsIntentSupported(Intent intent)
return activities.Any();
}
+ internal static AndroidUri GetShareableFileUri(string filename)
+ {
+ Java.IO.File sharedFile;
+ if (FileProvider.IsFileInPublicLocation(filename))
+ {
+ // we are sharing a file in a "shared/public" location
+ sharedFile = new Java.IO.File(filename);
+ }
+ else
+ {
+ var rootDir = FileProvider.GetTemporaryDirectory();
+
+ // create a unique directory just in case there are multiple file with the same name
+ var tmpDir = new Java.IO.File(rootDir, Guid.NewGuid().ToString("N"));
+ tmpDir.Mkdirs();
+ tmpDir.DeleteOnExit();
+
+ // create the new temprary file
+ var tmpFile = new Java.IO.File(tmpDir, System.IO.Path.GetFileName(filename));
+ System.IO.File.Copy(filename, tmpFile.CanonicalPath);
+ tmpFile.DeleteOnExit();
+
+ sharedFile = tmpFile;
+ }
+
+ // create the uri
+ if (HasApiLevelN)
+ {
+ var providerAuthority = AppContext.PackageName + ".fileProvider";
+ return FileProvider.GetUriForFile(
+ AppContext.ApplicationContext,
+ providerAuthority,
+ sharedFile);
+ }
+
+ return AndroidUri.FromFile(new Java.IO.File(filename));
+ }
+
+ internal static bool HasApiLevelN =>
+#if __ANDROID_24__
+ HasApiLevel(BuildVersionCodes.N);
+#else
+ false;
+#endif
+
+ internal static bool HasApiLevelNMr1 =>
+#if __ANDROID_25__
+ HasApiLevel(BuildVersionCodes.NMr1);
+#else
+ false;
+#endif
+
+ internal static bool HasApiLevelO =>
+#if __ANDROID_26__
+ HasApiLevel(BuildVersionCodes.O);
+#else
+ false;
+#endif
+
+ internal static bool HasApiLevelOMr1 =>
+#if __ANDROID_27__
+ HasApiLevel(BuildVersionCodes.OMr1);
+#else
+ false;
+#endif
+
+ internal static bool HasApiLevelP =>
+#if __ANDROID_28__
+ HasApiLevel(BuildVersionCodes.P);
+#else
+ false;
+#endif
+
internal static bool HasApiLevel(BuildVersionCodes versionCode) =>
(int)Build.VERSION.SdkInt >= (int)versionCode;
@@ -92,8 +167,10 @@ internal static Java.Util.Locale GetLocale()
{
var resources = AppContext.Resources;
var config = resources.Configuration;
- if (HasApiLevel(BuildVersionCodes.N))
+#if __ANDROID_24__
+ if (HasApiLevelN)
return config.Locales.Get(0);
+#endif
return config.Locale;
}
@@ -103,7 +180,8 @@ internal static void SetLocale(Java.Util.Locale locale)
Java.Util.Locale.Default = locale;
var resources = AppContext.Resources;
var config = resources.Configuration;
- if (HasApiLevel(BuildVersionCodes.N))
+
+ if (HasApiLevelN)
config.SetLocale(locale);
else
config.Locale = locale;
@@ -123,8 +201,8 @@ class ActivityLifecycleContextListener : Java.Lang.Object, Application.IActivity
internal Activity Activity
{
- get => currentActivity.TryGetTarget(out var a) ? a : null;
- set => currentActivity.SetTarget(value);
+ get => currentActivity.TryGetTarget(out var a) ? a : null;
+ set => currentActivity.SetTarget(value);
}
void Application.IActivityLifecycleCallbacks.OnActivityCreated(Activity activity, Bundle savedInstanceState) =>
diff --git a/Xamarin.Essentials/Preferences/Preferences.android.cs b/Xamarin.Essentials/Preferences/Preferences.android.cs
index 9c992057d..e2b753e7e 100644
--- a/Xamarin.Essentials/Preferences/Preferences.android.cs
+++ b/Xamarin.Essentials/Preferences/Preferences.android.cs
@@ -28,7 +28,7 @@ static void PlatformRemove(string key, string sharedName)
using (var sharedPreferences = GetSharedPreferences(sharedName))
using (var editor = sharedPreferences.Edit())
{
- editor.Remove(key).Commit();
+ editor.Remove(key).Apply();
}
}
}
@@ -40,7 +40,7 @@ static void PlatformClear(string sharedName)
using (var sharedPreferences = GetSharedPreferences(sharedName))
using (var editor = sharedPreferences.Edit())
{
- editor.Clear().Commit();
+ editor.Clear().Apply();
}
}
}
diff --git a/Xamarin.Essentials/Resources/xml/xamarin_essentials_fileprovider_file_paths.xml b/Xamarin.Essentials/Resources/xml/xamarin_essentials_fileprovider_file_paths.xml
new file mode 100644
index 000000000..6273b8246
--- /dev/null
+++ b/Xamarin.Essentials/Resources/xml/xamarin_essentials_fileprovider_file_paths.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Xamarin.Essentials/SecureStorage/SecureStorage.android.cs b/Xamarin.Essentials/SecureStorage/SecureStorage.android.cs
index 1c5b0b84b..9a86403a9 100644
--- a/Xamarin.Essentials/SecureStorage/SecureStorage.android.cs
+++ b/Xamarin.Essentials/SecureStorage/SecureStorage.android.cs
@@ -14,6 +14,8 @@ namespace Xamarin.Essentials
{
public static partial class SecureStorage
{
+ static readonly object locker = new object();
+
static Task PlatformGetAsync(string key)
{
var context = Platform.AppContext;
@@ -24,11 +26,14 @@ static Task PlatformGetAsync(string key)
string decryptedData = null;
if (!string.IsNullOrEmpty(encStr))
{
- var encData = Convert.FromBase64String(encStr);
- var ks = new AndroidKeyStore(context, Alias, AlwaysUseAsymmetricKeyStorage);
try
{
- decryptedData = ks.Decrypt(encData);
+ var encData = Convert.FromBase64String(encStr);
+ lock (locker)
+ {
+ var ks = new AndroidKeyStore(context, Alias, AlwaysUseAsymmetricKeyStorage);
+ decryptedData = ks.Decrypt(encData);
+ }
}
catch (AEADBadTagException)
{
@@ -44,8 +49,12 @@ static Task PlatformSetAsync(string key, string data)
{
var context = Platform.AppContext;
- var ks = new AndroidKeyStore(context, Alias, AlwaysUseAsymmetricKeyStorage);
- var encryptedData = ks.Encrypt(data);
+ byte[] encryptedData = null;
+ lock (locker)
+ {
+ var ks = new AndroidKeyStore(context, Alias, AlwaysUseAsymmetricKeyStorage);
+ encryptedData = ks.Encrypt(data);
+ }
var encStr = Convert.ToBase64String(encryptedData);
Preferences.Set(Utils.Md5Hash(key), encStr, Alias);
diff --git a/Xamarin.Essentials/SecureStorage/SecureStorage.ios.cs b/Xamarin.Essentials/SecureStorage/SecureStorage.ios.cs
index 44c5725b9..874793038 100644
--- a/Xamarin.Essentials/SecureStorage/SecureStorage.ios.cs
+++ b/Xamarin.Essentials/SecureStorage/SecureStorage.ios.cs
@@ -1,4 +1,5 @@
using System;
+using System.Diagnostics;
using System.Threading.Tasks;
using Foundation;
@@ -99,8 +100,31 @@ internal void SetValueForKey(string value, string key, string service)
using (var newRecord = CreateRecordForNewKeyValue(key, value, service))
{
var result = SecKeyChain.Add(newRecord);
- if (result != SecStatusCode.Success)
- throw new Exception($"Error adding record: {result}");
+
+ switch (result)
+ {
+ case SecStatusCode.DuplicateItem:
+ {
+ Debug.WriteLine("Duplicate item found. Attempting to remove and add again.");
+
+ // try to remove and add again
+ if (Remove(key, service))
+ {
+ result = SecKeyChain.Add(newRecord);
+ if (result != SecStatusCode.Success)
+ throw new Exception($"Error adding record: {result}");
+ }
+ else
+ {
+ Debug.WriteLine("Unable to remove key.");
+ }
+ }
+ break;
+ case SecStatusCode.Success:
+ return;
+ default:
+ throw new Exception($"Error adding record: {result}");
+ }
}
}
diff --git a/Xamarin.Essentials/Share/Share.android.cs b/Xamarin.Essentials/Share/Share.android.cs
index 425e95495..3afe4a1ef 100644
--- a/Xamarin.Essentials/Share/Share.android.cs
+++ b/Xamarin.Essentials/Share/Share.android.cs
@@ -36,5 +36,27 @@ static Task PlatformRequestAsync(ShareTextRequest request)
return Task.CompletedTask;
}
+
+ static Task PlatformRequestAsync(ShareFileRequest request)
+ {
+ var contentUri = Platform.GetShareableFileUri(request.File.FullPath);
+
+ var intent = new Intent(Intent.ActionSend);
+ intent.SetType(request.File.ContentType);
+ intent.SetFlags(ActivityFlags.GrantReadUriPermission);
+ intent.PutExtra(Intent.ExtraStream, contentUri);
+
+ if (!string.IsNullOrEmpty(request.Title))
+ {
+ intent.PutExtra(Intent.ExtraTitle, request.Title);
+ }
+
+ var chooserIntent = Intent.CreateChooser(intent, request.Title ?? string.Empty);
+ chooserIntent.SetFlags(ActivityFlags.ClearTop);
+ chooserIntent.SetFlags(ActivityFlags.NewTask);
+ Platform.AppContext.StartActivity(chooserIntent);
+
+ return Task.CompletedTask;
+ }
}
}
diff --git a/Xamarin.Essentials/Share/Share.ios.cs b/Xamarin.Essentials/Share/Share.ios.cs
index 9cc39ee49..8f44b6333 100644
--- a/Xamarin.Essentials/Share/Share.ios.cs
+++ b/Xamarin.Essentials/Share/Share.ios.cs
@@ -31,6 +31,28 @@ static Task PlatformRequestAsync(ShareTextRequest request)
return vc.PresentViewControllerAsync(activityController, true);
}
+
+ static Task PlatformRequestAsync(ShareFileRequest request)
+ {
+ var items = new List();
+
+ var fileUrl = NSUrl.FromFilename(request.File.FullPath);
+ if (!string.IsNullOrEmpty(request.Title))
+ items.Add(new ShareActivityItemSource(fileUrl, request.Title)); // Share with title (subject)
+ else
+ items.Add(fileUrl); // No title specified
+
+ var activityController = new UIActivityViewController(items.ToArray(), null);
+
+ var vc = Platform.GetCurrentViewController();
+
+ if (activityController.PopoverPresentationController != null)
+ {
+ activityController.PopoverPresentationController.SourceView = vc.View;
+ }
+
+ return vc.PresentViewControllerAsync(activityController, true);
+ }
}
class ShareActivityItemSource : UIActivityItemSource
diff --git a/Xamarin.Essentials/Share/Share.netstandard.cs b/Xamarin.Essentials/Share/Share.netstandard.cs
index 65d5c6038..1a77eb1a2 100644
--- a/Xamarin.Essentials/Share/Share.netstandard.cs
+++ b/Xamarin.Essentials/Share/Share.netstandard.cs
@@ -6,5 +6,8 @@ public static partial class Share
{
static Task PlatformRequestAsync(ShareTextRequest request) =>
throw new NotImplementedInReferenceAssemblyException();
+
+ static Task PlatformRequestAsync(ShareFileRequest request) =>
+ throw new NotImplementedInReferenceAssemblyException();
}
}
diff --git a/Xamarin.Essentials/Share/Share.shared.cs b/Xamarin.Essentials/Share/Share.shared.cs
index 786e7c6c7..cfe27631f 100644
--- a/Xamarin.Essentials/Share/Share.shared.cs
+++ b/Xamarin.Essentials/Share/Share.shared.cs
@@ -1,4 +1,6 @@
-using System.Threading.Tasks;
+using System;
+using System.IO;
+using System.Threading.Tasks;
namespace Xamarin.Essentials
{
@@ -12,6 +14,13 @@ public static Task RequestAsync(string text, string title) =>
public static Task RequestAsync(ShareTextRequest request) =>
PlatformRequestAsync(request);
+
+ public static Task RequestAsync(ShareFileRequest request)
+ {
+ ExperimentalFeatures.VerifyEnabled(ExperimentalFeatures.ShareFileRequest);
+
+ return PlatformRequestAsync(request);
+ }
}
public class ShareTextRequest
@@ -33,4 +42,85 @@ public ShareTextRequest(string text, string title)
public string Uri { get; set; }
}
+
+ public class ShareFileRequest
+ {
+ public ShareFileRequest()
+ {
+ ExperimentalFeatures.VerifyEnabled(ExperimentalFeatures.ShareFileRequest);
+ }
+
+ public ShareFileRequest(string title, ShareFile file)
+ {
+ ExperimentalFeatures.VerifyEnabled(ExperimentalFeatures.ShareFileRequest);
+ Title = title;
+ File = file;
+ }
+
+ public ShareFileRequest(string title, FileBase file)
+ {
+ ExperimentalFeatures.VerifyEnabled(ExperimentalFeatures.ShareFileRequest);
+ Title = title;
+ File = new ShareFile(file);
+ }
+
+ public ShareFileRequest(ShareFile file)
+ {
+ ExperimentalFeatures.VerifyEnabled(ExperimentalFeatures.ShareFileRequest);
+ File = file;
+ }
+
+ public ShareFileRequest(FileBase file)
+ {
+ ExperimentalFeatures.VerifyEnabled(ExperimentalFeatures.ShareFileRequest);
+ File = new ShareFile(file);
+ }
+
+ public string Title { get; set; }
+
+ public ShareFile File { get; set; }
+ }
+
+ public class ShareFile : FileBase
+ {
+ public ShareFile(string fullPath)
+ : base(fullPath)
+ {
+ ExperimentalFeatures.VerifyEnabled(ExperimentalFeatures.ShareFileRequest);
+ }
+
+ public ShareFile(string fullPath, string contentType)
+ : base(fullPath, contentType)
+ {
+ ExperimentalFeatures.VerifyEnabled(ExperimentalFeatures.ShareFileRequest);
+ }
+
+ public ShareFile(FileBase file)
+ : base(file)
+ {
+ ExperimentalFeatures.VerifyEnabled(ExperimentalFeatures.ShareFileRequest);
+ }
+
+ string attachmentName;
+
+ public string AttachmentName
+ {
+ get => GetAttachmentName();
+ set => attachmentName = value;
+ }
+
+ internal string GetAttachmentName()
+ {
+ // try the provided file name
+ if (!string.IsNullOrWhiteSpace(attachmentName))
+ return attachmentName;
+
+ // try get from the path
+ if (!string.IsNullOrWhiteSpace(FullPath))
+ return Path.GetFileName(FullPath);
+
+ // this should never happen as the path is validated in the constructor
+ throw new InvalidOperationException($"Unable to determine the attachment file name from '{FullPath}'.");
+ }
+ }
}
diff --git a/Xamarin.Essentials/Share/Share.uwp.cs b/Xamarin.Essentials/Share/Share.uwp.cs
index fb42a6031..7ba9a8c46 100644
--- a/Xamarin.Essentials/Share/Share.uwp.cs
+++ b/Xamarin.Essentials/Share/Share.uwp.cs
@@ -1,6 +1,7 @@
using System;
using System.Threading.Tasks;
using Windows.ApplicationModel.DataTransfer;
+using Windows.Storage;
namespace Xamarin.Essentials
{
@@ -35,5 +36,26 @@ void ShareTextHandler(DataTransferManager sender, DataRequestedEventArgs e)
return Task.CompletedTask;
}
+
+ static async Task PlatformRequestAsync(ShareFileRequest request)
+ {
+ var storageFile = request.File.File ?? await StorageFile.GetFileFromPathAsync(request.File.FullPath);
+
+ var dataTransferManager = DataTransferManager.GetForCurrentView();
+
+ dataTransferManager.DataRequested += ShareTextHandler;
+
+ DataTransferManager.ShowShareUI();
+
+ void ShareTextHandler(DataTransferManager sender, DataRequestedEventArgs e)
+ {
+ var newRequest = e.Request;
+
+ newRequest.Data.SetStorageItems(new IStorageItem[] { storageFile });
+ newRequest.Data.Properties.Title = request.Title ?? AppInfo.Name;
+
+ dataTransferManager.DataRequested -= ShareTextHandler;
+ }
+ }
}
}
diff --git a/Xamarin.Essentials/Types/ColorConverters.shared.cs b/Xamarin.Essentials/Types/ColorConverters.shared.cs
new file mode 100644
index 000000000..42c8a256d
--- /dev/null
+++ b/Xamarin.Essentials/Types/ColorConverters.shared.cs
@@ -0,0 +1,180 @@
+#if !NETSTANDARD1_0
+using System;
+using System.Drawing;
+
+namespace Xamarin.Essentials
+{
+ public static class ColorConverters
+ {
+ public static Color FromHsl(float hue, float saturation, float luminosity)
+ {
+ ConvertToRgb(hue / 360f, saturation / 100f, luminosity / 100f, out var r, out var g, out var b);
+ return Color.FromArgb(r, g, b);
+ }
+
+ public static Color FromHsla(float hue, float saturation, float luminosity, int alpha)
+ {
+ ConvertToRgb(hue / 360f, saturation / 100f, luminosity / 100f, out var r, out var g, out var b);
+ return Color.FromArgb(alpha, r, g, b);
+ }
+
+ public static Color FromHex(string hex)
+ {
+ // Undefined
+ if (hex.Length < 3)
+ throw new ArgumentException(nameof(hex));
+
+ var idx = (hex[0] == '#') ? 1 : 0;
+
+ switch (hex.Length - idx)
+ {
+ case 3: // #rgb => ffrrggbb
+ var t1 = ToHexD(hex[idx++]);
+ var t2 = ToHexD(hex[idx++]);
+ var t3 = ToHexD(hex[idx]);
+
+ return Color.FromArgb((int)t1, (int)t2, (int)t3);
+
+ case 4: // #argb => aarrggbb
+ var f1 = ToHexD(hex[idx++]);
+ var f2 = ToHexD(hex[idx++]);
+ var f3 = ToHexD(hex[idx++]);
+ var f4 = ToHexD(hex[idx]);
+ return Color.FromArgb((int)f1, (int)f2, (int)f3, (int)f4);
+
+ case 6: // #rrggbb => ffrrggbb
+ return Color.FromArgb(
+ (int)(ToHex(hex[idx++]) << 4 | ToHex(hex[idx++])),
+ (int)(ToHex(hex[idx++]) << 4 | ToHex(hex[idx++])),
+ (int)(ToHex(hex[idx++]) << 4 | ToHex(hex[idx])));
+
+ case 8: // #aarrggbb
+ var a1 = ToHex(hex[idx++]) << 4 | ToHex(hex[idx++]);
+ return Color.FromArgb(
+ (int)a1,
+ (int)(ToHex(hex[idx++]) << 4 | ToHex(hex[idx++])),
+ (int)(ToHex(hex[idx++]) << 4 | ToHex(hex[idx++])),
+ (int)(ToHex(hex[idx++]) << 4 | ToHex(hex[idx])));
+
+ default: // everything else will result in unexpected results
+ throw new ArgumentException(nameof(hex));
+ }
+ }
+
+ public static Color FromUInt(uint argb)
+ {
+ var a = (byte)(argb >> 24);
+ var r = (byte)(argb >> 16);
+ var g = (byte)(argb >> 8);
+ var b = (byte)(argb >> 0);
+
+ return Color.FromArgb(a, r, g, b);
+ }
+
+ internal static void ConvertToRgb(float hue, float saturation, float luminosity, out int r, out int g, out int b)
+ {
+ if (luminosity == 0)
+ {
+ r = g = b = 0;
+ return;
+ }
+
+ if (saturation == 0)
+ {
+ r = g = b = (int)Math.Round(luminosity * 255, MidpointRounding.AwayFromZero);
+ return;
+ }
+
+ var temp2 = luminosity <= 0.5f ? luminosity * (1.0f + saturation) : luminosity + saturation - (luminosity * saturation);
+ var temp1 = (2.0f * luminosity) - temp2;
+
+ var t3 = new[] { hue + (1.0f / 3.0f), hue, hue - (1.0f / 3.0f) };
+ var clr = new float[] { 0, 0, 0 };
+ for (var i = 0; i < 3; i++)
+ {
+ if (t3[i] < 0)
+ t3[i] += 1.0f;
+ if (t3[i] > 1)
+ t3[i] -= 1.0f;
+ if (6.0 * t3[i] < 1.0)
+ clr[i] = temp1 + ((temp2 - temp1) * t3[i] * 6.0f);
+ else if (2.0 * t3[i] < 1.0)
+ clr[i] = temp2;
+ else if (3.0 * t3[i] < 2.0)
+ clr[i] = temp1 + ((temp2 - temp1) * ((2.0f / 3.0f) - t3[i]) * 6.0f);
+ else
+ clr[i] = temp1;
+ }
+
+ r = (int)Math.Round(clr[0] * 255, MidpointRounding.AwayFromZero);
+ g = (int)Math.Round(clr[1] * 255, MidpointRounding.AwayFromZero);
+ b = (int)Math.Round(clr[2] * 255, MidpointRounding.AwayFromZero);
+ }
+
+ internal static void ConvertToHsl(float r, float g, float b, out float h, out float s, out float l)
+ {
+ var v = Math.Max(r, g);
+ v = Math.Max(v, b);
+
+ var m = Math.Min(r, g);
+ m = Math.Min(m, b);
+
+ l = (m + v) / 2.0f;
+ if (l <= 0.0)
+ {
+ h = s = l = 0;
+ return;
+ }
+ var vm = v - m;
+ s = vm;
+
+ if (s > 0.0)
+ {
+ s /= l <= 0.5f ? v + m : 2.0f - v - m;
+ }
+ else
+ {
+ h = 0;
+ s = 0;
+ return;
+ }
+
+ var r2 = (v - r) / vm;
+ var g2 = (v - g) / vm;
+ var b2 = (v - b) / vm;
+
+ if (r == v)
+ {
+ h = g == m ? 5.0f + b2 : 1.0f - g2;
+ }
+ else if (g == v)
+ {
+ h = b == m ? 1.0f + r2 : 3.0f - b2;
+ }
+ else
+ {
+ h = r == m ? 3.0f + g2 : 5.0f - r2;
+ }
+ h /= 6.0f;
+ }
+
+ internal static uint ToHexD(char c)
+ {
+ var j = ToHex(c);
+ return (j << 4) | j;
+ }
+
+ internal static uint ToHex(char c)
+ {
+ var x = (ushort)c;
+ if (x >= '0' && x <= '9')
+ return (uint)(x - '0');
+
+ x |= 0x20;
+ if (x >= 'a' && x <= 'f')
+ return (uint)(x - 'a' + 10);
+ return 0;
+ }
+ }
+}
+#endif
diff --git a/Xamarin.Essentials/Types/ExperimentalFeatures.shared.cs b/Xamarin.Essentials/Types/ExperimentalFeatures.shared.cs
new file mode 100644
index 000000000..7383c867d
--- /dev/null
+++ b/Xamarin.Essentials/Types/ExperimentalFeatures.shared.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
+
+namespace Xamarin.Essentials
+{
+ public static class ExperimentalFeatures
+ {
+ public const string ShareFileRequest = "ShareFileRequest_Experimental";
+ public const string EmailAttachments = "EmailAttachments_Experimental";
+
+ static List enabledFeatures;
+
+ public static void Enable(params string[] featureNames)
+ {
+ if (enabledFeatures == null)
+ enabledFeatures = new List();
+
+ foreach (var featureName in featureNames)
+ {
+ if (!enabledFeatures.Contains(featureName))
+ enabledFeatures.Add(featureName);
+ }
+ }
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ internal static void VerifyEnabled(
+ string featureName,
+ [CallerMemberName] string memberName = "")
+ {
+ if (enabledFeatures == null || !enabledFeatures.Contains(featureName))
+ {
+ var call = string.IsNullOrEmpty(memberName) ? string.Empty : $"('{memberName}'), which is ";
+
+ var errorMessage = $"The class, property, or method you are attempting to use {call}an experimental feature;"
+ + " to use it, you must opt-in by calling "
+ + $"ExperimentalFeatures.Enable(\"{featureName}\") before using this feature.";
+
+ throw new InvalidOperationException(errorMessage);
+ }
+ }
+ }
+}
diff --git a/Xamarin.Essentials/Types/FileProvider.android.cs b/Xamarin.Essentials/Types/FileProvider.android.cs
new file mode 100644
index 000000000..7bead7f87
--- /dev/null
+++ b/Xamarin.Essentials/Types/FileProvider.android.cs
@@ -0,0 +1,107 @@
+using System;
+using Android.App;
+using Android.Content;
+using Android.OS;
+using AndroidEnvironment = Android.OS.Environment;
+
+namespace Xamarin.Essentials
+{
+ [ContentProvider(
+ new[] { "${applicationId}.fileProvider" },
+ Name = "xamarin.essentials.fileProvider",
+ Exported = false,
+ GrantUriPermissions = true)]
+ [MetaData(
+ "android.support.FILE_PROVIDER_PATHS",
+ Resource = "@xml/xamarin_essentials_fileprovider_file_paths")]
+ public class FileProvider : global::Android.Support.V4.Content.FileProvider
+ {
+ internal static bool AlwaysFailExternalMediaAccess { get; set; } = false;
+
+ // This allows us to override the default temporary file location of Preferring external but falling back to internal
+ // We can choose external only, or internal only as alternative options
+ public static FileProviderLocation TemporaryLocation { get; set; } = FileProviderLocation.PreferExternal;
+
+ internal static Java.IO.File GetTemporaryDirectory()
+ {
+ var root = GetTemporaryRootDirectory();
+ var dir = new Java.IO.File(root, "2203693cc04e0be7f4f024d5f9499e13");
+ dir.Mkdirs();
+ dir.DeleteOnExit();
+ return dir;
+ }
+
+ internal static Java.IO.File GetTemporaryRootDirectory()
+ {
+ // If we specifically want the internal storage, no extra checks are needed, we have permission
+ if (TemporaryLocation == FileProviderLocation.Internal)
+ return Platform.AppContext.CacheDir;
+
+ // If we explicitly want only external locations we need to do some permissions checking
+ var externalOnly = TemporaryLocation == FileProviderLocation.External;
+
+ // Check to see if we are >= API Level 19 (KitKat) since we don't need to declare the permission on these API levels to save to the external cache/storage
+ // If we're not on 19 or higher we do need to check for permissions, but if we aren't limiting to external only, don't throw an exception if the
+ // permission wasn't declared because we can always fall back to internal cache
+ var hasPermission = Platform.HasApiLevel(BuildVersionCodes.Kitkat) || Permissions.EnsureDeclared(PermissionType.WriteExternalStorage, externalOnly);
+
+ // make sure the external storage is available
+ var hasExternalMedia = Platform.HasApiLevel(BuildVersionCodes.Lollipop)
+ ? AndroidEnvironment.GetExternalStorageState(Platform.AppContext.ExternalCacheDir) == AndroidEnvironment.MediaMounted
+#pragma warning disable CS0618 // Type or member is obsolete
+ : AndroidEnvironment.GetStorageState(Platform.AppContext.ExternalCacheDir) == AndroidEnvironment.MediaMounted;
+#pragma warning restore CS0618 // Type or member is obsolete
+
+ // undo all the work if we have requested a fail (mainly for testing)
+ if (AlwaysFailExternalMediaAccess)
+ hasExternalMedia = false;
+
+ // fail if we need the external storage, but there is none
+ if (externalOnly && !hasExternalMedia)
+ throw new InvalidOperationException("Unable to access the external storage, the media is not mounted.");
+
+ // based on permssions, return the correct directory
+ // if permission were required, then it would have already thrown
+ return hasPermission && hasExternalMedia
+ ? Platform.AppContext.ExternalCacheDir
+ : Platform.AppContext.CacheDir;
+ }
+
+ internal static bool IsFileInPublicLocation(string filename)
+ {
+ // get the Android path, we use "CanonicalPath" instead of "AbsolutePath"
+ // because we want to resolve any ".." and links/redirects
+ var file = new Java.IO.File(filename);
+ filename = file.CanonicalPath;
+
+ // the shared paths from the "xamarin_essentials_fileprovider_file_paths.xml" resource
+ var publicLocations = new[]
+ {
+ AndroidEnvironment.ExternalStorageDirectory.CanonicalPath,
+ Platform.AppContext.ExternalCacheDir.CanonicalPath,
+ Platform.AppContext.CacheDir.CanonicalPath,
+ };
+
+ foreach (var location in publicLocations)
+ {
+ // make sure we have a trailing slash
+ var suffixedPath = filename.EndsWith(Java.IO.File.Separator)
+ ? filename
+ : filename + Java.IO.File.Separator;
+
+ // check if the requested file is in a folder
+ if (suffixedPath.StartsWith(location, StringComparison.OrdinalIgnoreCase))
+ return true;
+ }
+
+ return false;
+ }
+ }
+
+ public enum FileProviderLocation
+ {
+ PreferExternal,
+ Internal,
+ External,
+ }
+}
diff --git a/Xamarin.Essentials/Types/Location.shared.cs b/Xamarin.Essentials/Types/Location.shared.cs
index 442abfab9..eeee722a4 100644
--- a/Xamarin.Essentials/Types/Location.shared.cs
+++ b/Xamarin.Essentials/Types/Location.shared.cs
@@ -56,6 +56,8 @@ public Location(Location point)
public double? Course { get; set; }
+ public bool IsFromMockProvider { get; set; }
+
public static double CalculateDistance(double latitudeStart, double longitudeStart, Location locationEnd, DistanceUnits units) =>
CalculateDistance(latitudeStart, longitudeStart, locationEnd.Latitude, locationEnd.Longitude, units);
diff --git a/Xamarin.Essentials/Types/LocationExtensions.android.cs b/Xamarin.Essentials/Types/LocationExtensions.android.cs
index 88f3386d5..79f31b696 100644
--- a/Xamarin.Essentials/Types/LocationExtensions.android.cs
+++ b/Xamarin.Essentials/Types/LocationExtensions.android.cs
@@ -29,7 +29,8 @@ internal static Location ToLocation(this AndroidLocation location) =>
Timestamp = location.GetTimestamp().ToUniversalTime(),
Accuracy = location.HasAccuracy ? location.Accuracy : default(float?),
Course = location.HasBearing ? location.Bearing : default(double?),
- Speed = location.HasSpeed ? location.Speed : default(double?)
+ Speed = location.HasSpeed ? location.Speed : default(double?),
+ IsFromMockProvider = location.IsFromMockProvider
};
static readonly DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
diff --git a/Xamarin.Essentials/Types/LocationExtensions.ios.cs b/Xamarin.Essentials/Types/LocationExtensions.ios.cs
index e9e3c5c08..633927c25 100644
--- a/Xamarin.Essentials/Types/LocationExtensions.ios.cs
+++ b/Xamarin.Essentials/Types/LocationExtensions.ios.cs
@@ -29,7 +29,8 @@ internal static Location ToLocation(this CLLocation location) =>
Accuracy = location.HorizontalAccuracy,
Timestamp = location.Timestamp.ToDateTime(),
Course = location.Course < 0 ? default(double?) : location.Course,
- Speed = location.Speed < 0 ? default(double?) : location.Speed
+ Speed = location.Speed < 0 ? default(double?) : location.Speed,
+ IsFromMockProvider = DeviceInfo.DeviceType == DeviceType.Virtual
};
internal static DateTimeOffset ToDateTime(this NSDate timestamp)
diff --git a/Xamarin.Essentials/Types/LocationExtensions.uwp.cs b/Xamarin.Essentials/Types/LocationExtensions.uwp.cs
index 9eabeac8a..62212240b 100644
--- a/Xamarin.Essentials/Types/LocationExtensions.uwp.cs
+++ b/Xamarin.Essentials/Types/LocationExtensions.uwp.cs
@@ -32,7 +32,8 @@ internal static Location ToLocation(this Geoposition location) =>
Altitude = location.Coordinate.Point.Position.Altitude,
Accuracy = location.Coordinate.Accuracy,
Speed = (!location.Coordinate.Speed.HasValue || double.IsNaN(location.Coordinate.Speed.Value)) ? default : location.Coordinate.Speed,
- Course = (!location.Coordinate.Heading.HasValue || double.IsNaN(location.Coordinate.Heading.Value)) ? default : location.Coordinate.Heading
+ Course = (!location.Coordinate.Heading.HasValue || double.IsNaN(location.Coordinate.Heading.Value)) ? default : location.Coordinate.Heading,
+ IsFromMockProvider = false
};
internal static Location ToLocation(this Geocoordinate coordinate) =>
diff --git a/Xamarin.Essentials/Types/PlatformExtensions/ColorExtensions.android.cs b/Xamarin.Essentials/Types/PlatformExtensions/ColorExtensions.android.cs
new file mode 100644
index 000000000..98df26103
--- /dev/null
+++ b/Xamarin.Essentials/Types/PlatformExtensions/ColorExtensions.android.cs
@@ -0,0 +1,14 @@
+using System.Drawing;
+using AndroidColor = Android.Graphics.Color;
+
+namespace Xamarin.Essentials
+{
+ public static partial class ColorExtensions
+ {
+ public static Color ToSystemColor(this AndroidColor color) =>
+ Color.FromArgb(color.A, color.R, color.G, color.B);
+
+ public static AndroidColor ToPlatformColor(this Color color) =>
+ new AndroidColor(color.R, color.G, color.B, color.A);
+ }
+}
diff --git a/Xamarin.Essentials/Types/PlatformExtensions/ColorExtensions.ios.cs b/Xamarin.Essentials/Types/PlatformExtensions/ColorExtensions.ios.cs
new file mode 100644
index 000000000..3545d96e6
--- /dev/null
+++ b/Xamarin.Essentials/Types/PlatformExtensions/ColorExtensions.ios.cs
@@ -0,0 +1,17 @@
+using System.Drawing;
+using UIKit;
+
+namespace Xamarin.Essentials
+{
+ public static partial class ColorExtensions
+ {
+ public static Color ToSystemColor(this UIColor color)
+ {
+ color.GetRGBA(out var red, out var green, out var blue, out var alpha);
+ return Color.FromArgb((int)(alpha * 255), (int)(red * 255), (int)(green * 255), (int)(blue * 255));
+ }
+
+ public static UIColor ToPlatformColor(this Color color) =>
+ new UIColor(color.R / 255f, color.G / 255f, color.B / 255f, color.A / 255f);
+ }
+}
diff --git a/Xamarin.Essentials/Types/PlatformExtensions/ColorExtensions.shared.cs b/Xamarin.Essentials/Types/PlatformExtensions/ColorExtensions.shared.cs
new file mode 100644
index 000000000..2dc601fdf
--- /dev/null
+++ b/Xamarin.Essentials/Types/PlatformExtensions/ColorExtensions.shared.cs
@@ -0,0 +1,53 @@
+#if !NETSTANDARD1_0
+using System;
+using System.Drawing;
+
+namespace Xamarin.Essentials
+{
+ public static partial class ColorExtensions
+ {
+ public static Color MultiplyAlpha(this Color color, float percentage)
+ {
+ return Color.FromArgb((int)(color.A * percentage), color.R, color.G, color.B);
+ }
+
+ public static Color AddLuminosity(this Color color, float delta)
+ {
+ ColorConverters.ConvertToHsl(color.R / 255f, color.G / 255f, color.B / 255f, out var h, out var s, out var l);
+ var newL = l + delta;
+ ColorConverters.ConvertToRgb(h, s, newL, out var r, out var g, out var b);
+ return Color.FromArgb(color.A, r, g, b);
+ }
+
+ public static Color WithHue(this Color color, float hue)
+ {
+ ColorConverters.ConvertToHsl(color.R / 255f, color.G / 255f, color.B / 255f, out var h, out var s, out var l);
+ ColorConverters.ConvertToRgb(hue / 360f, s, l, out var r, out var g, out var b);
+ return Color.FromArgb(color.A, r, g, b);
+ }
+
+ public static Color WithSaturation(this Color color, float saturation)
+ {
+ ColorConverters.ConvertToHsl(color.R / 255f, color.G / 255f, color.B / 255f, out var h, out var s, out var l);
+ ColorConverters.ConvertToRgb(h, saturation / 100f, l, out var r, out var g, out var b);
+ return Color.FromArgb(color.A, r, g, b);
+ }
+
+ public static Color WithAlpha(this Color color, int alpha) =>
+ Color.FromArgb(alpha, color.R, color.G, color.B);
+
+ public static Color WithLuminosity(this Color color, float luminosity)
+ {
+ ColorConverters.ConvertToHsl(color.R / 255f, color.G / 255f, color.B / 255f, out var h, out var s, out var l);
+ ColorConverters.ConvertToRgb(h, s, luminosity / 100f, out var r, out var g, out var b);
+ return Color.FromArgb(color.A, r, g, b);
+ }
+
+ public static uint ToUInt(this Color color) =>
+ (uint)((color.A << 24) | (color.R << 16) | (color.G << 8) | (color.B << 0));
+
+ public static int ToInt(this Color color) =>
+ (color.A << 24) | (color.R << 16) | (color.G << 8) | (color.B << 0);
+ }
+}
+#endif
diff --git a/Xamarin.Essentials/Types/PlatformExtensions/ColorExtensions.uwp.cs b/Xamarin.Essentials/Types/PlatformExtensions/ColorExtensions.uwp.cs
new file mode 100644
index 000000000..32924256d
--- /dev/null
+++ b/Xamarin.Essentials/Types/PlatformExtensions/ColorExtensions.uwp.cs
@@ -0,0 +1,14 @@
+using System.Drawing;
+using WindowsColor = Windows.UI.Color;
+
+namespace Xamarin.Essentials
+{
+ public static partial class ColorExtensions
+ {
+ public static Color ToSystemColor(this WindowsColor color) =>
+ Color.FromArgb(color.A, color.R, color.G, color.B);
+
+ public static WindowsColor ToPlatformColor(this Color color) =>
+ WindowsColor.FromArgb(color.A, color.R, color.G, color.B);
+ }
+}
diff --git a/Xamarin.Essentials/Types/PlatformExtensions/PointExtensions.android.cs b/Xamarin.Essentials/Types/PlatformExtensions/PointExtensions.android.cs
new file mode 100644
index 000000000..2b3bb5c15
--- /dev/null
+++ b/Xamarin.Essentials/Types/PlatformExtensions/PointExtensions.android.cs
@@ -0,0 +1,21 @@
+using System.Drawing;
+using AndroidPoint = Android.Graphics.Point;
+using AndroidPointF = Android.Graphics.PointF;
+
+namespace Xamarin.Essentials
+{
+ public static class PointExtensions
+ {
+ public static Point ToSystemPoint(this AndroidPoint point) =>
+ new Point(point.X, point.Y);
+
+ public static PointF ToSystemPointF(this AndroidPointF point) =>
+ new PointF(point.X, point.Y);
+
+ public static AndroidPoint ToPlatformPoint(this Point point) =>
+ new AndroidPoint(point.X, point.Y);
+
+ public static AndroidPointF ToPlatformPointF(this PointF point) =>
+ new AndroidPointF(point.X, point.Y);
+ }
+}
diff --git a/Xamarin.Essentials/Types/PlatformExtensions/PointExtensions.ios.cs b/Xamarin.Essentials/Types/PlatformExtensions/PointExtensions.ios.cs
new file mode 100644
index 000000000..722547240
--- /dev/null
+++ b/Xamarin.Essentials/Types/PlatformExtensions/PointExtensions.ios.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Drawing;
+using iOSPoint = CoreGraphics.CGPoint;
+
+namespace Xamarin.Essentials
+{
+ public static class PointExtensions
+ {
+ public static Point ToSystemPoint(this iOSPoint point)
+ {
+ if (point.X > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(point.X));
+
+ if (point.Y > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(point.Y));
+
+ return new Point((int)point.X, (int)point.Y);
+ }
+
+ public static PointF ToSystemPointF(this iOSPoint point) =>
+ new PointF((float)point.X, (float)point.Y);
+
+ public static iOSPoint ToPlatformPoint(this Point point) =>
+ new iOSPoint((nfloat)point.X, (nfloat)point.Y);
+
+ public static iOSPoint ToPlatformPoint(this PointF point) =>
+ new iOSPoint((nfloat)point.X, (nfloat)point.Y);
+ }
+}
diff --git a/Xamarin.Essentials/Types/PlatformExtensions/PointExtensions.uwp.cs b/Xamarin.Essentials/Types/PlatformExtensions/PointExtensions.uwp.cs
new file mode 100644
index 000000000..7537bb5c0
--- /dev/null
+++ b/Xamarin.Essentials/Types/PlatformExtensions/PointExtensions.uwp.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Drawing;
+using WindowsPoint = Windows.Foundation.Point;
+
+namespace Xamarin.Essentials
+{
+ public static class PointExtensions
+ {
+ public static Point ToSystemPoint(this WindowsPoint point)
+ {
+ if (point.X > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(point.X));
+
+ if (point.Y > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(point.Y));
+
+ return new Point((int)point.X, (int)point.Y);
+ }
+
+ public static PointF ToSystemPointF(this WindowsPoint point) =>
+ new PointF((float)point.X, (float)point.Y);
+
+ public static WindowsPoint ToPlatformPoint(this Point point) =>
+ new WindowsPoint(point.X, point.Y);
+
+ public static WindowsPoint ToPlatformPoint(this PointF point) =>
+ new WindowsPoint(point.X, point.Y);
+ }
+}
diff --git a/Xamarin.Essentials/Types/PlatformExtensions/RectangleExtensions.android.cs b/Xamarin.Essentials/Types/PlatformExtensions/RectangleExtensions.android.cs
new file mode 100644
index 000000000..faafe5cde
--- /dev/null
+++ b/Xamarin.Essentials/Types/PlatformExtensions/RectangleExtensions.android.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Drawing;
+using Android.Graphics;
+
+namespace Xamarin.Essentials
+{
+ public static class RectangleExtensions
+ {
+ public static Rectangle ToSystemRectangle(this Rect rect) =>
+ new Rectangle(rect.Left, rect.Top, rect.Width(), rect.Height());
+
+ public static RectangleF ToSystemRectangleF(this RectF rect) =>
+ new RectangleF(rect.Left, rect.Top, rect.Width(), rect.Height());
+
+ public static Rect ToPlatformRectangle(this Rectangle rect) =>
+ new Rect(rect.Left, rect.Top, rect.Right, rect.Bottom);
+
+ public static RectF ToPlatformRectangleF(this RectangleF rect) =>
+ new RectF(rect.Left, rect.Top, rect.Right, rect.Bottom);
+ }
+}
diff --git a/Xamarin.Essentials/Types/PlatformExtensions/RectangleExtensions.ios.cs b/Xamarin.Essentials/Types/PlatformExtensions/RectangleExtensions.ios.cs
new file mode 100644
index 000000000..9f093efe2
--- /dev/null
+++ b/Xamarin.Essentials/Types/PlatformExtensions/RectangleExtensions.ios.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Drawing;
+using iOSRectangle = CoreGraphics.CGRect;
+
+namespace Xamarin.Essentials
+{
+ public static class RectangleExtensions
+ {
+ public static Rectangle ToSystemRectangle(this iOSRectangle rect)
+ {
+ if (rect.X > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(rect.X));
+
+ if (rect.Y > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(rect.Y));
+
+ if (rect.Width > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(rect.Width));
+
+ if (rect.Height > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(rect.Height));
+
+ return new Rectangle((int)rect.X, (int)rect.Y, (int)rect.Width, (int)rect.Height);
+ }
+
+ public static RectangleF ToSystemRectangleF(this iOSRectangle rect) =>
+ new RectangleF((float)rect.X, (float)rect.Y, (float)rect.Width, (float)rect.Height);
+
+ public static iOSRectangle ToPlatformRectangle(this Rectangle rect) =>
+ new iOSRectangle((nfloat)rect.X, (nfloat)rect.Y, (nfloat)rect.Width, (nfloat)rect.Height);
+
+ public static iOSRectangle ToPlatformRectangle(this RectangleF rect) =>
+ new iOSRectangle((nfloat)rect.X, (nfloat)rect.Y, (nfloat)rect.Width, (nfloat)rect.Height);
+ }
+}
diff --git a/Xamarin.Essentials/Types/PlatformExtensions/RectangleExtensions.uwp.cs b/Xamarin.Essentials/Types/PlatformExtensions/RectangleExtensions.uwp.cs
new file mode 100644
index 000000000..0d72a6814
--- /dev/null
+++ b/Xamarin.Essentials/Types/PlatformExtensions/RectangleExtensions.uwp.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Drawing;
+using Windows.Foundation;
+
+namespace Xamarin.Essentials
+{
+ public static class RectangleExtensions
+ {
+ public static Rectangle ToSystemRectangle(this Rect rect)
+ {
+ if (rect.X > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(rect.X));
+
+ if (rect.Y > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(rect.Y));
+
+ if (rect.Width > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(rect.Width));
+
+ if (rect.Height > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(rect.Height));
+
+ return new Rectangle((int)rect.X, (int)rect.Y, (int)rect.Width, (int)rect.Height);
+ }
+
+ public static RectangleF ToSystemRectangleF(this Rect rect) =>
+ new RectangleF((float)rect.X, (float)rect.Y, (float)rect.Width, (float)rect.Height);
+
+ public static Rect ToPlatformRectangle(this Rectangle rect) =>
+ new Rect(rect.X, rect.Y, rect.Width, rect.Height);
+
+ public static Rect ToPlatformRectangle(this RectangleF rect) =>
+ new Rect(rect.X, rect.Y, rect.Width, rect.Height);
+ }
+}
diff --git a/Xamarin.Essentials/Types/PlatformExtensions/SizeExtensions.android.cs b/Xamarin.Essentials/Types/PlatformExtensions/SizeExtensions.android.cs
new file mode 100644
index 000000000..595f8f873
--- /dev/null
+++ b/Xamarin.Essentials/Types/PlatformExtensions/SizeExtensions.android.cs
@@ -0,0 +1,21 @@
+using System.Drawing;
+using AndroidSize = Android.Util.Size;
+using AndroidSizeF = Android.Util.SizeF;
+
+namespace Xamarin.Essentials
+{
+ public static class SizeExtensions
+ {
+ public static Size ToSystemSize(this AndroidSize size) =>
+ new Size(size.Width, size.Height);
+
+ public static SizeF ToSystemSizeF(this AndroidSizeF size) =>
+ new SizeF(size.Width, size.Height);
+
+ public static AndroidSize ToPlatformSize(this Size size) =>
+ new AndroidSize(size.Width, size.Height);
+
+ public static AndroidSizeF ToPlatformSizeF(this SizeF size) =>
+ new AndroidSizeF(size.Width, size.Height);
+ }
+}
diff --git a/Xamarin.Essentials/Types/PlatformExtensions/SizeExtensions.ios.cs b/Xamarin.Essentials/Types/PlatformExtensions/SizeExtensions.ios.cs
new file mode 100644
index 000000000..a17d9b3b1
--- /dev/null
+++ b/Xamarin.Essentials/Types/PlatformExtensions/SizeExtensions.ios.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Drawing;
+using iOSSize = CoreGraphics.CGSize;
+
+namespace Xamarin.Essentials
+{
+ public static class SizeExtensions
+ {
+ public static Size ToSystemSize(this iOSSize size)
+ {
+ if (size.Width > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(size.Width));
+
+ if (size.Height > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(size.Height));
+
+ return new Size((int)size.Width, (int)size.Height);
+ }
+
+ public static SizeF ToSystemSizeF(this iOSSize size) =>
+ new SizeF((float)size.Width, (float)size.Height);
+
+ public static iOSSize ToPlatformSize(this Size size) =>
+ new iOSSize((nfloat)size.Width, (nfloat)size.Height);
+
+ public static iOSSize ToPlatformSize(this SizeF size) =>
+ new iOSSize((nfloat)size.Width, (nfloat)size.Height);
+ }
+}
diff --git a/Xamarin.Essentials/Types/PlatformExtensions/SizeExtensions.uwp.cs b/Xamarin.Essentials/Types/PlatformExtensions/SizeExtensions.uwp.cs
new file mode 100644
index 000000000..4042c0926
--- /dev/null
+++ b/Xamarin.Essentials/Types/PlatformExtensions/SizeExtensions.uwp.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Drawing;
+using WindowsSize = Windows.Foundation.Size;
+
+namespace Xamarin.Essentials
+{
+ public static class SizeExtensions
+ {
+ public static Size ToSystemSize(this WindowsSize size)
+ {
+ if (size.Width > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(size.Width));
+
+ if (size.Height > int.MaxValue)
+ throw new ArgumentOutOfRangeException(nameof(size.Height));
+
+ return new Size((int)size.Width, (int)size.Height);
+ }
+
+ public static SizeF ToSystemSizFe(this WindowsSize size) =>
+ new SizeF((float)size.Width, (float)size.Height);
+
+ public static WindowsSize ToPlatformSize(this Size size) =>
+ new WindowsSize(size.Width, size.Height);
+
+ public static WindowsSize ToPlatformSize(this SizeF size) =>
+ new WindowsSize(size.Width, size.Height);
+ }
+}
diff --git a/Xamarin.Essentials/Vibration/Vibration.android.cs b/Xamarin.Essentials/Vibration/Vibration.android.cs
index 27b71d966..a9c4902d0 100644
--- a/Xamarin.Essentials/Vibration/Vibration.android.cs
+++ b/Xamarin.Essentials/Vibration/Vibration.android.cs
@@ -16,7 +16,7 @@ static void PlatformVibrate(TimeSpan duration)
var time = (long)duration.TotalMilliseconds;
#if __ANDROID_26__
- if (Platform.HasApiLevel(BuildVersionCodes.O))
+ if (Platform.HasApiLevelO)
{
Platform.Vibrator.Vibrate(VibrationEffect.CreateOneShot(time, VibrationEffect.DefaultAmplitude));
return;
diff --git a/Xamarin.Essentials/Xamarin.Essentials.csproj b/Xamarin.Essentials/Xamarin.Essentials.csproj
index 6afcea55d..0709e90df 100644
--- a/Xamarin.Essentials/Xamarin.Essentials.csproj
+++ b/Xamarin.Essentials/Xamarin.Essentials.csproj
@@ -2,8 +2,8 @@
- netstandard1.0;netstandard2.0;Xamarin.iOS10;MonoAndroid71;MonoAndroid80;MonoAndroid81;uap10.0.16299
- netstandard1.0;netstandard2.0;Xamarin.iOS10;MonoAndroid71;MonoAndroid80;MonoAndroid81;
+ netstandard1.0;netstandard2.0;Xamarin.iOS10;MonoAndroid60;MonoAndroid70;MonoAndroid71;MonoAndroid80;MonoAndroid81;MonoAndroid90;uap10.0.16299
+ netstandard1.0;netstandard2.0;Xamarin.iOS10;MonoAndroid60;MonoAndroid70;MonoAndroid71;MonoAndroid80;MonoAndroid81;MonoAndroid90;
Xamarin.Essentials
Xamarin.Essentials
Xamarin.Essentials
@@ -31,7 +31,7 @@
true
https://go.microsoft.com/fwlink/?linkid=868960
$(MSBuildThisFileDirectory)..\docs\en
- Debug;Release;Samples
+ Debug;Release;Samples;Docs
pdbonly
@@ -49,13 +49,16 @@
$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
+
+ pdbonly
+
-
-
+
+
@@ -80,24 +83,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
@@ -105,4 +101,4 @@
-
+
\ No newline at end of file
diff --git a/Xamarin.Essentials/mdoc.targets b/Xamarin.Essentials/mdoc.targets
index 513ea0786..91c6a4042 100644
--- a/Xamarin.Essentials/mdoc.targets
+++ b/Xamarin.Essentials/mdoc.targets
@@ -70,15 +70,18 @@
DependsOnTargets="_MDocSetup">
- $(DevEnvDir)\ReferenceAssemblies\Microsoft\Framework
+ $(DevEnvDir)\ReferenceAssemblies\Microsoft\Framework
+ $(MSBuildProgramFiles32)\Windows Kits\10\References\10.0.16299.0
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@(MDocReferenceAssembly -> '--lib="%(Identity)"', ' ')
@@ -92,10 +95,10 @@
-
+
-
+
<_FormatDocs DocsRoot="$(MDocDocumentationDirectory)" />
<_VerifyAllDocsAreComplete DocsRoot="$(MDocDocumentationDirectory)" />
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index f2dcc5800..f25a8e578 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -5,6 +5,10 @@ variables:
NugetPackageVersion: '$(CurrentSemanticVersion)'
MONO_VERSION: 5_16_0
XCODE_VERSION: 10.1
+ IOS_SIM_NAME: 'iPhone X'
+ IOS_SIM_RUNTIME: 'iOS 12.1'
+ ANDROID_EMU_TARGET: 'system-images;android-26;google_apis;x86'
+ ANDROID_EMU_DEVICE: 'Nexus 5X'
resources:
repositories:
@@ -41,15 +45,19 @@ jobs:
solution: Xamarin.Essentials/Xamarin.Essentials.csproj
configuration: Release
msbuildArguments: '/t:Pack /p:PackageVersion=$(NugetPackageVersion) /p:PackageOutputPath="$(Build.ArtifactStagingDirectory)/nuget"'
+ - task: DotNetCoreCLI@2
+ inputs:
+ command: test
+ projects: 'Tests/Tests.csproj'
+ arguments: '--configuration Release'
# publish the packages
- task: PublishBuildArtifacts@1
displayName: 'Publish Unsigned NuGets'
inputs:
artifactName: nuget
pathToPublish: '$(Build.ArtifactStagingDirectory)/nuget'
-
+ # make sure we are following the rules, but only on the main build
- ${{ if eq(variables['System.TeamProject'], 'devdiv') }}:
- # make sure we are following the rules
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
condition: not(startsWith(variables['Build.SourceBranch'], 'refs/tags/'))
displayName: Component Detection - Log
@@ -95,6 +103,11 @@ jobs:
solution: Xamarin.Essentials/Xamarin.Essentials.csproj
configuration: Release
msbuildArguments: '/t:Pack /p:PackageVersion=$(NugetPackageVersion) /p:PackageOutputPath="$(Build.ArtifactStagingDirectory)/nuget"'
+ - task: DotNetCoreCLI@2
+ inputs:
+ command: test
+ projects: 'Tests/Tests.csproj'
+ arguments: '--configuration Release'
- job: build_samples
displayName: Build Samples
@@ -109,6 +122,87 @@ jobs:
configuration: Release
msbuildArguments: '/restore /t:Build /p:ContinuousIntegrationBuild=true /p:Deterministic=false'
+ - job: devicetests_uwp
+ displayName: Run UWP Device Tests
+ dependsOn:
+ - build_windows
+ - build_macos
+ # skip for now
+ condition: and(succeeded(), not(succeeded()))
+ pool:
+ vmImage: vs2017-win2016
+ steps:
+ - script: 'certutil -importpfx $(Build.SourcesDirectory)\DeviceTests\DeviceTests.UWP\DeviceTests.UWP_TemporaryKey.pfx'
+ displayName: 'Run certutil'
+ - powershell: |
+ cd DeviceTests
+ .\build.ps1 --target=test-uwp-emu --settings_skipverification=true --verbosity=diagnostic
+ displayName: 'Run Device Tests - UWP'
+ - task: PublishTestResults@2
+ displayName: 'Publish Test Results'
+ inputs:
+ testResultsFormat: XUnit
+ testResultsFiles: '**/xunit-*.xml'
+ testRunTitle: 'Device Tests - UWP'
+
+ - job: devicetests_ios
+ displayName: Run iOS Device Tests
+ dependsOn:
+ - build_windows
+ - build_macos
+ pool:
+ vmImage: macos-10.13
+ steps:
+ - bash: sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh $(MONO_VERSION)
+ displayName: Switch to the latest Xamarin SDK
+ - bash: echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'/Applications/Xcode_$(XCODE_VERSION).app;sudo xcode-select --switch /Applications/Xcode_$(XCODE_VERSION).app/Contents/Developer
+ displayName: Switch to the latest Xcode
+ - task: InstallAppleCertificate@2
+ displayName: 'Install an Apple certificate'
+ inputs:
+ certSecureFile: 'Components iOS Certificate.p12'
+ - task: InstallAppleProvisioningProfile@1
+ displayName: 'Install an Apple provisioning profile'
+ inputs:
+ provProfileSecureFile: 'Components iOS Provisioning.mobileprovision'
+ - bash: |
+ cd DeviceTests
+ sh ./build.sh --target=test-ios-emu --settings_skipverification=true --verbosity=diagnostic
+ displayName: 'Run Device Tests - iOS'
+ - task: PublishTestResults@2
+ displayName: 'Publish Test Results'
+ inputs:
+ testResultsFormat: XUnit
+ testResultsFiles: '**/xunit-*.xml'
+ testRunTitle: 'Device Tests - iOS'
+
+ - job: devicetests_android
+ displayName: Run Android Device Tests
+ dependsOn:
+ - build_windows
+ - build_macos
+ pool:
+ vmImage: macos-10.13
+ steps:
+ - bash: sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh $(MONO_VERSION)
+ displayName: Switch to the latest Xamarin SDK
+ - bash: echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'/Applications/Xcode_$(XCODE_VERSION).app;sudo xcode-select --switch /Applications/Xcode_$(XCODE_VERSION).app/Contents/Developer
+ displayName: Switch to the latest Xcode
+ - bash: sh -c "echo \"y\" | $ANDROID_HOME/tools/bin/sdkmanager \"$ANDROID_EMU_TARGET\""
+ displayName: Install the Android emulators
+ - bash: |
+ PATH="$ANDROID_HOME/tools/bin:$PATH"
+ PATH="$ANDROID_HOME/emulator:$PATH"
+ cd DeviceTests
+ sh ./build.sh --target=test-android-emu --settings_skipverification=true --verbosity=diagnostic
+ displayName: 'Run Device Tests - Android'
+ - task: PublishTestResults@2
+ displayName: 'Publish Test Results'
+ inputs:
+ testResultsFormat: XUnit
+ testResultsFiles: '**/xunit-*.xml'
+ testRunTitle: 'Device Tests - Android'
+
# only sign the packages when running on Windows, and using the private server which has the certificates
- ${{ if eq(variables['System.TeamProject'], 'devdiv') }}:
- job: signing
@@ -118,7 +212,7 @@ jobs:
name: VSEng-XamarinCustom
demands:
- corpnet
- condition: and(succeeded(), startsWith(variables['Build.SourceBranch'],'refs/tags/'))
+ condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))
steps:
# don't checkout code and sign the packages
- checkout: none
diff --git a/docs/en/FrameworksIndex/xamarin-essentials-android.xml b/docs/en/FrameworksIndex/xamarin-essentials-android.xml
index 36f8b280a..c04cadba5 100644
--- a/docs/en/FrameworksIndex/xamarin-essentials-android.xml
+++ b/docs/en/FrameworksIndex/xamarin-essentials-android.xml
@@ -5,6 +5,7 @@
+
@@ -85,18 +86,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -223,6 +256,12 @@
+
+
+
+
+
+
@@ -230,6 +269,7 @@
+
@@ -257,6 +297,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -339,6 +393,7 @@
+
@@ -458,6 +513,12 @@
+
+
+
+
+
+
@@ -494,6 +555,12 @@
+
+
+
+
+
+
@@ -509,8 +576,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -520,14 +603,20 @@
+
+
+
+
+
+
-
+
diff --git a/docs/en/FrameworksIndex/xamarin-essentials-ios.xml b/docs/en/FrameworksIndex/xamarin-essentials-ios.xml
index d2a6a1f5e..b72cd7568 100644
--- a/docs/en/FrameworksIndex/xamarin-essentials-ios.xml
+++ b/docs/en/FrameworksIndex/xamarin-essentials-ios.xml
@@ -5,6 +5,7 @@
+
@@ -85,18 +86,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -224,6 +257,12 @@
+
+
+
+
+
+
@@ -231,6 +270,7 @@
+
@@ -258,6 +298,11 @@
+
+
+
+
+
@@ -340,6 +385,7 @@
+
@@ -455,6 +501,12 @@
+
+
+
+
+
+
@@ -491,6 +543,12 @@
+
+
+
+
+
+
@@ -508,8 +566,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -519,6 +593,12 @@
+
+
+
+
+
+
diff --git a/docs/en/FrameworksIndex/xamarin-essentials-uwp.xml b/docs/en/FrameworksIndex/xamarin-essentials-uwp.xml
index 1172d632f..ce2c99799 100644
--- a/docs/en/FrameworksIndex/xamarin-essentials-uwp.xml
+++ b/docs/en/FrameworksIndex/xamarin-essentials-uwp.xml
@@ -5,6 +5,7 @@
+
@@ -85,18 +86,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -223,6 +256,12 @@
+
+
+
+
+
+
@@ -230,6 +269,7 @@
+
@@ -257,6 +297,11 @@
+
+
+
+
+
@@ -339,6 +384,7 @@
+
@@ -456,6 +502,12 @@
+
+
+
+
+
+
@@ -492,6 +544,12 @@
+
+
+
+
+
+
@@ -507,8 +565,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -518,6 +592,12 @@
+
+
+
+
+
+
diff --git a/docs/en/FrameworksIndex/xamarin-essentials.xml b/docs/en/FrameworksIndex/xamarin-essentials.xml
index 95f204ddd..0eba55f14 100644
--- a/docs/en/FrameworksIndex/xamarin-essentials.xml
+++ b/docs/en/FrameworksIndex/xamarin-essentials.xml
@@ -5,6 +5,7 @@
+
@@ -85,18 +86,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -223,6 +254,12 @@
+
+
+
+
+
+
@@ -230,6 +267,7 @@
+
@@ -257,6 +295,11 @@
+
+
+
+
+
@@ -339,6 +382,7 @@
+
@@ -504,8 +548,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/Accelerometer.xml b/docs/en/Xamarin.Essentials/Accelerometer.xml
index 5ef1eaac7..173e0b4e4 100644
--- a/docs/en/Xamarin.Essentials/Accelerometer.xml
+++ b/docs/en/Xamarin.Essentials/Accelerometer.xml
@@ -54,6 +54,25 @@
+
+
+
+
+ Event
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.EventHandler
+
+
+ Event triggered when a shake has been detected on the device.
+
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/BarometerChangedEventArgs.xml b/docs/en/Xamarin.Essentials/BarometerChangedEventArgs.xml
index 2b013f47b..a23a2fb04 100644
--- a/docs/en/Xamarin.Essentials/BarometerChangedEventArgs.xml
+++ b/docs/en/Xamarin.Essentials/BarometerChangedEventArgs.xml
@@ -33,7 +33,7 @@
To be added.
-
+
@@ -51,23 +51,5 @@
-
-
-
-
- Property
-
- Xamarin.Essentials
- 1.0.0.0
-
-
- Xamarin.Essentials.BarometerData
-
-
- Get the current reading of the barometer
- The reading
-
-
-
diff --git a/docs/en/Xamarin.Essentials/Browser.xml b/docs/en/Xamarin.Essentials/Browser.xml
index b07b13b90..6f2df6447 100644
--- a/docs/en/Xamarin.Essentials/Browser.xml
+++ b/docs/en/Xamarin.Essentials/Browser.xml
@@ -12,7 +12,9 @@
Provides a way to display a web page inside an app.
-
+
+
+
@@ -34,7 +36,9 @@
Uri to launch.
Open the browser to specified uri.
Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not.
-
+
+
+
@@ -56,7 +60,9 @@
Uri to launch.
Open the browser to specified uri.
Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not.
-
+
+
+
@@ -80,12 +86,40 @@
How to launch the browser.
Open the browser to specified uri.
Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not.
-
+
+
+
-
-
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Threading.Tasks.Task
+
+
+
+
+
+
+ Uri to launch.
+ Launch options for the browser.
+ Open the browser to specified uri.
+ Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not.
+
+
+
+
+
+
+
+
Method
@@ -93,7 +127,7 @@
1.0.0.0
- System.Threading.Tasks.Task<System.Boolean>
+ System.Threading.Tasks.Task
@@ -104,7 +138,35 @@
How to launch the browser.
Open the browser to specified uri.
Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not.
-
+
+
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Threading.Tasks.Task<System.Boolean>
+
+
+
+
+
+
+ Uri to launch.
+ Launch options for the browser.
+ Open the browser to specified uri.
+ Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not.
+
+
+
diff --git a/docs/en/Xamarin.Essentials/BrowserLaunchOptions.xml b/docs/en/Xamarin.Essentials/BrowserLaunchOptions.xml
new file mode 100644
index 000000000..218b8e6f5
--- /dev/null
+++ b/docs/en/Xamarin.Essentials/BrowserLaunchOptions.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Object
+
+
+
+ Optional setting to open the browser with.
+ These settings do not apply to all operation systems. Check documentation for more information.
+
+
+
+
+
+
+ Constructor
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+
+ Default constructor.
+
+
+
+
+
+
+
+
+
+ Property
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Xamarin.Essentials.BrowserLaunchMode
+
+
+ Launch type of the browser.
+ The launch type.
+
+
+
+
+
+
+
+
+
+ Property
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Nullable<System.Drawing.Color>
+
+
+ Preferred color of the controls on the browser.
+ Gets the color for controls.
+
+
+
+
+
+
+
+
+
+ Property
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Nullable<System.Drawing.Color>
+
+
+ Preferred color of the background toolbar.
+ Gets the toolbar color.
+
+
+
+
+
+
+
+
+
+ Property
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Xamarin.Essentials.BrowserTitleMode
+
+
+ Preferred mode for the title display.
+ Gets the title display mode.
+
+
+
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/BrowserTitleMode.xml b/docs/en/Xamarin.Essentials/BrowserTitleMode.xml
new file mode 100644
index 000000000..91aebf798
--- /dev/null
+++ b/docs/en/Xamarin.Essentials/BrowserTitleMode.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Enum
+
+
+ Mode for the title.
+
+
+
+
+
+
+
+
+
+ Field
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Xamarin.Essentials.BrowserTitleMode
+
+ 0
+
+ Uses the system default showing it.
+
+
+
+
+
+
+ Field
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Xamarin.Essentials.BrowserTitleMode
+
+ 2
+
+
+ Hide the title.
+
+
+
+
+
+
+
+ Field
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Xamarin.Essentials.BrowserTitleMode
+
+ 1
+
+ Show the title.
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/ColorConverters.xml b/docs/en/Xamarin.Essentials/ColorConverters.xml
new file mode 100644
index 000000000..6bb3c427a
--- /dev/null
+++ b/docs/en/Xamarin.Essentials/ColorConverters.xml
@@ -0,0 +1,127 @@
+
+
+
+
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Object
+
+
+
+ Contains several helper methods to convert System.Drawing.Color
+
+
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Color
+
+
+
+
+
+ A string value similar to the syntax used in HTML, eg "00FF00". Alpha can optionally be specified as the first pair of the characters ("CC00FF00").
+ Creates a new Color from a Hex string.
+ A color from the Hex string.
+
+
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Color
+
+
+
+
+
+
+
+ The hue of the color from 0-360.
+ The saturation of the color from 0-100.
+ The luminosity of the color from 0-100.
+ Creates a new Color from hue, saturation, and lightness.
+ A new color from the Hsla.
+
+
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Color
+
+
+
+
+
+
+
+
+ The hue of the color from 0-360.
+ The saturation of the color from 0-100.
+ The luminosity of the color from 0-100.
+ The alpha of the color from 0-255.
+ Creates a new Color from hue, saturation, luminosity, and alpha.
+ A new color from the Hsla.
+
+
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Color
+
+
+
+
+
+ A single value representing argb.
+ Creates a new Color from an UInt.
+ A new color from the Uint
+
+
+
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/ColorExtensions.xml b/docs/en/Xamarin.Essentials/ColorExtensions.xml
new file mode 100644
index 000000000..98c2fb2b2
--- /dev/null
+++ b/docs/en/Xamarin.Essentials/ColorExtensions.xml
@@ -0,0 +1,341 @@
+
+
+
+
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Object
+
+
+
+ Extension methods for System.Drawing.Color
+
+
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Color
+
+
+
+
+
+
+ The color to add luminosity to.
+ The delta to add to the current luminosity.
+ Adds luminosity to the existing color
+ The new color.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Color
+
+
+
+
+
+
+ The current color to manipulate.
+ The percentage from 0-1f
+ Multiplies the current alpha by a percentage (0-1f)
+ The new color.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Int32
+
+
+
+
+
+ To be added.
+ To be added.
+ To be added.
+ To be added.
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Android.Graphics.Color
+
+
+
+
+
+ The color to use as a base.
+ Converts the color to the platform specific color.
+ The platform color.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ UIKit.UIColor
+
+
+
+
+
+ The color to use as a base.
+ Converts the color to the platform specific color.
+ The platform color.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Windows.UI.Color
+
+
+
+
+
+ The color to use as a base.
+ Converts the color to the platform specific color.
+ The platform color.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Color
+
+
+
+
+
+ The color to use as a base.
+ Converts the color to the system specific color.
+ The system color.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Color
+
+
+
+
+
+ The color to use as a base.
+ Converts the color to the system specific color.
+ The system color.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Color
+
+
+
+
+
+ The color to use as a base.
+ Converts the color to the system specific color.
+ The system color.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.UInt32
+
+
+
+
+
+ The color to use as a base.
+ Converts the color to a UInt representation.
+ The UInt representation.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Color
+
+
+
+
+
+
+ The color to use as a base.
+ The alpha to set 0-255.
+ Creates a new color based on this color, but with a new alpha (0-255).
+ The new color.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Color
+
+
+
+
+
+
+ The color to use as a base.
+ The hue to set 0-360.
+ Creates a new color based on this color, but with a new hue (0-360).
+ The new color.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Color
+
+
+
+
+
+
+ The color to use as a base.
+ The luminosity to set 0-100.
+ Creates a new color based on this color, but with a new luminosity (0-100).
+ The new color.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Color
+
+
+
+
+
+
+ The color to use as a base.
+ The saturation to set 0-100.
+ Creates a new color based on this color, but with a new saturation (0-100).
+ The new color.
+
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/EmailAttachment.xml b/docs/en/Xamarin.Essentials/EmailAttachment.xml
new file mode 100644
index 000000000..eff23346c
--- /dev/null
+++ b/docs/en/Xamarin.Essentials/EmailAttachment.xml
@@ -0,0 +1,94 @@
+
+
+
+
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Object
+ Xamarin.Essentials.FileBase
+
+
+
+ Email file attachment.
+
+
+
+
+
+
+
+ Constructor
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+
+
+
+ Full path and filename to file.
+ Email attachment from filename.
+
+
+
+
+
+
+
+ Constructor
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+
+
+
+ Existing file.
+ Email attachment from existing file.
+
+
+
+
+
+
+
+ Constructor
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+
+
+
+
+ Full path and filename to file.
+
+ Explicit content type of file.
+
+
+
+
+
+
+
+ Property
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.String
+
+
+ Gets or sets the intended name of the file to be shared.
+
+
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/EmailMessage.xml b/docs/en/Xamarin.Essentials/EmailMessage.xml
index e6b7c4845..ee731953a 100644
--- a/docs/en/Xamarin.Essentials/EmailMessage.xml
+++ b/docs/en/Xamarin.Essentials/EmailMessage.xml
@@ -58,6 +58,24 @@
+
+
+
+
+ Property
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Collections.Generic.List<Xamarin.Essentials.EmailAttachment>
+
+
+ Gets or sets a list of file attachments.
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/FileBase.xml b/docs/en/Xamarin.Essentials/FileBase.xml
new file mode 100644
index 000000000..9219a35f2
--- /dev/null
+++ b/docs/en/Xamarin.Essentials/FileBase.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Object
+
+
+
+ A representation of a file and its content type.
+
+
+
+
+
+
+
+ Constructor
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+
+
+
+ An existing FileBase instance to use.
+ FileBase from an existing instance.
+
+
+
+
+
+
+
+ Property
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.String
+
+
+ Gets or sets the file's content type.
+
+
+
+
+
+
+
+
+ Property
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.String
+
+
+ Gets the full path and filename.
+
+
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/FileProvider.xml b/docs/en/Xamarin.Essentials/FileProvider.xml
new file mode 100644
index 000000000..aef09c394
--- /dev/null
+++ b/docs/en/Xamarin.Essentials/FileProvider.xml
@@ -0,0 +1,60 @@
+
+
+
+
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Android.Support.V4.Content.FileProvider
+
+
+
+
+ Android.App.MetaData("android.support.FILE_PROVIDER_PATHS", Resource="@xml/xamarin_essentials_fileprovider_file_paths")
+
+
+ Android.Content.ContentProvider(new System.String[] { "${applicationId}.fileProvider" }, Exported=false, GrantUriPermissions=true, Name="xamarin.essentials.fileProvider")
+
+
+
+ Android FileProvider implementation for creating Content URIs to share files with other applications.
+
+
+
+
+
+
+
+ Constructor
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+
+ Default constructor.
+
+
+
+
+
+
+
+ Property
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Xamarin.Essentials.FileProviderLocation
+
+
+ Gets or sets the temporary location for file sharing.
+
+ The default is to prefer external and fallback to internal.
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/FileProviderLocation.xml b/docs/en/Xamarin.Essentials/FileProviderLocation.xml
new file mode 100644
index 000000000..b3145319d
--- /dev/null
+++ b/docs/en/Xamarin.Essentials/FileProviderLocation.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Enum
+
+
+ Location to save temporary files to for sharing.
+
+
+
+
+
+
+
+ Field
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Xamarin.Essentials.FileProviderLocation
+
+ 2
+
+ External storage or cache only.
+
+
+
+
+
+
+ Field
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Xamarin.Essentials.FileProviderLocation
+
+ 1
+
+ Internal cache only,
+
+
+
+
+
+
+ Field
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Xamarin.Essentials.FileProviderLocation
+
+ 0
+
+ Prefer external and fall back to internal if unavailable.
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/Location.xml b/docs/en/Xamarin.Essentials/Location.xml
index a58457031..2bd5e2e00 100644
--- a/docs/en/Xamarin.Essentials/Location.xml
+++ b/docs/en/Xamarin.Essentials/Location.xml
@@ -258,6 +258,26 @@
+
+
+
+
+ Property
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Boolean
+
+
+ Inform if location is from GPS or from Mock.
+ True if is from Mock and False if from GPS.
+
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/LocationExtensions.xml b/docs/en/Xamarin.Essentials/LocationExtensions.xml
index db5cac94b..971168e9d 100644
--- a/docs/en/Xamarin.Essentials/LocationExtensions.xml
+++ b/docs/en/Xamarin.Essentials/LocationExtensions.xml
@@ -88,7 +88,7 @@
Location to open to.
Open maps to this location.
Task to wait.
- To be added.
+
@@ -112,9 +112,7 @@
Options to use.
Open maps to this location.
Task to wait.
-
-
-
+
diff --git a/docs/en/Xamarin.Essentials/PointExtensions.xml b/docs/en/Xamarin.Essentials/PointExtensions.xml
new file mode 100644
index 000000000..687086207
--- /dev/null
+++ b/docs/en/Xamarin.Essentials/PointExtensions.xml
@@ -0,0 +1,287 @@
+
+
+
+
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Object
+
+
+
+ Extension methods for Point.
+
+
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Android.Graphics.Point
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the platform representation.
+ The converted point.
+
+
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ CoreGraphics.CGPoint
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the platform representation.
+ The converted point.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Windows.Foundation.Point
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the platform representation.
+ The converted point.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ CoreGraphics.CGPoint
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the platform representation.
+ The converted point.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Windows.Foundation.Point
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the platform representation.
+ The converted point.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Android.Graphics.PointF
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the platform representation.
+ The converted point.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Point
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the system representation.
+ The converted point.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Point
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the system representation.
+ The converted point.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Point
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the system representation.
+ The converted point.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.PointF
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the system representation.
+ The converted point.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.PointF
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the system representation.
+ The converted point.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.PointF
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the system representation.
+ The converted point.
+
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/RectangleExtensions.xml b/docs/en/Xamarin.Essentials/RectangleExtensions.xml
new file mode 100644
index 000000000..224737ebc
--- /dev/null
+++ b/docs/en/Xamarin.Essentials/RectangleExtensions.xml
@@ -0,0 +1,285 @@
+
+
+
+
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Object
+
+
+
+ Extension methods for Rectangle.
+
+
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Android.Graphics.Rect
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to platform rectangle.
+ The converted rectangle.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ CoreGraphics.CGRect
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to platform rectangle.
+ The converted rectangle.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Windows.Foundation.Rect
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to platform rectangle.
+ The converted rectangle.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ CoreGraphics.CGRect
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to platform rectangle.
+ The converted rectangle.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Windows.Foundation.Rect
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to platform rectangle.
+ The converted rectangle.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Android.Graphics.RectF
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to platform rectangle.
+ The converted rectangle.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Rectangle
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to system rectangle.
+ The converted rectangle.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Rectangle
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to system rectangle.
+ The converted rectangle.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Rectangle
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to system rectangle.
+ The converted rectangle.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.RectangleF
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to system rectangle.
+ The converted rectangle.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.RectangleF
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to system rectangle.
+ The converted rectangle.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.RectangleF
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to system rectangle.
+ The converted rectangle.
+
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/SecureStorage.xml b/docs/en/Xamarin.Essentials/SecureStorage.xml
index 7e25522ad..df0cbd2f5 100644
--- a/docs/en/Xamarin.Essentials/SecureStorage.xml
+++ b/docs/en/Xamarin.Essentials/SecureStorage.xml
@@ -16,7 +16,7 @@
Each platform uses the platform provided native API's for storing data securely:
-
- iOS: Data is stored in KeyChain. Additional information on SecAccessible at:
+ iOS: Data is stored in KeyChain. Additional information on SecAccessible at:
-
Android: Encryption keys are stored in KeyStore and encrypted data is stored in a named shared preference container (PackageId.Xamarin.Essentials).
@@ -44,7 +44,7 @@
iOS: Default SecAccessible to use for all Get/Set calls to KeyChain. Default value is AfterFirstUnlock.
The SecAccessible to use for all KeyChain access.
- For more information see:
+ For more information see:
diff --git a/docs/en/Xamarin.Essentials/Share.xml b/docs/en/Xamarin.Essentials/Share.xml
index 00ecae6f7..d59255d2a 100644
--- a/docs/en/Xamarin.Essentials/Share.xml
+++ b/docs/en/Xamarin.Essentials/Share.xml
@@ -41,6 +41,28 @@
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Threading.Tasks.Task
+
+
+
+
+
+ File request to share.
+ Show the user interface to share a file.
+ Task when completed.
+
+
+
diff --git a/docs/en/Xamarin.Essentials/ShareFile.xml b/docs/en/Xamarin.Essentials/ShareFile.xml
new file mode 100644
index 000000000..fd3cebce2
--- /dev/null
+++ b/docs/en/Xamarin.Essentials/ShareFile.xml
@@ -0,0 +1,93 @@
+
+
+
+
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Xamarin.Essentials.FileBase
+
+
+
+ A file to be shared.
+
+
+
+
+
+
+
+ Constructor
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+
+
+
+ The full path and filename.
+ File to be shared.
+
+
+
+
+
+
+
+ Constructor
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+
+
+
+ Existing file to be shared.
+ Shares an existing file.
+
+
+
+
+
+
+
+ Constructor
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+
+
+
+
+ Full path and filename.
+ Explicit content type of the file.
+
+
+
+
+
+
+
+
+ Property
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.String
+
+
+ Gets or sets the intended name of the file to be shared.
+
+ File name and extension of original file will be used by default.
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/ShareFileRequest.xml b/docs/en/Xamarin.Essentials/ShareFileRequest.xml
new file mode 100644
index 000000000..9f33561e0
--- /dev/null
+++ b/docs/en/Xamarin.Essentials/ShareFileRequest.xml
@@ -0,0 +1,146 @@
+
+
+
+
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Object
+
+
+
+ Standard request for sharing a file to another application.
+
+
+
+
+
+
+
+ Constructor
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+
+ Default constructor.
+
+
+
+
+
+
+
+ Constructor
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+
+
+
+ Existing file.
+ Share request with an existing file.
+
+
+
+
+
+
+
+ Constructor
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+
+
+
+ Existing file.
+ Share request with an existing file.
+
+
+
+
+
+
+
+ Constructor
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+
+
+
+
+ Title to use on the share user interface.
+ Existing file.
+ Share request with an existing file.
+
+
+
+
+
+
+
+ Constructor
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+
+
+
+
+ Title to use on the share user interface.
+ Existing file.
+ Share requerst with an existing file.
+
+
+
+
+
+
+
+ Property
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Xamarin.Essentials.ShareFile
+
+
+ Gets or sets the file to share.
+
+
+
+
+
+
+
+
+ Property
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.String
+
+
+ Gets or sets the title to use on the share user interface
+
+
+
+
+
+
diff --git a/docs/en/Xamarin.Essentials/ShareTextRequest.xml b/docs/en/Xamarin.Essentials/ShareTextRequest.xml
index 54dfc4e7a..1dd03c7fe 100644
--- a/docs/en/Xamarin.Essentials/ShareTextRequest.xml
+++ b/docs/en/Xamarin.Essentials/ShareTextRequest.xml
@@ -107,7 +107,7 @@
System.String
- Gets or tsets the main text or message to share.
+ Gets or sets the main text or message to share.
The main text.
diff --git a/docs/en/Xamarin.Essentials/SizeExtensions.xml b/docs/en/Xamarin.Essentials/SizeExtensions.xml
new file mode 100644
index 000000000..6236e6d7c
--- /dev/null
+++ b/docs/en/Xamarin.Essentials/SizeExtensions.xml
@@ -0,0 +1,285 @@
+
+
+
+
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Object
+
+
+
+ Extension methods for Size.
+
+
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Android.Util.Size
+
+
+
+
+
+ Base size to convert.
+ Convert to platform Size.
+ Converted size.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ CoreGraphics.CGSize
+
+
+
+
+
+ Base size to convert.
+ Convert to platform Size.
+ Converted size.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Windows.Foundation.Size
+
+
+
+
+
+ Base size to convert.
+ Convert to platform Size.
+ Converted size.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ CoreGraphics.CGSize
+
+
+
+
+
+ Base size to convert.
+ Convert to platform Size.
+ Converted size.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Windows.Foundation.Size
+
+
+
+
+
+ Base size to convert.
+ Convert to platform Size.
+ Converted size.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ Android.Util.SizeF
+
+
+
+
+
+ Base size to convert.
+ Convert to platform SizeF.
+ Converted size.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Size
+
+
+
+
+
+ Base size to convert.
+ Convert to system Size.
+ Converted size.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Size
+
+
+
+
+
+ Base size to convert.
+ Convert to system Size.
+ Converted size.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.Size
+
+
+
+
+
+ Base size to convert.
+ Convert to system Size.
+ Converted size.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.SizeF
+
+
+
+
+
+ Base size to convert.
+ Convert to system SizeF.
+ Converted size.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.SizeF
+
+
+
+
+
+ Base size to convert.
+ Convert to system SizeF.
+ Converted size.
+
+
+
+
+
+
+
+ Method
+
+ Xamarin.Essentials
+ 1.0.0.0
+
+
+ System.Drawing.SizeF
+
+
+
+
+
+ Base size to convert.
+ Convert to system SizeF.
+ Converted size.
+
+
+
+
+
diff --git a/docs/en/index.xml b/docs/en/index.xml
index 06f2bc697..e8675d3ce 100644
--- a/docs/en/index.xml
+++ b/docs/en/index.xml
@@ -2,15 +2,9 @@
-
- System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)
-
System.Reflection.AssemblyCompany("Microsoft")
-
- System.Reflection.AssemblyConfiguration("Release")
-
System.Reflection.AssemblyCopyright("© Microsoft Corporation. All rights reserved.")
@@ -35,15 +29,15 @@
System.Runtime.CompilerServices.InternalsVisibleTo("XamarinEssentialsTests")
-
- System.Runtime.CompilerServices.InternalsVisibleTo("XamarinEssentialsDeviceTestsAndroid")
-
System.Runtime.CompilerServices.InternalsVisibleTo("XamarinEssentialsDeviceTestsUWP")
System.Runtime.CompilerServices.InternalsVisibleTo("XamarinEssentialsDeviceTestsiOS")
+
+ System.Runtime.CompilerServices.InternalsVisibleTo("XamarinEssentialsDeviceTestsAndroid")
+
System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)
@@ -56,6 +50,9 @@
Android.LinkerSafe
+
+ Android.Runtime.ResourceDesigner("Xamarin.Essentials.Resource", IsApplication=false)
+
System.Reflection.AssemblyProduct("Xamarin.Essentials (MonoAndroid81)")
@@ -78,7 +75,13 @@
System.Runtime.Versioning.TargetFramework(".NETCore,Version=v5.0", FrameworkDisplayName=".NET for Windows Universal")
- System.Reflection.AssemblyInformationalVersion("1.0.0+f86f55df68f22837a757fbe3042c854816b1ea0d")
+ System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)
+
+
+ System.Reflection.AssemblyConfiguration("Release")
+
+
+ System.Reflection.AssemblyInformationalVersion("1.0.0+7ceee2ec3cc4caab1bb281521d7e9ecf471edc7a")
@@ -100,7 +103,11 @@
+
+
+
+
@@ -118,12 +125,16 @@
+
+
+
+
@@ -154,11 +165,16 @@
+
+
+
+
+
@@ -170,6 +186,282 @@
Untitled
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Color
+
+
+
+
+
+
+ The color to add luminosity to.
+ The delta to add to the current luminosity.
+ Adds luminosity to the existing color
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Color
+
+
+
+
+
+
+ The current color to manipulate.
+ The percentage from 0-1f
+ Multiplies the current alpha by a percentage (0-1f)
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Int32
+
+
+
+
+
+ To be added.
+ To be added.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ Android.Graphics.Color
+
+
+
+
+
+ The color to use as a base.
+ Converts the color to the platform specific color.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Color
+
+
+
+
+
+ The color to use as a base.
+ Converts the color to the system specific color.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Color
+
+
+
+
+
+ The color to use as a base.
+ Converts the color to the system specific color.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Color
+
+
+
+
+
+ The color to use as a base.
+ Converts the color to the system specific color.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.UInt32
+
+
+
+
+
+ The color to use as a base.
+ Converts the color to a UInt representation.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Color
+
+
+
+
+
+
+ The color to use as a base.
+ The alpha to set 0-255.
+ Creates a new color based on this color, but with a new alpha (0-255).
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Color
+
+
+
+
+
+
+ The color to use as a base.
+ The hue to set 0-360.
+ Creates a new color based on this color, but with a new hue (0-360).
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Color
+
+
+
+
+
+
+ The color to use as a base.
+ The luminosity to set 0-100.
+ Creates a new color based on this color, but with a new luminosity (0-100).
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Color
+
+
+
+
+
+
+ The color to use as a base.
+ The saturation to set 0-100.
+ Creates a new color based on this color, but with a new saturation (0-100).
+
+
+
+
@@ -316,5 +608,599 @@
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ Android.Graphics.Point
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the platform representation.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ CoreGraphics.CGPoint
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the platform representation.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ Android.Graphics.PointF
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the platform representation.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Point
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the system representation.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Point
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the system representation.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Point
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the system representation.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.PointF
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the system representation.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.PointF
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the system representation.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.PointF
+
+
+
+
+
+ The point to convert.
+ Converts the point ot the system representation.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ Android.Graphics.Rect
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to platform rectangle.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ CoreGraphics.CGRect
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to platform rectangle.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ Android.Graphics.RectF
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to platform rectangle.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Rectangle
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to system rectangle.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Rectangle
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to system rectangle.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Rectangle
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to system rectangle.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.RectangleF
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to system rectangle.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.RectangleF
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to system rectangle.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.RectangleF
+
+
+
+
+
+ The base rectangle to convert.
+ Convert to system rectangle.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ Android.Util.Size
+
+
+
+
+
+ Base size to convert.
+ Convert to platform Size.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ CoreGraphics.CGSize
+
+
+
+
+
+ Base size to convert.
+ Convert to platform Size.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ Android.Util.SizeF
+
+
+
+
+
+ Base size to convert.
+ Convert to platform SizeF.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Size
+
+
+
+
+
+ Base size to convert.
+ Convert to system Size.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Size
+
+
+
+
+
+ Base size to convert.
+ Convert to system Size.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.Size
+
+
+
+
+
+ Base size to convert.
+ Convert to system Size.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.SizeF
+
+
+
+
+
+ Base size to convert.
+ Convert to system SizeF.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.SizeF
+
+
+
+
+
+ Base size to convert.
+ Convert to system SizeF.
+
+
+
+
+
+
+
+
+
+
+
+
+ ExtensionMethod
+
+ System.Drawing.SizeF
+
+
+
+
+
+ Base size to convert.
+ Convert to system SizeF.
+
+
+
+
diff --git a/generate-docs.cmd b/generate-docs.cmd
new file mode 100644
index 000000000..e0f20280c
--- /dev/null
+++ b/generate-docs.cmd
@@ -0,0 +1 @@
+msbuild /restore /t:rebuild;mdocupdatedocs /p:Configuration=Docs /p:ContinuousIntegrationBuild=false Xamarin.Essentials/Xamarin.Essentials.csproj
\ No newline at end of file