예제 #1
0
        public void IF_OpenGallery(IGalleryPickerResultListener pickerResultListener, SyncPhotoOptions options, int _CodeRequest)
        {
            CodeRequest = _CodeRequest;
            galleryPickerResultListener = pickerResultListener;
            var pickerIntent = new Intent(SupportWidgetXFSetup.Activity, typeof(GalleryPickerActivity));

            SupportWidgetXFSetup.Activity.StartActivity(pickerIntent);
        }
예제 #2
0
        public void IF_OpenCamera(IGalleryPickerResultListener pickerResultListener, SyncPhotoOptions options, int _CodeRequest)
        {
            CodeRequest = _CodeRequest;
            galleryPickerResultListener = pickerResultListener;
            UIStoryboard       storyboard = UIStoryboard.FromName("UtilStoryboard", null);
            XFCameraController controller = (XFCameraController)storyboard.InstantiateViewController("XFCameraController");

            NaviExtensions.OpenController(controller);
        }
예제 #3
0
        public void IF_OpenCamera(IGalleryPickerResultListener pickerResultListener, SyncPhotoOptions options, int _CodeRequest)
        {
            CodeRequest = _CodeRequest;
            galleryPickerResultListener = pickerResultListener;
            var pickerIntent = new Intent(SupportWidgetXFSetup.Activity, typeof(GalleryPickerActivity));

            pickerIntent.PutExtra(Utils.SubscribeImageFromCamera, Utils.SubscribeImageFromCamera);
            SupportWidgetXFSetup.Activity.StartActivity(pickerIntent);
        }
예제 #4
0
        public async Task <GalleryImageXF> IF_SyncPhotoFromCloud(IGalleryPickerResultListener galleryPickerResultListener, GalleryImageXF imageSet, SyncPhotoOptions options)
        {
            try
            {
                bool FinishSync = false;

                Debug.WriteLine(imageSet.OriginalPath);

                var sortOptions = new PHFetchOptions();
                sortOptions.SortDescriptors = new NSSortDescriptor[] { new NSSortDescriptor("creationDate", false) };

                var FeechPhotoByIdentifiers = PHAsset.FetchAssetsUsingLocalIdentifiers(
                    new string[] { imageSet.OriginalPath },
                    sortOptions).Cast <PHAsset>().FirstOrDefault();

                if (FeechPhotoByIdentifiers != null)
                {
                    var requestOptions = new PHImageRequestOptions()
                    {
                        NetworkAccessAllowed = true,
                        DeliveryMode         = PHImageRequestOptionsDeliveryMode.HighQualityFormat,
                        ResizeMode           = PHImageRequestOptionsResizeMode.None,
                    };

                    var requestSize = new CoreGraphics.CGSize(options.Width, options.Height);
                    requestSize = PHImageManager.MaximumSize;

                    PHImageManager.DefaultManager.RequestImageForAsset(FeechPhotoByIdentifiers, requestSize, PHImageContentMode.AspectFit, requestOptions, (result, info) => {
                        if (result != null)
                        {
                            var newImage          = result.ResizeImage(options);
                            imageSet.ImageRawData = newImage.AsJPEG(options.Quality).ToArray();
                        }
                        FinishSync = true;
                    });

                    do
                    {
                        if (FinishSync)
                        {
                            return(imageSet);
                        }
                        await Task.Delay(1000);
                    } while (!FinishSync);
                }

                return(imageSet);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.StackTrace);
                return(imageSet);
            }
        }
예제 #5
0
        public Task <GalleryImageXF> IF_SyncPhotoFromCloud(IGalleryPickerResultListener galleryPickerResultListener, GalleryImageXF imageSet, SyncPhotoOptions options)
        {
            var bitmap = imageSet.OriginalPath.GetOriginalBitmapFromPath(options);

            using (var streamBitmap = new MemoryStream())
            {
                bitmap.Compress(Bitmap.CompressFormat.Jpeg, (int)(options.Quality * 100), streamBitmap);
                imageSet.ImageRawData = streamBitmap.ToArray().ToArray();
                bitmap.Recycle();
                return(Task.FromResult <GalleryImageXF>(imageSet));
            }
        }
예제 #6
0
 public void IF_OpenGallery(IGalleryPickerResultListener pickerResultListener, SyncPhotoOptions options, int _CodeRequest)
 {
     CodeRequest = _CodeRequest;
     galleryPickerResultListener = pickerResultListener;
     NaviExtensions.OpenController(new GalleryPickerController());
 }