예제 #1
0
        public override void OnActivityResult(int requestCode, int resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);

            if (requestCode == SelectUserImagePhotoRequestCode && resultCode == (int)Android.App.Result.Ok)
            {
                if (data == null)
                {
                    return;
                }

                using (var bitmap = MediaStore.Images.Media.GetBitmap(Activity.ContentResolver, data.Data))
                {
                    var bytes = ImageUtils.ImagetoByteArray(bitmap, 100);
                    if (bytes == null)
                    {
                        return;
                    }

                    UserProfileImage.SetImageResource(Resource.Drawable.ic_noprofilewhite);
                    UserProfileImage.ShowLoadingIndicators();

                    var me        = RealmUserServices.GetMe(false);
                    var localUrl  = me.LocalProfileImageURL;
                    var remoteUrl = me.RemoteProfileImageURL;
                    var fileName  = "Profile.png";

                    S3Utils.UploadPhoto(bytes, localUrl, remoteUrl, fileName, () =>
                    {
                        if (Activity == null)
                        {
                            return;
                        }
                        Activity.RunOnUiThread(async() =>
                        {
                            await ImageService.Instance.InvalidateCacheAsync(FFImageLoading.Cache.CacheType.All);//.InvalidateCacheEntryAsync(me.RemoteProfileImageURL, FFImageLoading.Cache.CacheType.All);
                            UserProfileImage.SetImage(me.GetRemoteProfileImageUrlCached(), Resource.Drawable.ic_noprofilewhite, Resource.Drawable.ic_noprofilewhite, me.RemoteProfileImageURL, WebImageView.DefaultCircleTransformation);
                        });
                    }, null);
                };
            }
        }
예제 #2
0
        public async void DownloadFacebookImage(WebImageView imageView, string localUrl, string remoteUrl, string fileName)
        {
            if (imageView == null)
            {
                return;
            }

            var me = RealmUserServices.GetMe(false);

            if (me == null)
            {
                return;
            }

            var url = me.GetFacebookProfilePictureUrl();

            if (url == null)
            {
                return;
            }

            imageView.SetImageResource(Resource.Drawable.ic_noprofilewhite);

            //required to remove it here otherwise itll load form cache
            await ImageService.Instance.InvalidateCacheEntryAsync(me.RemoteProfileImageURL, FFImageLoading.Cache.CacheType.All, true);

            ImageService.Instance.LoadUrl(url).Success(async(FFImageLoading.Work.ImageInformation arg1, FFImageLoading.Work.LoadingResult arg2) =>
            {
                if (arg1 == null)
                {
                    return;
                }

                var image = await ImageUtils.GetImageAtPath(arg1.FilePath);
                if (image == null)
                {
                    return;
                }

                var bytes = ImageUtils.ImagetoByteArray(image, 100);
                if (bytes == null)
                {
                    return;
                }

                S3Utils.UploadPhoto(bytes, localUrl, remoteUrl, fileName, () =>
                {
                    if (Activity == null)
                    {
                        return;
                    }
                    Activity.RunOnUiThread(async() =>
                    {
                        await ImageService.Instance.InvalidateCacheAsync(FFImageLoading.Cache.CacheType.All);//.InvalidateCacheEntryAsync(me.RemoteProfileImageURL, FFImageLoading.Cache.CacheType.All);
                        imageView.SetImage(me.GetRemoteProfileImageUrlCached(), Resource.Drawable.ic_noprofilewhite, Resource.Drawable.ic_noprofilewhite, me.RemoteProfileImageURL, WebImageView.DefaultCircleTransformation);
                    });
                }, null);
            })
            .Finish((FFImageLoading.Work.IScheduledWork obj) =>
            {
            })
            .Transform(WebImageView.DefaultCircleTransformation)
            .Error(exception =>
            {
                imageView.ShowLoadingIndicators();
                return;
            })
            .Into(imageView);
        }