public static PortableFileObject AddFileObject ( string filePath, Func <PortableDirectorySource, string, PortableFileObject> createObject ) { string fileDirectory = Path.GetDirectoryName(filePath); PortableDirectorySource directorySource = GetObjectSource(fileDirectory) as PortableDirectorySource; if (directorySource == null) { directorySource = new PortableDirectorySource("NEW", fileDirectory); _cachedSources.TryAdd(fileDirectory, directorySource); /*throw new ArgumentException * ( * string.Format("Object source representing directory '{0}' not found.", * fileDirectory), * * nameof(filePath) * );*/ } const ReaderWriterLockSlim objectsLock = null; PortableFileObject fileObject = AddFileObject(filePath, directorySource, objectsLock, createObject); return(fileObject); }
private static PortableFileObject AddFileObject ( string filePath, PortableDirectorySource directorySource, ReaderWriterLockSlim objectsLock, Func <PortableDirectorySource, string, PortableFileObject> createObject ) { _objectLoadingTask.ThrowIfUnitialised(nameof(_fileObjectDescriber), nameof(AddFileObject), nameof(RegisterPlatformSpecific)); string fileName = Path.GetFileName(filePath); DateTime fileTime = _fileObjectDescriber.GetFileCreationTime(filePath); PortableFileObject fileObject = createObject(directorySource, fileName); directorySource.AddObject(fileObject); objectsLock?.EnterWriteLock(); try { _cachedObjects.Add(fileObject); } finally { objectsLock?.ExitWriteLock(); } return(fileObject); }
protected override void OnDone() { PortableFileObject imageObject = PortableObjectRepository <Activity> .AddFileObject ( _picturePath, (directorySource, objectFile) => new AndroidImageObject(directorySource, objectFile) ); PortableObjectRepository <Activity> .PushPendingObject(imageObject); if (DeviceOrientation == null) { // this should "never" happen: throw new NullReferenceException(nameof(DeviceOrientation)); } var editImageIntent = new Intent(this, typeof(AndroidEditImageActivity)); editImageIntent.PutExtra(AndroidEditImageActivity.DeviceOrientationExtra, DeviceOrientation.Value); editImageIntent.PutExtra(AndroidEditImageActivity.PicturePathExtra, _picturePath); StartActivity(editImageIntent); }