Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package codingwithmitch.com.forsale;
- import android.net.Uri;
- import android.os.Bundle;
- 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 java.util.List;
- import com.asksira.bsimagepicker.BSImagePicker;
- import com.bumptech.glide.Glide;
- 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 codingwithmitch.com.forsale.models.Post;
- import static android.support.constraint.Constraints.TAG;
- /**
- * Created by User on 10/22/2017.
- */
- 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;
- Uri imageUri;
- @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(2)
- .setMaximumMultiSelectCount(6)
- .build();
- pickerDialog.show(getChildFragmentManager(), "picker");
- }
- });
- return view;
- }
- private void uploadMethod(final Uri uri, final int count) {
- mPost.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Log.d(ImageLoader.TAG, "onClick: attempting to post...");
- String strI = Integer.toString(count);
- final String postId = FirebaseDatabase.getInstance().getReference().push().getKey();
- final StorageReference storageReference = FirebaseStorage.getInstance().getReference()
- .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
- "/post_image".concat(strI));
- storageReference.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
- @Override
- public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
- Uri arrayListImageDownloadUri = taskSnapshot.getDownloadUrl();
- Log.d(TAG, "onSuccess: aissa3: " + arrayListImageDownloadUri);
- DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
- 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(arrayListImageDownloadUri.toString());
- post.setImage1(arrayListImageDownloadUri.toString());
- if (count == 2) post.setImage2(arrayListImageDownloadUri.toString());
- if (count == 3) post.setImage3(arrayListImageDownloadUri.toString());
- if (count == 4) post.setImage4(arrayListImageDownloadUri.toString());
- if (count == 5) post.setImage5(arrayListImageDownloadUri.toString());
- reference.child(getString(R.string.node_posts))
- .child(postId)
- .setValue(post);
- }
- })
- .addOnFailureListener(new OnFailureListener() {
- @Override
- public void onFailure(@NonNull Exception exception) {
- //if the upload is not successful
- Toast.makeText(getActivity().getApplicationContext(), exception.getMessage(), Toast.LENGTH_LONG).show();
- }
- })
- .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
- @Override
- public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
- // show progress bar here \\
- }
- });
- }
- });
- }
- @Override
- public void onMultiImageSelected(List<Uri> uriList, String tag) {
- for (int i = 0; i < uriList.size(); i++) {
- imageUri = uriList.get(i);
- if (i >= 6) return;
- ImageView iv;
- switch (i) {
- case 0:
- iv = ivImage1;
- break;
- case 1:
- iv = ivImage2;
- break;
- case 2:
- iv = ivImage3;
- break;
- case 3:
- iv = ivImage4;
- break;
- case 4:
- iv = ivImage5;
- break;
- case 5:
- default:
- iv = ivImage6;
- }
- Glide.with(this).load(uriList.get(i)).into(iv);
- }
- for (int j = 0; j < uriList.size(); j++) {
- Log.d(TAG, "onSuccess: aissa: " + uriList.get(j));
- uploadMethod(uriList.get(j), j);
- }
- }
- private boolean isEmpty(String string){
- return string.equals("");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment