Example #1
0
        protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            if (requestCode == VOICE)
            {
                if (resultCode == Result.Ok)
                {
                    var matches = data.GetStringArrayListExtra(RecognizerIntent.ExtraResults);
                    if (matches.Count != 0)
                    {
                        string textInput = matches[0];
                        MessagingCenter.Send <IMessageSender, string>(this, "STT", textInput);
                    }
                    else
                    {
                        MessagingCenter.Send <IMessageSender, string>(this, "STT", "No input");
                    }
                }
            }
            base.OnActivityResult(requestCode, resultCode, data);

            //If we are calling multiple image selection, enter into here and return photos and their filepaths.
            if (requestCode == OPENGALLERYCODE && resultCode == Result.Ok)
            {
                List <string> images = new List <string>();

                if (data != null)
                {
                    //Separate all photos and get the path from them all individually.
                    ClipData clipData = data.ClipData;
                    if (clipData != null)
                    {
                        for (int i = 0; i < clipData.ItemCount; i++)
                        {
                            ClipData.Item   item = clipData.GetItemAt(i);
                            Android.Net.Uri uri  = item.Uri;
                            var             path = GetRealPathFromURI(uri);


                            if (path != null)
                            {
                                images.Add(path);
                            }
                        }
                    }
                    else
                    {
                        Android.Net.Uri uri  = data.Data;
                        var             path = GetRealPathFromURI(uri);

                        if (path != null)
                        {
                            images.Add(path);
                        }
                    }

                    //Send our images to the carousel view.
                    MessagingCenter.Send <App, List <string> >((App)Xamarin.Forms.Application.Current, "ImagesSelectedAndroid", images);
                }
            }
        }
        private void Process(ClipData clipData)
        {
            for (int i = 0; i < clipData.ItemCount; i++)
            {
                var uri = clipData.GetItemAt(i).Uri;

                ProcessUri(uri);
            }
        }
        /// <summary>
        /// To be added.
        /// </summary>
        /// <param name="clipData"></param>
        /// <returns></returns>
        public static Net.Uri[] ToUriArray(this ClipData clipData)
        {
            var array = new Net.Uri[clipData.ItemCount];

            for (var i = 0; i < clipData.ItemCount; i++)
            {
                array[i] = clipData.GetItemAt(i).Uri;
            }
            return(array);
        }
Example #4
0
        protected override async void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);
            InAppBillingImplementation.HandleActivityResult(requestCode, resultCode, data);

            if (requestCode == OPENGALLERYCODE && resultCode == Result.Ok)
            {
                List <byte[]> images = new List <byte[]>();

                if (data != null)
                {
                    ClipData clipData = data.ClipData;
                    // if clipData exists, it means there are more than 1 image

                    if (clipData != null)
                    {
                        // we need to send this message so the view can show loading
                        MessagingCenter.Send <object>(this, MessagingKeys.ShowLoadingIndicator);

                        for (int i = 0; i < clipData.ItemCount; i++)
                        {
                            if (i > 5)
                            {
                                break;
                            }                     // limit to 5 images
                            try {
                                ClipData.Item item = clipData.GetItemAt(i);
                                var           uri  = item.Uri;

                                await Task.Run(() => {
                                    images.Add(PhotoUtilHelper.UpdateAndConvertURI(this, uri));
                                });
                            } catch (Exception ex) {
                                Console.WriteLine(ex.Message);
                            }
                        }
                    }
                    else
                    {
                        try {
                            MessagingCenter.Send <object>(this, MessagingKeys.ShowLoadingIndicator);
                            var uri = data.Data;
                            await Task.Run(() => {
                                images.Add(PhotoUtilHelper.UpdateAndConvertURI(this, uri));
                            });
                        } catch (Exception ex) {
                            Console.WriteLine(ex.Message);
                        }
                    }

                    // post the message with the list attached
                    MessagingCenter.Send <object, object>(this, MessagingKeys.DidFinishSelectingImages, images);
                }
            }
        }
        public async Task OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            var mediaPicked = new ObservableCollection <MediaFile>();
            var tasks       = new List <Task>();

            if (requestCode == MultiPickerResultCode)
            {
                if (resultCode == Result.Ok)
                {
                    if (data != null)
                    {
                        ClipData clipData = data.ClipData;
                        if (clipData != null)
                        {
                            for (int i = 0; i < clipData.ItemCount; i++)
                            {
                                ClipData.Item   item = clipData.GetItemAt(i);
                                Android.Net.Uri uri  = item.Uri;

                                tasks.Add(Task.Run(
                                              () =>
                                {
                                    var media = CreateMediaFileFromUri(uri);

                                    if (media != null)
                                    {
                                        lock (Obj)
                                        {
                                            mediaPicked.Add(media);
                                        }
                                        OnMediaPicked?.Invoke(this, media);
                                    }
                                }));
                            }
                        }
                        else
                        {
                            Android.Net.Uri uri   = data.Data;
                            var             media = CreateMediaFileFromUri(uri);
                            if (media != null)
                            {
                                mediaPicked.Add(media);
                                OnMediaPicked?.Invoke(this, media);
                            }
                        }
                    }
                }
                await Task.WhenAll(tasks);

                OnMediaPickedCompleted?.Invoke(this, mediaPicked);
                _mediaPickedTcs?.TrySetResult(mediaPicked);
            }
        }
Example #6
0
        protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);

            //NuGet Initializations
            CarouselViewRenderer.Init();
            FFImageLoading.Forms.Platform.CachedImageRenderer.Init(enableFastRenderer: false);

            //If we are calling multiple image selection, enter into here and return photos and their filepaths.
            if (requestCode == OPENGALLERYCODE && resultCode == Result.Ok)
            {
                List <string> images = new List <string>();

                if (data != null)
                {
                    //Separate all photos and get the path from them all individually.
                    ClipData clipData = data.ClipData;
                    if (clipData != null)
                    {
                        for (int i = 0; i < clipData.ItemCount; i++)
                        {
                            ClipData.Item   item = clipData.GetItemAt(i);
                            Android.Net.Uri uri  = item.Uri;
                            var             path = GetRealPathFromURI(uri);


                            if (path != null)
                            {
                                images.Add(path);
                            }
                        }
                    }
                    else
                    {
                        Android.Net.Uri uri  = data.Data;
                        var             path = GetRealPathFromURI(uri);

                        if (path != null)
                        {
                            images.Add(path);
                        }
                    }

                    //Send our images to the carousel view.
                    MessagingCenter.Send <App, List <string> >((App)Xamarin.Forms.Application.Current, "ImagesSelectedAndroid", images);
                    items = new ObservableCollection <App>();
                }
            }
        }
Example #7
0
        private void GetSelectedPictures(Intent data)
        {
            if (data.Data != null)
            {
                uriList.Add(data.Data);
            }
            else
            {
                ClipData multiplePictures = data.ClipData;

                for (int i = 0; i < multiplePictures.ItemCount; i++)
                {
                    uriList.Add(multiplePictures.GetItemAt(i).Uri);
                }
            }
        }
Example #8
0
        public string ReadClipboard()
        {
            if (Build.VERSION.SdkInt < BuildVersionCodes.Honeycomb)
            {
                return(((ClipboardManager)context.GetSystemService(Context.ClipboardService)).Text.ToString());
            }

            ClipData clip = ((ClipboardManager)context.GetSystemService(Context.ClipboardService)).PrimaryClip;

            if (clip != null && clip.ItemCount > 0)
            {
                return(clip.GetItemAt(0).CoerceToText(context).ToString());
            }

            return("");
        }
        private static Task <List <string> > GetMultipleImagesFromGallery(Context context, Task <string> pathFuture, ClipData clipData, bool isPhoto)
        {
            Task <List <string> > taskPaths = Task.Run(() =>
            {
                List <string> tasks = new List <string>();
                for (var i = 0; i < clipData.ItemCount; i++)
                {
                    var item   = clipData.GetItemAt(i);
                    pathFuture = GetFileForUriAsync(context, item.Uri, isPhoto, false);
                    tasks.Add(pathFuture.Result);
                }
                return(tasks);
            });

            return(taskPaths);
        }
        public void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            ObservableCollection <MediaModel> oCollection = null;

            if (requestCode == SOURCE_PICK_CODE)
            {
                if (resultCode == Result.Ok)
                {
                    oCollection = new ObservableCollection <MediaModel>();

                    if (data != null)
                    {
                        ClipData oData = data.ClipData;

                        if (oData != null)
                        {
                            for (int i = 0; i < oData.ItemCount; i++)
                            {
                                ClipData.Item   oItem  = oData.GetItemAt(i);
                                Android.Net.Uri oUri   = oItem.Uri;
                                var             oModel = CreateMediaModel(oUri);
                                if (oModel != null)
                                {
                                    oCollection.Add(oModel);
                                    OnMediaPicked?.Invoke(this, oModel);
                                }
                            }
                        }
                        else
                        {
                            Android.Net.Uri oUri   = data.Data;
                            var             oModel = CreateMediaModel(oUri);

                            if (oModel != null)
                            {
                                oCollection.Add(oModel);
                                OnMediaPicked?.Invoke(this, oModel);
                            }
                        }

                        OnMediaPickedCompleted?.Invoke(this, oCollection);
                    }
                }

                _taskCompletionSource?.TrySetResult(oCollection);
            }
        }
        public byte[] GetImageData()
        {
            ClipboardManager clipboard = (ClipboardManager)Forms.Context.GetSystemService(Context.ClipboardService);
            ContentResolver  cr        = Forms.Context.ContentResolver;
            ClipData         clip      = clipboard.PrimaryClip;

            byte[] p = null;
            if (clip != null)
            {
                // Gets the first item from the clipboard data
                ClipData.Item item = clip.GetItemAt(0);

                // Tries to get the item's contents as a URI
                Android.Net.Uri pasteUri = item.Uri;
                // If the clipboard contains a URI reference
                if (pasteUri != null)
                {
                    // Is this a content URI?
                    String uriMimeType = cr.GetType(pasteUri);

                    // If the return value is not null, the Uri is a content Uri
                    if (uriMimeType != null)
                    {
                        // Does the content provider offer a MIME type that the current application can use?
                        if (uriMimeType.StartsWith("image/"))
                        {
                            // Get the data from the content provider.
                            ICursor pasteCursor = cr.Query(pasteUri, null, null, null, null);

                            // If the Cursor contains data, move to the first record
                            if (pasteCursor != null)
                            {
                                if (pasteCursor.MoveToFirst())
                                {
                                    p = pasteCursor.GetBlob(0);
                                }
                            }

                            // close the Cursor
                            pasteCursor.Close();
                        }
                    }
                }
            }
            return(p);
        }
Example #12
0
        protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);

            if (requestCode == OPENGALLERYCODE && resultCode == Result.Ok)
            {
                List <string> images = new List <string>();

                if (data != null)
                {
                    ClipData clipData = data.ClipData;
                    if (clipData != null)
                    {
                        for (int i = 0; i < clipData.ItemCount; i++)
                        {
                            ClipData.Item   item = clipData.GetItemAt(i);
                            Android.Net.Uri uri  = item.Uri;
                            var             path = GetRealPathFromURI(uri);

                            if (path != null)
                            {
                                //Rotate Image
                                var imageRotated = ImageHelpers.RotateImage(path);
                                var newPath      = ImageHelpers.SaveFile("TmpPictures", imageRotated, System.DateTime.Now.ToString("yyyyMMddHHmmssfff"));
                                images.Add(newPath);
                            }
                        }
                    }
                    else
                    {
                        Android.Net.Uri uri  = data.Data;
                        var             path = GetRealPathFromURI(uri);

                        if (path != null)
                        {
                            //Rotate Image
                            var imageRotated = ImageHelpers.RotateImage(path);
                            var newPath      = ImageHelpers.SaveFile("TmpPictures", imageRotated, System.DateTime.Now.ToString("yyyyMMddHHmmssfff"));
                            images.Add(newPath);
                        }
                    }

                    MessagingCenter.Send <App, List <string> >((App)Xamarin.Forms.Application.Current, "ImagesSelected", images);
                }
            }
        }
Example #13
0
        protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);
            if (requestCode == 1 && resultCode == Result.Ok)
            {
                // This is used to stock file paths
                var files = new List <Classes.File>();

                // Get file(s) from ClipBoard
                if (data != null)
                {
                    // Get ClipData from Intent, null if not multiple ClipData items
                    ClipData clipData = data.ClipData;
                    if (clipData != null)
                    {
                        // Multiple files returned by user
                        for (int i = 0; i < clipData.ItemCount; i++)
                        {
                            // Get ClipData containin uri
                            ClipData.Item item = clipData.GetItemAt(i);

                            // Get file URI
                            Android.Net.Uri uri = item.Uri;

                            // Retreive Stream from uri and add it to files
                            files.Add(new Classes.File(GetFileName(uri), ContentResolver.OpenInputStream(uri), GetFileLength(uri)));
                        }
                    }
                    else
                    {
                        // Single File
                        // Get URI
                        var uri = data.Data;

                        // Retreive Stream from uri and add it to files
                        files.Add(new Classes.File(GetFileName(uri), ContentResolver.OpenInputStream(uri), GetFileLength(uri)));
                    }

                    // Dispose Recources
                    data.Dispose();

                    // Sending Result to the SelectPage
                    MessagingCenter.Send("MyApp", "FilesSent", files);
                }
            }
        }
Example #14
0
        protected override void OnActivityResult(int requestCode, Result resultCode, Intent intent)
        {
            base.OnActivityResult(requestCode, resultCode, intent);
            FacebookClientManager.OnActivityResult(requestCode, resultCode, intent);
            GoogleClientManager.OnAuthCompleted(requestCode, resultCode, intent);

            //If we are calling multiple image selection, enter into here and return photos and their filepaths.
            if (requestCode == OPENGALLERYCODE && resultCode == Result.Ok)
            {
                List <string> images = new List <string>();

                if (intent != null)
                {
                    //Separate all photos and get the path from them all individually.
                    ClipData clipData = intent.ClipData;
                    if (clipData != null)
                    {
                        for (int i = 0; i < clipData.ItemCount; i++)
                        {
                            ClipData.Item   item = clipData.GetItemAt(i);
                            Android.Net.Uri uri  = item.Uri;
                            var             path = GetRealPathFromURI(uri);

                            if (path != null)
                            {
                                images.Add(path);
                            }
                        }
                    }
                    else
                    {
                        Android.Net.Uri uri  = intent.Data;
                        var             path = GetRealPathFromURI(uri);

                        if (path != null)
                        {
                            images.Add(path);
                        }
                    }

                    //Send our images to the carousel view.
                    MessagingCenter.Send <App, List <string> >((App)Xamarin.Forms.Application.Current, "ImagesSelectedAndroid", images);
                }
            }
        }
Example #15
0
        public void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            ObservableCollection <MediaFile> mediaPicked = null;

            if (requestCode == MultiPickerResultCode)
            {
                if (resultCode == Result.Ok)
                {
                    mediaPicked = new ObservableCollection <MediaFile>();
                    if (data != null)
                    {
                        ClipData clipData = data.ClipData;
                        if (clipData != null)
                        {
                            for (int i = 0; i < clipData.ItemCount; i++)
                            {
                                ClipData.Item   item  = clipData.GetItemAt(i);
                                Android.Net.Uri uri   = item.Uri;
                                var             media = CreateMediaFileFromUri(uri);
                                if (media != null)
                                {
                                    mediaPicked.Add(media);
                                    OnMediaPicked?.Invoke(this, media);
                                }
                            }
                        }
                        else
                        {
                            Android.Net.Uri uri   = data.Data;
                            var             media = CreateMediaFileFromUri(uri);
                            if (media != null)
                            {
                                mediaPicked.Add(media);
                                OnMediaPicked?.Invoke(this, media);
                            }
                        }

                        OnMediaPickedCompleted?.Invoke(this, mediaPicked);
                    }
                }

                mediaPickedTcs?.TrySetResult(mediaPicked);
            }
        }
Example #16
0
        protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);

            if (resultCode == Result.Ok)
            {
                if (data != null)
                {
                    if (data.ClipData != null)
                    {
                        ClipData clipData = data.ClipData;

                        if (clipData == null)
                        {
                            return;
                        }

                        System.Console.WriteLine(clipData.ItemCount);

                        List <Android.Net.Uri> photoList = new List <Android.Net.Uri>();

                        for (int i = 0; i < clipData.ItemCount; i++)
                        {
                            ClipData.Item item = clipData.GetItemAt(i);

                            var uri = item.Uri;
                            //ImagePrint(uri);
                            photoList.Add(uri);
                        }

                        listView.Adapter = new MyCustomListAdapter(photoList);
                    }
                    else if (data.Data != null)
                    {
                        List <Android.Net.Uri> photoList = new List <Android.Net.Uri>();
                        Android.Net.Uri        uri       = data.Data;
                        //ImagePrint(uri);
                        photoList.Add(uri);
                        listView.Adapter = new MyCustomListAdapter(photoList);
                    }
                }
            }
        }
Example #17
0
        protected override async void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            if (requestCode == PickImageId)
            {
                if ((resultCode == Result.Ok) && (data != null))
                {
                    InitSpinner();
                    sendStatus.Text = "Connecting...";

                    List <string> files = new List <string>();

                    ClipData clipData = data.ClipData;
                    if (clipData != null)
                    {
                        for (int i = 0; i < clipData.ItemCount; i++)
                        {
                            ClipData.Item item = clipData.GetItemAt(i);
                            var           uri  = item.Uri;
                            files.Add(FilePathHelper.GetPath(this, uri));
                        }
                    }
                    else
                    {
                        Android.Net.Uri uri  = data.Data;
                        var             file = FilePathHelper.GetPath(this, uri);
                        files.Add(file);
                    }

                    if (files.Count == 0)
                    {
                        Finish();
                        return;
                    }

                    await SendFiles(files.ToArray());
                }
                else
                {
                    Finish();
                    return;
                }
            }
        }
Example #18
0
        protected override void OnActivityResult(int requestCode, Result resultCode, Intent intent)
        {
            base.OnActivityResult(requestCode, resultCode, intent);

            List <string> mediaPicked = null;

            if ((resultCode == Result.Ok) && (intent != null))
            {
                //Android.Net.Uri uri = intent.Data;
                //Stream stream = ContentResolver.OpenInputStream(uri);
                //
                //// Set the Stream as the completion of the Task
                //PickImageTaskCompletionSource.SetResult(stream);
                //mediaPicked = new IList<Stream>();

                mediaPicked = new List <string>();

                ClipData clipData = intent.ClipData;
                if (clipData != null)
                {
                    for (int i = 0; i < clipData.ItemCount; i++)
                    {
                        ClipData.Item item = clipData.GetItemAt(i);
                        //Android.Net.Uri uri = item.Uri;
                        //Stream stream = ContentResolver.OpenInputStream(uri);
                        //if (stream != null)
                        //{
                        //    mediaPicked.Add(stream);
                        //}
                        mediaPicked.Add(getPath(item.Uri));
                        ///external/images/media/424869
                    }
                }

                PickImageTaskCompletionSource.SetResult(mediaPicked);
                mediaPicked = new List <string>();
            }
            else
            {
                PickImageTaskCompletionSource.SetResult(null);
            }
        }
        bool ProcessDrop(DragEvent evt, ImageView imageView)
        {
            // Attempt to parse clip data with expected format: category||entry_id.
            // Ignore event if data does not conform to this format.
            ClipData data = evt.ClipData;

            if (data != null)
            {
                if (data.ItemCount > 0)
                {
                    ClipData.Item item     = data.GetItemAt(0);
                    String        textData = (String)item.Text;
                    if (textData != null)
                    {
                        StringTokenizer tokenizer = new StringTokenizer(textData, "||");
                        if (tokenizer.CountTokens() != 2)
                        {
                            return(false);
                        }
                        int category = -1;
                        int entryId  = -1;
                        try {
                            category = Java.Lang.Integer.ParseInt(tokenizer.NextToken());
                            entryId  = Java.Lang.Integer.ParseInt(tokenizer.NextToken());
                        } catch (NumberFormatException exception) {
                            return(false);
                        }
                        UpdateContentAndRecycleBitmap(category, entryId);
                        // Update list fragment with selected entry.
                        TitlesFragment titlesFrag = (TitlesFragment)
                                                    FragmentManager.FindFragmentById(Resource.Id.frag_title);
                        titlesFrag.SelectPosition(entryId);
                        return(true);
                    }
                }
            }
            return(false);
        }
Example #20
0
 protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
 {
     if (requestCode == 1)
     {
         #region GetDataFromGallery
         UploadPrescription UploadPrescription;
         var str = "";
         base.OnActivityResult(requestCode, resultCode, data);
         if (resultCode == Result.Ok)
         {
             int           Totalsize = 0;
             List <byte[]> images    = new List <byte[]>();
             List <string> imagename = new List <string>();
             var           IsValid   = true;
             if (data != null)
             {
                 ClipData clipData = data.ClipData;
                 if (clipData != null)
                 {
                     if (clipData.ItemCount > 4)
                     {
                         MessagingCenter.Send <App, string>((App)Xamarin.Forms.Application.Current, "imagevalidation", "Please Upload Select 4 Images");
                         return;
                     }
                     for (int i = 0; i < clipData.ItemCount; i++)
                     {
                         ClipData.Item   item = clipData.GetItemAt(i);
                         Android.Net.Uri uri  = item.Uri;
                         var             path = GetRealPathFromURI(uri);
                         if (path != null)
                         {
                             //Rotate Image
                             var imageRotated = DependencyService.Get <IImageHelpers>().RotateImage(path);
                             Totalsize += imageRotated.Length;
                             if (Totalsize > 10000000)
                             {
                                 IsValid = false;
                                 MessagingCenter.Send <App, string>((App)Xamarin.Forms.Application.Current, "imagevalidation", "Image Cannot be Greater than 10 MB");
                                 break;
                             }
                             //var newPath = ImageHelpers.SaveFile("TmpPictures", imageRotated, System.DateTime.Now.ToString("yyyyMMddHHmmssfff"));
                             //  str = System.Convert.ToBase64String(imageRotated);
                             images.Add(imageRotated);
                             imagename.Add(uri.LastPathSegment);
                             //   images.Add(newPath);
                         }
                     }
                 }
                 else
                 {
                     Android.Net.Uri uri  = data.Data;
                     var             path = GetRealPathFromURI(uri);
                     if (path != null)
                     {
                         //Rotate Image
                         var imageRotated = DependencyService.Get <IImageHelpers>().RotateImage(path);
                         Totalsize += imageRotated.Length;
                         if (Totalsize > 10000000)
                         {
                             IsValid = false;
                             MessagingCenter.Send <App, string>((App)Xamarin.Forms.Application.Current, "imagevalidation", "Image Cannot be Greater than 10 MB");
                         }
                         //  var newPath = ImageHelpers.SaveFile("TmpPictures", imageRotated, System.DateTime.Now.ToString("yyyyMMddHHmmssfff"));
                         str = System.Convert.ToBase64String(imageRotated);
                         images.Add(imageRotated);
                         imagename.Add(uri.LastPathSegment);
                         //images.Add(str);
                         //images.Add(newPath);
                     }
                 }
                 if (IsValid)
                 {
                     MessagingCenter.Send <App, List <byte[]> >((App)Xamarin.Forms.Application.Current, "ImagesSelected", images);
                 }
                 MessagingCenter.Send <App, List <string> >((App)Xamarin.Forms.Application.Current, "ImagesSelectedName", imagename);
             }
         }
         #endregion GetDataFromGallery
     }
     else
     {
     }
 }
Example #21
0
        /// <summary>
        /// Gets the current content that is stored in the clipboard object.
        /// </summary>
        /// <returns>Contains the content of the Clipboard.</returns>
        public static DataPackageView GetContent()
        {
#if __ANDROID__
            if (_clipboardManager.HasPrimaryClip)
            {
                DataPackage package = new DataPackage();

                if (_clipboardManager.PrimaryClipDescription != null)
                {
                    package.Properties.Description = _clipboardManager.PrimaryClipDescription.Label;
                }

                ClipData data = _clipboardManager.PrimaryClip;
                for (int i = 0; i < data.ItemCount; i++)
                {
                    ClipData.Item item = data.GetItemAt(i);
                    if (!string.IsNullOrEmpty(item.Text))
                    {
                        package.SetText(item.Text);
                    }
                    else if (item.Uri != null)
                    {
                        package.SetWebLink(new Uri(item.Uri.ToString()));
                    }
                }

                return(package.GetView());
            }
#elif __IOS__
            if (UIPasteboard.General.Count > 0)
            {
                DataPackage package = new DataPackage();
                var         str     = UIPasteboard.General.String;
                if (!string.IsNullOrEmpty(str))
                {
                    package.SetText(str);
                }
                var url = UIPasteboard.General.Url;
                if (url != null)
                {
                    package.SetWebLink(new Uri(url.ToString()));
                }

                return(package.GetView());
            }
#elif __MAC__
            if (!string.IsNullOrEmpty(NSPasteboard.GeneralPasteboard.GetAvailableTypeFromArray(new string[] { NSPasteboard.NSPasteboardTypeString })))
            {
                DataPackage package = new DataPackage();
                string      str     = NSPasteboard.GeneralPasteboard.GetStringForType(NSPasteboard.NSPasteboardTypeString);
                if (!string.IsNullOrEmpty(str))
                {
                    package.SetText(str);
                }

                return(package.GetView());
            }
#elif WINDOWS_PHONE_APP
            if (_on10)
            {
                var dpv = _type10.GetRuntimeMethod("GetContent", new Type[0]).Invoke(null, new object[0]) as Windows.ApplicationModel.DataTransfer.DataPackageView;
                if (dpv != null)
                {
                    DataPackage package = new DataPackage();

                    if (!string.IsNullOrEmpty(dpv.Properties.Title))
                    {
                        package.Properties.Title = dpv.Properties.Title;
                    }
                    if (!string.IsNullOrEmpty(dpv.Properties.Description))
                    {
                        package.Properties.Description = dpv.Properties.Description;
                    }

                    foreach (string format in dpv.AvailableFormats)
                    {
                        if (format == StandardDataFormats.ApplicationLink || format == StandardDataFormats.WebLink || format == StandardDataFormats.Text)
                        {
                            Task <object> t = Task.Run <object>(async() =>
                            {
                                return(await dpv.GetDataAsync(format));
                            });
                            t.Wait();

                            package.SetData(format, t.Result);
                        }
                    }

                    return(package.GetView());
                }
            }
#elif WIN32
            string txt = GetText();
            if (!string.IsNullOrEmpty(txt))
            {
                DataPackage package = new DataPackage();
                package.SetText(txt);
                return(package.GetView());
            }
#else
            throw new PlatformNotSupportedException();
#endif
            return(null);
        }
Example #22
0
 public ClipData.Item this[int index] => m_ClipData.GetItemAt(index);
Example #23
0
        protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            string SaveImageDir = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/Download/InterView/";

            base.OnActivityResult(requestCode, resultCode, data);

            //如果使用者要選Image 且 是要選Image
            if (resultCode == Result.Ok && requestCode == ImagePick)
            {
                if (data.Data != null)
                {
                    //再確認一次Appdir是否存在
                    this.DirCheck(SaveImageDir);
                    //var imageView = FindViewById<ImageView> (Resource.Id.myImageView);
                    //imageView.SetImageURI (data.Data);
                    //得到Url物件,送去處理,回傳真實路徑
                    string Source = getPathFromUri(this, data.Data);

                    //將回傳路徑丟進JAVA.IO.FILE利用NAME得到檔案名稱,組出新路徑跟檔案名稱
                    string Des = System.IO.Path.Combine(SaveImageDir + "/Slides", new Java.IO.File(Source).Name);
                    if (new Java.IO.File(Des).Exists())
                    {
                        //搬完檔案之後重新載入Slides
                        //this.copy(new Java.IO.File(Source), new Java.IO.File(Des));

                        #region 縮圖
                        BitmapFactory.Options options = new BitmapFactory.Options();
                        options.InPreferredConfig = Bitmap.Config.Argb8888;
                        Bitmap bitmap = BitmapFactory.DecodeFile(Source, options);

                        double scale = 1f / 5f;

                        Bitmap resizedBitmap = Bitmap.CreateScaledBitmap(
                            bitmap,
                            (Int32)(bitmap.Width * scale),
                            (Int32)(bitmap.Height * scale),
                            false
                            );

                        Stream output = new FileStream(Des, FileMode.Create);
                        resizedBitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, output);
                        output.Flush();
                        output.Close();
                        #endregion

                        gridviewShow.Adapter = new GridViewAdapter(this, queryFilesName(FindPngInPath(AppDir + "/Slides", visibleThings)));
                    }
                    else
                    {
                        #region 縮圖
                        BitmapFactory.Options options = new BitmapFactory.Options();
                        options.InPreferredConfig = Bitmap.Config.Argb8888;
                        Bitmap bitmap = BitmapFactory.DecodeFile(Source, options);

                        double scale = 1f / 4f;

                        Bitmap resizedBitmap = Bitmap.CreateScaledBitmap(
                            bitmap,
                            (Int32)(bitmap.Width * scale),
                            (Int32)(bitmap.Height * scale),
                            false
                            );

                        Stream output = new FileStream(Des, FileMode.Create);
                        resizedBitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, output);
                        output.Flush();
                        output.Close();
                        #endregion

                        gridviewShow.Adapter = new GridViewAdapter(this, queryFilesName(FindPngInPath(AppDir + "/Slides", visibleThings)));
                    }
                }
                else
                {
                    ClipData clipData = data.ClipData;
                    int      count    = clipData.ItemCount;
                    if (count > 0)
                    {
                        Android.Net.Uri[] uris = new Android.Net.Uri[count];
                        for (int i = 0; i < count; i++)
                        {
                            uris[i] = clipData.GetItemAt(i).Uri;
                            string Source = GetPathToImage(uris[i]);
                            string Des    = System.IO.Path.Combine(SaveImageDir, new Java.IO.File(Source).Name);
                            if (new Java.IO.File(Des).Exists())
                            {
                                this.copy(new Java.IO.File(Source), new Java.IO.File(Des));
                            }
                            this.copy(new Java.IO.File(Source), new Java.IO.File(Des));
                        }
                    }
                }
            }
            //如果使用者白目不選檔案
            if (resultCode == Result.Canceled)
            {
                //NotThink
            }
            //如果選擇的是 PDf
            if (resultCode == Result.Ok && requestCode == PdfPick)
            {
                string ForPdfDir = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;

                var uris = new List <Android.Net.Uri>();
                if (data.Data != null)
                {
                    uris.Add(data.Data);
                }
                else
                {
                    for (int i = 0; i < data.ClipData.ItemCount; i++)
                    {
                        uris.Add(data.ClipData.GetItemAt(i).Uri);
                    }
                }

                foreach (var fileUri in uris)
                {
                    string Source = getPathFromUri(this, fileUri);

                    Java.IO.File FileSou = new Java.IO.File(Source);

                    string Des = System.IO.Path.Combine(ForPdfDir, "DownLoad/InterView/Slides/" + FileSou.Name);

                    Java.IO.File FileDes = new Java.IO.File(Des);

                    this.copy(FileSou, FileDes);
                    this.WritePngToDir(Source, Des);
                }
                gridviewShow.Adapter = new GridViewAdapter(this, queryFilesName(FindPngInPath(AppDir + "/Slides", visibleThings)));
            }
        }
Example #24
0
        protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);


            //If we are calling multiple image selection, enter into here and return photos and their filepaths.
            if (requestCode == OPENGALLERYCODE && resultCode == Result.Ok)
            {
                List <string> images    = new List <string>();
                List <Stream> imgStream = new List <Stream>();

                if (data != null)
                {
                    //Separate all photos and get the path from them all individually.
                    ClipData clipData = data.ClipData;
                    if (clipData != null)
                    {
                        for (int i = 0; i < clipData.ItemCount; i++)
                        {
                            ClipData.Item   item = clipData.GetItemAt(i);
                            Android.Net.Uri uri  = item.Uri;

                            var path = GetRealPathFromURI(uri);


                            // TESTING RESIZE !!
                            byte[] file = this.Resize(uri, path, 60, 60);

                            //byte[] file = File.ReadAllBytes(path);
                            System.IO.Stream strm = new MemoryStream(file);

                            if (path != null)
                            {
                                imgStream.Add(strm);
                                images.Add(path);
                            }
                        }
                    }
                    else
                    {
                        Android.Net.Uri uri  = data.Data;
                        var             path = GetRealPathFromURI(uri);


                        // TESTING RESIZE !!
                        byte[] file = this.Resize(uri, path, 60, 60);

                        // byte[] file = File.ReadAllBytes(path);
                        System.IO.Stream strm = new MemoryStream(file);


                        if (path != null)
                        {
                            imgStream.Add(strm);
                            images.Add(path);
                        }
                    }

                    //Send our images to the carousel view.
                    MessagingCenter.Send(imgStream, "ImagesStreamAndroid"); // New test
                    MessagingCenter.Send(images, "ImagesSelectedAndroid");
                }
            }
        }
Example #25
0
        public override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);
            if ((resultCode == Result.Ok) && (data != null))
            {
                switch (requestCode)
                {
                case 0:
                    images.Add((Bitmap)data.Extras.Get("data"));
                    break;

                case 1:
                    List <Bitmap> bitmapy  = new List <Bitmap>();
                    ClipData      clipData = data.ClipData;
                    try
                    {
                        if (clipData.ItemCount > 0)
                        {
                            for (int i = 0; i < clipData.ItemCount; i++)
                            {
                                Android.Net.Uri imageUri = clipData.GetItemAt(i).Uri;
                                try
                                {
                                    bitmapy.Add(MediaStore.Images.Media.GetBitmap(this.Activity.ContentResolver, imageUri));
                                }
                                catch
                                {
                                }
                            }
                            if (bitmapy.Count + images.Count > 5)
                            {
                                Toast.MakeText(this.Activity, GetString(Resource.String.tooManyPhotosSelected), ToastLength.Short).Show();
                            }
                            int j = 0;
                            while (images.Count < 5 && j < bitmapy.Count)
                            {
                                images.Add(bitmapy[j]);
                                j++;
                            }
                        }
                    }
                    catch
                    {
                        try
                        {
                            images.Add(MediaStore.Images.Media.GetBitmap(this.Activity.ContentResolver, data.Data));
                        }
                        catch
                        {
                        }
                    }
                    break;

                case 2:
                    images[photoi] = (Bitmap)data.Extras.Get("data");
                    break;

                case 3:
                    try
                    {
                        images[photoi] =
                            MediaStore.Images.Media.GetBitmap(this.Activity.ContentResolver, data.Data);
                    }
                    catch
                    {
                    }
                    break;
                }
                Refresh();
            }
        }