public void PrepareFileUsage(IFileStorageSetupInitiatorActivity activity, IOConnectionInfo ioc, int requestCode, bool alwaysReturnSuccess) { //check if we need to request the external-storage-permission at runtime if (ioc.IsLocalFile()) { bool requiresPermission = !(ioc.Path.StartsWith(activity.Activity.FilesDir.CanonicalPath) || ioc.Path.StartsWith(IoUtil.GetInternalDirectory(activity.Activity).CanonicalPath) || ioc.Path.StartsWith(IoUtil.GetInternalDirectory(activity.Activity).CanonicalPath)); var extDirectory = activity.Activity.GetExternalFilesDir(null); if ((extDirectory != null) && (ioc.Path.StartsWith(extDirectory.CanonicalPath))) { requiresPermission = false; } if (requiresPermission && (Build.VERSION.SdkInt >= BuildVersionCodes.M)) { if ((activity.Activity.CheckSelfPermission(Manifest.Permission.WriteExternalStorage) == Permission.Denied) || (activity.Activity.CheckSelfPermission(Manifest.Permission.ReadExternalStorage) == Permission.Denied)) { activity.StartFileUsageProcess(ioc, requestCode, alwaysReturnSuccess); return; } } } Intent intent = new Intent(); activity.IocToIntent(intent, ioc); activity.OnImmediateResult(requestCode, (int)FileStorageResults.FileUsagePrepared, intent); }
public void PrepareFileUsage(IFileStorageSetupInitiatorActivity activity, IOConnectionInfo ioc, int requestCode, bool alwaysReturnSuccess) { Intent intent = new Intent(); activity.IocToIntent(intent, ioc); activity.OnImmediateResult(requestCode, (int)FileStorageResults.FileUsagePrepared, intent); }
public void StartSelectFile(IFileStorageSetupInitiatorActivity activity, bool isForSave, int requestCode, string protocolId) { Intent intent = new Intent(); activity.IocToIntent(intent, new IOConnectionInfo { Path = protocolId + "://" }); activity.OnImmediateResult(requestCode, (int)FileStorageResults.FileChooserPrepared, intent); }
public void StartSelectFile(IFileStorageSetupInitiatorActivity activity, bool isForSave, int requestCode, string protocolId) { if (protocolId != "file") { activity.PerformManualFileSelect(isForSave, requestCode, protocolId); } else { Intent intent = new Intent(); activity.IocToIntent(intent, new IOConnectionInfo() { Path = protocolId + "://", }); activity.OnImmediateResult(requestCode, (int)FileStorageResults.FileChooserPrepared, intent); } }