예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
 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);
     }
 }
예제 #5
0
 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);
 }
예제 #6
0
        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);
        }