Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package codingwithmitch.com.forsale;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.media.Image;
- import android.net.Uri;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.provider.MediaStore;
- import android.provider.SyncStateContract;
- import android.support.annotation.NonNull;
- import android.support.annotation.Nullable;
- import android.support.v4.app.Fragment;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.view.WindowManager;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.ProgressBar;
- import android.widget.Toast;
- //
- import android.net.Uri;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.view.View;
- import android.widget.ImageView;
- import android.widget.Toast;
- import com.asksira.bsimagepicker.BSImagePicker;
- import com.bumptech.glide.Glide;
- import java.net.URI;
- import java.util.ArrayList;
- import java.util.List;
- import com.google.android.gms.tasks.OnFailureListener;
- import com.google.android.gms.tasks.OnSuccessListener;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.database.DatabaseReference;
- import com.google.firebase.database.FirebaseDatabase;
- import com.google.firebase.storage.FirebaseStorage;
- import com.google.firebase.storage.OnProgressListener;
- import com.google.firebase.storage.StorageReference;
- import com.google.firebase.storage.UploadTask;
- import com.nostra13.universalimageloader.core.ImageLoader;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import codingwithmitch.com.forsale.models.Post;
- import codingwithmitch.com.forsale.util.RotateBitmap;
- import codingwithmitch.com.forsale.util.UniversalImageLoader;
- import static android.support.constraint.Constraints.TAG;
- import static android.text.TextUtils.isEmpty;
- /**
- * Created by User on 10/22/2017.
- */
- //public class PostFragment extends Fragment implements SelectPhotoDialog.OnPhotoSelectedListener {
- public class PostFragment extends Fragment implements BSImagePicker.OnMultiImageSelectedListener {
- private ImageView ivImage1, ivImage2, ivImage3, ivImage4, ivImage5, ivImage6;
- private EditText mTitle, mDescription, mPrice, mCountry, mStateProvince, mCity, mContactEmail;
- private Button mPost;
- private ProgressBar mProgressBar;
- private double mProgress = 0;
- private Uri mSelectedUri;
- private Uri mSelectedUri1;
- private Uri mSelectedUri2;
- private Uri mSelectedUri3;
- private Uri mSelectedUri4;
- private Uri mSelectedUri5;
- private Uri mAllUri;
- private byte[] mUploadBytes;
- @Override
- public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- View view = inflater.inflate(R.layout.fragment_post, container, false);
- ivImage1 = view.findViewById(R.id.iv_image1);
- ivImage2 = view.findViewById(R.id.iv_image2);
- ivImage3 = view.findViewById(R.id.iv_image3);
- ivImage4 = view.findViewById(R.id.iv_image4);
- ivImage5 = view.findViewById(R.id.iv_image5);
- ivImage6 = view.findViewById(R.id.iv_image6);
- mTitle = view.findViewById(R.id.input_title);
- mDescription = view.findViewById(R.id.input_description);
- mPrice = view.findViewById(R.id.input_price);
- mCountry = view.findViewById(R.id.input_country);
- mStateProvince = view.findViewById(R.id.input_state_province);
- mCity = view.findViewById(R.id.input_city);
- mContactEmail = view.findViewById(R.id.input_email);
- mPost = view.findViewById(R.id.btn_post);
- mProgressBar = (ProgressBar) view.findViewById(R.id.progressBar);
- getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
- view.findViewById(R.id.tv_multi_selection).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- BSImagePicker pickerDialog = new BSImagePicker.Builder("codingwithmitch.com.forsale.fileprovider")
- .setMaximumDisplayingImages(Integer.MAX_VALUE)
- .isMultiSelect()
- .setMinimumMultiSelectCount(3)
- .setMaximumMultiSelectCount(6)
- .build();
- pickerDialog.show(getChildFragmentManager(), "picker");
- }
- });
- startPosting();
- return view;
- }
- private void startPosting() {
- mPost.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Log.d(ImageLoader.TAG, "onClick: attempting to post...");
- if (!isEmpty(mTitle.getText().toString())
- && !isEmpty(mDescription.getText().toString())
- && !isEmpty(mPrice.getText().toString())
- && !isEmpty(mCountry.getText().toString())
- && !isEmpty(mStateProvince.getText().toString())
- && !isEmpty(mCity.getText().toString())
- && !isEmpty(mContactEmail.getText().toString())) {
- if (mAllUri != null ) {
- Toast.makeText(getActivity(), "uploading image", Toast.LENGTH_SHORT).show();
- final String postId = FirebaseDatabase.getInstance().getReference().push().getKey();
- StorageReference filepath = FirebaseStorage.getInstance().getReference()
- .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
- "/" + postId + "/post_image");
- final StorageReference filepath1 = FirebaseStorage.getInstance().getReference()
- .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
- "/" + postId + "/post_image1");
- final StorageReference filepath2 = FirebaseStorage.getInstance().getReference()
- .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
- "/" + postId + "/post_image2");
- final StorageReference filepath3 = FirebaseStorage.getInstance().getReference()
- .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
- "/" + postId + "/post_image3");
- final StorageReference filepath4 = FirebaseStorage.getInstance().getReference()
- .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
- "/" + postId + "/post_image4");
- final StorageReference filepath5 = FirebaseStorage.getInstance().getReference()
- .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
- "/" + postId + "/post_image5");
- final Uri[] firebaseUri = new Uri[1];
- final Uri[] firebaseUri1 = new Uri[1];
- final Uri[] firebaseUri2 = new Uri[1];
- final Uri[] firebaseUri3 = new Uri[1];
- final Uri[] firebaseUri4 = new Uri[1];
- final Uri[] firebaseUri5 = new Uri[1];
- filepath.putFile(mSelectedUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
- public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
- firebaseUri[0] = taskSnapshot.getDownloadUrl();
- filepath1.putFile(mSelectedUri1).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
- public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
- firebaseUri1[0] = taskSnapshot.getDownloadUrl();
- filepath2.putFile(mSelectedUri2).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
- public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
- firebaseUri2[0] = taskSnapshot.getDownloadUrl();
- if (mSelectedUri3 != null){ filepath3.putFile(mSelectedUri3).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
- public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
- firebaseUri3[0] = taskSnapshot.getDownloadUrl();
- filepath4.putFile(mSelectedUri4).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
- public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
- firebaseUri4[0] = taskSnapshot.getDownloadUrl();
- filepath5.putFile(mSelectedUri5).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
- public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
- DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
- firebaseUri5[0] = taskSnapshot.getDownloadUrl();
- Post post = new Post();
- post.setCity(mCity.getText().toString());
- post.setContact_email(mContactEmail.getText().toString());
- post.setCountry(mCountry.getText().toString());
- post.setDescription(mDescription.getText().toString());
- post.setPost_id(postId);
- post.setPrice(mPrice.getText().toString());
- post.setState_province(mStateProvince.getText().toString());
- post.setTitle(mTitle.getText().toString());
- post.setUser_id(FirebaseAuth.getInstance().getCurrentUser().getUid());
- post.setImage(firebaseUri[0].toString());
- post.setImage1(firebaseUri1[0].toString());
- post.setImage2(firebaseUri2[0].toString());
- post.setImage3(firebaseUri3[0].toString());
- post.setImage4(firebaseUri4[0].toString());
- post.setImage5(firebaseUri5[0].toString());
- reference.child(getString(R.string.node_posts))
- .child(postId)
- .setValue(post);
- showProgressBar();
- resetFields();
- }
- });
- }//file4
- });//file4
- } //file3
- }); }//file3
- }//file2
- }); //file2
- }//file1
- });//file1
- }
- });
- }
- //
- }
- }
- });
- }
- @Override
- public void onMultiImageSelected(List<Uri> uriList, String tag) {
- for (int i = 0; i < uriList.size(); i++) {
- mAllUri = uriList.get(i);
- if (i >= 6) return;
- ImageView iv;
- switch (i) {
- case 0:
- iv = ivImage1;
- if(uriList.get(0)!=null && !uriList.get(0).equals("")){
- mSelectedUri = uriList.get(0);
- }
- break;
- case 1:
- iv = ivImage2;
- if(uriList.get(1)!=null && !uriList.get(1).equals("")){
- mSelectedUri1 = uriList.get(1);
- }
- break;
- case 2:
- iv = ivImage3;
- mSelectedUri2 = uriList.get(2);
- break;
- case 3:
- iv = ivImage4;
- mSelectedUri3 = uriList.get(3);
- break;
- case 4:
- iv = ivImage5;
- mSelectedUri4 = uriList.get(4);
- break;
- case 5:
- default:
- iv = ivImage6;
- mSelectedUri5 = uriList.get(5);
- }
- Glide.with(this).load(uriList.get(i)).into(iv);
- }
- }
- private void resetFields() {
- UniversalImageLoader.setImage("", ivImage1);
- UniversalImageLoader.setImage("", ivImage2);
- mTitle.setText("");
- mDescription.setText("");
- mPrice.setText("");
- mCountry.setText("");
- mStateProvince.setText("");
- mCity.setText("");
- mContactEmail.setText("");
- }
- private void showProgressBar() {
- mProgressBar.setVisibility(View.VISIBLE);
- }
- private void hideProgressBar() {
- if (mProgressBar.getVisibility() == View.VISIBLE) {
- mProgressBar.setVisibility(View.INVISIBLE);
- }
- }
- private boolean isEmpty(String string) {
- return string.equals("");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment