Esempio n. 1
0
        /// <summary>
        /// saves bitmap in storage according to image name given
        /// </summary>
        /// <param name="bitmap">bitmap - the picture</param>
        /// <param name="imgName">image name to put in storage</param>
        /// <returns>task th</returns>
        public Task SaveImage(Bitmap bitmap, string imgName)
        {
            StorageReference storageReference = FirebaseStorage.Instance.GetReference(Constants.FS_IMAGES + imgName);

            Byte[] imgBytes = BitmapFunctions.BitmapToByteArray(bitmap);
            return(storageReference.PutBytes(imgBytes));
        }
Esempio n. 2
0
        private async void ProfileChooserFrag_OnCropComplete(object sender, ProfileChooserFragment.CropCompleteEventArgs e)
        {
            try
            {
                ShowLoading();
                var userId = SessionManager.GetFirebaseAuth().CurrentUser.Uid;
                StorageReference storageReference = FirebaseStorage.Instance.GetReference("userProfile/" + userId);

                var stream = new System.IO.MemoryStream();
                var bitmap = MediaStore.Images.Media.GetBitmap(ContentResolver, e.imageUri);
                await bitmap.CompressAsync(Bitmap.CompressFormat.Webp, 70, stream);

                var imgArray = stream.ToArray();
                storageReference.PutBytes(imgArray)
                .AddOnCompleteListener(new OncompleteListener((t) =>
                {
                    if (!t.IsSuccessful)
                    {
                        throw t.Exception;
                    }

                    Glide.With(this).Load(e.imageUri).Into(profileImageView);
                    DismissLoading();
                }));
            }
            catch (Exception)
            {
            }
        }
        private void SaveImage()
        {
            picDisplayFragment.DismissAllowingStateLoss();
            var storeRef = FirebaseStorage.Instance.GetReferenceFromUrl("gs://taxiproject-185a4.appspot.com");

            if (AppDataHelper.GetCurrentUser() != null)
            {
                var stream = new MemoryStream();
                bitmap.Compress(Bitmap.CompressFormat.Webp, 80, stream);
                byte[] bitmapArray = stream.ToArray();

                imageRef = storeRef.Child("driverProfilePics/" + AppDataHelper.GetCurrentUser().Uid);
                imageRef.PutBytes(bitmapArray).ContinueWithTask(new ContinuationTask(t =>
                {
                    if (!t.IsSuccessful)
                    {
                        OnboardingActivity.CloseProgressDialog();
                        Toast.MakeText(Activity, t.Exception.Message, ToastLength.Long).Show();
                    }
                })).AddOnCompleteListener(new OnCompleteListener(t =>
                {
                    if (t.IsSuccessful)
                    {
                        var driverRef = AppDataHelper.GetDatabase().GetReference($"Drivers/{AppDataHelper.GetCurrentUser().Uid}");
                        driverRef.Child("profile_img_url").SetValue(t.Result.ToString()).AddOnCompleteListener(new OnCompleteListener(t3 =>
                        {
                            if (!t3.IsSuccessful)
                            {
                                Toast.MakeText(Activity, t3.Exception.Message, ToastLength.Long).Show();
                            }
                            OnboardingActivity.CloseProgressDialog();

                            driverRef.Child(StringConstants.StageofRegistration).SetValue($"{RegistrationStage.CarRegistering}")
                            .AddOnSuccessListener(new OnSuccessListener(r2 =>
                            {
                                ProfileCaptured.Invoke(this, new EventArgs());
                                UpdateUiOnCpture(CaptureType.ProfilePic);
                                OnboardingActivity.CloseProgressDialog();
                            })).AddOnFailureListener(new OnFailureListener(e2 =>
                            {
                                OnboardingActivity.CloseProgressDialog();
                                OnboardingActivity.ShowErrorDialog("Something went wrong, please retry");
                            }));
                        }));
                    }
                    else
                    {
                        OnboardingActivity.CloseProgressDialog();
                        OnboardingActivity.ShowErrorDialog("Something went wrong, please retry");
                    }
                }));
            }
            else
            {
                return;
            }
        }
Esempio n. 4
0
        private void SubmitButton_Click(object sender, EventArgs e)
        {
            HashMap postMap = new HashMap();

            postMap.Put("author", AppDataHelper.GetFullName());
            postMap.Put("owner_id", AppDataHelper.GetFirebaseAuth().CurrentUser.Uid);
            postMap.Put("post_date", DateTime.Now.ToString());
            postMap.Put("post_body", postEditText.Text);

            DocumentReference newPostRef = AppDataHelper.GetFirestore().Collection("posts").Document();
            string            postKey    = newPostRef.Id;

            postMap.Put("image_id", postKey);


            ShowProgressDialogue("Saving Information ...");

            // Save Post Image to Firebase Storaage
            StorageReference storageReference = null;

            if (fileBytes != null)
            {
                storageReference = FirebaseStorage.Instance.GetReference("postImages/" + postKey);
                storageReference.PutBytes(fileBytes)
                .AddOnSuccessListener(taskCompletionListeners)
                .AddOnFailureListener(taskCompletionListeners);
            }

            // Image Upload Success Callback
            taskCompletionListeners.Sucess += (obj, args) =>
            {
                if (storageReference != null)
                {
                    storageReference.DownloadUrl.AddOnSuccessListener(downloadUrlListener);
                }
            };

            // Image Download URL Callback
            downloadUrlListener.Sucess += (obj, args) =>
            {
                string downloadUrl = args.Result.ToString();
                postMap.Put("download_url", downloadUrl);

                // Save post to Firebase Firestore
                newPostRef.Set(postMap);
                CloseProgressDialogue();
                Finish();
            };


            // Image Upload Failure Callback
            taskCompletionListeners.Failure += (obj, args) =>
            {
                Toast.MakeText(this, "Upload was not completed", ToastLength.Short).Show();
            };
        }
Esempio n. 5
0
 private void BtnUpload_Click(object sender, EventArgs e)
 {
     if (imageArray != null)
     {
         storageRef = FirebaseStorage.Instance.GetReference("driverImages/profileImage");
         storageRef.PutBytes(imageArray)
         .AddOnSuccessListener(this, taskCompletionListener)
         .AddOnFailureListener(this, taskCompletionListener);
     }
 }
Esempio n. 6
0
        void Regsiteruser(string email, string password)
        {
            mAuth.CreateUserWithEmailAndPassword(email, password);

            // Add Rider iamge
            storageReference = FirebaseStorage.Instance.GetReference("RiderIamges/" + PublicFunctions.generateID());
            storageReference.PutBytes(imageArray)
            .AddOnSuccessListener(this)
            .AddOnFailureListener(this);
        }
Esempio n. 7
0
    private void Btn_Click(object sender, EventArgs e)
    {
        //upload to firebase storage
        for (int i = 0; i < 5; i++)
        {
            StorageReference oneRef = imagesRef.Child("one" + i + ".png");
            Bitmap           bitmap = BitmapFactory.DecodeResource(this.Resources, Resource.Drawable.one);
            MemoryStream     stream = new MemoryStream();
            bitmap.Compress(Bitmap.CompressFormat.Png, 100, stream);
            byte[] data = stream.ToArray();

            UploadTask uploadtask = oneRef.PutBytes(data);
            uploadtask.AddOnSuccessListener(this);
            uploadtask.AddOnFailureListener(this);
        }
    }
        void ConnectViews()
        {
            Fnametext   = (TextInputLayout)FindViewById(Resource.Id.fullnametext);
            emtext      = (TextInputLayout)FindViewById(Resource.Id.emailtext);
            passtext    = (TextInputLayout)FindViewById(Resource.Id.passwordtext);
            submit      = (Button)FindViewById(Resource.Id.submit_btn);
            login       = (Button)FindViewById(Resource.Id.login_btn);
            googlelogin = (Button)FindViewById(Resource.Id.googlelogin_btn);
            profimg     = (ImageView)FindViewById(Resource.Id.profileiv);

            gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DefaultSignIn)
                  .RequestIdToken("228992356302-n0p15tka3tqvhps5e7ra7scrs6fqg0p0.apps.googleusercontent.com")
                  .RequestEmail().Build();

            googleapiclient = new GoogleApiClient.Builder(this).AddApi(Auth.GOOGLE_SIGN_IN_API, gso).Build();

            googleapiclient.Connect();


            submit.Click += (sender, e) =>
            {
                if (imageArray == null)
                {
                    imageArray = System.IO.File.ReadAllBytes("Resources/Images/DefaultUser.png");
                }

                storageReference = FirebaseStorage.Instance.GetReference($"users/{Fnametext.EditText.Text}_image");
                storageReference.PutBytes(imageArray);

                storageReference.GetDownloadUrl().AddOnSuccessListener(this);


                HashMap map = new HashMap();
                map.Put("fullname", Fnametext.EditText.Text);
                map.Put("email", emtext.EditText.Text);
                map.Put("password", passtext.EditText.Text);
                map.Put("profileimage", url);



                DocumentReference docRef = database.Collection("users").Document();

                docRef.Set(map);

                Toast.MakeText(this, "User Registered", ToastLength.Long).Show();
                FetchUserData();
            };


            login.Click += (sender, e) =>
            {
                string loginfname = Fnametext.EditText.Text.ToString();
                string loginemail = emtext.EditText.Text.ToString();
                string loginpass  = passtext.EditText.Text.ToString();

                //listOfUser=userservice.FetchUserData("user");

                //while (listOfUser.Count == 0)
                //{
                //}



                foreach (var item in listOfUser)
                {
                    Console.WriteLine("Fullname: " + item.Fullname);
                }
                foreach (var item in listOfUser)
                {
                    if (item.Fullname.Equals(loginfname) && item.Email.Equals(loginemail) && item.password.Equals(loginpass))
                    {
                        Intent secondpageintent = new Intent(this, typeof(SecondPageActivity));
                        secondpageintent.PutExtra("accepteduser", JsonConvert.SerializeObject(item));
                        StartActivity(secondpageintent);
                        return;
                    }
                }

                Toast.MakeText(this, "Invalid Credentials", ToastLength.Long).Show();
                return;
            };

            profimg.Click += (sender, e) =>
            {
                RequestPermissions(permissionGroup, 0);

                var trans = SupportFragmentManager.BeginTransaction();
                uploadimg = new UploadImageFragment();

                uploadimg.Show(trans, "profilepicmethod");

                uploadimg.uploadImage += (Bitmap bitmap, byte[] imgary) =>
                {
                    profimg.SetImageBitmap(bitmap);
                    imageArray = imgary;
                    uploadimg.Dismiss();
                };
            };



            googlelogin.Click += (sender, e) =>
            {
                var intent = Auth.GoogleSignInApi.GetSignInIntent(googleapiclient);
                StartActivityForResult(intent, 1);
            };
        }
Esempio n. 9
0
        private void SubmitButton_Click(object sender, EventArgs e)
        {
            HashMap postMap = new HashMap();

            postMap.Put("author", AppDataHelper.GetFullname());
            postMap.Put("owner_id", AppDataHelper.GetFirebaseAuth().CurrentUser.Uid);

            postMap.Put("post_date", DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss tt"));
            postMap.Put("post_body", postEditText.Text);

            //this will return an instance of our firestore
            //this will also generate an id
            DocumentReference newPostRef = AppDataHelper.GetFirestore().Collection("posts").Document();
            //retrieve the document ID created
            string postKey = newPostRef.Id;

            postMap.Put("image_id", postKey);

            ShowProgressDialogue("Posting..");

            // Save post image to firebase storage
            StorageReference storageReference = null;

            //check if the filebytes is not null
            if (fileBytes != null)
            {
                //This is the location where our images will be uploaded in the Firebase Storage
                //"postImages/" + "photo" is the location + imagename
                storageReference = FirebaseStorage.Instance.GetReference("postImages/" + postKey);

                //this code will save our image file to firebase storage
                storageReference.PutBytes(fileBytes)
                .AddOnSuccessListener(taskCompletionListeners)
                .AddOnFailureListener(taskCompletionListeners);
            }
            taskCompletionListeners.Success += (obj, EventArgs args) =>
            {
                //check if storageReference is null
                if (storageReference != null)
                {
                    storageReference.DownloadUrl.AddOnSuccessListener(downloadUrlListener);
                }

                //to get hold of the URL
                downloadUrlListener.Success += (obj, args) =>
                {
                    string downloadUrl = args.Result.ToString();
                    postMap.Put("download_url", downloadUrl);

                    //Save post to Firebase Firestore
                    newPostRef.Set(postMap);

                    CloseProgressDialogue();
                    Finish();
                };
            };

            taskCompletionListeners.Failure += (obj, args) =>
            {
                Toast.MakeText(this, "Upload failed!", ToastLength.Short).Show();
                CloseProgressDialogue();
            };
        }
Esempio n. 10
0
        private void SignUp(string fullname, string email, string password, string confirmPassword)
        {
            //Register funcionality
            if (!Helpers.Helper.IsValidEmail(email))
            {
                Toast.MakeText(this, "Please provide a valid email", ToastLength.Short).Show();
                return;
            }
            else if (password != confirmPassword)
            {
                Toast.MakeText(this, "Passwords does not match", ToastLength.Short).Show();
                return;
            }
            ShowDialog("Registering...");
            auth.CreateUserWithEmailAndPassword(email, password)
            .AddOnFailureListener(registrationListener)
            .AddOnSuccessListener(registrationListener);

            string            downloadUrl      = "";
            HashMap           userMap          = new HashMap();
            StorageReference  storageReference = null;
            DocumentReference userReference    = null;

            //Registration Success
            registrationListener.Success += (s, args) =>
            {
                userReference = database
                                .Collection("users")
                                .Document(auth.CurrentUser.Uid);

                string userId = userReference.Id;
                userMap.Put("email", email);
                userMap.Put("fullname", fullname);
                userReference.Set(userMap);
                SetupPrototipeCollections();
                if (fileBytes != null)
                {
                    Console.WriteLine("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
                    storageReference = FirebaseStorage.Instance.GetReference("chatAppAvatars/" + userId);
                    storageReference.PutBytes(fileBytes)
                    .AddOnSuccessListener(listener)
                    .AddOnFailureListener(listener);
                }
                else
                {
                    CloseDialog();
                    StartActivity(typeof(LoginActivity));
                    Finish();
                    Toast.MakeText(this, "Registration succeed", ToastLength.Short).Show();
                    return;
                }
            };

            //Registration Failure callback
            registrationListener.Failure += (f, args) =>
            {
                CloseDialog();
                Toast.MakeText(this, "Registration failed due to: " + args.Cause, ToastLength.Short).Show();
            };

            //Image Add  success
            listener.Success += (success, args) =>
            {
                if (storageReference != null)
                {
                    Console.WriteLine("YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY");
                    storageReference.DownloadUrl.AddOnSuccessListener(downloadUrlListener);
                    //storageReference.DownloadUrl.AddOnSuccessListener(downloadUrlListener);
                }
                Console.WriteLine("NUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUL");
            };
            downloadUrlListener.Success += (success, args) =>
            {
                downloadUrl   = args.Result.ToString();
                userReference = database
                                .Collection("users")
                                .Document(auth.CurrentUser.Uid);
                userMap.Put("image_id", downloadUrl);
                userReference.Set(userMap);
                CloseDialog();
                Toast.MakeText(this, "Registration succeed", ToastLength.Short).Show();
                StartActivity(typeof(LoginActivity));
                Finish();
            };
            listener.Failure += (f, args) =>
            {
                Toast.MakeText(this, "Cannot upload the image", ToastLength.Short).Show();
                CloseDialog();
            };
        }
        private void DoneBtn_Click(object sender, EventArgs e)
        {
            doneBtn.Post(async() =>
            {
                postProgress.Visibility = ViewStates.Visible;
                doneBtn.Enabled         = false;
                doneBtn.Text            = "Posting";
                try
                {
                    var stream = new System.IO.MemoryStream();
                    var bitmap = MediaStore.Images.Media.GetBitmap(Context.ContentResolver, uri);
                    await bitmap.CompressAsync(Bitmap.CompressFormat.Webp, 70, stream);
                    var imgArray = stream.ToArray();

                    var postRef    = SessionManager.GetFireDB().GetReference("posts").Push();
                    string imageId = postRef.Key;
                    imageRef       = FirebaseStorage.Instance.GetReference("postImages/" + imageId);
                    imageRef.PutBytes(imgArray).ContinueWithTask(new ContinuationTask(
                                                                     then: t =>
                    {
                        if (!t.IsSuccessful)
                        {
                            throw t.Exception;
                        }
                    })).AddOnCompleteListener(new OncompleteListener(
                                                  onComplete: t =>
                    {
                        if (!t.IsSuccessful)
                        {
                            throw t.Exception;
                        }

                        var postMap = new HashMap();
                        postMap.Put("owner_id", SessionManager.GetFirebaseAuth().CurrentUser.Uid);
                        postMap.Put("post_date", DateTime.UtcNow.ToString());
                        postMap.Put("post_body", commentEt.EditText.Text);
                        postMap.Put("download_url", t.Result.ToString());
                        postMap.Put("image_id", imageId);
                        postMap.Put("post_date", DateTime.UtcNow.ToString());
                        postRef.SetValue(postMap).AddOnCompleteListener(new OncompleteListener(
                                                                            onComplete: task =>
                        {
                            try
                            {
                                if (!task.IsSuccessful)
                                {
                                    throw task.Exception;
                                }

                                DismissAllowingStateLoss();
                                OnPostComplete?.Invoke(this, new EventArgs());
                            }
                            catch (DatabaseException de)
                            {
                                DismissAllowingStateLoss();
                                OnErrorEncounted?.Invoke(this, new ErrorEventArgs {
                                    ErrorMsg = de.Message
                                });
                            }
                        }));
                        postRef.KeepSynced(true);
                    }));
                }
                catch (DatabaseException fde)
                {
                    DismissAllowingStateLoss();
                    OnErrorEncounted?.Invoke(this, new ErrorEventArgs {
                        ErrorMsg = fde.Message
                    });
                }
                catch (FirebaseNetworkException fne)
                {
                    DismissAllowingStateLoss();
                    OnErrorEncounted?.Invoke(this, new ErrorEventArgs {
                        ErrorMsg = fne.Message
                    });
                }
                catch (StorageException se)
                {
                    DismissAllowingStateLoss();
                    OnErrorEncounted?.Invoke(this, new ErrorEventArgs {
                        ErrorMsg = se.Message
                    });
                }
                catch (FirebaseAuthException fae)
                {
                    OnErrorEncounted?.Invoke(this, new ErrorEventArgs {
                        ErrorMsg = fae.Message
                    });
                    DismissAllowingStateLoss();
                }
                catch (Exception ex)
                {
                    DismissAllowingStateLoss();
                    OnErrorEncounted?.Invoke(this, new ErrorEventArgs {
                        ErrorMsg = ex.Message
                    });
                }
            });
        }
Esempio n. 12
0
 public IStorageTransferTask PutBytes(byte[] bytes, IStorageMetadata metadata = null)
 {
     return(metadata == null
         ? _wrapped.PutBytes(bytes).ToAbstract()
         : _wrapped.PutBytes(bytes, metadata.ToNative()).ToAbstract());
 }