private static async Task <IBroker> GetInstalledBrokerAsync(CoreUIParent uIParent, ICoreLogger logger) { AndroidBrokerHelper brokerHelper = new AndroidBrokerHelper(Application.Context, logger); if (brokerHelper.IsBrokerInstalledAndInvokable(AuthorityType.Aad)) //authorityType is actually not used by the brokerHelper.IsBrokerInstalledAndInvokable { try { var broker = new AndroidContentProviderBroker(uIParent, logger); await broker.InitiateBrokerHandShakeAsync().ConfigureAwait(false); s_installedBroker = BrokerType.ContentProvider; logger.Info("[Android broker] Content provider broker is available and will be used."); return(broker); } catch (Exception exContentProvider) { logger.Error("[Android broker] Unable to communicate with the broker via Content Provider. Attempting to fall back to account manager communication."); logger.Error(exContentProvider.Message); try { var broker = new AndroidAccountManagerBroker(uIParent, logger); await broker.InitiateBrokerHandshakeAsync().ConfigureAwait(false); s_installedBroker = BrokerType.AccountManager; logger.Info("[Android broker] Account manager broker is available and will be used."); return(broker); } catch (Exception exAccountManager) { logger.Error("[Android broker] Unable to communicate with the broker via the Account manager."); logger.Error(exAccountManager.Message); } } } // Return a default broker in case no broker is installed to handle install URL return(new AndroidContentProviderBroker(uIParent, logger)); }
public bool IsBrokerInstalledAndInvokable() { return(_brokerHelper.IsBrokerInstalledAndInvokable()); }
public bool IsBrokerInstalledAndInvokable(AuthorityType authorityType) { return(_brokerHelper.IsBrokerInstalledAndInvokable(authorityType)); }