From 741163f28f64a9bc493f95c634d6bdc8ea3251e3 Mon Sep 17 00:00:00 2001 From: Morten Nielsen Date: Fri, 28 Aug 2020 15:30:30 -0700 Subject: [PATCH] Update Android sample app --- src/SampleApp.Droid/MainActivity.cs | 10 +- .../Resources/Resource.Designer.cs | 99 +++++++++++------- .../Resources/drawable/icon.png | Bin 0 -> 12249 bytes src/SampleApp.Droid/SampleApp.Droid.csproj | 4 +- 4 files changed, 66 insertions(+), 47 deletions(-) create mode 100644 src/SampleApp.Droid/Resources/drawable/icon.png diff --git a/src/SampleApp.Droid/MainActivity.cs b/src/SampleApp.Droid/MainActivity.cs index 5fafaab..dd27ea4 100644 --- a/src/SampleApp.Droid/MainActivity.cs +++ b/src/SampleApp.Droid/MainActivity.cs @@ -1,8 +1,8 @@ using Android.App; using Android.Widget; using Android.OS; -using Android; -using Android.Support.V4.App; +using Android; +using Android.Support.V4.App; using Android.Support.V4.Content; using Android.Content.PM; using System; @@ -12,7 +12,7 @@ using NmeaParser.Messages; namespace SampleApp.Droid { - [Activity(Label = "NMEA Parser SampleApp", MainLauncher = true)] + [Activity(Label = "NMEA Parser SampleApp", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { private Button startButton; @@ -33,9 +33,7 @@ namespace SampleApp.Droid devices.Add("System GPS", null); var devicePicker = FindViewById(Resource.Id.device_picker); - Java.Util.UUID SERIAL_UUID = Java.Util.UUID.FromString("00001101-0000-1000-8000-00805F9B34FB"); - var adapter = Android.Bluetooth.BluetoothAdapter.DefaultAdapter; - foreach (var d in adapter.BondedDevices.Where(d => d.GetUuids().Where(t => t.Uuid.ToString().Equals("00001101-0000-1000-8000-00805F9B34FB", StringComparison.InvariantCultureIgnoreCase)).Any())) + foreach(var d in NmeaParser.BluetoothDevice.GetBluetoothSerialDevices()) { devices[d.Name + " " + d.Address] = d.Address; } diff --git a/src/SampleApp.Droid/Resources/Resource.Designer.cs b/src/SampleApp.Droid/Resources/Resource.Designer.cs index db084bd..ef252d2 100644 --- a/src/SampleApp.Droid/Resources/Resource.Designer.cs +++ b/src/SampleApp.Droid/Resources/Resource.Designer.cs @@ -194,40 +194,43 @@ namespace SampleApp.Droid { // aapt resource value: 0x7F050000 - public const int notification_action_background = 2131034112; + public const int icon = 2131034112; // aapt resource value: 0x7F050001 - public const int notification_bg = 2131034113; + public const int notification_action_background = 2131034113; // aapt resource value: 0x7F050002 - public const int notification_bg_low = 2131034114; + public const int notification_bg = 2131034114; // aapt resource value: 0x7F050003 - public const int notification_bg_low_normal = 2131034115; + public const int notification_bg_low = 2131034115; // aapt resource value: 0x7F050004 - public const int notification_bg_low_pressed = 2131034116; + public const int notification_bg_low_normal = 2131034116; // aapt resource value: 0x7F050005 - public const int notification_bg_normal = 2131034117; + public const int notification_bg_low_pressed = 2131034117; // aapt resource value: 0x7F050006 - public const int notification_bg_normal_pressed = 2131034118; + public const int notification_bg_normal = 2131034118; // aapt resource value: 0x7F050007 - public const int notification_icon_background = 2131034119; + public const int notification_bg_normal_pressed = 2131034119; // aapt resource value: 0x7F050008 - public const int notification_template_icon_bg = 2131034120; + public const int notification_icon_background = 2131034120; // aapt resource value: 0x7F050009 - public const int notification_template_icon_low_bg = 2131034121; + public const int notification_template_icon_bg = 2131034121; // aapt resource value: 0x7F05000A - public const int notification_tile_bg = 2131034122; + public const int notification_template_icon_low_bg = 2131034122; // aapt resource value: 0x7F05000B - public const int notify_panel_notification_icon_bg = 2131034123; + public const int notification_tile_bg = 2131034123; + + // aapt resource value: 0x7F05000C + public const int notify_panel_notification_icon_bg = 2131034124; static Drawable() { @@ -446,14 +449,30 @@ namespace SampleApp.Droid } } - public partial class String + public partial class Mipmap { // aapt resource value: 0x7F090000 - public const int app_name = 2131296256; + public const int icon = 2131296256; - // aapt resource value: 0x7F090001 - public const int status_bar_notification_info_overflow = 2131296257; + static Mipmap() + { + global::Android.Runtime.ResourceIdManager.UpdateIdValues(); + } + + private Mipmap() + { + } + } + + public partial class String + { + + // aapt resource value: 0x7F0A0000 + public const int app_name = 2131361792; + + // aapt resource value: 0x7F0A0001 + public const int status_bar_notification_info_overflow = 2131361793; static String() { @@ -468,41 +487,41 @@ namespace SampleApp.Droid public partial class Style { - // aapt resource value: 0x7F0A0000 - public const int TextAppearance_Compat_Notification = 2131361792; + // aapt resource value: 0x7F0B0000 + public const int TextAppearance_Compat_Notification = 2131427328; - // aapt resource value: 0x7F0A0001 - public const int TextAppearance_Compat_Notification_Info = 2131361793; + // aapt resource value: 0x7F0B0001 + public const int TextAppearance_Compat_Notification_Info = 2131427329; - // aapt resource value: 0x7F0A0002 - public const int TextAppearance_Compat_Notification_Info_Media = 2131361794; + // aapt resource value: 0x7F0B0002 + public const int TextAppearance_Compat_Notification_Info_Media = 2131427330; - // aapt resource value: 0x7F0A0003 - public const int TextAppearance_Compat_Notification_Line2 = 2131361795; + // aapt resource value: 0x7F0B0003 + public const int TextAppearance_Compat_Notification_Line2 = 2131427331; - // aapt resource value: 0x7F0A0004 - public const int TextAppearance_Compat_Notification_Line2_Media = 2131361796; + // aapt resource value: 0x7F0B0004 + public const int TextAppearance_Compat_Notification_Line2_Media = 2131427332; - // aapt resource value: 0x7F0A0005 - public const int TextAppearance_Compat_Notification_Media = 2131361797; + // aapt resource value: 0x7F0B0005 + public const int TextAppearance_Compat_Notification_Media = 2131427333; - // aapt resource value: 0x7F0A0006 - public const int TextAppearance_Compat_Notification_Time = 2131361798; + // aapt resource value: 0x7F0B0006 + public const int TextAppearance_Compat_Notification_Time = 2131427334; - // aapt resource value: 0x7F0A0007 - public const int TextAppearance_Compat_Notification_Time_Media = 2131361799; + // aapt resource value: 0x7F0B0007 + public const int TextAppearance_Compat_Notification_Time_Media = 2131427335; - // aapt resource value: 0x7F0A0008 - public const int TextAppearance_Compat_Notification_Title = 2131361800; + // aapt resource value: 0x7F0B0008 + public const int TextAppearance_Compat_Notification_Title = 2131427336; - // aapt resource value: 0x7F0A0009 - public const int TextAppearance_Compat_Notification_Title_Media = 2131361801; + // aapt resource value: 0x7F0B0009 + public const int TextAppearance_Compat_Notification_Title_Media = 2131427337; - // aapt resource value: 0x7F0A000A - public const int Widget_Compat_NotificationActionContainer = 2131361802; + // aapt resource value: 0x7F0B000A + public const int Widget_Compat_NotificationActionContainer = 2131427338; - // aapt resource value: 0x7F0A000B - public const int Widget_Compat_NotificationActionText = 2131361803; + // aapt resource value: 0x7F0B000B + public const int Widget_Compat_NotificationActionText = 2131427339; static Style() { diff --git a/src/SampleApp.Droid/Resources/drawable/icon.png b/src/SampleApp.Droid/Resources/drawable/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..389f9d14389fa95fd81d997661a0c0dc7af568b8 GIT binary patch literal 12249 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

25B(XO163d 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 - @@ -91,6 +90,9 @@ NmeaParser + + +