Guest User

Untitled

a guest
Nov 30th, 2018
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.84 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. private ImageView ivImage1, ivImage2, ivImage3, ivImage4, ivImage5, ivImage6;
  70. private EditText mTitle, mDescription, mPrice, mCountry, mStateProvince, mCity, mContactEmail;
  71. private Button mPost;
  72. private ProgressBar mProgressBar;
  73. private double mProgress = 0;
  74. private Uri mSelectedUri;
  75. private Uri mSelectedUri1;
  76. private Uri mSelectedUri2;
  77. private Uri mSelectedUri3;
  78. private Uri mSelectedUri4;
  79. private Uri mSelectedUri5;
  80. private Uri mAllUri;
  81. private byte[] mUploadBytes;
  82.  
  83.  
  84. @Override
  85. public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
  86. super.onCreate(savedInstanceState);
  87. View view = inflater.inflate(R.layout.fragment_post, container, false);
  88. ivImage1 = view.findViewById(R.id.iv_image1);
  89. ivImage2 = view.findViewById(R.id.iv_image2);
  90. ivImage3 = view.findViewById(R.id.iv_image3);
  91. ivImage4 = view.findViewById(R.id.iv_image4);
  92. ivImage5 = view.findViewById(R.id.iv_image5);
  93. ivImage6 = view.findViewById(R.id.iv_image6);
  94. mTitle = view.findViewById(R.id.input_title);
  95. mDescription = view.findViewById(R.id.input_description);
  96. mPrice = view.findViewById(R.id.input_price);
  97. mCountry = view.findViewById(R.id.input_country);
  98. mStateProvince = view.findViewById(R.id.input_state_province);
  99. mCity = view.findViewById(R.id.input_city);
  100. mContactEmail = view.findViewById(R.id.input_email);
  101. mPost = view.findViewById(R.id.btn_post);
  102. mProgressBar = (ProgressBar) view.findViewById(R.id.progressBar);
  103.  
  104.  
  105. getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
  106.  
  107.  
  108. view.findViewById(R.id.tv_multi_selection).setOnClickListener(new View.OnClickListener() {
  109. @Override
  110. public void onClick(View v) {
  111. BSImagePicker pickerDialog = new BSImagePicker.Builder("codingwithmitch.com.forsale.fileprovider")
  112. .setMaximumDisplayingImages(Integer.MAX_VALUE)
  113. .isMultiSelect()
  114. .setMinimumMultiSelectCount(3)
  115. .setMaximumMultiSelectCount(6)
  116. .build();
  117. pickerDialog.show(getChildFragmentManager(), "picker");
  118. }
  119. });
  120.  
  121. startPosting();
  122.  
  123. return view;
  124. }
  125.  
  126. private void startPosting() {
  127.  
  128. mPost.setOnClickListener(new View.OnClickListener() {
  129. @Override
  130. public void onClick(View v) {
  131. Log.d(ImageLoader.TAG, "onClick: attempting to post...");
  132. if (!isEmpty(mTitle.getText().toString())
  133. && !isEmpty(mDescription.getText().toString())
  134. && !isEmpty(mPrice.getText().toString())
  135. && !isEmpty(mCountry.getText().toString())
  136. && !isEmpty(mStateProvince.getText().toString())
  137. && !isEmpty(mCity.getText().toString())
  138. && !isEmpty(mContactEmail.getText().toString())) {
  139.  
  140. if (mAllUri != null ) {
  141.  
  142. Toast.makeText(getActivity(), "uploading image", Toast.LENGTH_SHORT).show();
  143.  
  144. final String postId = FirebaseDatabase.getInstance().getReference().push().getKey();
  145.  
  146. StorageReference filepath = FirebaseStorage.getInstance().getReference()
  147. .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
  148. "/" + postId + "/post_image");
  149.  
  150. final StorageReference filepath1 = FirebaseStorage.getInstance().getReference()
  151. .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
  152. "/" + postId + "/post_image1");
  153. final StorageReference filepath2 = FirebaseStorage.getInstance().getReference()
  154. .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
  155. "/" + postId + "/post_image2");
  156. final StorageReference filepath3 = FirebaseStorage.getInstance().getReference()
  157. .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
  158. "/" + postId + "/post_image3");
  159. final StorageReference filepath4 = FirebaseStorage.getInstance().getReference()
  160. .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
  161. "/" + postId + "/post_image4");
  162. final StorageReference filepath5 = FirebaseStorage.getInstance().getReference()
  163. .child("posts/users/" + FirebaseAuth.getInstance().getCurrentUser().getUid() +
  164. "/" + postId + "/post_image5");
  165.  
  166. final Uri[] firebaseUri = new Uri[1];
  167. final Uri[] firebaseUri1 = new Uri[1];
  168. final Uri[] firebaseUri2 = new Uri[1];
  169. final Uri[] firebaseUri3 = new Uri[1];
  170. final Uri[] firebaseUri4 = new Uri[1];
  171. final Uri[] firebaseUri5 = new Uri[1];
  172.  
  173.  
  174. filepath.putFile(mSelectedUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  175.  
  176. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  177.  
  178. firebaseUri[0] = taskSnapshot.getDownloadUrl();
  179.  
  180. filepath1.putFile(mSelectedUri1).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  181.  
  182. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  183.  
  184. firebaseUri1[0] = taskSnapshot.getDownloadUrl();
  185.  
  186. filepath2.putFile(mSelectedUri2).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  187.  
  188. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  189.  
  190. firebaseUri2[0] = taskSnapshot.getDownloadUrl();
  191.  
  192. if (mSelectedUri3 != null){ filepath3.putFile(mSelectedUri3).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  193.  
  194. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  195.  
  196. firebaseUri3[0] = taskSnapshot.getDownloadUrl();
  197.  
  198. filepath4.putFile(mSelectedUri4).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  199.  
  200. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  201.  
  202. firebaseUri4[0] = taskSnapshot.getDownloadUrl();
  203.  
  204. filepath5.putFile(mSelectedUri5).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  205.  
  206. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  207.  
  208. DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
  209.  
  210. firebaseUri5[0] = taskSnapshot.getDownloadUrl();
  211.  
  212. Post post = new Post();
  213. post.setCity(mCity.getText().toString());
  214. post.setContact_email(mContactEmail.getText().toString());
  215. post.setCountry(mCountry.getText().toString());
  216. post.setDescription(mDescription.getText().toString());
  217. post.setPost_id(postId);
  218. post.setPrice(mPrice.getText().toString());
  219. post.setState_province(mStateProvince.getText().toString());
  220. post.setTitle(mTitle.getText().toString());
  221. post.setUser_id(FirebaseAuth.getInstance().getCurrentUser().getUid());
  222.  
  223. post.setImage(firebaseUri[0].toString());
  224. post.setImage1(firebaseUri1[0].toString());
  225. post.setImage2(firebaseUri2[0].toString());
  226. post.setImage3(firebaseUri3[0].toString());
  227. post.setImage4(firebaseUri4[0].toString());
  228. post.setImage5(firebaseUri5[0].toString());
  229.  
  230.  
  231. reference.child(getString(R.string.node_posts))
  232. .child(postId)
  233. .setValue(post);
  234. showProgressBar();
  235. resetFields();
  236.  
  237. }
  238.  
  239. });
  240. }//file4
  241. });//file4
  242. } //file3
  243. }); }//file3
  244. }//file2
  245. }); //file2
  246. }//file1
  247. });//file1
  248. }
  249. });
  250. }
  251.  
  252. //
  253. }
  254. }
  255.  
  256. });
  257. }
  258.  
  259.  
  260. @Override
  261. public void onMultiImageSelected(List<Uri> uriList, String tag) {
  262. for (int i = 0; i < uriList.size(); i++) {
  263. mAllUri = uriList.get(i);
  264. if (i >= 6) return;
  265. ImageView iv;
  266. switch (i) {
  267. case 0:
  268. iv = ivImage1;
  269. if(uriList.get(0)!=null && !uriList.get(0).equals("")){
  270. mSelectedUri = uriList.get(0);
  271. }
  272.  
  273. break;
  274. case 1:
  275. iv = ivImage2;
  276. if(uriList.get(1)!=null && !uriList.get(1).equals("")){
  277. mSelectedUri1 = uriList.get(1);
  278. }
  279. break;
  280. case 2:
  281. iv = ivImage3;
  282. mSelectedUri2 = uriList.get(2);
  283.  
  284. break;
  285. case 3:
  286. iv = ivImage4;
  287. mSelectedUri3 = uriList.get(3);
  288.  
  289. break;
  290. case 4:
  291. iv = ivImage5;
  292. mSelectedUri4 = uriList.get(4);
  293. break;
  294. case 5:
  295. default:
  296. iv = ivImage6;
  297. mSelectedUri5 = uriList.get(5);
  298.  
  299. }
  300. Glide.with(this).load(uriList.get(i)).into(iv);
  301.  
  302. }
  303. }
  304.  
  305. private void resetFields() {
  306. UniversalImageLoader.setImage("", ivImage1);
  307. UniversalImageLoader.setImage("", ivImage2);
  308. mTitle.setText("");
  309. mDescription.setText("");
  310. mPrice.setText("");
  311. mCountry.setText("");
  312. mStateProvince.setText("");
  313. mCity.setText("");
  314. mContactEmail.setText("");
  315. }
  316.  
  317. private void showProgressBar() {
  318. mProgressBar.setVisibility(View.VISIBLE);
  319.  
  320. }
  321.  
  322. private void hideProgressBar() {
  323. if (mProgressBar.getVisibility() == View.VISIBLE) {
  324. mProgressBar.setVisibility(View.INVISIBLE);
  325. }
  326. }
  327.  
  328. private boolean isEmpty(String string) {
  329. return string.equals("");
  330. }
  331.  
  332. }
Advertisement
Add Comment
Please, Sign In to add comment