Guest User

Untitled

a guest
Dec 2nd, 2018
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.37 KB | None | 0 0
  1. package codingwithmitch.com.forsale;
  2.  
  3. import android.net.Uri;
  4. import android.os.Bundle;
  5. import android.support.annotation.NonNull;
  6. import android.support.annotation.Nullable;
  7. import android.support.v4.app.Fragment;
  8. import android.util.Log;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.view.WindowManager;
  13. import android.widget.Button;
  14. import android.widget.EditText;
  15. import android.widget.ImageView;
  16. import android.widget.ProgressBar;
  17. import android.widget.Toast;
  18. import java.util.List;
  19. import com.asksira.bsimagepicker.BSImagePicker;
  20. import com.bumptech.glide.Glide;
  21. import com.google.android.gms.tasks.OnFailureListener;
  22. import com.google.android.gms.tasks.OnSuccessListener;
  23. import com.google.firebase.auth.FirebaseAuth;
  24. import com.google.firebase.database.DatabaseReference;
  25. import com.google.firebase.database.FirebaseDatabase;
  26. import com.google.firebase.storage.FirebaseStorage;
  27. import com.google.firebase.storage.OnProgressListener;
  28. import com.google.firebase.storage.StorageReference;
  29. import com.google.firebase.storage.UploadTask;
  30. import com.nostra13.universalimageloader.core.ImageLoader;
  31. import codingwithmitch.com.forsale.models.Post;
  32. import static android.support.constraint.Constraints.TAG;
  33. /**
  34. * Created by User on 10/22/2017.
  35. */
  36.  
  37. public class PostFragment extends Fragment implements BSImagePicker.OnMultiImageSelectedListener {
  38.  
  39. private ImageView ivImage1, ivImage2, ivImage3, ivImage4, ivImage5, ivImage6;
  40. private EditText mTitle, mDescription, mPrice, mCountry, mStateProvince, mCity, mContactEmail;
  41. private Button mPost;
  42. private ProgressBar mProgressBar;
  43. private double mProgress = 0;
  44. Uri imageUri;
  45.  
  46.  
  47. @Override
  48. public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
  49. super.onCreate(savedInstanceState);
  50. View view = inflater.inflate(R.layout.fragment_post, container, false);
  51. ivImage1 = view.findViewById(R.id.iv_image1);
  52. ivImage2 = view.findViewById(R.id.iv_image2);
  53. ivImage3 = view.findViewById(R.id.iv_image3);
  54. ivImage4 = view.findViewById(R.id.iv_image4);
  55. ivImage5 = view.findViewById(R.id.iv_image5);
  56. ivImage6 = view.findViewById(R.id.iv_image6);
  57. mTitle = view.findViewById(R.id.input_title);
  58. mDescription = view.findViewById(R.id.input_description);
  59. mPrice = view.findViewById(R.id.input_price);
  60. mCountry = view.findViewById(R.id.input_country);
  61. mStateProvince = view.findViewById(R.id.input_state_province);
  62. mCity = view.findViewById(R.id.input_city);
  63. mContactEmail = view.findViewById(R.id.input_email);
  64. mPost = view.findViewById(R.id.btn_post);
  65. mProgressBar = (ProgressBar) view.findViewById(R.id.progressBar);
  66.  
  67. getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
  68.  
  69. view.findViewById(R.id.tv_multi_selection).setOnClickListener(new View.OnClickListener() {
  70. @Override
  71. public void onClick(View v) {
  72. BSImagePicker pickerDialog = new BSImagePicker.Builder("codingwithmitch.com.forsale.fileprovider")
  73. .setMaximumDisplayingImages(Integer.MAX_VALUE)
  74. .isMultiSelect()
  75. .setMinimumMultiSelectCount(2)
  76. .setMaximumMultiSelectCount(6)
  77. .build();
  78. pickerDialog.show(getChildFragmentManager(), "picker");
  79. }
  80. });
  81.  
  82.  
  83. return view;
  84. }
  85.  
  86. private void uploadMethod(final Uri uri, final int count) {
  87. mPost.setOnClickListener(new View.OnClickListener() {
  88. @Override
  89. public void onClick(View v) {
  90. Log.d(ImageLoader.TAG, "onClick: attempting to post...");
  91.  
  92. String strI = Integer.toString(count);
  93.  
  94. final String postId = FirebaseDatabase.getInstance().getReference().push().getKey();
  95.  
  96. final StorageReference storageReference = FirebaseStorage.getInstance().getReference()
  97. .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
  98. "/post_image".concat(strI));
  99.  
  100. storageReference.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  101. @Override
  102. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  103.  
  104. Uri arrayListImageDownloadUri = taskSnapshot.getDownloadUrl();
  105. Log.d(TAG, "onSuccess: aissa3: " + arrayListImageDownloadUri);
  106.  
  107. DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
  108.  
  109. Post post = new Post();
  110. post.setCity(mCity.getText().toString());
  111. post.setContact_email(mContactEmail.getText().toString());
  112. post.setCountry(mCountry.getText().toString());
  113. post.setDescription(mDescription.getText().toString());
  114. post.setPost_id(postId);
  115. post.setPrice(mPrice.getText().toString());
  116. post.setState_province(mStateProvince.getText().toString());
  117. post.setTitle(mTitle.getText().toString());
  118. post.setUser_id(FirebaseAuth.getInstance().getCurrentUser().getUid());
  119.  
  120. post.setImage(arrayListImageDownloadUri.toString());
  121. post.setImage1(arrayListImageDownloadUri.toString());
  122. if (count == 2) post.setImage2(arrayListImageDownloadUri.toString());
  123. if (count == 3) post.setImage3(arrayListImageDownloadUri.toString());
  124. if (count == 4) post.setImage4(arrayListImageDownloadUri.toString());
  125. if (count == 5) post.setImage5(arrayListImageDownloadUri.toString());
  126.  
  127.  
  128. reference.child(getString(R.string.node_posts))
  129. .child(postId)
  130. .setValue(post);
  131. }
  132. })
  133.  
  134. .addOnFailureListener(new OnFailureListener() {
  135. @Override
  136. public void onFailure(@NonNull Exception exception) {
  137. //if the upload is not successful
  138. Toast.makeText(getActivity().getApplicationContext(), exception.getMessage(), Toast.LENGTH_LONG).show();
  139. }
  140. })
  141. .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
  142. @Override
  143. public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
  144. // show progress bar here \\
  145. }
  146. });
  147.  
  148. }
  149.  
  150. });
  151. }
  152.  
  153.  
  154. @Override
  155. public void onMultiImageSelected(List<Uri> uriList, String tag) {
  156.  
  157. for (int i = 0; i < uriList.size(); i++) {
  158. imageUri = uriList.get(i);
  159. if (i >= 6) return;
  160. ImageView iv;
  161. switch (i) {
  162. case 0:
  163. iv = ivImage1;
  164. break;
  165. case 1:
  166. iv = ivImage2;
  167. break;
  168. case 2:
  169. iv = ivImage3;
  170. break;
  171. case 3:
  172. iv = ivImage4;
  173. break;
  174. case 4:
  175. iv = ivImage5;
  176. break;
  177. case 5:
  178. default:
  179. iv = ivImage6;
  180. }
  181. Glide.with(this).load(uriList.get(i)).into(iv);
  182.  
  183. }
  184.  
  185. for (int j = 0; j < uriList.size(); j++) {
  186. Log.d(TAG, "onSuccess: aissa: " + uriList.get(j));
  187. uploadMethod(uriList.get(j), j);
  188. }
  189. }
  190.  
  191.  
  192. private boolean isEmpty(String string){
  193. return string.equals("");
  194. }
  195.  
  196. }
Advertisement
Add Comment
Please, Sign In to add comment