summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Android.AppLinks
diff options
context:
space:
mode:
authorRui Marinho <me@ruimarinho.net>2017-10-09 21:25:45 +0100
committerKangho Hur <kangho.hur@samsung.com>2017-10-23 13:34:10 +0900
commitbc7d18c1da659f8e838d8fe65adcbd5429054e6b (patch)
tree1b4e9d499116fd3b534bb42e978e68674eb870d8 /Xamarin.Forms.Platform.Android.AppLinks
parentcca40c55b80fc8e3b5dfee7f832936dc078cb72d (diff)
downloadxamarin-forms-bc7d18c1da659f8e838d8fe65adcbd5429054e6b.tar.gz
xamarin-forms-bc7d18c1da659f8e838d8fe65adcbd5429054e6b.tar.bz2
xamarin-forms-bc7d18c1da659f8e838d8fe65adcbd5429054e6b.zip
[Android] Applinks firebase 42 (#1107)
* Android AppLinks updated packages and refactor to comply with Firebase packages * made nested classes internal * removed notimplementedexception and added a Console log when on Failure * removed Firebase init method. Changed Console for Android's native Exception logging * formatted code styling with Visual Studio Community 2017 for Mac * [Android] Update nuspec and gallery * [Packages] Update android support packages for 25.4.0.2
Diffstat (limited to 'Xamarin.Forms.Platform.Android.AppLinks')
-rw-r--r--Xamarin.Forms.Platform.Android.AppLinks/AndroidAppLinks.cs120
-rw-r--r--Xamarin.Forms.Platform.Android.AppLinks/Xamarin.Forms.Platform.Android.AppLinks.csproj76
-rw-r--r--Xamarin.Forms.Platform.Android.AppLinks/packages.config18
3 files changed, 162 insertions, 52 deletions
diff --git a/Xamarin.Forms.Platform.Android.AppLinks/AndroidAppLinks.cs b/Xamarin.Forms.Platform.Android.AppLinks/AndroidAppLinks.cs
index 975e65fb..df9b4e9d 100644
--- a/Xamarin.Forms.Platform.Android.AppLinks/AndroidAppLinks.cs
+++ b/Xamarin.Forms.Platform.Android.AppLinks/AndroidAppLinks.cs
@@ -1,19 +1,19 @@
using System;
-using System.Threading.Tasks;
+using Android.Util;
+using Android.App;
using Android.Content;
-using Android.Gms.AppIndexing;
-using Android.Gms.Common.Apis;
+using Android.Gms.Tasks;
using Android.Runtime;
-using IndexingAction = Android.Gms.AppIndexing.Action;
-using Android.App;
+using Firebase.AppIndexing;
+using Actions = Firebase.AppIndexing.Builders.Actions;
+using GMSTask = Android.Gms.Tasks.Task;
+using IndexingAction = Firebase.AppIndexing.IAction;
namespace Xamarin.Forms.Platform.Android.AppLinks
{
[Preserve(AllMembers = true)]
public class AndroidAppLinks : IAppLinks, IDisposable
{
- readonly GoogleApiClient _client;
-
bool _disposed;
public static bool IsInitialized { get; private set; }
@@ -31,8 +31,6 @@ namespace Xamarin.Forms.Platform.Android.AppLinks
public AndroidAppLinks(Context context)
{
- _client = new GoogleApiClient.Builder(context).AddApi(AppIndex.API).Build();
- _client.Connect();
}
public void DeregisterLink(IAppLinkEntry appLink)
@@ -45,9 +43,10 @@ namespace Xamarin.Forms.Platform.Android.AppLinks
RemoveFromIndexItemAsync(appLinkUri.ToString());
}
- public async void RegisterLink(IAppLinkEntry appLink)
+ public void RegisterLink(IAppLinkEntry appLink)
{
- await IndexItemAsync(appLink);
+ IndexItemAsync(appLink);
+
}
public void Dispose()
@@ -60,54 +59,95 @@ namespace Xamarin.Forms.Platform.Android.AppLinks
if (isDisposing && !_disposed)
{
_disposed = true;
- _client.Disconnect();
- _client.Dispose();
}
}
- static IndexingAction BuildIndexAction(IAppLinkEntry appLink)
+ void IndexItemAsync(IAppLinkEntry appLink)
{
- Thing item = new Thing.Builder().SetName(appLink.Title).SetDescription(appLink.Description).SetUrl(global::Android.Net.Uri.Parse(appLink.AppLinkUri.AbsoluteUri)).Build();
- Thing thing = new IndexingAction.Builder(IndexingAction.TypeView).SetObject(item).SetActionStatus(IndexingAction.StatusTypeCompleted).Build();
- var indexAction = thing.JavaCast<IndexingAction>();
- return indexAction;
+ //IndexingAction indexAction = BuildIndexAction(appLink);
+ var url = global::Android.Net.Uri.Parse(appLink.AppLinkUri.AbsoluteUri).ToString();
+ IIndexable indexable = GetIndexable(appLink, url);
+ IndexingAction indexAction = GetAction(appLink, url);
+ /* If you’re logging an action on an item that has already been added to the index,
+ * you don’t have to add the following update line. See
+ * https://firebase.google.com/docs/app-indexing/android/personal-content#update-the-index for
+ * adding content to the index
+ */
+ FirebaseAppIndex.Instance.Update(indexable);
+ GMSTask gmsTask = FirebaseUserActions.Instance
+ .Start(indexAction)
+ .AddOnSuccessListener(Context as Activity,
+ new AndroidActionSuccessListener(appLink as AppLinkEntry, indexAction))
+ .AddOnFailureListener(Context as Activity,
+ new AndroidActionFailureListener(appLink as AppLinkEntry, indexAction));
}
- async Task IndexItemAsync(IAppLinkEntry appLink)
+ void RemoveFromIndexItemAsync(string identifier)
{
- IndexingAction indexAction = BuildIndexAction(appLink);
+ FirebaseAppIndex.Instance.Remove(identifier);
+ }
- if (_client.IsConnected && appLink.IsLinkActive)
+ IIndexable GetIndexable(IAppLinkEntry appLink, string url)
+ {
+ var indexableBuilder = new IndexableBuilder();
+ indexableBuilder.SetName(appLink.Title);
+ indexableBuilder.SetUrl(url);
+ indexableBuilder.SetDescription(appLink.Description);
+ return indexableBuilder.Build();
+ }
+
+ IndexingAction GetAction(IAppLinkEntry applink, string url)
+ {
+ return Actions.NewView(applink.Title, url);
+ }
+
+ internal class AndroidActionSuccessListener : Java.Lang.Object, IOnSuccessListener
+ {
+ readonly AppLinkEntry appLink;
+ readonly IndexingAction indexAction;
+
+ public AndroidActionSuccessListener(AppLinkEntry appLink, IndexingAction indexAction)
+ {
+ this.appLink = appLink;
+ this.indexAction = indexAction;
+ }
+
+ public void OnSuccess(Java.Lang.Object result)
{
- Statuses resultStart = await AppIndex.AppIndexApi.StartAsync(_client, indexAction);
- if (resultStart.IsSuccess)
+ if (appLink != null)
{
- var aL = appLink as AppLinkEntry;
- if (aL != null)
+ appLink.PropertyChanged += (sender, e) =>
{
- aL.PropertyChanged += async (sender, e) =>
+ if (e.PropertyName == AppLinkEntry.IsLinkActiveProperty.PropertyName)
{
- if (e.PropertyName == AppLinkEntry.IsLinkActiveProperty.PropertyName)
+ if (appLink.IsLinkActive)
+ {
+ FirebaseUserActions.Instance.Start(indexAction);
+ }
+ else
{
- if (appLink.IsLinkActive)
- {
- await AppIndex.AppIndexApi.StartAsync(_client, indexAction);
- }
- else
- {
- await AppIndex.AppIndexApi.EndAsync(_client, indexAction);
- }
+ FirebaseUserActions.Instance.End(indexAction);
}
- };
- }
+ }
+ };
}
}
}
-
- void RemoveFromIndexItemAsync(string identifier)
+ internal class AndroidActionFailureListener : Java.Lang.Object, IOnFailureListener
{
- if (_client.IsConnected)
+ readonly AppLinkEntry appLink;
+ readonly IndexingAction indexAction;
+
+ public AndroidActionFailureListener(AppLinkEntry appLink, IndexingAction indexAction)
+ {
+ this.appLink = appLink;
+ this.indexAction = indexAction;
+ }
+
+ public void OnFailure(Java.Lang.Exception e)
{
+ Log.Error(this.Class.Name, e, $" [{DateTime.Now}] - [AndroidAppLinks Failure] - {e.Message}");
+ throw e;
}
}
}
diff --git a/Xamarin.Forms.Platform.Android.AppLinks/Xamarin.Forms.Platform.Android.AppLinks.csproj b/Xamarin.Forms.Platform.Android.AppLinks/Xamarin.Forms.Platform.Android.AppLinks.csproj
index d05031c4..a7c4107a 100644
--- a/Xamarin.Forms.Platform.Android.AppLinks/Xamarin.Forms.Platform.Android.AppLinks.csproj
+++ b/Xamarin.Forms.Platform.Android.AppLinks/Xamarin.Forms.Platform.Android.AppLinks.csproj
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="..\packages\Xamarin.Build.Download.0.4.7\build\Xamarin.Build.Download.props" Condition="Exists('..\packages\Xamarin.Build.Download.0.4.7\build\Xamarin.Build.Download.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -14,6 +15,8 @@
<AndroidUseLatestPlatformSdk>True</AndroidUseLatestPlatformSdk>
<AssemblyName>Xamarin.Forms.Platform.Android.AppLinks</AssemblyName>
<TargetFrameworkVersion>v7.1</TargetFrameworkVersion>
+ <NuGetPackageImportStamp>
+ </NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -40,17 +43,50 @@
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="Mono.Android" />
- <Reference Include="Xamarin.GooglePlayServices.Basement">
- <HintPath>..\packages\Xamarin.GooglePlayServices.Basement.29.0.0.1\lib\MonoAndroid41\Xamarin.GooglePlayServices.Basement.dll</HintPath>
+ <Reference Include="Xamarin.Firebase.AppIndexing, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\packages\Xamarin.Firebase.AppIndexing.42.1021.1\lib\MonoAndroid70\Xamarin.Firebase.AppIndexing.dll</HintPath>
+ <Private>True</Private>
</Reference>
- <Reference Include="Xamarin.GooglePlayServices.Base">
- <HintPath>..\packages\Xamarin.GooglePlayServices.Base.29.0.0.1\lib\MonoAndroid41\Xamarin.GooglePlayServices.Base.dll</HintPath>
+ <Reference Include="Xamarin.Firebase.Common, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\packages\Xamarin.Firebase.Common.42.1021.1\lib\MonoAndroid70\Xamarin.Firebase.Common.dll</HintPath>
+ <Private>True</Private>
</Reference>
- <Reference Include="Xamarin.GooglePlayServices.AppIndexing">
- <HintPath>..\packages\Xamarin.GooglePlayServices.AppIndexing.29.0.0.1\lib\MonoAndroid41\Xamarin.GooglePlayServices.AppIndexing.dll</HintPath>
+ <Reference Include="Xamarin.GooglePlayServices.AppIndexing, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\packages\Xamarin.GooglePlayServices.AppIndexing.42.1021.1\lib\MonoAndroid70\Xamarin.GooglePlayServices.AppIndexing.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="Xamarin.GooglePlayServices.Base, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\packages\Xamarin.GooglePlayServices.Base.42.1021.1\lib\MonoAndroid70\Xamarin.GooglePlayServices.Base.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="Xamarin.GooglePlayServices.Basement, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\packages\Xamarin.GooglePlayServices.Basement.42.1021.1\lib\MonoAndroid70\Xamarin.GooglePlayServices.Basement.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="Xamarin.GooglePlayServices.Tasks, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\packages\Xamarin.GooglePlayServices.Tasks.42.1021.1\lib\MonoAndroid70\Xamarin.GooglePlayServices.Tasks.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="Xamarin.Android.Support.Annotations">
+ <HintPath>..\packages\Xamarin.Android.Support.Annotations.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Annotations.dll</HintPath>
+ </Reference>
+ <Reference Include="Xamarin.Android.Support.Compat">
+ <HintPath>..\packages\Xamarin.Android.Support.Compat.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll</HintPath>
+ </Reference>
+ <Reference Include="Xamarin.Android.Support.Core.UI">
+ <HintPath>..\packages\Xamarin.Android.Support.Core.UI.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll</HintPath>
+ </Reference>
+ <Reference Include="Xamarin.Android.Support.Core.Utils">
+ <HintPath>..\packages\Xamarin.Android.Support.Core.Utils.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll</HintPath>
+ </Reference>
+ <Reference Include="Xamarin.Android.Support.Media.Compat">
+ <HintPath>..\packages\Xamarin.Android.Support.Media.Compat.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll</HintPath>
+ </Reference>
+ <Reference Include="Xamarin.Android.Support.Fragment">
+ <HintPath>..\packages\Xamarin.Android.Support.Fragment.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Android.Support.v4">
- <HintPath>..\packages\Xamarin.Android.Support.v4.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll</HintPath>
+ <HintPath>..\packages\Xamarin.Android.Support.v4.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
@@ -59,8 +95,8 @@
<Compile Include="AndroidAppLinks.cs" />
</ItemGroup>
<ItemGroup>
- <None Include="Resources\AboutResources.txt" />
<None Include="packages.config" />
+ <None Include="Resources\AboutResources.txt" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\values\Strings.xml" />
@@ -72,4 +108,28 @@
<Name>Xamarin.Forms.Core</Name>
</ProjectReference>
</ItemGroup>
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+ </PropertyGroup>
+ <Error Condition="!Exists('..\packages\Xamarin.GooglePlayServices.Basement.42.1021.1\build\MonoAndroid70\Xamarin.GooglePlayServices.Basement.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.GooglePlayServices.Basement.42.1021.1\build\MonoAndroid70\Xamarin.GooglePlayServices.Basement.targets'))" />
+ <Error Condition="!Exists('..\packages\Xamarin.GooglePlayServices.Tasks.42.1021.1\build\MonoAndroid70\Xamarin.GooglePlayServices.Tasks.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.GooglePlayServices.Tasks.42.1021.1\build\MonoAndroid70\Xamarin.GooglePlayServices.Tasks.targets'))" />
+ <Error Condition="!Exists('..\packages\Xamarin.Firebase.Common.42.1021.1\build\MonoAndroid70\Xamarin.Firebase.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Firebase.Common.42.1021.1\build\MonoAndroid70\Xamarin.Firebase.Common.targets'))" />
+ <Error Condition="!Exists('..\packages\Xamarin.GooglePlayServices.Base.42.1021.1\build\MonoAndroid70\Xamarin.GooglePlayServices.Base.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.GooglePlayServices.Base.42.1021.1\build\MonoAndroid70\Xamarin.GooglePlayServices.Base.targets'))" />
+ <Error Condition="!Exists('..\packages\Xamarin.Firebase.AppIndexing.42.1021.1\build\MonoAndroid70\Xamarin.Firebase.AppIndexing.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Firebase.AppIndexing.42.1021.1\build\MonoAndroid70\Xamarin.Firebase.AppIndexing.targets'))" />
+ <Error Condition="!Exists('..\packages\Xamarin.Build.Download.0.4.7\build\Xamarin.Build.Download.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Build.Download.0.4.7\build\Xamarin.Build.Download.props'))" />
+ <Error Condition="!Exists('..\packages\Xamarin.Build.Download.0.4.7\build\Xamarin.Build.Download.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Xamarin.Build.Download.0.4.7\build\Xamarin.Build.Download.targets'))" />
+ </Target>
+ <Import Project="..\packages\Xamarin.GooglePlayServices.Basement.42.1021.1\build\MonoAndroid70\Xamarin.GooglePlayServices.Basement.targets" Condition="Exists('..\packages\Xamarin.GooglePlayServices.Basement.42.1021.1\build\MonoAndroid70\Xamarin.GooglePlayServices.Basement.targets')" />
+ <Import Project="..\packages\Xamarin.GooglePlayServices.Tasks.42.1021.1\build\MonoAndroid70\Xamarin.GooglePlayServices.Tasks.targets" Condition="Exists('..\packages\Xamarin.GooglePlayServices.Tasks.42.1021.1\build\MonoAndroid70\Xamarin.GooglePlayServices.Tasks.targets')" />
+ <Import Project="..\packages\Xamarin.Firebase.Common.42.1021.1\build\MonoAndroid70\Xamarin.Firebase.Common.targets" Condition="Exists('..\packages\Xamarin.Firebase.Common.42.1021.1\build\MonoAndroid70\Xamarin.Firebase.Common.targets')" />
+ <Import Project="..\packages\Xamarin.GooglePlayServices.Base.42.1021.1\build\MonoAndroid70\Xamarin.GooglePlayServices.Base.targets" Condition="Exists('..\packages\Xamarin.GooglePlayServices.Base.42.1021.1\build\MonoAndroid70\Xamarin.GooglePlayServices.Base.targets')" />
+ <Import Project="..\packages\Xamarin.Firebase.AppIndexing.42.1021.1\build\MonoAndroid70\Xamarin.Firebase.AppIndexing.targets" Condition="Exists('..\packages\Xamarin.Firebase.AppIndexing.42.1021.1\build\MonoAndroid70\Xamarin.Firebase.AppIndexing.targets')" />
+ <Import Project="..\packages\Xamarin.Build.Download.0.4.7\build\Xamarin.Build.Download.targets" Condition="Exists('..\packages\Xamarin.Build.Download.0.4.7\build\Xamarin.Build.Download.targets')" />
+ <Import Project="..\packages\Xamarin.Android.Support.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Compat.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Compat.targets')" />
+ <Import Project="..\packages\Xamarin.Android.Support.Core.UI.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.UI.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Core.UI.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.UI.targets')" />
+ <Import Project="..\packages\Xamarin.Android.Support.Core.Utils.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.Utils.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Core.Utils.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Core.Utils.targets')" />
+ <Import Project="..\packages\Xamarin.Android.Support.Media.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Media.Compat.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Media.Compat.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Media.Compat.targets')" />
+ <Import Project="..\packages\Xamarin.Android.Support.Fragment.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Fragment.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Fragment.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Fragment.targets')" />
+ <Import Project="..\packages\Xamarin.Android.Support.v4.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.v4.targets" Condition="Exists('..\packages\Xamarin.Android.Support.v4.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.v4.targets')" />
</Project> \ No newline at end of file
diff --git a/Xamarin.Forms.Platform.Android.AppLinks/packages.config b/Xamarin.Forms.Platform.Android.AppLinks/packages.config
index b488c682..13d5e8c8 100644
--- a/Xamarin.Forms.Platform.Android.AppLinks/packages.config
+++ b/Xamarin.Forms.Platform.Android.AppLinks/packages.config
@@ -1,7 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
- <package id="Xamarin.Android.Support.v4" version="23.3.0" targetFramework="MonoAndroid60" />
- <package id="Xamarin.GooglePlayServices.AppIndexing" version="29.0.0.1" targetFramework="MonoAndroid60" />
- <package id="Xamarin.GooglePlayServices.Base" version="29.0.0.1" targetFramework="MonoAndroid60" />
- <package id="Xamarin.GooglePlayServices.Basement" version="29.0.0.1" targetFramework="MonoAndroid60" />
+ <package id="Xamarin.Android.Support.Annotations" version="25.4.0.2" targetFramework="monoandroid71" />
+ <package id="Xamarin.Android.Support.Compat" version="25.4.0.2" targetFramework="monoandroid71" />
+ <package id="Xamarin.Android.Support.Core.UI" version="25.4.0.2" targetFramework="monoandroid71" />
+ <package id="Xamarin.Android.Support.Core.Utils" version="25.4.0.2" targetFramework="monoandroid71" />
+ <package id="Xamarin.Android.Support.Fragment" version="25.4.0.2" targetFramework="monoandroid71" />
+ <package id="Xamarin.Android.Support.Media.Compat" version="25.4.0.2" targetFramework="monoandroid71" />
+ <package id="Xamarin.Android.Support.v4" version="25.4.0.2" targetFramework="monoandroid71" />
+ <package id="Xamarin.Build.Download" version="0.4.7" targetFramework="monoandroid71" />
+ <package id="Xamarin.Firebase.AppIndexing" version="42.1021.1" targetFramework="monoandroid71" />
+ <package id="Xamarin.Firebase.Common" version="42.1021.1" targetFramework="monoandroid71" />
+ <package id="Xamarin.GooglePlayServices.AppIndexing" version="42.1021.1" targetFramework="monoandroid71" />
+ <package id="Xamarin.GooglePlayServices.Base" version="42.1021.1" targetFramework="monoandroid71" />
+ <package id="Xamarin.GooglePlayServices.Basement" version="42.1021.1" targetFramework="monoandroid71" />
+ <package id="Xamarin.GooglePlayServices.Tasks" version="42.1021.1" targetFramework="monoandroid71" />
</packages> \ No newline at end of file