Giter Site home page Giter Site logo

azure / azure-notificationhubs-xamarin Goto Github PK

View Code? Open in Web Editor NEW
35.0 10.0 22.0 646 KB

Azure Notification Hubs Sample for Xamarin Forms

License: MIT License

C# 100.00%
xamarin-forms xamarin-ios android notifications xamarin-android xamarin-android-binding xamarin-ios-binding tvos ios macos

azure-notificationhubs-xamarin's Introduction

Build Status

Azure Notification Hubs for Xamarin

This repository contains the Azure Notification Hubs sample library and sample application for Xamarin Forms, Xamarin for Apple (Xamarin.iOS, Xamarin.TVOS, Xamarin.Mac) and Xamarin.Android. This sample project creates a unified wrapper over the AzureMessaging Xamarin Components for both iOS and Android with a Forms app as well as native applications.

This repository is set into sections:

This repository also contains samples which can be found in the samples along with a description of each.

Getting Started with Xamarin.Forms

This project contains Microsoft.Azure.NotificationHubs.Client, which when added to your project, provides a consistent experience across Xamarin Android and Xamarin for Apple. You can use this project by cloning the source locally or using NuGet via GitHub.

dotnet add PROJECT package Microsoft.Azure.NotificationHubs.Client --version 1.0.0

Once you have referenced either the source code or NuGet, you can add the project to your main Xamarin Forms project as well as the Android and Apple specific projects.

Initializing the Azure Notification Hubs sample can be done by importing the namespace from the sample.

using Microsoft.Azure.NotificationHubs.Client;

And then in the start of your application, for example in your MainPage.xaml, you can initialize the NotificationHub class with the hub name and access policy connection string, referencing them for example from a constants file or some other configuration settings.

// Start the API
NotificationHub.Start(Constants.ConnectionString, Constants.HubName);

You can then listen for push notifications in your application by adding an event handler to the NotificationMessageReceived event.

// Add an event handler
NotificationHub.NotificationMessageReceived += OnNotificationMessageReceived;

// The handler
private void OnNotificationMessageReceived(object sender, NotificationMessageReceivedEventArgs e)
{
    // Do something with the message
    Console.WriteLine($"Title: {e.Title}");
    Console.WriteLine($"Body: {e.Body}");
}

The API automatically handles using the Installation API for you once you have called the NotificationHub.Start method. You may want indiciations that either the installation was successfully saved or failed to save, and to cover those scenarios, we have the InstallationSaved and InstallationSaveFailed events that you can add handlers to. The InstallationSaved event will give you back the Installation that was saved, and the InstallationSaveFailed will give you back an Exception from the process.

// Add handlers for installation managements
NotificationHub.InstallationSaved += OnInstallatedSaved;
NotificationHub.InstallationSaveFailed += OnInstallationSaveFailed;

private void OnInstallatedSaved(object sender, InstallationSavedEventArgs e)
{
    Console.WriteLine($"Installation ID: {e.Installation.InstallationId} saved successfully");
}

private void OnInstallationSaveFailed(object sender, InstallationSaveFailedEventArgs e)
{
    Console.WriteLine($"Failed to save installation: {e.Exception.Message}");
}

In the case of failure, you can try the process of saving the installation again by calling the NotificationHub.SaveInstallation() method, but this should be only called in case the installation process has failed.

Tag Management for Xamarin.Forms

One of the ways to target a device or set of devices is through the use of tags, where you can target a specific tag, or a tag expression. The SDK handles this through top level methods that allow you to add, clear, remove and get all tags for the current installation. In this example, we can add some recommended tags such as the app language preference, and device country code.

var language = System.Globalization.CultureInfo.CurrentUICulture.TwoLetterISOLanguageName;
var country = System.Globalization.RegionInfo.CurrentRegion.TwoLetterISORegionName;

var languageTag = $"language_{langauge}";
var countryTag = $"country_{country}";

NotificationHub.AddTags(new [] { languageTag, countryTag });

Template Management for Xamarin.Forms

With Azure Notification Hub Templates, you can enable a client application to specify the exact format of the notifications it wants to receive. This is useful when you want to create a more personalized notification, with string replacement to fill the values. The Installation API allows multiple templates for each installation which gives you greater power to target your users with rich messages.

For example, we can create a template with a body, some headers, and some tags.

var language = System.Globalization.CultureInfo.CurrentUICulture.TwoLetterISOLanguageName;
var country = System.Globalization.RegionInfo.CurrentRegion.TwoLetterISORegionName;

var languageTag = $"language_{language}";
var countryTag = $"country_{country}";

var body = "{\"aps\": {\"alert\": \"$(message)\"}}";
var template = new InstallationTemplate();
template.Body = body;
template.Tags = new List<string> { languageTag, countryCodeTag };

NotificationHub.SetTemplate("template1", template);

Push to User Management for Xamarin.Forms

The SDK supports the ability to associate a user with an installation. This allows you to be able to target all devices associated with a particular User ID. The user's identity set through the SDK can be whatever the developer wants it to be: the user's name, email address, phone number, or some other unique identifier. This is supported through the NotificationHub and the UserId property.

var userId = "iosUser123"
NotificationHub.UserId = userId;

// Get the user ID
Console.WriteLine($"User ID: {NotificationHub.UserId}");

Enriching Installations for Xamarin.Forms

The SDK will update the installation on the device any time you change its properties such as adding a tag or adding an installation template. Before the installation is sent to the backend, you can intercept this installation to modify anything before it goes to the backend, for example, if you wish to add or modify tags. This is implemented in the IInstallationEnrichmentAdapter interface with a single method of EnrichInstallation.

NotificationHub.SetInstallationEnrichmentAdapter(new InstallationEnrichmentAdapter());

public class InstallationEnrichmentAdapter : IInstallationEnrichmentAdapter
{
    public override void EnrichInstallation(Installation installation)
    {
        installation.Tags.Add("platform_XamarinForms");
    }
}

Saving Installations to a Custom Backend

The Azure Notification Hubs SDK will save the installation to our backend by default. If, however, you wish to skip our backend and store it on your backend, we support that through the IInstallationManagementAdapter interface. This has a method to save the installation SaveInstallation, passing in the installation, and then a completion for success, or for errors. Instead of starting the API with the Start method with the hub name and connection string, we start with our installation adapter.

// Set the installation management delegate
Notification.Start(new InstallationManagementAdapter()); 

public class InstallationManagementDelegate : IInstallationManagementAdapter
{
    void SaveInstallation(Installation installation, Action<Installation> onSuccess, Action<Exception> onError);
    {
        // Save the installation to your own backend
        // Finish with a completion with error if one occurred, else null
        onSuccess(installation);
    }
}

Extending the Xamarin Forms Example

This sample is meant to be a starting point for wrapping the Azure Notification Hubs Xamarin Components. Extending the capabilities for each platform, Apple and Android, can be done in files that end with .ios.cs or .android.cs depending on the platform. Extending shared pieces of code can be added by adding files ending with the .shared.cs extension. If you need platform specific code for your Xamarin Forms iOS or Android projects, you can reference the NotificationHub class which will reference the appropriate platform.

Getting Started with Xamarin for Apple

The Azure Notification Hubs for Xamarin for Apple (Xamarin.iOS, Xamarin.TVOS, Xamarin.Mac) is supported as part of the Xamarin Components repository in the AzureMessaging folder. This provides the Xamarin.Azure.NotificationHubs.iOS NuGet package which can be added to your Xamarin Apple project.

Initializing the Azure Notification Hubs for Xamarin Apple can be done by importing the WindowsAzure.Messaging.NotificationHubs namespace from the package. Note there are other classes under the WindowsAzure.Messaging that are still available and supported such as SBNotificationHub but are discouraged.

using WindowsAzure.Messaging.NotificationHubs;

And then in the start of your application, for example in your AppDelegate.cs, you can initialize the MSNotificationHub class with the hub name and access policy connection string, referencing them for example from a constants file or some other configuration settings.

// Start the API
MSNotificationHub.Start(Constants.ConnectionString, Constants.HubName);

You can then listen for push notifications in your application by extending the MSNotificationHubDelegate class and implementing the abstract DidReceivePushNotification method.

// Set the delegate for receiving messages
MSNotificationHub.SetDelegate(new NotificationDelegate());

// The notification delegate implementation
public class NotificationDelegate : MSNotificationHubDelegate
{
    public override void DidReceivePushNotification(MSNotificationHub notificationHub, MSNotificationHubMessage message)
    {
        if (UIApplication.SharedApplication.ApplicationState == UIApplicationState.Background)
        {
            Console.WriteLine($"Message received in the background with title {message.Title} and body {message.Body}");
        }
        else
        {
            Console.WriteLine($"Message received in the foreground with title {message.Title} and body {message.Body}");
        }
    }
}

Tag Management for Xamarin for Apple

One of the ways to target a device or set of devices is through the use of tags, where you can target a specific tag, or a tag expression. The SDK handles this through top level methods that allow you to add, clear, remove and get all tags for the current installation. In this example, we can add some recommended tags such as the app language preference, and device country code.

var language = NSBundle.MainBundle.PreferredLocalizations[0];
var countryCode = NSLocale.CurrentLocale.CountryCode;

var languageTag = $"language_{language}";
var countryCodeTag = $"country_{countryCode}";

MSNotificationHub.AddTag(languageTag);
MSNotificationHub.AddTag(countryCodeTag);

Template Management for Xamarin for Apple

With Azure Notification Hub Templates, you can enable a client application to specify the exact format of the notifications it wants to receive. This is useful when you want to create a more personalized notification, with string replacement to fill the values. The Installation API allows multiple templates for each installation which gives you greater power to target your users with rich messages.

For example, we can create a template with a body, some headers, and some tags.

var language = NSBundle.MainBundle.PreferredLocalizations[0];
var countryCode = NSLocale.CurrentLocale.CountryCode;

var languageTag = $"language_{language}";
var countryCodeTag = $"country_{countryCode}";

var body = "{\"aps\": {\"alert\": \"$(message)\"}}";
var template = new MSInstallationTemplate();
template.Body = body;
template.AddTag(languageTag);
template.AddTag(countryCodeTag);

MSNotificationHub.SetTemplate(template, key: "template1");

Push to User Management Xamarin for Apple

The SDK supports the ability to associate a user with an installation. This allows you to be able to target all devices associated with a particular User ID. The user's identity set through the SDK can be whatever the developer wants it to be: the user's name, email address, phone number, or some other unique identifier. This is supported through the MSNotificationHub and the GetUserId and SetUserId methods.

var userId = "iosUser123"
MSNotificationHub.SetUserId(userId);

// Get the user ID
Console.WriteLine($"User ID: {NotificationHub.GetUserId()}");

Intercepting Installation Management for Xamarin for Apple

The SDK will handle saving the installation for you, however, we provide hooks where you can intercept both the successful installation or any failure through the MSInstallationLifecycleDelegate abstract class. This has two methods, DidSaveInstallation for successful saves, and DidFailToSaveInstallation for any failures. We can implement this to have our own logging for example.

// Set a listener for lifecycle management
MSNotificationHub.SetLifecycleDelegate(new InstallationLifecycleDelegate());

public class InstallationLifecycleDelegate : MSInstallationLifecycleDelegate
{
    public override void DidFailToSaveInstallation(MSNotificationHub notificationHub, MSInstallation installation, NSError error)
    {
        Console.WriteLine($"Save installation failed with exception: {error.LocalizedDescription}");
    }

    public override void DidSaveInstallation(MSNotificationHub notificationHub, MSInstallation installation)
    {
        Console.WriteLine($"Installation successfully saved with Installation ID: {installation.InstallationId}");
    }
}

Enriching Installations for Xamarin for Apple

The SDK will update the installation on the device any time you change its properties such as adding a tag or adding an installation template. Before the installation is sent to the backend, you can intercept this installation to modify anything before it goes to the backend, for example, if you wish to add or modify tags. This is implemented in the MSInstallationEnrichmentDelegate abstract base class with a single method of WillEnrichInstallation.

// Set a dele3gate for enriching installations
MSNotificationHub.SetEnrichmentDelegate(new InstallationEnrichmentDelegate());

public class InstallationEnrichmentDelegate : MSInstallationEnrichmentDelegate
{
    public override void WillEnrichInstallation(MSNotificationHub notificationHub, MSInstallation installation)
    {
        installation.AddTag("platform_XamariniOS");
    }
}

Saving Installations to a Custom Backend for Xamarin for Apple

The Azure Notification Hubs SDK will save the installation to our backend by default. If, however, you wish to skip our backend and store it on your backend, we support that through the MSInstallationManagementDelegate protocol. This has a method to save the installation WillUpsertInstallation, passing in the installation, and then a completion handler is called with either an error if unsuccessful, or nil if successful. Instead of starting the API with the Start method, we use the StartWithInstallationManagement which sets the installation manager.

// Set the installation management delegate
MSNotificationHub.StartWithInstallationManagement(new InstallationManagementDelegate()); 

public class InstallationManagementDelegate : MSInstallationManagementDelegate
{
    public override void WillUpsertInstallation(MSNotificationHub notificationHub, MSInstallation installation, NullableCompletionHandler completionHandler)
    {
        // Save the installation to your own backend
        // Finish with a completion with error if one occurred, else null
        completionHandler(null);
    }
}

Disabling Automatic Swizzling for Xamarin for Apple

By default, the SDK will swizzle methods to automatically intercept calls to UIApplicationDelegate/NSApplicationDelegate for calls to registering and intercepting push notifications, as well as UNUserNotificationCenterDelegate methods.

Disabling UIApplicationDelegate/NSApplicationDelegate

  1. Open the project's Info.plist

  2. Add the NHAppDelegateForwarderEnabled key and set the value to 0. This disables the UIApplicationDelegate/NSApplicationDelegate auto-forwarding to MSNotificaitonHub.

  3. Implement the MSApplicationDelegate/NSApplicationDelegate methods for push notifications.

    Implement the RegisteredForRemoteNotifications callback and the FailedToRegisterForRemoteNotifications callback in your AppDelegate to register for Push notifications.

    public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
    {
        MSNotificationHub.DidRegisterForRemoteNotifications(deviceToken);
    }
    
    public override void FailedToRegisterForRemoteNotifications(UIApplication application, NSError error)
    {
        MSNotificationHub.DidFailToRegisterForRemoteNotifications(error);
    }
  4. Implement the callback to receive push notifications

    Override the DidReceiveRemoteNotification method to forward push notifications to MSNotificationHub.

    public override void DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, System.Action<UIBackgroundFetchResult> completionHandler)
    {
    
        // Forward to MSNotificationHub
        MSNotificationHub.DidReceiveRemoteNotification(userInfo);
    
        // Complete handling the notification
        completionHandler(UIBackgroundFetchResult.NoData);
    }

Disabling UNUserNotificationCenterDelegate

  1. Open the project's Info.plist

  2. Add the NHUserNotificationCenterDelegateForwarderEnabled key and set the value to 0. This disables the UNUserNotificationCenterDelegate auto-forwarding to MSNotificaitonHub.

  3. Implement UNUserNotificationCenterDelegate callbacks and pass the notification's payload to MSNotificationHub.

    public override void WillPresentNotification (UNUserNotificationCenter center, UNNotification notification, Action<UNNotificationPresentationOptions> completionHandler)
    {
        //...
    
        // Pass the notification payload to MSNotificationHub
        MSNotificationHub.DidReceiveRemoteNotification(notification.Request.Content.UserInfo);
    
        // Complete handling the notification
        completionHandler(UNNotificationPresentationOptions.None);
    }
    
    public override void DidReceiveNotificationResponse (UNUserNotificationCenter center, UNNotificationResponse response, Action completionHandler) 
    {
        //...
    
        // Pass the notification payload to MSNotificationHub
        MSNotificationHub.DidReceiveRemoteNotification(response.Notification.Request.Content.UserInfo);
    
        // Complete handling the notification
        completionHandler();
    }

Getting Started with Xamarin.Android

The Azure Notification Hubs for Xamarin.Android is supported as part of the Xamarin Components repository in the AzureMessaging folder. This provides the Xamarin.Azure.NotificationHubs.Android NuGet package which can be added to your Xamarin.Android project.

Initializing the Azure Notification Hubs for Xamarin.Android can be done by importing the WindowsAzure.Messaging.NotificationHubs namespace from the package. Note there are other classes under the WindowsAzure.Messaging that are still available and supported such as the other NotificationHub class, but are discouraged.

using WindowsAzure.Messaging.NotificationHubs;

You will need to update the following packages (versions correct as of 1.1.4.1): Xamarin.GooglePlayServices.Base (117.6.0.2) Xamarin.Firebase.Messaging (122.0.0.2) Xamarin.Google.Dagger (2.37.0)

It's recommended that you add the following to your androidmanifest.xml:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>

You will also need to go to Firebase Console and create a firebase project. Add your app, download the google.json, and add it to your project. Set its build action to GoogleServiceJson. This build action comes from Xamarin.GooglePlayServices.Base, so if it's not there then make sure that's up to date and restart visual studio.

And then in the start of your application, for example in your MainActivity.cs, you can initialize the NotificationHub class with the Android Application, hub name and access policy connection string, referencing them for example from a constants file or some other configuration settings.

// Start the API
NotificationHub.Start(this.Application, Constants.HubName, Constants.ConnectionString);

You can then listen for push notifications in your application by implementing the INotificationListener interface and implementing the OnPushNotificationReceived method.

// Set the delegate for receiving messages
NotificationHub.SetListener(new SampleNotificationListener());

// The notification listener implementation
public class SampleNotificationListener : Java.Lang.Object, INotificationListener
{
    public void OnPushNotificationReceived(Context context, INotificationMessage message)
    {
        Console.WriteLine($"Message received with title {message.Title} and body {message.Body}");
    }
}

Tag Management for Xamarin.Android

One of the ways to target a device or set of devices is through the use of tags, where you can target a specific tag, or a tag expression. The SDK handles this through top level methods that allow you to add, clear, remove and get all tags for the current installation. In this example, we can add some recommended tags such as the app language preference, and device country code.

var language = Resources.Configuration.Locales.Get(0).Language;
var countryCode = Resources.Configuration.Locales.Get(0).Country;

var languageTag = $"language_{language}";
var countryCodeTag = $"country_{countryCode}";

NotificationHub.AddTags(new [] { languageTag, countryCodeTag });

Template Management for Xamarin.Android

With Azure Notification Hub Templates, you can enable a client application to specify the exact format of the notifications it wants to receive. This is useful when you want to create a more personalized notification, with string replacement to fill the values. The Installation API allows multiple templates for each installation which gives you greater power to target your users with rich messages.

For example, we can create a template with a body, some headers, and some tags.

var language = Resources.Configuration.Locales.Get(0).Language;
var countryCode = Resources.Configuration.Locales.Get(0).Country;

var languageTag = $"language_{language}";
var countryCodeTag = $"country_{countryCode}";

var body = "{\"data\":{\"message\":\"$(message)\"}}";
var template = new InstallationTemplate();
template.Body = body;

template.AddTags(new[] { languageTag, countryCodeTag });

NotificationHub.SetTemplate("template1", template);

Push to User Management for Xamarin.Android

The SDK supports the ability to associate a user with an installation. This allows you to be able to target all devices associated with a particular User ID. The user's identity set through the SDK can be whatever the developer wants it to be: the user's name, email address, phone number, or some other unique identifier. This is supported through the NotificationHub and the GetUserId and SetUserId methods.

var userId = "iosUser123"
NotificationHub.SetUserId(userId);

// Get the user ID
Console.WriteLine($"User ID: {NotificationHub.UserId}");

Intercepting Installation Management for Xamarin.Android

The SDK will handle saving the installation for you, however, we provide hooks where you can intercept both the successful installation or any failure through the IInstallationAdapterListener interface for successful saves and the IInstallationAdapterErrorListener interface for any errors.

// Set listener for installation save success and failure
NotificationHub.SetInstallationSavedListener(new InstallationSavedListener());
NotificationHub.SetInstallationSaveFailureListener(new InstallationSaveFailedListener());

public class InstallationSavedListener : Java.Lang.Object, IInstallationAdapterListener
{
    public void OnInstallationSaved(Installation installation)
    {
        Console.WriteLine($"Installation successfully saved with Installation ID: {installation.InstallationId}");
    }
}

public class InstallationSaveFailedListener : Java.Lang.Object, IInstallationAdapterErrorListener
{
    public void OnInstallationSaveError(Java.Lang.Exception javaException)
    {
        var exception = Throwable.FromException(javaException);
        Console.WriteLine($"Save installation failed with exception: {exception.Message}");
    }
}

Enriching Installations for Xamarin.Android

The SDK will update the installation on the device any time you change its properties such as adding a tag or adding an installation template. Before the installation is sent to the backend, you can intercept this installation to modify anything before it goes to the backend, for example, if you wish to add or modify tags. This is implemented using the Visitor Pattern through the IInstallationVisitor interface.

// Set an enrichment visitor
NotificationHub.UseVisitor(new InstallationEnrichmentVisitor());

public class InstallationEnrichmentVisitor : Java.Lang.Object, IInstallationVisitor
{
    public void VisitInstallation(Installation installation)
    {
        // Add a sample tag
        installation.AddTag("platform_XamarinAndroid");
    }
}

The Azure Notification Hubs SDK will save the installation to our backend by default. If, however, you wish to skip our backend and store it on your backend, we support that through the IInstallationAdapter interface. This has a method to save the installation SaveInstallation, passing in the installation, and two listeners, one for successful saves with the IInstallationAdapterListener and IInstallationAdapterErrorListener for any failures. Instead of starting the API with the Start method with the hub name and connection string, we use the IInstallationAdapter overload.

// Set the installation management delegate
NotificationHub.Start(Application, new SampleInstallationAdapter()); 

public class SampleInstallationAdapter : Java.Lang.Object, IInstallationAdapter
{
    public void SaveInstallation(Installation installation,
        IInstallationAdapterListener installationAdapterListener,
        IInstallationAdapterErrorListener installationAdapterErrorListener)
    {
        // Save to your own backend

        // Call if successfully saved
        installationAdapterListener.OnInstallationSaved(installation);
    }
}

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repositories using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

License

.NET (including the runtime repo) is licensed under the MIT license.

azure-notificationhubs-xamarin's People

Contributors

adambarath avatar benonside avatar dependabot[bot] avatar kylekampy avatar marstr avatar microsoft-github-operations[bot] avatar microsoftopensource avatar mpodwysocki avatar phenek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azure-notificationhubs-xamarin's Issues

[QUERY] Duplicate installations/registrations after re-install

Hi all,

I have got my apps successfully registering and receiving notifications, I can send a test notification from Azure and it is received as expected.

But each time I uninstall the app, and re-install it, it seems to be creating a new registration in Azure Notification Hub, as when I sent a test notification again, the results say successfully sent 2 notifications. Im currently on 5 registrations, so the number of sent push notifications in Azure is going up quickly!

I am simply calling MSNotificationHub.Start(...) in FinishedLaunching()

So my questions are:

  1. Should it be creating new installations / registrations on each fresh app install?
  2. I feel I should somehow be either removing existing ones or updating them, so if so, can anyone point me in the right direction to do this?
  • OS: iOS 13 app
  • IDE : Visual Studio 2022 Mac

Thanks in advance.

[BUG]NotificationMessageReceived does not trigger when opening notification from tray

Describe the bug
NotificationMessageReceived does not trigger when a notification is clicked from the notification tray (background notification). It does trigger when the notification is received in foreground.

Exception or Stack Trace
[removed]

To Reproduce
Implemented Azure Notification Hubs for Xamarin (azure-notificationhubs-xamarin). Sent notification from Azure Notification "Test Send" on android simulator with app in background. Payload :
{ "notification":{ "title":"Notification Hub Test Notification", "body":"This is a sample notification delivered by Azure Notification Hubs." }, "data":{ "property1":"value1", "property2":42 } }

Code Snippet
`// Add an event handler
NotificationHub.NotificationMessageReceived += OnNotificationMessageReceived;

// The handler
private void OnNotificationMessageReceived(object sender, NotificationMessageReceivedEventArgs e)
{
// Do something with the message
Console.WriteLine($"Title: {e.Title}");
Console.WriteLine($"Body: {e.Body}");
}`

Expected behavior
Event must trigger when a background notification is clicked. Like it did in app center with
Push.PushNotificationReceived

Setup (please complete the following information):

  • OS: Android 9.0
  • IDE : Visual Studio 2019 Community 16.8.2
  • main branch of azure-notificationhubs-xamarin

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

  • Bug Description Added
  • Repro Steps Added
  • Setup information Added

[FEATURE REQ] Have the possibility to decide the installation expiration window

Is your feature request related to a problem? Please describe.
I still do not understand why you decided to reverse the default behavior (no expiration) but in this case we need I way to decide the expiration window (some apps are meant to be kiosks, they "never" restart...)

Describe the solution you'd like
Provide a way to pass a custom (longer) duration through the NotificationHubInstallationAdapter constructor.
Actually this constructor is private

Please tell me if I can help with a pr, the problem is the meaning of this project which is not clear to me.
Is it something official? As already asked do you plan to have a nuget package? In which way I can help?
Thanks @marstr

[QUERY] Deregister device

Query/Question
Is there a deregister function?
I'm looking for a way to deregister the device and remove the installation from the hub, like I was used to do in a backend using DeleteInstallationByIdAsync.
Thanks.

Setup (please complete the following information if applicable):

  • OS: n/a
  • IDE : Visual Studio 2019
  • Version of the Library used : 1.0.0.0

Information Checklist

  • Query Added
  • Setup information Added

[BUG][Android] Installation fails

Describe the bug
Not regeristered itself as the documentation described, installation fails.. I call NotificationHub.Start(connString, hubName); after FirebaseMessagingService.OnNewToken is called by OS.

Exception or Stack Trace
InstallationSaveFailed Exception is:
<Error><Code>400</Code><Detail>Installation validation failed with following error(s):&#xD; 'PushChannel' is required.&#xD; Value cannot be null.&#xD; Parameter name: gcmRegistrationId..TrackingId:8147d573-309e-4180-8ee0-a6bc9a068cf7_G20,TimeStamp:11/2/2020 8:06:38 AM</Detail></Error>

To Reproduce
Steps to reproduce the behavior:

                Microsoft.Azure.NotificationHubs.Client.NotificationHub.InstallationSaved += (sender, e) => { };
                Microsoft.Azure.NotificationHubs.Client.NotificationHub.InstallationSaveFailed += (sender, e) => { };

                Microsoft.Azure.NotificationHubs.Client.NotificationHub.Start(connString, hubName);

Expected behavior
The API automatically handles using the Installation API for you once you have called the NotificationHub.Start method.

Screenshots
If applicable, add screenshots to help explain your problem.

Setup (please complete the following information):
Microsoft Visual Studio Enterprise 2019
Version 16.7.5
VisualStudio.16.Release/16.7.5+30523.141
Microsoft .NET Framework
Version 4.8.04084

Xamarin.Android SDK 11.0.2.0 (d16-7/025fde9)
Xamarin.Android Reference Assemblies and MSBuild support.
Mono: 83105ba
Java.Interop: xamarin/java.interop/d16-7@1f3388a
ProGuard: Guardsquare/proguard@ebe9000
SQLite: xamarin/sqlite@1a3276b
Xamarin.Android Tools: xamarin/xamarin-android-tools/d16-7@017078f

Xamarin.iOS and Xamarin.Mac SDK 14.0.0.0 (7ec3751a1)
Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support.

Additional context
InstallationSaveFailed event is getting called all the times..

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

  • Bug Description Added
  • Repro Steps Added
  • Setup information Added

[BUG] Xamarin Forms Android Push Notifications not received when app has been swiped closed

Describe the bug
I have had push notifications configured in my Xamarin Forms app for the last year and this week decided to update to the new SDK, although I am having issues with Xamarin Android.

I have tried to copy the documentation here: https://docs.microsoft.com/en-us/azure/notification-hubs/xamarin-notification-hubs-push-notifications-android-gcm and believe I am 90% of the way there as my app will happily receive push notifications when it is in the foreground and background, but my app cannot receive push notifications when it has been swiped closed, (not force shut). I know this is 100% not a device issue as I tested the old configuration using the FirebaseService class my device receives the push notification as expected. I am also using 'Data' notifications.

Exception or Stack Trace
Error (10186) / AndroidRuntime: FATAL EXCEPTION: Firebase-Messaging-Intent-Handle Error (10186) / AndroidRuntime: Process: com.mycompany.AndroidNotificationTest, PID: 10186 Error (10186) / AndroidRuntime: java.lang.NullPointerException: Attempt to invoke interface method 'void com.microsoft.windowsazure.messaging.notificationhubs.NotificationListener.onPushNotificationReceived(android.content.Context, com.microsoft.windowsazure.messaging.notificationhubs.NotificationMessage)' on a null object reference Error (10186) / AndroidRuntime: at com.microsoft.windowsazure.messaging.notificationhubs.FirebaseReceiver.onMessageReceived(FirebaseReceiver.java:52) Error (10186) / AndroidRuntime: at com.google.firebase.messaging.FirebaseMessagingService.dispatchMessage(com.google.firebase:firebase-messaging@@21.0.1:13) Error (10186) / AndroidRuntime: at com.google.firebase.messaging.FirebaseMessagingService.passMessageIntentToSdk(com.google.firebase:firebase-messaging@@21.0.1:8) Error (10186) / AndroidRuntime: at com.google.firebase.messaging.FirebaseMessagingService.handleMessageIntent(com.google.firebase:firebase-messaging@@21.0.1:3) Error (10186) / AndroidRuntime: at com.google.firebase.messaging.FirebaseMessagingService.handleIntent(com.google.firebase:firebase-messaging@@21.0.1:3) Error (10186) / AndroidRuntime: at com.google.firebase.messaging.EnhancedIntentService.lambda$processIntent$0$EnhancedIntentService(Unknown Source:1) Error (10186) / AndroidRuntime: at com.google.firebase.messaging.EnhancedIntentService$$Lambda$0.run(Unknown Source:6) Error (10186) / AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) Error (10186) / AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) Error (10186) / AndroidRuntime: at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@17.6.0:2) Error (10186) / AndroidRuntime: at java.lang.Thread.run(Thread.java:919)

To Reproduce

  1. Create Xamarin Forms App Project in Visual Studio for Mac
  2. Follow tutorial: https://docs.microsoft.com/en-us/azure/notification-hubs/xamarin-notification-hubs-push-notifications-android-gcm#set-up-notification-hubs-in-your-project to set up the project
  3. Run Project -
  4. Stop Debugger (kills app)
  5. Reopen App from device
  6. Close App Via Swipe Up
  7. Send data push notification from azure notification hubs: {"data":{"title":"Push Notification",ย "message":"Helloย Androidย Device."}}
  8. Nothing is received to the device and the error is thrown.

Code Snippet
internal class AzureListener : Java.Lang.Object, INotificationListener { public void OnPushNotificationReceived(Context context, INotificationMessage message) { Console.WriteLine($"Message received with title {message.Title} and body {message.Body}"); } }

Expected behavior
A data push notification sent when the app has been swiped closed should appear in the notification tray and launch the app when it is tapped.

Setup (please complete the following information):

  • OS: Android 10 (Q)
  • IDE : Visual Studio Professional for Mac 2019
  • Version of the Libraries used: Xamarin.Firebase.Messaging 121.0.1, Xamarin.Azure.NotificationHubs.Android 1.1.4.1, Xamarin.GooglePlayServices.Base 117.6.0, Xamarin.Android.Support.Design 28.0.0.3

Additional context
Android Manifest may be useful as well.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.package.appname"> <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <application android:label="AndroidNotificationTest.Android" android:theme="@style/MainTheme"></application> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> </manifest>

[QUERY] How to use this library? Files are missing in my repository

Query/Question
ELI5

How to make sure all assets and needed files are downloaded? I cannot build project currently because a common_google_signin_btn_icon_light_normal_background.9.png file is missing.

I have no idea how to find this file and add it to my local repository.

Microsoft.Azure.NotificationHubs.Client\azure-notificationhubs-xamarin\src\Microsoft.Azure.NotificationHubs.Client\obj\Release\monoandroid10.0\lp\47\jl\res\drawable-xxhdpi-v4\common_google_signin_btn_icon_light_normal_background.9.png'

[QUERY]Is the Xamarin.Forms nuget package is available to public?

Query/Question
Just want to confirm where can I find the Nuget package for the Xamarin.Form project?

Why is this not a Bug or a feature Request?
I want to use the new API in my project, but I cannot find the nuget.

Setup (please complete the following information if applicable):

  • OS: [e.g. iOS 13.x]
  • IDE : [e.g. Visual Studio 2019]
  • Version of the Library used

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

  • Query Added
  • Setup information Added

[QUERY] iOS authorization request

Query/Question
It is unclear whether I need to make an authorization request for using notifications when I use Azure notifications hub. I assume that I still do, but do I need to do it before calling MSNotificationHub.Start() or can I do it at a later stage?
I would like to have my auth request deeper into my app code together with some explanations, but can/should I still have the MSNotificationHub.Start() and MSNotificationHub.SetDelegate() in my AppDelegate?

Other than that I like this new version of your push services, but please mark all other documentation as deprecated with links to this updated version. It is all very confusing atm.

Thanks!

Why is this not a Bug or a feature Request?
It is purely a documentation issue. Should I call for authorization and in what order?

Setup (please complete the following information if applicable):

  • OS: any iOS
  • IDE : any IDE
  • Version of the Library used 3.1.1

FirebaseApp not initialized with the latest Xamarin.Azure.NotificationHubs.Android binding

This issue is related to #21
With the latest version of the Xamarin.Azure.NotificationHubs.Android binding (1.1.4.1) we have exactly the same error.
Sorry @marstr but I really don't understand at this point.
Is it possibile to have something that works?
Or at least have a support to understand the problem, I asked many times to have the possibility to schedule a call, with you or I don't know with who.
After two months we are more or less at the same point, nothing that works as AppCenter.Push before.

Java.Lang.IllegalStateException: Default FirebaseApp is not initialized in this process. Make sure to call FirebaseApp.initializeApp(Context) first.
  at Java.Interop.JniEnvironment+StaticMethods.CallStaticVoidMethod (Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x0006e] in <8b3b636835d84984ba4604c1f57b1983>:0 
  at Java.Interop.JniPeerMembers+JniStaticMethods.InvokeVoidMethod (System.String encodedMember, Java.Interop.JniArgumentValue* parameters) [0x00018] in <8b3b636835d84984ba4604c1f57b1983>:0 
  at WindowsAzure.Messaging.NotificationHubs.NotificationHub.Start (Android.App.Application application, System.String hubName, System.String connectionString) [0x00068] in <3b91ec8468704611bcbe892fa8e0255b>:0 
  at Elfo.Ambrogio.App.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x000e1] in /Volumes/bahamut/projects/Elfo/Elfo/Elfo.Ambrogio/App/Elfo.Ambrogio.App.Android/MainActivity.cs:74 
  at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x0000f] in <84ca7e914f6148f0b961431a9ac4287b>:0 
  at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.16(intptr,intptr,intptr)
  --- End of managed Java.Lang.IllegalStateException stack trace ---
java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process net.elfo.ambrogio. Make sure to call FirebaseApp.initializeApp(Context) first.
	at com.google.firebase.FirebaseApp.getInstance(FirebaseApp.java:183)
	at com.google.firebase.messaging.FirebaseMessaging.getInstance(com.google.firebase:firebase-messaging@@21.0.1:1)
	at com.microsoft.windowsazure.messaging.notificationhubs.NotificationHubExtension.fetchPushChannel(NotificationHubExtension.java:33)
	at com.microsoft.windowsazure.messaging.notificationhubs.NotificationHub.registerApplication(NotificationHub.java:95)
	at com.microsoft.windowsazure.messaging.notificationhubs.NotificationHub.start(NotificationHub.java:132)
	at com.microsoft.windowsazure.messaging.notificationhubs.NotificationHub.start(NotificationHub.java:115)
	at net.elfo.ambrogio.MainActivity.n_onCreate(Native Method)
	at net.elfo.ambrogio.MainActivity.onCreate(MainActivity.java:40)
	at android.app.Activity.performCreate(Activity.java:7023)
	at android.app.Activity.performCreate(Activity.java:7014)
	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2734)
	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2859)
	at android.app.ActivityThread.-wrap11(Unknown Source:0)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1592)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loop(Looper.java:164)
	at android.app.ActivityThread.main(ActivityThread.java:6518)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

How to implement custom actions

Hi there,

Dont know if this is the correct terminology (Custom actions), however I would like to be able to take a user to a specific page (pass parameters to a page) on opening the notification. Is this possible with the Xamarin Forms library?

Many thanks!

[BUG] Migration from AppCenter Push not clear at all, installation fails

Describe the bug
Seems impossibile to migrate devices from AppCenter Push to NotificationHub without re-installing the application.

Exception or Stack Trace
WindowsAzure.Messaging.NotificationHubs.ClientException: Azure Notification Hub rejected the request.
com.microsoft.windowsazure.messaging.notificationhubs.ClientException: Azure Notification Hub rejected the request. com.microsoft.windowsazure.messaging.notificationhubs.NotificationHubInstallationAdapter.convertVolleyException NotificationHubInstallationAdapter.java:225 com.microsoft.windowsazure.messaging.notificationhubs.NotificationHubInstallationAdapter$RetrySession.onErrorResponse NotificationHubInstallationAdapter.java:181 com.android.volley.Request.deliverError Request.java:617 com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run ExecutorDelivery.java:104 android.os.Handler.handleCallback Handler.java:790 android.os.Handler.dispatchMessage Handler.java:99 android.os.Looper.loop Looper.java:164 android.app.ActivityThread.main ActivityThread.java:6518 java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run RuntimeInit.java:438 com.android.internal.os.ZygoteInit.main ZygoteInit.java:807

To Reproduce
With AppCenter Push to send a notification to a specific device you can use the AppCenter InstallationId.
The concept is the same as the "special" installation id tag in notification hub.
So in our backend we usually have a db table that stores the InstallationId for each device.
Then when we need to send the notification (from backend) is sufficient to retrieve the InstallationId to target the device and use the AppCenter Push REST API to fire the notification. Easy, and it works very good.
Now we have to migrate to NotificationHub...and is unbelievable, for another time after HockeyApp migration, the lack of a clear path and documentation! Every time "you" break something.
So the idea is, use this library (and please, when we will have a nuget package??), save the NotificationHub InstallationId (different than the AppCenter one) on application startup, send this information to the backend and also store the NotificationHub InstallationId in the devices table.
In this way I can still use AppCenter Push (until it is turned off) to send for "old" clients and as soon as the clients are updated (only after update I have the the new NotificationHub InstallationId) then I can use NotificationHub.
The problem is that the NotificationHub Installation always fails in case of in-app update (OnInstallationSaveFailed).
Instead it always works re-installing the application as new (not a possible scenario at all!!).
The code is obviously the same.
Why?

Another thing: why in case of successfully installation saved I can see that the installation has an expiration date when instead the notification hub documentation clearly says that an installation by default never expires??

Please, I can imagine that "you" are not the same team as the AppCenter one...but you can speak to each other??!!
We need a solution and the time is not so much.

Expected behavior
Have the possibility to migrate from AppCenter Push to NotificationHub without have to re-install all the applications from zero but just using the in-app update provided by AppCenter.

[BUG] Conflicts with some other library

Describe the bug
When I add the xamarin android package

  • Xamarin.Azure.NotificationHubs.Android (1.1.4.1)
    to our xamarin forms project, and update the appropriate libraries
  • xamarin.googleplayservices.base (117.6.0.2)
  • xamarin.firebase.messaging (122.0.0.2)
  • xamarin.google.dagger (2.37.0)
    Then I get the following error:
    "java.exe" returned exit code 1

I'm not sure that this is the right place for this issue - but I'm a bit stuck, tried updating and downgrading various packages as recommended by the internet to no avail. I'm pretty close to giving up on Azure PN and switching to a different provider.

To Reproduce
Steps to reproduce the behavior:

  • add all the below packages into a xamarin forms project
  • build

Code Snippet
Our android references:

..\packages\Acr.Support.2.1.0\lib\MonoAndroid10\Acr.Support.Android.dll ..\packages\Acr.UserDialogs.7.2.0.534\lib\monoandroid10.0\Acr.UserDialogs.dll ..\packages\Analytics.3.8.0\lib\netstandard2.0\Analytics.dll ..\packages\AndHUD.1.4.3\lib\monoandroid81\AndHUD.dll ..\packages\xamarin-android-altbeacon-library.2.17.1\lib\monoandroid90\AndroidAltBeaconLibrary.dll ..\packages\AutoMapper.10.1.1\lib\netstandard2.0\AutoMapper.dll ..\packages\BarcodeScanner.XF.5.0.9\lib\monoandroid11.0\BarcodeScanner.XF.dll ..\packages\Bolts.1.4.0.1\lib\MonoAndroid403\Bolts.AppLinks.dll ..\packages\Bolts.1.4.0.1\lib\MonoAndroid403\Bolts.Tasks.dll ..\packages\Xamarin.Android.VerticalViewPager.1.1.2\lib\MonoAndroid\Com.Android.DeskClock.dll ..\packages\Com.OneSignal.3.10.6\lib\MonoAndroid10\Com.OneSignal.dll ..\packages\Com.OneSignal.3.10.6\lib\MonoAndroid10\Com.OneSignal.Abstractions.dll ..\packages\Xamarin.Android.CirclePageIndicator.1.1.1\lib\MonoAndroid\Com.ViewPagerIndicator.dll ..\packages\Destructurama.Attributed.3.0.0\lib\netstandard2.0\Destructurama.Attributed.dll ..\packages\ExifLib.PCL.1.0.2-pre01\lib\netstandard1.0\ExifLib.dll True ..\packages\Xamarin.Forms.5.0.0.2244\lib\MonoAndroid10.0\FormsViewGroup.dll False ..\packages-custom\Xam.Plugin.Geofence.1.1.1.x\Geofence.Plugin.Abstractions.dll ..\packages\GeoJSON.Net.1.2.19\lib\netstandard2.1\GeoJSON.Net.dll ..\packages\Xamarin.Google.ZXing.Core.3.3.3\lib\monoandroid90\Google.ZXing.Core.dll ..\packages\Microsoft.AppCenter.4.4.0\lib\MonoAndroid50\Microsoft.AppCenter.dll ..\packages\Microsoft.AppCenter.Analytics.4.4.0\lib\MonoAndroid50\Microsoft.AppCenter.Analytics.dll ..\packages\Microsoft.AppCenter.Analytics.4.4.0\lib\MonoAndroid50\Microsoft.AppCenter.Analytics.Android.Bindings.dll ..\packages\Microsoft.AppCenter.4.4.0\lib\MonoAndroid50\Microsoft.AppCenter.Android.Bindings.dll ..\packages\Microsoft.AppCenter.Crashes.4.4.0\lib\MonoAndroid50\Microsoft.AppCenter.Crashes.dll ..\packages\Microsoft.AppCenter.Crashes.4.4.0\lib\MonoAndroid50\Microsoft.AppCenter.Crashes.Android.Bindings.dll ..\packages\Microsoft.AspNet.SignalR.Client.2.4.2\lib\netstandard2.0\Microsoft.AspNet.SignalR.Client.dll ..\packages\Microsoft.Extensions.Configuration.6.0.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll ..\packages\Microsoft.Extensions.Configuration.Abstractions.6.0.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll ..\packages\Microsoft.Extensions.Configuration.Binder.6.0.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.6.0.0\lib\netstandard2.1\Microsoft.Extensions.DependencyInjection.Abstractions.dll ..\packages\Microsoft.Extensions.Options.6.0.0\lib\netstandard2.1\Microsoft.Extensions.Options.dll ..\packages\Microsoft.Extensions.Options.ConfigurationExtensions.6.0.0\lib\netstandard2.0\Microsoft.Extensions.Options.ConfigurationExtensions.dll ..\packages\Microsoft.Extensions.Primitives.6.0.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll ..\packages\Microsoft.Bcl.Async.1.0.168\lib\portable-net45+win8+wpa81\Microsoft.Threading.Tasks.dll ..\packages\Microsoft.Bcl.Async.1.0.168\lib\portable-net45+win8+wpa81\Microsoft.Threading.Tasks.Extensions.dll ..\packages\Newtonsoft.Json.13.0.1\lib\netstandard2.0\Newtonsoft.Json.dll ..\packages\Nito.AsyncEx.Context.5.1.2\lib\netstandard2.0\Nito.AsyncEx.Context.dll ..\packages\Nito.AsyncEx.Coordination.5.1.2\lib\netstandard2.0\Nito.AsyncEx.Coordination.dll ..\packages\Nito.AsyncEx.Interop.WaitHandles.5.1.2\lib\netstandard2.0\Nito.AsyncEx.Interop.WaitHandles.dll ..\packages\Nito.AsyncEx.Oop.5.1.2\lib\netstandard2.0\Nito.AsyncEx.Oop.dll ..\packages\Nito.AsyncEx.Tasks.5.1.2\lib\netstandard2.0\Nito.AsyncEx.Tasks.dll ..\packages\Nito.Cancellation.1.1.2\lib\netstandard2.0\Nito.Cancellation.dll ..\packages\Nito.Collections.Deque.1.1.1\lib\netstandard2.0\Nito.Collections.Deque.dll ..\packages\Nito.Disposables.2.2.1\lib\netstandard2.1\Nito.Disposables.dll ..\packages\Com.OneSignal.3.10.6\lib\MonoAndroid10\OneSignal.Android.Binding.dll ..\packages\libphonenumber-csharp.8.12.34\lib\netstandard2.0\PhoneNumbers.dll ..\packages\Xam.Plugin.Battery.4.0.1\lib\monoandroid44\Plugin.Battery.dll ..\packages\Xam.Plugin.Connectivity.4.0.0.190-beta\lib\MonoAndroid10\Plugin.Connectivity.dll ..\packages\Xam.Plugin.Connectivity.4.0.0.190-beta\lib\MonoAndroid10\Plugin.Connectivity.Abstractions.dll ..\packages\Plugin.CurrentActivity.2.1.0.4\lib\monoandroid44\Plugin.CurrentActivity.dll ..\packages\Xam.Plugin.Geolocator.4.5.0.6\lib\monoandroid71\Plugin.Geolocator.dll ..\packages\Xam.Plugin.Media.5.0.1\lib\monoandroid10.0\Plugin.Media.dll ..\packages\Xam.Plugins.Messaging.5.2.0\lib\MonoAndroid10\Plugin.Messaging.dll ..\packages\Xam.Plugins.Messaging.5.2.0\lib\MonoAndroid10\Plugin.Messaging.Abstractions.dll ..\packages\Plugin.Permissions.6.0.1\lib\monoandroid10.0\Plugin.Permissions.dll ..\packages\Xam.Plugins.Settings.3.1.1\lib\MonoAndroid10\Plugin.Settings.dll ..\packages\Xam.Plugins.Settings.3.1.1\lib\MonoAndroid10\Plugin.Settings.Abstractions.dll ..\packages\Polly.7.2.2\lib\netstandard2.0\Polly.dll ..\packages\Serilog.2.10.0\lib\netstandard2.1\Serilog.dll ..\packages\Serilog.Sinks.Datadog.Logs.0.3.5\lib\netstandard2.0\Serilog.Sinks.Datadog.Logs.dll ..\packages\Serilog.Sinks.PeriodicBatching.2.3.0\lib\netstandard2.0\Serilog.Sinks.PeriodicBatching.dll ..\packages\SkiaSharp.2.80.3\lib\monoandroid1.0\SkiaSharp.dll ..\packages\SkiaSharp.Views.2.80.3\lib\monoandroid1.0\SkiaSharp.Views.Android.dll ..\packages\SkiaSharp.Views.Forms.2.80.3\lib\monoandroid1.0\SkiaSharp.Views.Forms.dll ..\packages\sqlite-net-sqlcipher.1.7.335\lib\netstandard2.0\SQLite-net.dll ..\packages\SQLiteNetCipherExtensions.2.1.0\lib\netstandard1.1\SQLiteNetCipherExtensions.dll ..\packages\SQLiteNetCipherExtensions.Async.2.1.0\lib\netstandard1.1\SQLiteNetCipherExtensionsAsync.dll ..\packages\SQLitePCLRaw.bundle_e_sqlcipher.2.0.4\lib\netstandard2.0\SQLitePCLRaw.batteries_v2.dll ..\packages\SQLitePCLRaw.core.2.0.4\lib\netstandard2.0\SQLitePCLRaw.core.dll ..\packages\SQLitePCLRaw.lib.e_sqlcipher.android.2.0.4\lib\monoandroid80\SQLitePCLRaw.lib.e_sqlcipher.android.dll ..\packages\SQLitePCLRaw.provider.e_sqlcipher.2.0.4\lib\netstandard2.0\SQLitePCLRaw.provider.e_sqlcipher.dll ..\packages\System.Buffers.4.5.1\lib\netstandard2.0\System.Buffers.dll True True ..\packages\System.Collections.Immutable.6.0.0\lib\netstandard2.0\System.Collections.Immutable.dll ..\packages\System.Memory.4.5.4\lib\netstandard2.0\System.Memory.dll True ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll ..\packages\TimeZoneConverter.3.5.0\lib\netstandard2.0\TimeZoneConverter.dll ..\packages\Xamarin.Android.Arch.Core.Common.1.1.1.3\lib\monoandroid90\Xamarin.Android.Arch.Core.Common.dll ..\packages\Xamarin.Android.Arch.Core.Runtime.1.1.1.3\lib\monoandroid90\Xamarin.Android.Arch.Core.Runtime.dll ..\packages\Xamarin.Android.Arch.Lifecycle.Common.1.1.1.3\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.Common.dll ..\packages\Xamarin.Android.Arch.Lifecycle.Extensions.1.1.1.3\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.Extensions.dll ..\packages\Xamarin.Android.Arch.Lifecycle.LiveData.1.1.1.3\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.LiveData.dll ..\packages\Xamarin.Android.Arch.Lifecycle.LiveData.Core.1.1.1.3\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.LiveData.Core.dll ..\packages\Xamarin.Android.Arch.Lifecycle.Runtime.1.1.1.3\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.Runtime.dll ..\packages\Xamarin.Android.Arch.Lifecycle.ViewModel.1.1.1.3\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.ViewModel.dll ..\packages\Xamarin.Android.Arch.Persistence.Db.1.1.1.3\lib\monoandroid90\Xamarin.Android.Arch.Persistence.Db.dll ..\packages\Xamarin.Android.Arch.Persistence.Db.Framework.1.1.1.3\lib\monoandroid90\Xamarin.Android.Arch.Persistence.Db.Framework.dll ..\packages\Xamarin.Android.Arch.Persistence.Room.Common.1.1.1.3\lib\monoandroid90\Xamarin.Android.Arch.Persistence.Room.Common.dll ..\packages\Xamarin.Android.Arch.Persistence.Room.Runtime.1.1.1.3\lib\monoandroid90\Xamarin.Android.Arch.Persistence.Room.Runtime.dll ..\packages\Xamarin.Android.Binding.InstallReferrer.2.2.0\lib\MonoAndroid10\Xamarin.Android.Binding.InstallReferrer.dll ..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.Animated.Vector.Drawable.dll ..\packages\Xamarin.Android.Support.Annotations.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.Annotations.dll ..\packages\Xamarin.Android.Support.AsyncLayoutInflater.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.AsyncLayoutInflater.dll ..\packages\Xamarin.Android.Support.Collections.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.Collections.dll ..\packages\Xamarin.Android.Support.Compat.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.Compat.dll ..\packages\Xamarin.Android.Support.CoordinaterLayout.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.CoordinaterLayout.dll ..\packages\Xamarin.Android.Support.Core.UI.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.Core.UI.dll ..\packages\Xamarin.Android.Support.Core.Utils.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.Core.Utils.dll ..\packages\Xamarin.Android.Support.CursorAdapter.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.CursorAdapter.dll ..\packages\Xamarin.Android.Support.CustomTabs.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.CustomTabs.dll ..\packages\Xamarin.Android.Support.CustomView.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.CustomView.dll ..\packages\Xamarin.Android.Support.Design.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.Design.dll ..\packages\Xamarin.Android.Support.DocumentFile.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.DocumentFile.dll ..\packages\Xamarin.Android.Support.DrawerLayout.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.DrawerLayout.dll ..\packages\Xamarin.Android.Support.Fragment.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.Fragment.dll ..\packages\Xamarin.Android.Support.Interpolator.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.Interpolator.dll ..\packages\Xamarin.Android.Support.Loader.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.Loader.dll ..\packages\Xamarin.Android.Support.LocalBroadcastManager.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.LocalBroadcastManager.dll ..\packages\Xamarin.Android.Support.Media.Compat.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.Media.Compat.dll ..\packages\Xamarin.Android.Support.Print.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.Print.dll ..\packages\Xamarin.Android.Support.SlidingPaneLayout.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.SlidingPaneLayout.dll ..\packages\Xamarin.Android.Support.SwipeRefreshLayout.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.SwipeRefreshLayout.dll ..\packages\Xamarin.Android.Support.Transition.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.Transition.dll ..\packages\Xamarin.Android.Support.v4.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.v4.dll ..\packages\Xamarin.Android.Support.v7.AppCompat.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.v7.AppCompat.dll ..\packages\Xamarin.Android.Support.v7.CardView.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.v7.CardView.dll ..\packages\Xamarin.Android.Support.v7.MediaRouter.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.v7.MediaRouter.dll ..\packages\Xamarin.Android.Support.v7.Palette.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.v7.Palette.dll ..\packages\Xamarin.Android.Support.v7.RecyclerView.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.v7.RecyclerView.dll ..\packages\Xamarin.Android.Support.Vector.Drawable.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.Vector.Drawable.dll ..\packages\Xamarin.Android.Support.VersionedParcelable.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.VersionedParcelable.dll ..\packages\Xamarin.Android.Support.ViewPager.28.0.0.3\lib\monoandroid90\Xamarin.Android.Support.ViewPager.dll ..\packages\Xamarin.Android.Volley.1.1.1.1\lib\monoandroid80\Xamarin.Android.Volley.dll ..\packages\Xamarin.AndroidX.Activity.1.3.1.2\lib\monoandroid90\Xamarin.AndroidX.Activity.dll ..\packages\Xamarin.AndroidX.Annotation.1.2.0.3\lib\monoandroid90\Xamarin.AndroidX.Annotation.dll ..\packages\Xamarin.AndroidX.Annotation.Experimental.1.1.0.3\lib\monoandroid90\Xamarin.AndroidX.Annotation.Experimental.dll ..\packages\Xamarin.AndroidX.AppCompat.1.3.1.3\lib\monoandroid90\Xamarin.AndroidX.AppCompat.dll ..\packages\Xamarin.AndroidX.AppCompat.AppCompatResources.1.3.1.3\lib\monoandroid90\Xamarin.AndroidX.AppCompat.AppCompatResources.dll ..\packages\Xamarin.AndroidX.Arch.Core.Common.2.1.0.11\lib\monoandroid90\Xamarin.AndroidX.Arch.Core.Common.dll ..\packages\Xamarin.AndroidX.Arch.Core.Runtime.2.1.0.11\lib\monoandroid90\Xamarin.AndroidX.Arch.Core.Runtime.dll ..\packages\Xamarin.AndroidX.AsyncLayoutInflater.1.0.0.10\lib\monoandroid90\Xamarin.AndroidX.AsyncLayoutInflater.dll ..\packages\Xamarin.AndroidX.Browser.1.3.0.8\lib\monoandroid90\Xamarin.AndroidX.Browser.dll ..\packages\Xamarin.AndroidX.CardView.1.0.0.11\lib\monoandroid90\Xamarin.AndroidX.CardView.dll ..\packages\Xamarin.AndroidX.Collection.1.1.0.10\lib\monoandroid90\Xamarin.AndroidX.Collection.dll ..\packages\Xamarin.AndroidX.Concurrent.Futures.1.1.0.5\lib\monoandroid90\Xamarin.AndroidX.Concurrent.Futures.dll ..\packages\Xamarin.AndroidX.ConstraintLayout.2.1.1.2\lib\monoandroid90\Xamarin.AndroidX.ConstraintLayout.dll ..\packages\Xamarin.AndroidX.ConstraintLayout.Core.1.0.1.2\lib\monoandroid90\Xamarin.AndroidX.ConstraintLayout.Core.dll ..\packages\Xamarin.AndroidX.CoordinatorLayout.1.1.0.10\lib\monoandroid90\Xamarin.AndroidX.CoordinatorLayout.dll ..\packages\Xamarin.AndroidX.Core.1.6.0.3\lib\monoandroid90\Xamarin.AndroidX.Core.dll ..\packages\Xamarin.AndroidX.CursorAdapter.1.0.0.10\lib\monoandroid90\Xamarin.AndroidX.CursorAdapter.dll ..\packages\Xamarin.AndroidX.CustomView.1.1.0.9\lib\monoandroid90\Xamarin.AndroidX.CustomView.dll ..\packages\Xamarin.AndroidX.DocumentFile.1.0.1.10\lib\monoandroid90\Xamarin.AndroidX.DocumentFile.dll ..\packages\Xamarin.AndroidX.DrawerLayout.1.1.1.5\lib\monoandroid90\Xamarin.AndroidX.DrawerLayout.dll ..\packages\Xamarin.AndroidX.DynamicAnimation.1.0.0.10\lib\monoandroid90\Xamarin.AndroidX.DynamicAnimation.dll ..\packages\Xamarin.AndroidX.Fragment.1.3.6.3\lib\monoandroid90\Xamarin.AndroidX.Fragment.dll ..\packages\Xamarin.AndroidX.Interpolator.1.0.0.10\lib\monoandroid90\Xamarin.AndroidX.Interpolator.dll ..\packages\Xamarin.AndroidX.Legacy.Support.Core.UI.1.0.0.11\lib\monoandroid90\Xamarin.AndroidX.Legacy.Support.Core.UI.dll ..\packages\Xamarin.AndroidX.Legacy.Support.Core.Utils.1.0.0.10\lib\monoandroid90\Xamarin.AndroidX.Legacy.Support.Core.Utils.dll ..\packages\Xamarin.AndroidX.Legacy.Support.V4.1.0.0.10\lib\monoandroid90\Xamarin.AndroidX.Legacy.Support.V4.dll ..\packages\Xamarin.AndroidX.Lifecycle.Common.2.3.1.3\lib\monoandroid90\Xamarin.AndroidX.Lifecycle.Common.dll ..\packages\Xamarin.AndroidX.Lifecycle.LiveData.2.3.1.3\lib\monoandroid90\Xamarin.AndroidX.Lifecycle.LiveData.dll ..\packages\Xamarin.AndroidX.Lifecycle.LiveData.Core.2.3.1.3\lib\monoandroid90\Xamarin.AndroidX.Lifecycle.LiveData.Core.dll ..\packages\Xamarin.AndroidX.Lifecycle.Runtime.2.3.1.4\lib\monoandroid90\Xamarin.AndroidX.Lifecycle.Runtime.dll ..\packages\Xamarin.AndroidX.Lifecycle.Service.2.3.1.3\lib\monoandroid90\Xamarin.AndroidX.Lifecycle.Service.dll ..\packages\Xamarin.AndroidX.Lifecycle.ViewModel.2.3.1.3\lib\monoandroid90\Xamarin.AndroidX.Lifecycle.ViewModel.dll ..\packages\Xamarin.AndroidX.Lifecycle.ViewModelSavedState.2.3.1.3\lib\monoandroid90\Xamarin.AndroidX.Lifecycle.ViewModelSavedState.dll ..\packages\Xamarin.AndroidX.Loader.1.1.0.10\lib\monoandroid90\Xamarin.AndroidX.Loader.dll ..\packages\Xamarin.AndroidX.LocalBroadcastManager.1.0.0.10\lib\monoandroid90\Xamarin.AndroidX.LocalBroadcastManager.dll ..\packages\Xamarin.AndroidX.Media.1.4.3\lib\monoandroid90\Xamarin.AndroidX.Media.dll ..\packages\Xamarin.AndroidX.MediaRouter.1.2.5.2\lib\monoandroid90\Xamarin.AndroidX.MediaRouter.dll ..\packages\Xamarin.AndroidX.MultiDex.2.0.1.10\lib\monoandroid90\Xamarin.AndroidX.MultiDex.dll ..\packages\Xamarin.AndroidX.Navigation.Common.2.3.5.3\lib\monoandroid90\Xamarin.AndroidX.Navigation.Common.dll ..\packages\Xamarin.AndroidX.Navigation.Runtime.2.3.5.3\lib\monoandroid90\Xamarin.AndroidX.Navigation.Runtime.dll ..\packages\Xamarin.AndroidX.Navigation.UI.2.3.5.3\lib\monoandroid90\Xamarin.AndroidX.Navigation.UI.dll ..\packages\Xamarin.AndroidX.Palette.1.0.0.10\lib\monoandroid90\Xamarin.AndroidX.Palette.dll ..\packages\Xamarin.AndroidX.Preference.1.1.1.11\lib\monoandroid90\Xamarin.AndroidX.Preference.dll ..\packages\Xamarin.AndroidX.Print.1.0.0.10\lib\monoandroid90\Xamarin.AndroidX.Print.dll ..\packages\Xamarin.AndroidX.RecyclerView.1.2.1.3\lib\monoandroid90\Xamarin.AndroidX.RecyclerView.dll ..\packages\Xamarin.AndroidX.Room.Common.2.3.0.4\lib\monoandroid90\Xamarin.AndroidX.Room.Common.dll ..\packages\Xamarin.AndroidX.Room.Runtime.2.3.0.4\lib\monoandroid90\Xamarin.AndroidX.Room.Runtime.dll ..\packages\Xamarin.AndroidX.SavedState.1.1.0.4\lib\monoandroid90\Xamarin.AndroidX.SavedState.dll ..\packages\Xamarin.AndroidX.SlidingPaneLayout.1.1.0.5\lib\monoandroid90\Xamarin.AndroidX.SlidingPaneLayout.dll ..\packages\Xamarin.AndroidX.Sqlite.2.1.0.10\lib\monoandroid90\Xamarin.AndroidX.Sqlite.dll ..\packages\Xamarin.AndroidX.Sqlite.Framework.2.1.0.10\lib\monoandroid90\Xamarin.AndroidX.Sqlite.Framework.dll ..\packages\Xamarin.AndroidX.SwipeRefreshLayout.1.1.0.5\lib\monoandroid90\Xamarin.AndroidX.SwipeRefreshLayout.dll ..\packages\Xamarin.AndroidX.Tracing.Tracing.1.0.0.3\lib\monoandroid90\Xamarin.AndroidX.Tracing.Tracing.dll ..\packages\Xamarin.AndroidX.Transition.1.4.1.3\lib\monoandroid90\Xamarin.AndroidX.Transition.dll ..\packages\Xamarin.AndroidX.VectorDrawable.1.1.0.10\lib\monoandroid90\Xamarin.AndroidX.VectorDrawable.dll ..\packages\Xamarin.AndroidX.VectorDrawable.Animated.1.1.0.10\lib\monoandroid90\Xamarin.AndroidX.VectorDrawable.Animated.dll ..\packages\Xamarin.AndroidX.VersionedParcelable.1.1.1.10\lib\monoandroid90\Xamarin.AndroidX.VersionedParcelable.dll ..\packages\Xamarin.AndroidX.ViewPager.1.0.0.10\lib\monoandroid90\Xamarin.AndroidX.ViewPager.dll ..\packages\Xamarin.AndroidX.ViewPager2.1.0.0.12\lib\monoandroid90\Xamarin.AndroidX.ViewPager2.dll ..\packages\Xamarin.AndroidX.Work.Runtime.2.4.0.1\lib\monoandroid90\Xamarin.AndroidX.Work.Runtime.dll ..\packages\Xamarin.Azure.NotificationHubs.Android.1.1.4.1\lib\monoandroid10.0\Xamarin.Azure.NotificationHubs.Android.dll ..\packages\Xamarin.Essentials.1.7.0\lib\monoandroid10.0\Xamarin.Essentials.dll ..\packages\Xamarin.Facebook.Android.11.2.0.1\lib\monoandroid90\Xamarin.Facebook.Android.dll ..\packages\Xamarin.Facebook.AppLinks.Android.11.2.0.1\lib\monoandroid90\Xamarin.Facebook.AppLinks.Android.dll ..\packages\Xamarin.Facebook.Common.Android.11.2.0.1\lib\monoandroid90\Xamarin.Facebook.Common.Android.dll ..\packages\Xamarin.Facebook.Core.Android.11.2.0.1\lib\monoandroid90\Xamarin.Facebook.Core.Android.dll ..\packages\Xamarin.Facebook.GamingServices.Android.11.2.0.1\lib\monoandroid90\Xamarin.Facebook.GamingServices.Android.dll ..\packages\Xamarin.Facebook.Login.Android.11.2.0.1\lib\monoandroid90\Xamarin.Facebook.Login.Android.dll ..\packages\Xamarin.Facebook.Messenger.Android.11.2.0.1\lib\monoandroid90\Xamarin.Facebook.Messenger.Android.dll ..\packages\Xamarin.Facebook.Places.Android.7.1.0\lib\monoandroid90\Xamarin.Facebook.Places.Android.dll ..\packages\Xamarin.Facebook.Share.Android.11.2.0.1\lib\monoandroid90\Xamarin.Facebook.Share.Android.dll ..\packages\Xamarin.Firebase.Analytics.118.0.2\lib\monoandroid90\Xamarin.Firebase.Analytics.dll ..\packages\Xamarin.Firebase.Annotations.116.0.0.2\lib\monoandroid90\Xamarin.Firebase.Annotations.dll ..\packages\Xamarin.Firebase.AppIndexing.71.1602.0\lib\monoandroid90\Xamarin.Firebase.AppIndexing.dll ..\packages\Xamarin.Firebase.Common.120.0.0.2\lib\monoandroid90\Xamarin.Firebase.Common.dll ..\packages\Xamarin.Firebase.Components.117.0.0.2\lib\monoandroid90\Xamarin.Firebase.Components.dll ..\packages\Xamarin.Firebase.Datatransport.118.0.1.2\lib\monoandroid90\Xamarin.Firebase.Datatransport.dll ..\packages\Xamarin.Firebase.Encoders.116.1.0\lib\monoandroid90\Xamarin.Firebase.Encoders.dll ..\packages\Xamarin.Firebase.Encoders.JSON.117.1.0\lib\monoandroid90\Xamarin.Firebase.Encoders.JSON.dll ..\packages\Xamarin.Firebase.Iid.121.0.1\lib\monoandroid90\Xamarin.Firebase.Iid.dll ..\packages\Xamarin.Firebase.Iid.Interop.117.1.0.2\lib\monoandroid90\Xamarin.Firebase.Iid.Interop.dll ..\packages\Xamarin.Firebase.Installations.117.0.0.2\lib\monoandroid90\Xamarin.Firebase.Installations.dll ..\packages\Xamarin.Firebase.Installations.InterOp.117.0.0.2\lib\monoandroid90\Xamarin.Firebase.Installations.InterOp.dll ..\packages\Xamarin.Firebase.Measurement.Connector.119.0.0.2\lib\monoandroid90\Xamarin.Firebase.Measurement.Connector.dll ..\packages\Xamarin.Firebase.Messaging.122.0.0.2\lib\monoandroid90\Xamarin.Firebase.Messaging.dll ..\packages\Xamarin.Forms.5.0.0.2244\lib\MonoAndroid10.0\Xamarin.Forms.Core.dll ..\packages\Xamarin.Forms.Maps.5.0.0.2244\lib\MonoAndroid10.0\Xamarin.Forms.Maps.dll ..\packages\Xamarin.Forms.Maps.5.0.0.2244\lib\MonoAndroid10.0\Xamarin.Forms.Maps.Android.dll ..\packages\Xamarin.Forms.5.0.0.2244\lib\MonoAndroid10.0\Xamarin.Forms.Platform.dll ..\packages\Xamarin.Forms.5.0.0.2244\lib\MonoAndroid10.0\Xamarin.Forms.Platform.Android.dll ..\packages\Xamarin.Forms.5.0.0.2244\lib\MonoAndroid10.0\Xamarin.Forms.Xaml.dll ..\packages\Xamarin.Google.Android.DataTransport.TransportApi.3.0.0\lib\monoandroid90\Xamarin.Google.Android.DataTransport.TransportApi.dll ..\packages\Xamarin.Google.Android.DataTransport.TransportBackendCct.3.0.0\lib\monoandroid90\Xamarin.Google.Android.DataTransport.TransportBackendCct.dll ..\packages\Xamarin.Google.Android.DataTransport.TransportRuntime.3.0.1\lib\monoandroid90\Xamarin.Google.Android.DataTransport.TransportRuntime.dll ..\packages\Xamarin.Google.Android.Material.1.4.0.4\lib\monoandroid90\Xamarin.Google.Android.Material.dll ..\packages\Xamarin.Google.AutoValue.Annotations.1.8.2.2\lib\monoandroid90\Xamarin.Google.AutoValue.Annotations.dll ..\packages\Xamarin.Google.Dagger.2.39.1\lib\monoandroid90\Xamarin.Google.Dagger.dll ..\packages\Xamarin.Google.Guava.28.2.0.1\lib\monoandroid90\Xamarin.Google.Guava.dll ..\packages\Xamarin.Google.Guava.FailureAccess.1.0.1.3\lib\monoandroid90\Xamarin.Google.Guava.FailureAccess.dll ..\packages\Xamarin.Google.Guava.ListenableFuture.1.0.0.4\lib\monoandroid90\Xamarin.Google.Guava.ListenableFuture.dll ..\packages\Xamarin.GooglePlayServices.Ads.Identifier.117.0.0\lib\monoandroid90\Xamarin.GooglePlayServices.Ads.Identifier.dll ..\packages\Xamarin.GooglePlayServices.Base.117.6.0.2\lib\monoandroid90\Xamarin.GooglePlayServices.Base.dll ..\packages\Xamarin.GooglePlayServices.Basement.117.6.0.3\lib\monoandroid90\Xamarin.GooglePlayServices.Basement.dll ..\packages\Xamarin.GooglePlayServices.Clearcut.117.0.0\lib\monoandroid90\Xamarin.GooglePlayServices.Clearcut.dll ..\packages\Xamarin.GooglePlayServices.CloudMessaging.117.0.0.2\lib\monoandroid90\Xamarin.GooglePlayServices.CloudMessaging.dll ..\packages\Xamarin.GooglePlayServices.Flags.117.0.0\lib\monoandroid90\Xamarin.GooglePlayServices.Flags.dll ..\packages\Xamarin.GooglePlayServices.Gcm.117.0.0\lib\monoandroid90\Xamarin.GooglePlayServices.Gcm.dll ..\packages\Xamarin.GooglePlayServices.Iid.117.0.0\lib\monoandroid90\Xamarin.GooglePlayServices.Iid.dll ..\packages\Xamarin.GooglePlayServices.Location.118.0.0\lib\monoandroid90\Xamarin.GooglePlayServices.Location.dll True ..\packages\Xamarin.GooglePlayServices.Maps.117.0.0\lib\monoandroid90\Xamarin.GooglePlayServices.Maps.dll ..\packages\Xamarin.GooglePlayServices.Measurement.118.0.2\lib\monoandroid90\Xamarin.GooglePlayServices.Measurement.dll ..\packages\Xamarin.GooglePlayServices.Measurement.Api.118.0.2\lib\monoandroid90\Xamarin.GooglePlayServices.Measurement.Api.dll ..\packages\Xamarin.GooglePlayServices.Measurement.Base.118.0.2\lib\monoandroid90\Xamarin.GooglePlayServices.Measurement.Base.dll ..\packages\Xamarin.GooglePlayServices.Measurement.Impl.118.0.2\lib\monoandroid90\Xamarin.GooglePlayServices.Measurement.Impl.dll ..\packages\Xamarin.GooglePlayServices.Measurement.Sdk.118.0.2\lib\monoandroid90\Xamarin.GooglePlayServices.Measurement.Sdk.dll ..\packages\Xamarin.GooglePlayServices.Measurement.Sdk.Api.118.0.2\lib\monoandroid90\Xamarin.GooglePlayServices.Measurement.Sdk.Api.dll ..\packages\Xamarin.GooglePlayServices.Phenotype.117.0.0\lib\monoandroid90\Xamarin.GooglePlayServices.Phenotype.dll ..\packages\Xamarin.GooglePlayServices.Places.PlaceReport.117.0.0\lib\monoandroid90\Xamarin.GooglePlayServices.Places.PlaceReport.dll ..\packages\Xamarin.GooglePlayServices.Stats.117.0.1.2\lib\monoandroid90\Xamarin.GooglePlayServices.Stats.dll ..\packages\Xamarin.GooglePlayServices.Tasks.117.2.1.2\lib\monoandroid90\Xamarin.GooglePlayServices.Tasks.dll ..\packages\Xamarin.GooglePlayServices.Vision.120.1.3\lib\monoandroid90\Xamarin.GooglePlayServices.Vision.dll ..\packages\Xamarin.GooglePlayServices.Vision.Common.119.1.3\lib\monoandroid90\Xamarin.GooglePlayServices.Vision.Common.dll ..\packages\Xamarin.JavaX.Inject.1.0.0\lib\monoandroid90\Xamarin.JavaX.Inject.dll ..\packages\Xamarin.Jetbrains.Annotations.22.0.0.2\lib\monoandroid90\Xamarin.Jetbrains.Annotations.dll ..\packages\Xamarin.Kotlin.StdLib.1.5.31.2\lib\monoandroid90\Xamarin.Kotlin.StdLib.dll ..\packages\Xamarin.Kotlin.StdLib.Common.1.5.31.2\lib\monoandroid90\Xamarin.Kotlin.StdLib.Common.dll ..\packages\Xamarin.Kotlin.StdLib.Jdk7.1.5.31.2\lib\monoandroid90\Xamarin.Kotlin.StdLib.Jdk7.dll ..\packages\Xamarin.Kotlin.StdLib.Jdk8.1.5.31.2\lib\monoandroid90\Xamarin.Kotlin.StdLib.Jdk8.dll ..\packages\XLabs.Core.2.3.0-pre05\lib\portable-net45+win8+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Core.dll ..\packages\XLabs.IoC.2.3.0-pre05\lib\portable-net45+win8+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.IOC.dll ..\packages\XLabs.Platform.2.3.0-pre05\lib\monoandroid\XLabs.Platform.dll ..\packages\XLabs.Platform.2.3.0-pre05\lib\monoandroid\XLabs.Platform.Droid.dll ..\packages\XLabs.Serialization.2.3.0-pre05\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Serialization.dll

Expected behavior
I expected a descriptive error message.

Setup (please complete the following information):

  • OS: Android 12 (Pixel 3)
  • IDE : Visual Studio 2019
  • Windows 10
  • Xamarin.Azure.NotificationHubs.Android (1.1.4.1)

Additional context
I have tried making the same changes to an empty xamarin forms project and it works - so I believe there must be a dependency in our project that causes the issue. Or I could be missing something, not sure. I can't manage to replicate it outside of our project, even after spending hours adding in most of the obviously suspicious libraries listed above.

OnPushNotificationReceived method not hit when app in background

Hello, when my android app is in background, the OnPushNotificationReceived method is never hit. I am receiving the notification, and it's displayed in task tray using the default notification channel. However we need to be able to intercept the notification data for further processing.

I'm am using the latest version of everything.
Windows 10
Visual Studio

public class AzureListener : Java.Lang.Object, INotificationListener
    {
        public void OnPushNotificationReceived(Context context, INotificationMessage message)
        {
            var intent = new Intent(context, typeof(MainActivity));
            intent.AddFlags(ActivityFlags.ClearTop);
            var pendingIntent = PendingIntent.GetActivity(context, 0, intent, PendingIntentFlags.OneShot);

            var notificationBuilder = new NotificationCompat.Builder(context, MainActivity.CHANNEL_ID);

            notificationBuilder.SetContentTitle("aaa:::" + message.Title)
                        .SetSmallIcon(Resource.Drawable.ic_launcher)
                        .SetContentText(message.Body)
                        .SetAutoCancel(true)
                        .SetShowWhen(false)
                        .SetContentIntent(pendingIntent);

            var notificationManager = NotificationManager.FromContext(context);

            notificationManager.Notify(0, notificationBuilder.Build());
        }

Facing issues with push notification data format/conversion

As a part migration form App Center Push,I have integrated "Microsoft.Azure.NotificationHubs.Client" into my xamarin forms solution.

It seems like there is an issue with Push notification info coming from Azure Notification Hub.
For ex consider below PNTemplate :

{"aps":{"alert":"Notificationย Hubย testย notification","PNHeader":"PN Header Text"},
"Details":{"source":"s1","dest":"d1","time":"120 mins"}}

In the OnNotificationMessageReceived event, NotificationMessageReceivedEventArgs e
e.Title getting as "Notificationย Hubย testย notification" , e.Body as null and e.Data coming as a Dict with 2 keys and 2 values.

The main problem I am facing is the formatted data coming with lot of special char like "","\n","<",">" even null values coming as "". And getting unicode chars like for space - \U00a0 and for degrees - \U00B0.

Any one has idea how to get rid of this type of data conversion.

Is there any proper way to convert above PNTemplate ,with the current implementation I need to handle so many things to remove above mentioned special chars.

I didn't found any samples in the Google, can anyone please provide client side code samples for formatting push notification data.

How to use Xamarin.Azure.NotificationHubs.iOS with MAUI ?

Question
I used Xamarin.Azure.NotificationHubs.iOS with Xamarin.Forms, but with MAUI NuGet Package installation shows NU1202 and I can't install.

Why is this not a Bug or a feature Request?
I'm not very familiar with MAUI, but it seems that most of the Xamarin libraries can be used with MAUI.

Setup (please complete the following information if applicable):

  • OS: net7.0-ios16.1
  • IDE : Visual Studio 2022
  • Version of the Library used : 3.1.1(NuGet) / 3.1.5(GitHub)

[BUG] APNS Template Ignored when Added

Describe the bug
Cannot attach template to MSNotificationHub.

Exception or Stack Trace

0 CoreFoundation 0x00000001a97a8814 4D6DD6DD-22E4-3858-9A0C-3CB77C2F13D6 + 1230868
1 ProjectName.iOS 0x0000000108073938 _ZN7plcrash2MS5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS1_28plcrash_dwarf_cfa_reg_rule_tEPy + 61493108
2 ProjectName.iOS 0x0000000108073b78 _ZN7plcrash2MS5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS1_28plcrash_dwarf_cfa_reg_rule_tEPy + 61493684
3 ProjectName.iOS 0x00000001080824c0 _ZN7plcrash2MS5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS1_28plcrash_dwarf_cfa_reg_rule_tEPy + 61553404
4 Foundation 0x00000001aaac9d40 __NSFireTimer + 64
5 CoreFoundation 0x00000001a97170f0 4D6DD6DD-22E4-3858-9A0C-3CB77C2F13D6 + 635120
6 CoreFoundation 0x00000001a9716cf0 4D6DD6DD-22E4-3858-9A0C-3CB77C2F13D6 + 634096
7 CoreFoundation 0x00000001a97161c4 4D6DD6DD-22E4-3858-9A0C-3CB77C2F13D6 + 631236
8 CoreFoundation 0x00000001a97104fc 4D6DD6DD-22E4-3858-9A0C-3CB77C2F13D6 + 607484
9 CoreFoundation 0x00000001a970f818 CFRunLoopRunSpecific + 572
10 GraphicsServices 0x00000001bfe15570 GSEventRunModal + 160
11 UIKitCore 0x00000001ac03b0e8 186F3A78-108A-3057-A67E-800A88EBFF00 + 11731176
12 UIKitCore 0x00000001ac040664 UIApplicationMain + 164
13 ProjectName.iOS 0x00000001054e3ed8 _ZN7plcrash2MS5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS1_28plcrash_dwarf_cfa_reg_rule_tEPy + 15815956
14 ProjectName.iOS 0x0000000105420530 _ZN7plcrash2MS5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS1_28plcrash_dwarf_cfa_reg_rule_tEPy + 15014764
15 ProjectName.iOS 0x00000001054204b4 _ZN7plcrash2MS5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS1_28plcrash_dwarf_cfa_reg_rule_tEPy + 15014640
16 ProjectName.iOS 0x0000000104615840 _ZN7plcrash2MS5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS1_28plcrash_dwarf_cfa_reg_rule_tEPy + 290428
17 ProjectName.iOS 0x00000001049c4df0 _ZN7plcrash2MS5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS1_28plcrash_dwarf_cfa_reg_rule_tEPy + 4154412
18 ProjectName.iOS 0x00000001080fc618 mono_pmip + 28048
19 ProjectName.iOS 0x00000001081b612c mono_pmip + 788644
20 ProjectName.iOS 0x00000001081bc3e0 mono_pmip + 813912
21 ProjectName.iOS 0x00000001080dab70 _ZN7plcrash2MS5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS1_28plcrash_dwarf_cfa_reg_rule_tEPy + 61915564
22 ProjectName.iOS 0x00000001082c1b40 xamarin_log + 24484
23 ProjectName.iOS 0x0000000104615688 _ZN7plcrash2MS5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS1_28plcrash_dwarf_cfa_reg_rule_tEPy + 289988
24 libdyld.dylib 0x00000001a93ee140 5FFFB964-39D6-3CCF-BD34-C6CA4A148D1A + 4416
)

To Reproduce

Add a template to MSNotificationHub

Code Snippet

// Set the delegate for receiving messages
MSNotificationHub.SetDelegate(new NotificationDelegate());

// Start the API
MSNotificationHub.Start(Constants.ListenConnectionString, Constants.NotificationHubName

public static string APNTemplateBody = @"{
                                            ""aps"":  { 
                                                ""content-available"":1, 
                                                ""messageParam"" : ""$(messageParam)""
                                                    }
                                                }";

var body = Constants.APNTemplateBody;
        var template = new MSInstallationTemplate();
        template.Body = body;
       


        MSNotificationHub.SetTemplate(template, key: "template1");

Expected behavior

When i send a notification matching the template, it is received by the app.

Screenshots
If applicable, add screenshots to help explain your problem.

Setup (please complete the following information):

  • OS: [e.g. iOS 14.6]
  • IDE : [e.g. Visual Studio 2019 for Mac]
  • 3.11

Note: When I remove the MSNotificationHub.SetTemplate(template, key: "template1"); the crash does not occur.

[BUG]System.InvalidCastException when using MSNotificationHubMessage for iOS

Describe the bug
When I receive a push notification via Azure NotificationHub on iOS, the app crashes due to an System.InvalidCastException which happens inside the MSNotificationHubMessage class. Inside this class you cast the UserInfo from the push notification from a NSDictionary to a NSDictionary<NSString, NSString>. This seems to be wrong as the UserInfo does not only contain key-value pairs but also nested objects like:

{ "aps":{ "alert":{ "title":"My title", "body":"My body" }, }, "foo":"bar" }

Exception or Stack Trace
System.InvalidCastException: Unable to cast object of type 'Foundation.NSDictionary' to type 'Foundation.NSDictionary`2[[Foundation.NSString, Xamarin.iOS, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065],[Foundation.NSString, Xamarin.iOS, Version=0.0.0.0, Culture=neutralโ€ฆ

To Reproduce

  1. Send the push notification as mentioned above via Azure NotificationHub
  2. Check the DidReceivePushNotification inside the iOS implementation of MSNotificationHubDelegate
  3. Content of the NotificationHubMessage.UserInfo does not exist due to the CastException.

Code Snippet

public override void DidReceivePushNotification(MSNotificationHub notificationHub, MSNotificationHubMessage message) { OnNotificationMessageReceivedAction?.Invoke(message); }

UserInfo of MSNotificationHubMessage shows a CastException.

Expected behavior
Simply not cast it to a NSDictionary<NSString, NSString> but only to NSDictionary inside your wrapper implementation:

Setup (please complete the following information):

  • OS: iOS 13.4
  • IDE : Visual Studio 2019 for Mac
  • Xamarin.Azure.NotificationHubs.iOS 3.1.0

[FEATURE REQ] Windows

Azure Notification Hubs says:

Reach all major platforms โ€“ iOS, Android, Windows, Kindle, Baidu

However this repo only lists Apple and Android. So Windows UWP is needed. This would then cover the 4 main XF platforms (iOS, Android, Windows, Mac).

[QUERY] Notification Hub only working on Android

Query/Question
I have an Azure function that talks to Notification hub.
When I post a notification message to the function it sends it to Notification Hub, which in turn sends it down to the device.
I'm only receiving notifications on Android in this manner.
But, when I go to Notification Hub and send a test message to iOS, I do receive that.

Setup (please complete the following information if applicable):

  • OS: iOS 10.15.7
  • IDE : Visual Studio Mac 2019
  • Azure.NotificationHubs.Client.Xamarin v 1.0.0

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

  • [x ] Query Added
  • [x ] Setup information Added

[FEATURE REQ] Target monoandroid10.0

It would be nice to bump build target to monoandroid10.0 and also use the AndroidX packages.

I think a the solution is add the monoandroid10.0 to the csproj and add reference to Xamarin.AndroidX.Migration nuget, too. I'm not sure, but probably it'll not necessary to create a new release from https://github.com/Azure/azure-notificationhubs-android , because AndroidX.Migration would handle AndroidX part of the build process.

  • [X ] Description Added
  • [ X] Expected solution specified

Android Build Error

Describe the bug
Build Error on Android when Nuget package is added.

Exception or Stack Trace
image

To Reproduce
Add the latest stable nuget (1.0.0)

Code Snippet
None - just try and build the Android Project.

Expected behavior
Android Project Builds.

Screenshots
If applicable, add screenshots to help explain your problem.

Setup (please complete the following information):

  • OS: Android
  • IDE : VS 2019
  • Version of the Library used: 1.0.0

[BUG] Dependencies: 2 downgrades and 4 upgrades

Is your feature request related to a problem? Please describe.
Your solution does not compile...

Xamarin.Azure.NotificationHubs.iOS Version="3.1.2" //does not exist in public nuget
Xamarin.AndroidX.AppCompat Version="1.3.1.4" //has been unreferenced by nuget, a downgrade is required

Xamarin.Google.Android.DataTransport.TransportRuntime Version="3.0.1.1" //should be updated
Xamarin.Firebase.Messaging" Version="122.0.0.3 //should be updated
Xamarin.Google.Android.DataTransport.TransportBackendCct Version="3.0.0.1" //should be updated
Xamarin.GooglePlayServices.Iid Version="117.0.0.3" //should be updated
Xamarin.GooglePlayServices.Base Version="117.6.0.3"// should be updated

Describe the solution you'd like
Please maintain packages references.
And provide a public nuget on nuget.org!!
As describe in your documentation. please :)

Describe alternatives you've considered
Making a fork, a custom nuget and a PR.

Information Checklist

  • Xamarin.forms
  • Xamarin.iOS
  • Xamarin.Android

[BUG] Android PlatformInitialize Method doesn't invoke Start

This method should call AndroidNotificationHub.Start(...) but it doesn't:

static void PlatformInitialize(IInstallationManagementAdapter installationManagementAdapter)
{
s_installationManagementAdapter = installationManagementAdapter;
AndroidNotificationHub.SetListener(_listener);
AndroidNotificationHub.SetInstallationSavedListener(_installationSavedListener);
AndroidNotificationHub.SetInstallationSaveFailureListener(_installationErrorListener);
}

[BUG] OnPushNotificationReceived not hit at all

Describe the bug
OnPushNotificationReceived not hit at all when push notification arrives. Only OnMessageReceived in the FirebaseMessagingService when app is in foreground. OnMessageReceived also not hit when app is in background.

Code Snippet

         NotificationHub.Start(this.Application, AzureNotificationHubConstants.NotificationHubName, 
          AzureNotificationHubConstants.ListenConnectionString);
          NotificationHub.SetListener(new AzureListener());

public class AzureListener : Java.Lang.Object, INotificationListener
  {
      public void OnPushNotificationReceived(Context context, INotificationMessage message)
      {
          Console.WriteLine($"Message received with title {message.Title} and body {message.Body}");
      }
  }

Expected behavior
OnPushNotificationReceived should hit when push notification is delivered

Setup (please complete the following information):

  • OS: Android 11
  • IDE : Visual Studio 2019
  • Version of the Library used: Xamarin.Firebase.Messaging 121.0.1, Xamarin.Azure.NotificationHubs.Android 1.1.4.1, Xamarin.GooglePlayServices.Base 117.6.0, Xamarin.Android.Support.Design 28.0.0.3

[BUG] iOS push notifications not received to physical device from Azure

Describe the bug
Originally posted on stackoverflow, was recommended by a Microsoft support engineer to post here:
https://stackoverflow.com/questions/64768446/ios-push-notification-not-received-to-physical-device-from-azure

I follow this Microsoft guide rigorously but push notifications don't come through to the physical device:
https://docs.microsoft.com/en-us/azure/notification-hubs/xamarin-notification-hubs-ios-push-notification-apns-get-started

Exception or Stack Trace
RegisteredForRemoteNotifications is called successfully, but ReceivedRemoteNotification is never called when I send a Test Send from Azure. No obvious errors or exceptions come through. However, inside the .iOS project, within the method RegisteredForRemoteNotifications, I have noticed that when I hover over my SBNotificationHub instance, under the class handle it gives an error:
"Unable to cast object of type 'Mono.Debugger.Soft.PointerValue' to type 'Mono.Debugger.Soft.PrimitiveValue'."
Not sure if this has anything to do with my problem.

To Reproduce
Steps to reproduce the behavior:
On a PC with visual studio 2019 (Connected to a Mac over local network) and connect an iPhone to the Mac via lightning cable. Make sure device is connected to WIFI/phone network, create a new Xamarin project for android and iOS. Use only the code from this Microsoft guide:

https://docs.microsoft.com/en-us/azure/notification-hubs/xamarin-notification-hubs-ios-push-notification-apns-get-started.

Send a Test Send from Azure.

Expected behavior
A push notifcation should come through to the physical iPhone,

Setup (please complete the following information):

  • OS: Windows 10 PC, connected to a Mac over local network.
  • IDE : Visual Studio 2019 v16.8.0
  • Xamarin.Azure.NotificationHubs.iOS v3.1.0
  • iPhone 6s v14.1 (Connected via lightning cable)

[BUG] Invalid cast exception on PlatformAddTags(string[] tags)

Describe the bug
App trows InvalidCastException when you call PlatformAddTags function on iOS.

Exception or Stack Trace

Unhandled Exception:
System.InvalidCastException: Specified cast is not valid.
  at Microsoft.Azure.NotificationHubs.Client.NotificationHub.PlatformAddTags (System.String[] tags) [0x00000] in /Users/pablolop002/Projects/Kairos/Microsoft.Azure.NotificationHubs.Client/NotificationHub.ios.cs:119 
  at Microsoft.Azure.NotificationHubs.Client.NotificationHub.AddTags (System.String[] tags) [0x00000] in /Users/pablolop002/Projects/Kairos/Microsoft.Azure.NotificationHubs.Client/NotificationHub.shared.cs:72 
  at kairos_mobile.Views.AppShell..ctor () [0x00087] in /Users/pablolop002/Projects/Kairos/kairos_mobile/Views/AppShell.xaml.cs:42 
  at kairos_mobile.App..ctor () [0x00151] in /Users/pablolop002/Projects/Kairos/kairos_mobile/App.xaml.cs:99 
  at Kairos.iOS.AppDelegate.FinishedLaunching (UIKit.UIApplication app, Foundation.NSDictionary options) [0x00007] in /Users/pablolop002/Projects/Kairos/Kairos.iOS/AppDelegate.cs:28 
  at (wrapper managed-to-native) UIKit.UIApplication.UIApplicationMain(int,string[],intptr,intptr)
  at UIKit.UIApplication.Main (System.String[] args, System.IntPtr principal, System.IntPtr delegate) [0x00005] in /Library/Frameworks/Xamarin.iOS.framework/Versions/14.8.0.3/src/Xamarin.iOS/UIKit/UIApplication.cs:86 
  at UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0000e] in /Library/Frameworks/Xamarin.iOS.framework/Versions/14.8.0.3/src/Xamarin.iOS/UIKit/UIApplication.cs:65 
  at Kairos.iOS.Application.Main (System.String[] args) [0x00001] in /Users/pablolop002/Projects/Kairos/Kairos.iOS/Main.cs:12 
2021-01-20 11:39:55.032 Kairos.iOS[5220:1836293] Unhandled managed exception: Specified cast is not valid. (System.InvalidCastException)
  at Microsoft.Azure.NotificationHubs.Client.NotificationHub.PlatformAddTags (System.String[] tags) [0x00000] in /Users/pablolop002/Projects/Kairos/Microsoft.Azure.NotificationHubs.Client/NotificationHub.ios.cs:119 
  at Microsoft.Azure.NotificationHubs.Client.NotificationHub.AddTags (System.String[] tags) [0x00000] in /Users/pablolop002/Projects/Kairos/Microsoft.Azure.NotificationHubs.Client/NotificationHub.shared.cs:72 
  at kairos_mobile.Views.AppShell..ctor () [0x00087] in /Users/pablolop002/Projects/Kairos/kairos_mobile/Views/AppShell.xaml.cs:42 
  at kairos_mobile.App..ctor () [0x00151] in /Users/pablolop002/Projects/Kairos/kairos_mobile/App.xaml.cs:99 
  at Kairos.iOS.AppDelegate.FinishedLaunching (UIKit.UIApplication app, Foundation.NSDictionary options) [0x00007] in /Users/pablolop002/Projects/Kairos/Kairos.iOS/AppDelegate.cs:28 
  at (wrapper managed-to-native) UIKit.UIApplication.UIApplicationMain(int,string[],intptr,intptr)
  at UIKit.UIApplication.Main (System.String[] args, System.IntPtr principal, System.IntPtr delegate) [0x00005] in /Library/Frameworks/Xamarin.iOS.framework/Versions/14.8.0.3/src/Xamarin.iOS/UIKit/UIApplication.cs:86 
  at UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0000e] in /Library/Frameworks/Xamarin.iOS.framework/Versions/14.8.0.3/src/Xamarin.iOS/UIKit/UIApplication.cs:65 
  at Kairos.iOS.Application.Main (System.String[] args) [0x00001] in /Users/pablolop002/Projects/Kairos/Kairos.iOS/Main.cs:12 

To Reproduce
Call NotificationHub.AddTags from the forms project.

Code Snippet

NotificationHub.NotificationMessageReceived += OnNotificationMessageReceived;
NotificationHub.InstallationSaved += OnInstallationSaved;
NotificationHub.InstallationSaveFailed += OnInstallationSaveFailed;
NotificationHub.Start(Constants.ListenConnectionString, Constants.NotificationHubName);
NotificationHub.AddTags(Constants.Tags);

Expected behavior
Tags added to notification hub.

Screenshots
If applicable, add screenshots to help explain your problem.

Setup (please complete the following information):

  • OS: iOS 14.x
  • IDE : Visual Studio for Mac 2019
  • Cloned repo

Additional context
Add any other context about the problem here.

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

  • Bug Description Added
  • Repro Steps Added
  • Setup information Added

How do I serialize the iOS NSData deviceToken to perform backend installation on a non Azure WebApi?

Using Xamarin.iOS, how do I correctly serialize the native iOS push token to properly send it to my asp.net core backend server for further usage to create an Azure Notification Hubs installation on the backend server. My asp.net core backend server will not be running on Azure it will be on premise server.
Can you guys help-me? Cause the docs just says that it is possible but doesn't explain how anywere, nor does the samples of this github project.

[BUG]

Describe the bug
I've build a private nuget package from this code without any issues. Im also able to run the sample project.
But it just doesn't do anything. The Connectionstring and Hubname are set to my own setup, but I never receive any error/exception, or Installation id..

     NotificationHub.InstallationSaved += OnInstallatedSaved;
     NotificationHub.InstallationSaveFailed += OnInstallationSaveFailed;

Any ideas/?

[BUG] Solution cannot be built on clone.

Clone the repo
open src/Microsoft.Azure.NotificationHubs.Client.sln

The local source '/Users/jason/Downloads/azure-notificationhubs-xamarin-main/src/bindings/output' doesn't exist.

[BUG] Project fails to build

Describe the bug
After adding the source project to my solution and clicking build 130 errors are indicated. They all appear to be android .png files? Trying to build the source project on its own, using VS 2019 and VS 2019 Preview yields the same issue.

Exception or Stack Trace
1>Microsoft.Azure.NotificationHubs.Client -> C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\bin\Debug\netstandard2.1\Microsoft.Azure.NotificationHubs.Client.dll
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-mdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat: error: failed to open file. "drawable-mdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-mdpi-v4\abc_ic_commit_search_api_mtrl_alpha.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-ldrtl-xxxhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat: error: failed to open file. "drawable-ldrtl-xxxhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-ldrtl-xxxhdpi-v17\abc_spinner_mtrl_am_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-ldrtl-xhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat: error: failed to open file. "drawable-ldrtl-xhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-ldrtl-xhdpi-v17\abc_ic_menu_copy_mtrl_am_alpha.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_text_select_handle_middle_mtrl_light.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_textfield_search_default_mtrl_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_scrubber_control_to_pressed_mtrl_005.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_list_selector_disabled_holo_light.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_ic_commit_search_api_mtrl_alpha.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat: error: failed to open file. "drawable-mdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-mdpi-v4\abc_text_select_handle_middle_mtrl_dark.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable_abc_list_selector_background_transition_holo_dark.xml.flat: error: failed to open file. "drawable_abc_list_selector_background_transition_holo_dark.xml.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable\abc_list_selector_background_transition_holo_dark.xml : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat: error: failed to open file. "drawable-xxxhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xxxhdpi-v4\abc_scrubber_control_to_pressed_mtrl_005.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat: error: failed to open file. "drawable-xxhdpi-v4_abc_btn_switch_to_on_mtrl_00001.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xxhdpi-v4\abc_btn_switch_to_on_mtrl_00001.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-mdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat: error: failed to open file. "drawable-mdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-mdpi-v4\abc_list_selector_disabled_holo_dark.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-ldrtl-mdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat: error: failed to open file. "drawable-ldrtl-mdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-ldrtl-mdpi-v17\abc_ic_menu_copy_mtrl_am_alpha.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: color_abc_background_cache_hint_selector_material_light.xml.flat: error: failed to open file. "color_abc_background_cache_hint_selector_material_light.xml.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\color\abc_background_cache_hint_selector_material_light.xml : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: layout_notification_template_big_media_narrow_custom.xml.flat: error: failed to open file. "layout_notification_template_big_media_narrow_custom.xml.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\23\jl\res\layout\notification_template_big_media_narrow_custom.xml : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-v21_abc_action_bar_item_background_material.xml.flat: error: failed to open file. "drawable-v21_abc_action_bar_item_background_material.xml.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-v21\abc_action_bar_item_background_material.xml : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-mdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat: error: failed to open file. "drawable-mdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-mdpi-v4\abc_text_select_handle_left_mtrl_light.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-mdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat: error: failed to open file. "drawable-mdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-mdpi-v4\abc_textfield_search_default_mtrl_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-mdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat: error: failed to open file. "drawable-mdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-mdpi-v4\abc_textfield_search_activated_mtrl_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-ldrtl-xxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat: error: failed to open file. "drawable-ldrtl-xxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-ldrtl-xxhdpi-v17\abc_ic_menu_copy_mtrl_am_alpha.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_text_select_handle_middle_mtrl_dark.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_cab_background_top_mtrl_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat: error: failed to open file. "drawable-xhdpi-v4_abc_ic_commit_search_api_mtrl_alpha.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xhdpi-v4\abc_ic_commit_search_api_mtrl_alpha.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-mdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat: error: failed to open file. "drawable-mdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-mdpi-v4\abc_text_select_handle_right_mtrl_light.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-mdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat: error: failed to open file. "drawable-mdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-mdpi-v4\abc_list_selector_disabled_holo_light.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-ldrtl-xhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat: error: failed to open file. "drawable-ldrtl-xhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-ldrtl-xhdpi-v17\abc_spinner_mtrl_am_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-ldrtl-hdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat: error: failed to open file. "drawable-ldrtl-hdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-ldrtl-hdpi-v17\abc_ic_menu_copy_mtrl_am_alpha.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_text_select_handle_left_mtrl_light.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_textfield_activated_mtrl_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_text_select_handle_right_mtrl_light.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_text_select_handle_right_mtrl_light.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_text_select_handle_left_mtrl_dark.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_text_select_handle_left_mtrl_dark.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_scrubber_control_off_mtrl_alpha.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat: error: failed to open file. "drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_light.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xhdpi-v4\abc_text_select_handle_middle_mtrl_light.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xhdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat: error: failed to open file. "drawable-xhdpi-v4_abc_textfield_search_default_mtrl_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xhdpi-v4\abc_textfield_search_default_mtrl_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-ldrtl-xxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat: error: failed to open file. "drawable-ldrtl-xxhdpi-v17_abc_ic_menu_cut_mtrl_alpha.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-ldrtl-xxhdpi-v17\abc_ic_menu_cut_mtrl_alpha.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-mdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat: error: failed to open file. "drawable-mdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-mdpi-v4\abc_cab_background_top_mtrl_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: color_abc_background_cache_hint_selector_material_dark.xml.flat: error: failed to open file. "color_abc_background_cache_hint_selector_material_dark.xml.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\color\abc_background_cache_hint_selector_material_dark.xml : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat: error: failed to open file. "drawable-ldrtl-xxxhdpi-v17_abc_ic_menu_copy_mtrl_am_alpha.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-ldrtl-xxxhdpi-v17\abc_ic_menu_copy_mtrl_am_alpha.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_text_select_handle_right_mtrl_dark.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_textfield_search_activated_mtrl_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_scrubber_control_to_pressed_mtrl_000.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-hdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat: error: failed to open file. "drawable-hdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-hdpi-v4\abc_list_selector_disabled_holo_dark.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat: error: failed to open file. "drawable-mdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-mdpi-v4\abc_scrubber_control_to_pressed_mtrl_005.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xxhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat: error: failed to open file. "drawable-xxhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xxhdpi-v4\abc_menu_hardkey_panel_mtrl_mult.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat: error: failed to open file. "drawable-xhdpi-v4_abc_text_select_handle_left_mtrl_light.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xhdpi-v4\abc_text_select_handle_left_mtrl_light.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xhdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat: error: failed to open file. "drawable-xhdpi-v4_abc_textfield_default_mtrl_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xhdpi-v4\abc_textfield_default_mtrl_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat: error: failed to open file. "drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_000.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xhdpi-v4\abc_scrubber_control_to_pressed_mtrl_000.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat: error: failed to open file. "drawable-xhdpi-v4_abc_scrubber_control_off_mtrl_alpha.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xhdpi-v4\abc_scrubber_control_off_mtrl_alpha.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat: error: failed to open file. "drawable-xhdpi-v4_abc_list_selector_disabled_holo_light.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xhdpi-v4\abc_list_selector_disabled_holo_light.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-mdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat: error: failed to open file. "drawable-mdpi-v4_abc_text_select_handle_right_mtrl_dark.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-mdpi-v4\abc_text_select_handle_right_mtrl_dark.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-ldrtl-xxhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat: error: failed to open file. "drawable-ldrtl-xxhdpi-v17_abc_spinner_mtrl_am_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-ldrtl-xxhdpi-v17\abc_spinner_mtrl_am_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable_abc_list_selector_background_transition_holo_light.xml.flat: error: failed to open file. "drawable_abc_list_selector_background_transition_holo_light.xml.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable\abc_list_selector_background_transition_holo_light.xml : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat: error: failed to open file. "drawable-xhdpi-v4_abc_menu_hardkey_panel_mtrl_mult.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xhdpi-v4\abc_menu_hardkey_panel_mtrl_mult.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xxhdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat: error: failed to open file. "drawable-xxhdpi-v4_abc_cab_background_top_mtrl_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xxhdpi-v4\abc_cab_background_top_mtrl_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat: error: failed to open file. "drawable-xhdpi-v4_abc_text_select_handle_middle_mtrl_dark.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xhdpi-v4\abc_text_select_handle_middle_mtrl_dark.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat: error: failed to open file. "drawable-xhdpi-v4_abc_textfield_search_activated_mtrl_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xhdpi-v4\abc_textfield_search_activated_mtrl_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat: error: failed to open file. "drawable-xhdpi-v4_abc_textfield_activated_mtrl_alpha.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xhdpi-v4\abc_textfield_activated_mtrl_alpha.9.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat: error: failed to open file. "drawable-xhdpi-v4_abc_scrubber_control_to_pressed_mtrl_005.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xhdpi-v4\abc_scrubber_control_to_pressed_mtrl_005.png : error APT2261: file failed to compile.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(127,3): error APT2098: drawable-xhdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat: error: failed to open file. "drawable-xhdpi-v4_abc_list_selector_disabled_holo_dark.9.png.flat: error: failed to open file.".
1>C:\Users\davidm\Downloads\azure-notificationhubs-xamarin-main\azure-notificationhubs-xamarin-main\src\Microsoft.Azure.NotificationHubs.Client\obj\Debug\monoandroid90\lp\28\jl\res\drawable-xhdpi-v4\abc_list_selector_disabled_holo_dark.9.png : error APT2261: file failed to compile.
1>Done building project "Microsoft.Azure.NotificationHubs.Client.csproj" -- FAILED.

To Reproduce
Steps to reproduce the behavior:
Add source project to existing Xamarin Forms solution. Click build.

Code Snippet
Add the code snippet that causes the issue.

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Setup (please complete the following information):

  • OS: [e.g. iOS 13.x]
  • IDE : [e.g. Visual Studio 2019]
  • Version of the Library used

Additional context
Add any other context about the problem here.

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

  • Bug Description Added
  • Repro Steps Added
  • Setup information Added

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.