Guest User

Untitled

a guest
Dec 1st, 2018
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.92 KB | None | 0 0
  1. package codingwithmitch.com.forsale;
  2.  
  3. import android.content.Context;
  4. import android.graphics.Bitmap;
  5. import android.media.Image;
  6. import android.net.Uri;
  7. import android.os.AsyncTask;
  8. import android.os.Bundle;
  9. import android.provider.MediaStore;
  10. import android.provider.SyncStateContract;
  11. import android.support.annotation.NonNull;
  12. import android.support.annotation.Nullable;
  13. import android.support.v4.app.Fragment;
  14. import android.util.Log;
  15. import android.view.LayoutInflater;
  16. import android.view.View;
  17. import android.view.ViewGroup;
  18. import android.view.WindowManager;
  19. import android.widget.Button;
  20. import android.widget.EditText;
  21. import android.widget.ImageView;
  22. import android.widget.ProgressBar;
  23. import android.widget.Toast;
  24. //
  25. import android.net.Uri;
  26. import android.os.Bundle;
  27. import android.support.v7.app.AppCompatActivity;
  28. import android.view.View;
  29. import android.widget.ImageView;
  30. import android.widget.Toast;
  31.  
  32. import com.asksira.bsimagepicker.BSImagePicker;
  33. import com.bumptech.glide.Glide;
  34.  
  35. import java.net.URI;
  36. import java.util.ArrayList;
  37. import java.util.List;
  38.  
  39.  
  40. import com.google.android.gms.tasks.OnFailureListener;
  41. import com.google.android.gms.tasks.OnSuccessListener;
  42. import com.google.firebase.auth.FirebaseAuth;
  43. import com.google.firebase.database.DatabaseReference;
  44. import com.google.firebase.database.FirebaseDatabase;
  45. import com.google.firebase.storage.FirebaseStorage;
  46. import com.google.firebase.storage.OnProgressListener;
  47. import com.google.firebase.storage.StorageReference;
  48. import com.google.firebase.storage.UploadTask;
  49. import com.nostra13.universalimageloader.core.ImageLoader;
  50.  
  51. import java.io.ByteArrayOutputStream;
  52. import java.io.IOException;
  53.  
  54. import codingwithmitch.com.forsale.models.Post;
  55. import codingwithmitch.com.forsale.util.RotateBitmap;
  56. import codingwithmitch.com.forsale.util.UniversalImageLoader;
  57.  
  58. import static android.support.constraint.Constraints.TAG;
  59. import static android.text.TextUtils.isEmpty;
  60.  
  61. /**
  62. * Created by User on 10/22/2017.
  63. */
  64.  
  65. //public class PostFragment extends Fragment implements SelectPhotoDialog.OnPhotoSelectedListener {
  66.  
  67. public class PostFragment extends Fragment implements BSImagePicker.OnMultiImageSelectedListener {
  68.  
  69.  
  70.  
  71. private ImageView ivImage1, ivImage2, ivImage3, ivImage4, ivImage5, ivImage6;
  72. private EditText mTitle, mDescription, mPrice, mCountry, mStateProvince, mCity, mContactEmail;
  73. private Button mPost;
  74. private ProgressBar mProgressBar;
  75. private double mProgress = 0;
  76. private Uri mSelectedUri;
  77. private Uri mSelectedUri1;
  78. private Uri mSelectedUri2;
  79. private Uri mSelectedUri3;
  80. private Uri mSelectedUri4;
  81. private Uri mSelectedUri5;
  82. private Uri mAllUri;
  83. private byte[] mUploadBytes;
  84.  
  85.  
  86. @Override
  87. public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
  88. super.onCreate(savedInstanceState);
  89. View view = inflater.inflate(R.layout.fragment_post, container, false);
  90. ivImage1 = view.findViewById(R.id.iv_image1);
  91. ivImage2 = view.findViewById(R.id.iv_image2);
  92. ivImage3 = view.findViewById(R.id.iv_image3);
  93. ivImage4 = view.findViewById(R.id.iv_image4);
  94. ivImage5 = view.findViewById(R.id.iv_image5);
  95. ivImage6 = view.findViewById(R.id.iv_image6);
  96. mTitle = view.findViewById(R.id.input_title);
  97. mDescription = view.findViewById(R.id.input_description);
  98. mPrice = view.findViewById(R.id.input_price);
  99. mCountry = view.findViewById(R.id.input_country);
  100. mStateProvince = view.findViewById(R.id.input_state_province);
  101. mCity = view.findViewById(R.id.input_city);
  102. mContactEmail = view.findViewById(R.id.input_email);
  103. mPost = view.findViewById(R.id.btn_post);
  104. mProgressBar = (ProgressBar) view.findViewById(R.id.progressBar);
  105.  
  106.  
  107. getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
  108.  
  109.  
  110. view.findViewById(R.id.tv_multi_selection).setOnClickListener(new View.OnClickListener() {
  111. @Override
  112. public void onClick(View v) {
  113. BSImagePicker pickerDialog = new BSImagePicker.Builder("codingwithmitch.com.forsale.fileprovider")
  114. .setMaximumDisplayingImages(Integer.MAX_VALUE)
  115. .isMultiSelect()
  116. .setMinimumMultiSelectCount(3)
  117. .setMaximumMultiSelectCount(6)
  118. .build();
  119. pickerDialog.show(getChildFragmentManager(), "picker");
  120. }
  121. });
  122.  
  123.  
  124.  
  125. return view;
  126. }
  127.  
  128. private void startPosting() {
  129.  
  130. mPost.setOnClickListener(new View.OnClickListener() {
  131. @Override
  132. public void onClick(View v) {
  133. Log.d(ImageLoader.TAG, "onClick: attempting to post...");
  134. Log.d(ImageLoader.TAG, "onClick: aissa..."+ mAllUri);
  135. if (!isEmpty(mTitle.getText().toString())
  136. && !isEmpty(mDescription.getText().toString())
  137. && !isEmpty(mPrice.getText().toString())
  138. && !isEmpty(mCountry.getText().toString())
  139. && !isEmpty(mStateProvince.getText().toString())
  140. && !isEmpty(mCity.getText().toString())
  141. && !isEmpty(mContactEmail.getText().toString())) {
  142.  
  143. if (mAllUri != null ) {
  144.  
  145. Toast.makeText(getActivity(), "uploading image", Toast.LENGTH_SHORT).show();
  146.  
  147. final String postId = FirebaseDatabase.getInstance().getReference().push().getKey();
  148.  
  149. StorageReference filepath = FirebaseStorage.getInstance().getReference()
  150. .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
  151. "/" + postId + "/post_image");
  152.  
  153. final StorageReference filepath1 = FirebaseStorage.getInstance().getReference()
  154. .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
  155. "/" + postId + "/post_image1");
  156. final StorageReference filepath2 = FirebaseStorage.getInstance().getReference()
  157. .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
  158. "/" + postId + "/post_image2");
  159. final StorageReference filepath3 = FirebaseStorage.getInstance().getReference()
  160. .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
  161. "/" + postId + "/post_image3");
  162. final StorageReference filepath4 = FirebaseStorage.getInstance().getReference()
  163. .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
  164. "/" + postId + "/post_image4");
  165. final StorageReference filepath5 = FirebaseStorage.getInstance().getReference()
  166. .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
  167. "/" + postId + "/post_image5");
  168.  
  169. final Uri[] firebaseUri = new Uri[1];
  170. final Uri[] firebaseUri1 = new Uri[1];
  171. final Uri[] firebaseUri2 = new Uri[1];
  172. final Uri[] firebaseUri3 = new Uri[1];
  173. final Uri[] firebaseUri4 = new Uri[1];
  174. final Uri[] firebaseUri5 = new Uri[1];
  175.  
  176.  
  177. filepath.putFile(mSelectedUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  178.  
  179. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  180.  
  181. firebaseUri[0] = taskSnapshot.getDownloadUrl();
  182.  
  183. filepath1.putFile(mSelectedUri1).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  184.  
  185. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  186.  
  187. firebaseUri1[0] = taskSnapshot.getDownloadUrl();
  188.  
  189. filepath2.putFile(mSelectedUri2).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  190.  
  191. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  192.  
  193. firebaseUri2[0] = taskSnapshot.getDownloadUrl();
  194.  
  195. filepath3.putFile(mSelectedUri3).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  196.  
  197. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  198.  
  199. firebaseUri3[0] = taskSnapshot.getDownloadUrl();
  200.  
  201. filepath4.putFile(mSelectedUri4).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  202.  
  203. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  204.  
  205. firebaseUri4[0] = taskSnapshot.getDownloadUrl();
  206.  
  207. filepath5.putFile(mSelectedUri5).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  208.  
  209. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  210.  
  211. DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
  212.  
  213. firebaseUri5[0] = taskSnapshot.getDownloadUrl();
  214.  
  215. Post post = new Post();
  216. post.setCity(mCity.getText().toString());
  217. post.setContact_email(mContactEmail.getText().toString());
  218. post.setCountry(mCountry.getText().toString());
  219. post.setDescription(mDescription.getText().toString());
  220. post.setPost_id(postId);
  221. post.setPrice(mPrice.getText().toString());
  222. post.setState_province(mStateProvince.getText().toString());
  223. post.setTitle(mTitle.getText().toString());
  224. post.setUser_id(FirebaseAuth.getInstance().getCurrentUser().getUid());
  225.  
  226. post.setImage(firebaseUri[0].toString());
  227. post.setImage1(firebaseUri1[0].toString());
  228. post.setImage2(firebaseUri2[0].toString());
  229. post.setImage3(firebaseUri3[0].toString());
  230. post.setImage4(firebaseUri4[0].toString());
  231. post.setImage5(firebaseUri5[0].toString());
  232.  
  233.  
  234. reference.child(getString(R.string.node_posts))
  235. .child(postId)
  236. .setValue(post);
  237. showProgressBar();
  238. resetFields();
  239.  
  240. }
  241.  
  242. });
  243. }//file4
  244. });//file4
  245. } //file3
  246. }); //file3
  247. }//file2
  248. }); //file2
  249. }//file1
  250. });//file1
  251. }
  252. });
  253. }
  254.  
  255. //
  256. }
  257. }
  258.  
  259. });
  260. }
  261.  
  262.  
  263. @Override
  264. public void onMultiImageSelected(List<Uri> uriList, String tag) {
  265. for (int i = 0; i < uriList.size(); i++) {
  266. mAllUri = uriList.get(i);
  267. if (i >= 6) return;
  268. ImageView iv;
  269. switch (i) {
  270. case 0:
  271. iv = ivImage1;
  272. if(uriList.get(0)!=null && !uriList.get(0).equals("")){
  273. mSelectedUri = uriList.get(0);
  274. }
  275.  
  276. break;
  277. case 1:
  278. iv = ivImage2;
  279. if(uriList.get(1)!=null && !uriList.get(1).equals("")){
  280. mSelectedUri1 = uriList.get(1);
  281. }
  282. break;
  283. case 2:
  284. iv = ivImage3;
  285. mSelectedUri2 = uriList.get(2);
  286.  
  287. break;
  288. case 3:
  289. iv = ivImage4;
  290. mSelectedUri3 = uriList.get(3);
  291.  
  292. break;
  293. case 4:
  294. iv = ivImage5;
  295. mSelectedUri4 = uriList.get(4);
  296. break;
  297. case 5:
  298. default:
  299. iv = ivImage6;
  300. mSelectedUri5 = uriList.get(5);
  301.  
  302. }
  303. Glide.with(this).load(uriList.get(i)).into(iv);
  304. startPosting();
  305.  
  306. }
  307. }
  308.  
  309. private void resetFields() {
  310. UniversalImageLoader.setImage("", ivImage1);
  311. UniversalImageLoader.setImage("", ivImage2);
  312. mTitle.setText("");
  313. mDescription.setText("");
  314. mPrice.setText("");
  315. mCountry.setText("");
  316. mStateProvince.setText("");
  317. mCity.setText("");
  318. mContactEmail.setText("");
  319. }
  320.  
  321. private void showProgressBar() {
  322. mProgressBar.setVisibility(View.VISIBLE);
  323.  
  324. }
  325.  
  326. private void hideProgressBar() {
  327. if (mProgressBar.getVisibility() == View.VISIBLE) {
  328. mProgressBar.setVisibility(View.INVISIBLE);
  329. }
  330. }
  331.  
  332. private boolean isEmpty(String string) {
  333. return string.equals("");
  334. }
  335.  
  336. }
Advertisement
Add Comment
Please, Sign In to add comment