From 5907152c50ee2c658b266f2804e6b383bb15a6f1 Mon Sep 17 00:00:00 2001 From: Jason Smith Date: Sun, 24 Apr 2016 12:25:26 -0400 Subject: Evolve feature branch (#117) * Initial import of evolve features * [Android] Add Xamarin.Forms.Platform.Android.AppLinks project * [iOS] Fix issues with c# 6 features on iOS AppLinks * Added naive stanza to update-docs-windows.bat to produce Pages docs. Not tested. (#69) * Update packages * Add AppLinks android nuspec and fix linker issues * Fix build * Fix nusepc * Fix nuspec * Update android support nugets to 23.2.1 * Update Xamarin.UITest * Add CardView * [iOS] Fix app link for CoreSpotlight * [Android] Update AppLinks android support libs * Add Newtonsoft.Json dependency to nuspec * Fix NRE when setting ControlTemplate to null * Move to ModernHttpClient for download * Try fix build * Preserve android app links * Fix margin issue * General coding and simple fixes --- .../AndroidAppIndexProvider.cs | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Xamarin.Forms.Platform.Android/AndroidAppIndexProvider.cs (limited to 'Xamarin.Forms.Platform.Android/AndroidAppIndexProvider.cs') diff --git a/Xamarin.Forms.Platform.Android/AndroidAppIndexProvider.cs b/Xamarin.Forms.Platform.Android/AndroidAppIndexProvider.cs new file mode 100644 index 00000000..e9b85eec --- /dev/null +++ b/Xamarin.Forms.Platform.Android/AndroidAppIndexProvider.cs @@ -0,0 +1,41 @@ +using Android.Content; +using System; +using System.Reflection; +using System.Linq; +using System.Globalization; + +namespace Xamarin.Forms.Platform.Android +{ + public class AndroidAppIndexProvider : IAppIndexingProvider + { + public AndroidAppIndexProvider(Context context) + { + var assemblyAppLinks = GetAssemblyForAppLinks(AppLinksAssemblyName); + + if (assemblyAppLinks != null) + { + Type type = assemblyAppLinks.GetType($"{AppLinksAssemblyName}.{AppLinksClassName}"); + + if (type != null) + { + var applink = Activator.CreateInstance(type, new object[] { context }, null); + + if (applink != null) + { + AppLinks = applink as IAppLinks; + } + } + } + } + + public IAppLinks AppLinks { get; } + + private Assembly GetAssemblyForAppLinks(string assemblyName) + { + return Device.GetAssemblies().FirstOrDefault(assembly => assembly.GetName().Name == assemblyName); + } + + const string AppLinksAssemblyName = "Xamarin.Forms.Platform.Android.AppLinks"; + const string AppLinksClassName = "AndroidAppLinks"; + } +} \ No newline at end of file -- cgit v1.2.3