public DownloadManager(IAndroidContext context, IRepository repository) { this.context = context; this.repository = repository; //ar reference = intent.GetLongExtra(Android.App.DownloadManager.ExtraDownloadId, -1); //var downloadFile = CrossDownloadManager.Current.Queue.Cast<DownloadFileImplementation>().FirstOrDefault(f => f.Id == reference); //if (downloadFile == null) return; //var query = new Android.App.DownloadManager.Query(); //query.SetFilterById(downloadFile.Id); //try //{ // using (var cursor = ((Android.App.DownloadManager)context.GetSystemService(Context.DownloadService)).InvokeQuery(query)) // { // while (cursor != null && cursor.MoveToNext()) // { // ((DownloadManagerImplementation)CrossDownloadManager.Current).UpdateFileProperties(cursor, downloadFile); // } // cursor?.Close(); // } //} //catch (Android.Database.Sqlite.SQLiteException) //{ // // I lately got an exception that the database was unaccessible ... //} //this.GetManager().InvokeQuery() }
//static AccessState GetCurrentLocationAccess(this IAndroidContext context, bool background, bool fineAccess, bool gpsRequired, bool networkRequired) //{ // var status = context.GetLocationManagerStatus(gpsRequired, networkRequired); // if (status != AccessState.Available) // return status; // if (context.IsMinApiLevel(29) && background) // { // status = context.GetCurrentAccessState(P.AccessBackgroundLocation); // if (status != AccessState.Available) // return status; // } // var next = fineAccess ? P.AccessFineLocation : P.AccessCoarseLocation; // status = context.GetCurrentAccessState(next); // return status; //} public static async Task <AccessState> RequestLocationAccess(this IAndroidContext context, bool background, bool fineAccess, bool gpsRequired, bool networkRequired) { if (!IsLocationEnabled(context, gpsRequired, networkRequired)) { return(AccessState.Disabled); } var locationPerm = fineAccess ? P.AccessFineLocation : P.AccessCoarseLocation; if (!context.IsMinApiLevel(29) || !background) { return(await context.RequestAccess(locationPerm).ToTask()); } var access = await context .RequestPermissions ( P.AccessBackgroundLocation, P.ForegroundService, locationPerm ) .ToTask(); if (!access.IsGranted(locationPerm)) { return(AccessState.Denied); } if (!access.IsGranted(P.AccessBackgroundLocation)) { return(AccessState.Restricted); } return(AccessState.Available); }
static void AssertBackgroundInManifest(this IAndroidContext context) { if (context.IsMinApiLevel(29) && !context.IsInManifest(P.AccessBackgroundLocation)) { throw new ArgumentException($"{P.AccessBackgroundLocation} is not in your manifest but is required"); } }
public JobManager(IAndroidContext context, IServiceProvider container, IRepository repository, ILogger <IJobManager> logger) : base(container, repository, logger) { this.context = context; }
public static int GetResourceIdByName(this IAndroidContext context, string iconName) => context .AppContext .Resources .GetIdentifier( iconName, "drawable", Application.Context.PackageName );
// Expects raw resource name like "notify_sound" or "raw/notify_sound" internal static int GetRawResourceIdByName(this IAndroidContext context, string rawName) => context .AppContext .Resources .GetIdentifier( rawName, "raw", context.AppContext.PackageName );
internal static int GetColorByName(this IAndroidContext context, string colorName) => context .AppContext .Resources .GetIdentifier( colorName, "color", context.AppContext.PackageName );
public JobManagerImpl(IAndroidContext context, IServiceProvider container, IRepository repository, IPowerManager powerManager, IConnectivity connectivity) : base(container, repository, powerManager, connectivity) { this.context = context; }
public SecureKeyValueStore(IPlatform platform, IAndroidContext context, ISerializer serializer) { this.settingsStore = new SettingsKeyValueStore(context, serializer); this.keyStore = new AndroidKeyStore(context, this.settingsStore, $"{platform.AppIdentifier}.secure", false); this.serializer = serializer; }
public NativeAdapter(AndroidPushNotificationManager notifications, IAndroidContext context, FirebaseConfig?config = null) { this.notifications = notifications; this.context = context; this.config = config; }
protected AbstractGpsManager(IAndroidContext context) { this.readingSubj = new Subject <IGpsReading>(); this.Context = context; this.Callback = new ShinyLocationCallback { OnReading = x => this.readingSubj.OnNext(new GpsReading(x)) }; }
public GeofenceManagerImpl(IAndroidContext context, IRepository repository, IServiceProvider services, ILogger <GeofenceManagerImpl> logger) : base(repository) { this.context = context; this.logger = logger; this.services = services; this.client = LocationServices.GetGeofencingClient(this.context.AppContext); }
public ShinyCoreServices(IAndroidContext context, IPlatform platform, IKeyValueStoreFactory store, IRepository repository, IServiceProvider services, ISerializer serializer, IMessageBus bus) : this(platform, store, repository, services, serializer, bus) { this.Android = context; }
public ShinyCoreServices(IAndroidContext context, IKeyValueStoreFactory store, IRepository repository, IServiceProvider services, ISerializer serializer, IMessageBus bus, IJobManager jobManager) : this(store, repository, services, serializer, bus, jobManager) { this.Android = context; }
public NotificationManagerImpl(IAndroidContext context) { this.context = context; if ((int)Build.VERSION.SdkInt >= 26) { this.newManager = NotificationManager.FromContext(context.AppContext); } else { this.compatManager = NotificationManagerCompat.From(context.AppContext); } }
internal AndroidKeyStore(IAndroidContext context, IKeyValueStore clearStore, string keystoreAlias, bool alwaysUseAsymmetricKeyStorage) { this.appContext = context.AppContext; this.alwaysUseAsymmetricKey = alwaysUseAsymmetricKeyStorage; this.alias = keystoreAlias; this.clearStore = clearStore; this.keyStore = KeyStore.GetInstance(androidKeyStore); this.keyStore.Load(null); }
public static async Task <AccessState> RequestBackgroundLocationAccess(this IAndroidContext context, LocationPermissionType locType) { if (!context.IsLocationEnabled(false, false)) { return(AccessState.Disabled); } context.AssertBackgroundInManifest(); AccessState status; if (context.IsMinApiLevel(30)) { // Android 11+ need to request background separately // Android 12+ user can decline fine, but allow coarse status = await context.RequestLocationAccess(locType); if (status == AccessState.Available || status == AccessState.Restricted) { var bg = await context.RequestAccess(P.AccessBackgroundLocation).ToTask(); status = bg == AccessState.Available ? status : AccessState.Restricted; } } else if (context.IsMinApiLevel(29)) { // Android 10: Request BG permission with other permissions var perms = new List <string> { P.AccessBackgroundLocation, P.AccessCoarseLocation }; if (locType != LocationPermissionType.Coarse) { perms.Add(P.AccessFineLocation); } var results = await context .RequestPermissions(perms.ToArray()) .ToTask(); status = FromResult(results, locType); if (status == AccessState.Available || status == AccessState.Available) { status = results.IsGranted(P.AccessBackgroundLocation) ? status : AccessState.Restricted; } } else { status = await context.RequestLocationAccess(locType); } return(status); }
public BeaconMonitoringManager(IBleManager bleManager, #if __ANDROID__ IAndroidContext context, #endif IMessageBus messageBus, IRepository repository) { this.bleManager = bleManager; #if __ANDROID__ this.context = context; #endif this.messageBus = messageBus; this.repository = repository; }
public BeaconMonitoringManager(IBleManager bleManager, IRepository repository, IMessageBus messageBus #if __ANDROID__ , IAndroidContext context #endif ) { this.bleManager = bleManager; this.messageBus = messageBus; this.repository = repository; #if __ANDROID__ this.context = context; #endif }
static bool IsLocationEnabled(IAndroidContext context, bool gpsRequired, bool networkRequired) { var lm = context.GetSystemService <LocationManager>(Context.LocationService); if (context.IsMinApiLevel(28) && !lm.IsLocationEnabled) { return(false); } if (networkRequired && !lm.IsProviderEnabled(LocationManager.NetworkProvider)) { return(false); } if (gpsRequired && !lm.IsProviderEnabled(LocationManager.GpsProvider)) { return(false); } return(true); }
public static AccessState GetLocationManagerStatus(this IAndroidContext context, bool gpsRequired, bool networkRequired) { var lm = context.GetSystemService <LocationManager>(Context.LocationService); if (context.IsMinApiLevel(28) && !lm.IsLocationEnabled) { return(AccessState.Disabled); } if (networkRequired && !lm.IsProviderEnabled(LocationManager.NetworkProvider)) { return(AccessState.Disabled); } if (gpsRequired && !lm.IsProviderEnabled(LocationManager.GpsProvider)) { return(AccessState.Disabled); } return(AccessState.Available); }
public static async Task <AccessState> RequestLocationAccess(this IAndroidContext context, LocationPermissionType locType) { if (!context.IsLocationEnabled(false, false)) { return(AccessState.Disabled); } var perms = new List <string> { P.AccessCoarseLocation }; if (locType != LocationPermissionType.Coarse) { perms.Add(P.AccessFineLocation); } var results = await context.RequestPermissions(perms.ToArray()).ToTask(); var status = FromResult(results, locType); return(status); }
public static AccessState GetCurrentLocationAccess(this IAndroidContext context, bool background, bool fineAccess, bool gpsRequired, bool networkRequired) { var status = context.GetLocationManagerStatus(gpsRequired, networkRequired); if (status != AccessState.Available) { return(status); } if (context.IsMinApiLevel(29) && background) { status = context.GetCurrentAccessState(P.AccessBackgroundLocation); if (status != AccessState.Available) { return(status); } } var next = fineAccess ? P.AccessFineLocation : P.AccessCoarseLocation; status = context.GetCurrentAccessState(next); return(status); }
public PowerManagerImpl(IAndroidContext context) => this.context = context;
public BleHostingManager(IAndroidContext context, IMessageBus messageBus) { this.context = new GattServerContext(context); this.services = new Dictionary <string, GattService>(); this.messageBus = messageBus; }
public ConnectivityImpl(IAndroidContext context) { this.context = context; }
public GooglePlayServiceGpsManagerImpl(IAndroidContext context) : base(context) => this.client = LocationServices.GetFusedLocationProviderClient(context.AppContext);
//readonly Subject<PushState> publishSubj; //Func<NDefRecord>? recordFunc; public NfcManager(IAndroidContext context) { this.context = context; this.recordSubj = new Subject <NDefRecord[]>(); //this.publishSubj = new Subject<PushState>(); }
public GpsManagerImpl(IAndroidContext context, ISettings settings) { this.settings = settings; this.context = context; this.client = LocationServices.GetFusedLocationProviderClient(this.context.AppContext); }
public static IObservable <(Result Result, Intent Data)> RequestActivityResult(this IAndroidContext context, Intent intent) => context.RequestActivityResult((requestCode, activity) =>