Advertisement
kitlolz012

editresto java

Nov 21st, 2023
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 25.34 KB | None | 0 0
  1. package com.example.gypsy;
  2.  
  3. import static android.content.ContentValues.TAG;
  4.  
  5. import android.app.Activity;
  6. import android.content.Intent;
  7. import android.content.pm.PackageManager;
  8. import android.net.Uri;
  9. import android.os.Bundle;
  10. import android.provider.MediaStore;
  11. import android.text.method.LinkMovementMethod;
  12. import android.util.Log;
  13. import android.view.View;
  14. import android.widget.Button;
  15. import android.widget.EditText;
  16. import android.widget.ImageView;
  17. import android.widget.LinearLayout;
  18.  
  19. import androidx.activity.result.ActivityResultLauncher;
  20. import androidx.activity.result.contract.ActivityResultContracts;
  21. import androidx.annotation.NonNull;
  22. import androidx.appcompat.app.AppCompatActivity;
  23. import androidx.core.app.ActivityCompat;
  24. import androidx.core.content.ContextCompat;
  25. import androidx.fragment.app.FragmentManager;
  26. import androidx.fragment.app.FragmentTransaction;
  27. import androidx.viewpager2.widget.ViewPager2;
  28.  
  29. import com.google.android.gms.tasks.Task;
  30. import com.google.android.gms.tasks.Tasks;
  31. import com.google.android.material.floatingactionbutton.FloatingActionButton;
  32. import com.google.android.material.textfield.TextInputEditText;
  33. import com.google.android.material.textfield.TextInputLayout;
  34. import com.google.firebase.auth.FirebaseAuth;
  35. import com.google.firebase.auth.FirebaseUser;
  36. import com.google.firebase.database.DataSnapshot;
  37. import com.google.firebase.database.DatabaseError;
  38. import com.google.firebase.database.DatabaseReference;
  39. import com.google.firebase.database.FirebaseDatabase;
  40. import com.google.firebase.database.Query;
  41. import com.google.firebase.database.ValueEventListener;
  42. import com.google.firebase.storage.FirebaseStorage;
  43. import com.google.firebase.storage.StorageReference;
  44. import com.google.firebase.storage.UploadTask;
  45. import java.util.ArrayList;
  46. import java.util.HashMap;
  47. import java.util.List;
  48. import java.util.Map;
  49. import java.util.concurrent.atomic.AtomicBoolean;
  50. import java.util.concurrent.atomic.AtomicInteger;
  51. import android.Manifest;
  52. import android.content.pm.PackageManager;
  53. import android.widget.TextView;
  54. import android.widget.Toast;
  55.  
  56. public class EditRestoActivity extends AppCompatActivity {
  57.     private FirebaseStorage storage;
  58.     private StorageReference storageReference;
  59.     private FirebaseDatabase database;
  60.     private DatabaseReference databaseReference;
  61.     private FirebaseAuth auth;
  62.     private FirebaseUser currentUser;
  63.     private List<Uri> imageUris = new ArrayList<>();
  64.     private Uri imageUri;
  65.     private ActivityResultLauncher<Intent> galleryLauncher;
  66.     private FloatingActionButton uploadButton;
  67.     private TextInputEditText restoNameEditText;
  68.     private TextInputEditText restoAddressEditText;
  69.     private TextInputEditText restoDescriptionEditText;
  70.     private TextInputEditText restoContactEditText;
  71.     private TextInputEditText restoEmailEditText;
  72.     private TextInputEditText cancellationPolicyEditText;
  73.     private TextInputEditText amenityEditText;
  74.     private TextInputEditText gcashNumberET;
  75.     private TextInputEditText gcashNameET, reservationFeeET;
  76.     private Button postButton, cancelButton;
  77.     private String userId;
  78.     private RestoImageSliderAdapter adapter;
  79.     private ViewPager2 viewPager;
  80.     private LinearLayout dotsLayout;
  81.     private ImageView[] dots;
  82.  
  83.     TextView tvClickableLink;
  84.  
  85.     @Override
  86.     protected void onCreate(Bundle savedInstanceState) {
  87.         super.onCreate(savedInstanceState);
  88.         setContentView(R.layout.activity_edit_resto);
  89.  
  90.         viewPager = findViewById(R.id.viewPager);
  91.         dotsLayout = findViewById(R.id.dotsLayout);
  92.         uploadButton = findViewById(R.id.uploadButton);
  93.         restoNameEditText = findViewById(R.id.restoNameEditText);
  94.         restoAddressEditText = findViewById(R.id.restoAddressEditText);
  95.         restoDescriptionEditText = findViewById(R.id.restoDescriptionEditText);
  96.         restoContactEditText = findViewById(R.id.restoContactEditText);
  97.         restoEmailEditText = findViewById(R.id.restoEmailEditText);
  98.         amenityEditText = findViewById(R.id.amenityEditText);
  99.         cancellationPolicyEditText = findViewById(R.id.cancellationPolicyEditText);
  100.         gcashNumberET = findViewById(R.id.gcashNumber);
  101.         gcashNameET = findViewById(R.id.gcashName);
  102.         reservationFeeET = findViewById(R.id.reservationFeeET);
  103.         postButton = findViewById(R.id.postButton);
  104.         cancelButton = findViewById(R.id.cancelButton);
  105.  
  106.  
  107.         TextInputEditText latitudeEditText = findViewById(R.id.latitudeET);
  108.         TextInputEditText longitudeEditText = findViewById(R.id.longitudeET);
  109.  
  110.         tvClickableLink = findViewById(R.id.tvClickableLink);
  111.         tvClickableLink.setMovementMethod(LinkMovementMethod.getInstance());
  112.  
  113.  
  114.  
  115.  
  116.         auth = FirebaseAuth.getInstance();
  117.         currentUser = auth.getCurrentUser();
  118.         userId = currentUser.getUid();
  119.  
  120.         storage = FirebaseStorage.getInstance();
  121.         storageReference = storage.getReference();
  122.         database = FirebaseDatabase.getInstance();
  123.         databaseReference = database.getReference();
  124.  
  125.         // adapter para sa multiple images ng resto, slider
  126.         adapter = new RestoImageSliderAdapter(this,imageUris, viewPager,dotsLayout);
  127.         // yung dots nag-iindicate ng pang ilang images na, parang sa ig
  128.         dotsLayout = findViewById(R.id.dotsLayout);
  129.         viewPager.setAdapter(adapter);
  130.         adapter.updateDotsIndicator(0);
  131.  
  132.         viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
  133.             @Override
  134.             public void onPageSelected(int position) {
  135.                 super.onPageSelected(position);
  136.                 adapter.updateDotsIndicator(position);
  137.             }
  138.         });
  139.  
  140.  
  141.         galleryLauncher = registerForActivityResult(
  142.                 new ActivityResultContracts.StartActivityForResult(),
  143.                 result -> {
  144.                     if (result.getResultCode() == Activity.RESULT_OK) {
  145.                         Intent data = result.getData();
  146.                         if (data != null && data.getData() != null) {
  147.                             imageUri = data.getData();
  148.                             imageUris.add(imageUri);
  149.  
  150.                             adapter.notifyDataSetChanged();
  151.                         }
  152.                     }
  153.                 }
  154.         );
  155.  
  156.         uploadButton.setOnClickListener(v -> openGallery());
  157.  
  158.         // button "save changes" mapopost na sa tourist interface
  159.         postButton.setOnClickListener(v -> {
  160.             String restoName = restoNameEditText.getText().toString();
  161.             String restoAddress = restoAddressEditText.getText().toString();
  162.             String restoDescription = restoDescriptionEditText.getText().toString();
  163.             String restoContact = restoContactEditText.getText().toString();
  164.             String restoEmail = restoEmailEditText.getText().toString();
  165.             String cancellationPolicy = cancellationPolicyEditText.getText().toString();
  166.             String amenitiesResto = amenityEditText.getText().toString();
  167.             String gcashNumber = gcashNumberET.getText().toString();
  168.             String gcashName = gcashNameET.getText().toString();
  169.             String reservationFee = reservationFeeET.getText().toString();
  170.  
  171.             String latitude = latitudeEditText.getText().toString(); // Get latitude
  172.             String longitude = longitudeEditText.getText().toString(); // Get longitude
  173.  
  174.             checkIfExists(userId, restoName, restoAddress, restoDescription, restoContact, restoEmail,
  175.                     cancellationPolicy, imageUri, amenitiesResto, gcashNumber, gcashName, reservationFee, Double.parseDouble(latitude), Double.parseDouble(longitude));
  176.  
  177.             // back to RestoEditFrag, or yung read-only, na nakaretrieve na
  178.             Intent intent = new Intent(this, MainActivity3.class);
  179.             intent.putExtra("frag", "RestoEditFragment");
  180.             startActivity(intent);
  181.         });
  182.  
  183.         retrieve(userId);
  184.  
  185.  
  186.         dots(0); // para lang to sa dots sa image slider
  187.         viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
  188.             @Override
  189.             public void onPageSelected(int position) {
  190.                 super.onPageSelected(position);
  191.                 dots(position);
  192.             }
  193.         });
  194.  
  195.     }
  196.  
  197.     // if nag eexist na yung user sa "hotels", di na pwede mag generate ng new set of data, para iwas doble doeble
  198.     private void checkIfExists(String userId, String restoName, String restoAddress, String restoDescription, String restoContact,
  199.                                String restoEmail, String cancellationPolicy, Uri imageUri, String amenitiesResto, String gcashNumber, String gcashName, String reservationFee, double latitude, double longitude) {
  200.         DatabaseReference restoRef = databaseReference.child("restaurants");
  201.         Query query = restoRef.orderByChild("user_id").equalTo(userId);
  202.         query.addListenerForSingleValueEvent(new ValueEventListener() {
  203.             @Override
  204.             public void onDataChange(@NonNull com.google.firebase.database.DataSnapshot dataSnapshot) {
  205.                 if (dataSnapshot.exists()) {
  206.                     String existingRestoId = dataSnapshot.getChildren().iterator().next().getKey();
  207.  
  208.                     // Filter out URLs and keep only local file URIs in imageUris
  209.                     List<Uri> localImageUris = new ArrayList<>();
  210.                     for (Uri uri : imageUris) {
  211.                         if (uri.getScheme() == null) { // Check if it's a local file URI
  212.                             localImageUris.add(uri);
  213.                         }
  214.                     }
  215.  
  216.                     update(restoName, restoAddress, restoDescription, localImageUris, restoContact, restoEmail, cancellationPolicy,
  217.                             existingRestoId, amenitiesResto, gcashNumber, gcashName, reservationFee, latitude, longitude);
  218.                     adapter.setUris(localImageUris);
  219.                     adapter.notifyDataSetChanged();
  220.                     Log.d(TAG, "Resto exists for user: " + userId);
  221.                 } else {
  222.                     create(userId, restoName, restoAddress, restoDescription, restoContact, restoEmail, cancellationPolicy,
  223.                             imageUris, amenitiesResto, gcashNumber, gcashName, reservationFee, latitude, longitude);
  224.                     adapter.setUris(imageUris);
  225.                     adapter.notifyDataSetChanged();
  226.                     Log.d(TAG, "Resto does not exist for user: " + userId);
  227.                 }
  228.             }
  229.             @Override
  230.             public void onCancelled(@NonNull DatabaseError databaseError) {
  231.                 Log.e("check", "error" + databaseError.getMessage());
  232.             }
  233.         });
  234.     }
  235.  
  236.     private void create(String userId, String restoName, String restoAddress, String restoDescription, String restoContact,
  237.                         String restoEmail, String cancellationPolicy, List<Uri> imageUris, String amenitiesResto,
  238.                         String gcashNumber, String gcashName, String reservationFee, double latitude, double longitude) {
  239.  
  240.         DatabaseReference restosRef = databaseReference.child("restaurants");
  241.         DatabaseReference restoRef = restosRef.push();
  242.         String restoId = restoRef.getKey();
  243.  
  244.         List<String> imageUrls = new ArrayList<>();
  245.         AtomicInteger uploadCount = new AtomicInteger(0);
  246.         AtomicBoolean hasUploadFailed = new AtomicBoolean(false);
  247.  
  248.         List<UploadTask> uploadTasks = new ArrayList<>();
  249.         List<Task<Uri>> uploadUriTasks = new ArrayList<>();
  250.  
  251.         for (int i = 0; i < imageUris.size(); i++) {
  252.             final int finalIndex = i;
  253.             Uri imageUri = imageUris.get(i);
  254.             StorageReference imageRef = storageReference.child("restaurant_images/" + restoId + "/image" + (i + 1));
  255.             Log.d(TAG, "Image Storage Reference: " + imageRef.toString());
  256.             UploadTask uploadTask = imageRef.putFile(imageUri);
  257.  
  258.             uploadTask.addOnFailureListener(new MyFailureListener());
  259.             uploadTasks.add(uploadTask);
  260.  
  261.             Task<Uri> uploadUriTask = uploadTask.continueWithTask(task -> {
  262.                 if (!task.isSuccessful()) {
  263.                     throw task.getException();
  264.                 }
  265.                 return imageRef.getDownloadUrl();
  266.             });
  267.  
  268.             uploadUriTasks.add(uploadUriTask);
  269.         }
  270.  
  271.         Task<List<Uri>> allUploadsTask = Tasks.whenAllSuccess(uploadUriTasks);
  272.  
  273.         allUploadsTask.addOnSuccessListener(downloadUris -> {
  274.             for (Uri downloadUri : downloadUris) {
  275.                 String imageUrl = downloadUri.toString();
  276.                 imageUrls.add(imageUrl);
  277.             }
  278.  
  279.             if (!hasUploadFailed.get()) {
  280.                 save(restoId, imageUrls, restoName, restoAddress, restoDescription, restoContact, restoEmail,
  281.                         cancellationPolicy, amenitiesResto, gcashNumber, gcashName, reservationFee, latitude,longitude);
  282.  
  283.                 adapter.setUris(imageUris);
  284.                 adapter.notifyDataSetChanged();
  285.             } else {
  286.                 Log.e(TAG, "Image upload failed.");
  287.             }
  288.         }).addOnFailureListener(e -> {
  289.             Log.e(TAG, "Failed to upload images: " + e.getMessage());
  290.             hasUploadFailed.set(true);
  291.  
  292.             for (int j = 0; j < uploadTasks.size(); j++) {
  293.                 UploadTask remainingUploadTask = uploadTasks.get(j);
  294.                 if (remainingUploadTask != null && !remainingUploadTask.isComplete()) {
  295.                     remainingUploadTask.cancel();
  296.                 }
  297.             }
  298.         });
  299.     }
  300.  
  301.     private void update(String restoName, String restoAddress, String restoDescription, List<Uri> localImageUris,
  302.                         String restoContact, String restoEmail, String cancellationPolicy, String restoId, String amenitiesResto,
  303.                         String gcashNumber, String gcashName, String reservationFee, double latitude, double longitude) {
  304.         DatabaseReference restosRef = databaseReference.child("restaurants");
  305.         Query query = restosRef.orderByChild("user_id").equalTo(userId);
  306.  
  307.         query.addListenerForSingleValueEvent(new ValueEventListener() {
  308.             @Override
  309.             public void onDataChange(@NonNull com.google.firebase.database.DataSnapshot dataSnapshot) {
  310.                 if (dataSnapshot.exists()) {
  311.                     for (com.google.firebase.database.DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
  312.                         String restoId = childSnapshot.getKey();
  313.  
  314.                         DatabaseReference restoRef = restosRef.child(restoId);
  315.                         restoRef.child("name").setValue(restoName);
  316.                         restoRef.child("address").setValue(restoAddress);
  317.                         restoRef.child("description").setValue(restoDescription);
  318.                         restoRef.child("contact").setValue(restoContact);
  319.                         restoRef.child("email").setValue(restoEmail);
  320.                         restoRef.child("cancellationPolicy").setValue(cancellationPolicy);
  321.                         restoRef.child("amenities").setValue(amenitiesResto);
  322.                         restoRef.child("gcashNumber").setValue(gcashNumber);
  323.                         restoRef.child("gcashName").setValue(gcashName);
  324.                         restoRef.child("reservationFee").setValue(reservationFee);
  325.  
  326.                         restoRef.child("latitude").setValue(latitude);
  327.                         restoRef.child("longitude").setValue(longitude);
  328.  
  329.  
  330.  
  331.  
  332.  
  333.                         List<String> existingImageUrls = new ArrayList<>();
  334.                         DataSnapshot imagesSnapshot = childSnapshot.child("images");
  335.                         for (DataSnapshot imageSnapshot : imagesSnapshot.getChildren()) {
  336.                             String imageUrl = imageSnapshot.getValue(String.class);
  337.                             existingImageUrls.add(imageUrl);
  338.                         }
  339.  
  340.                         List<String> newImageUrls = new ArrayList<>();
  341.                         for (int i = 0; i < localImageUris.size(); i++) {
  342.                             Uri imageUri = localImageUris.get(i);
  343.                             StorageReference imageRef = storageReference.child("restaurant_images/" + restoId + "/image" + (i + 1));
  344.  
  345.                             // Upload the image and get the download URL
  346.                             UploadTask uploadTask = imageRef.putFile(imageUri);
  347.  
  348.                             uploadTask.addOnSuccessListener(taskSnapshot -> {
  349.                                 // Handle the image upload success and get the download URL
  350.                                 imageRef.getDownloadUrl().addOnSuccessListener(downloadUri -> {
  351.                                     String newImageUrl = downloadUri.toString();
  352.                                     newImageUrls.add(newImageUrl);
  353.  
  354.                                     // Check if all new images have been uploaded
  355.                                     if (newImageUrls.size() == localImageUris.size()) {
  356.                                         // Update the 'images' node with the new URLs
  357.                                         Map<String, Object> imagesMap = new HashMap<>();
  358.                                         for (int j = 0; j < newImageUrls.size(); j++) {
  359.                                             imagesMap.put("image" + (j + 1), newImageUrls.get(j));
  360.                                         }
  361.  
  362.                                         // Remove extra URLs if any
  363.                                         for (int k = localImageUris.size() + 1; k <= existingImageUrls.size(); k++) {
  364.                                             imagesMap.put("image" + k, null);
  365.                                         }
  366.  
  367.                                         // Update the 'images' node with the modified URLs
  368.                                         restoRef.child("images").updateChildren(imagesMap);
  369.  
  370.                                         adapter.setUris(localImageUris);
  371.                                         adapter.notifyDataSetChanged();
  372.                                     }
  373.                                 });
  374.                             });
  375.  
  376.                             // Handle the image upload failure
  377.                             uploadTask.addOnFailureListener(new MyFailureListener());
  378.                         }
  379.                     }
  380.                 }
  381.             }
  382.  
  383.             @Override
  384.             public void onCancelled(@NonNull DatabaseError databaseError) {
  385.                 Log.e("update", "error" + databaseError.getMessage());
  386.             }
  387.         });
  388.     }
  389.  
  390.  
  391.     private void openGallery() {// lalagyan natin to ng permission first
  392.  
  393.         Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
  394.         galleryLauncher.launch(galleryIntent);
  395.         Log.d(TAG, "opening gallery with URI: " + imageUri);
  396.     }
  397.     // always save changes
  398.     private void save(String restoId, List<String> imageUrls, String restoName, String restoAddress, String restoDescription,
  399.                       String restoContact, String restoEmail, String cancellationPolicy, String amenitiesResto,
  400.                       String gcashNumber, String gcashName, String reservationFee, double latitude, double longitude) {
  401.  
  402.         DatabaseReference restosRef = databaseReference.child("restaurants");
  403.         DatabaseReference restoRef = restosRef.child(restoId);
  404.  
  405.         restoRef.child("name").setValue(restoName);
  406.         restoRef.child("address").setValue(restoAddress);
  407.         restoRef.child("description").setValue(restoDescription);
  408.         restoRef.child("contact").setValue(restoContact);
  409.         restoRef.child("email").setValue(restoEmail);
  410.         restoRef.child("cancellationPolicy").setValue(cancellationPolicy);
  411.         restoRef.child("user_id").setValue(userId);
  412.         restoRef.child("amenities").setValue(amenitiesResto);
  413.         restoRef.child("gcashNumber").setValue(gcashNumber);
  414.         restoRef.child("gcashName").setValue(gcashName);
  415.         restoRef.child("reservationFee").setValue(reservationFee);
  416.  
  417.         restoRef.child("latitude").setValue(latitude);
  418.         restoRef.child("longitude").setValue(longitude);
  419.  
  420.         Map<String, Object> imagesMap = new HashMap<>();
  421.         for (int i = 0; i < imageUrls.size(); i++) {
  422.             imagesMap.put("image" + (i + 1), imageUrls.get(i));
  423.         }
  424.         restoRef.child("images").setValue(imagesMap);
  425.     }
  426.  
  427.     // then reretrieve natin sa mga edit texts
  428.     private void retrieve(String userId) {
  429.         DatabaseReference restoRef = databaseReference.child("restaurants");
  430.         Query query = restoRef.orderByChild("user_id").equalTo(userId);
  431.         query.addListenerForSingleValueEvent(new ValueEventListener() {
  432.             @Override
  433.             public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  434.                 if (dataSnapshot.exists()) {
  435.                     DataSnapshot restoSnapshot = dataSnapshot.getChildren().iterator().next();
  436.  
  437.                     String title = restoSnapshot.child("name").getValue(String.class);
  438.                     String restoAddress = restoSnapshot.child("address").getValue(String.class);
  439.                     String description = restoSnapshot.child("description").getValue(String.class);
  440.                     String restoContact = restoSnapshot.child("contact").getValue(String.class);
  441.                     String restoEmail = restoSnapshot.child("email").getValue(String.class);
  442.                     String cancellationPolicy = restoSnapshot.child("cancellationPolicy").getValue(String.class);
  443.                     String amenitiesResto = restoSnapshot.child("amenities").getValue(String.class);
  444.                     String gcashNumber = restoSnapshot.child("gcashNumber").getValue(String.class);
  445.                     String gcashName = restoSnapshot.child("gcashName").getValue(String.class);
  446.                     String reservationfee = restoSnapshot.child("reservationFee").getValue(String.class);
  447.  
  448.                     Double latitudeDouble = restoSnapshot.child("latitude").getValue(Double.class);
  449.                     Double longitudeDouble = restoSnapshot.child("longitude").getValue(Double.class);
  450.  
  451.                     // Check for null before invoking toString()
  452.                     String latitude = (latitudeDouble != null) ? latitudeDouble.toString() : "defaultLatitude";
  453.                     String longitude = (longitudeDouble != null) ? longitudeDouble.toString() : "defaultLongitude";
  454.  
  455.  
  456.                     Log.d(TAG, "Retrieved Latitude: " + latitude);
  457.                     Log.d(TAG, "Retrieved Longitude: " + longitude);
  458.  
  459.                     List<String> imageUrls = new ArrayList<>();
  460.                     DataSnapshot imagesSnapshot = restoSnapshot.child("images");
  461.                     for (DataSnapshot imageSnapshot : imagesSnapshot.getChildren()) {
  462.                         String imageUrl = imageSnapshot.getValue(String.class);
  463.                         imageUrls.add(imageUrl);
  464.                     }
  465.  
  466.                     restoNameEditText.setText(title);
  467.                     restoDescriptionEditText.setText(description);
  468.                     restoAddressEditText.setText(restoAddress);
  469.                     restoContactEditText.setText(restoContact);
  470.                     restoEmailEditText.setText(restoEmail);
  471.                     cancellationPolicyEditText.setText(cancellationPolicy);
  472.                     amenityEditText.setText(amenitiesResto);
  473.                     gcashNumberET.setText(gcashNumber);
  474.                     gcashNameET.setText(gcashName);
  475.                     reservationFeeET.setText(reservationfee);
  476.  
  477.                     TextInputEditText longitudeEditText = findViewById(R.id.longitudeET);
  478.                     TextInputEditText latitudeEditText = findViewById(R.id.latitudeET);
  479.  
  480.                     longitudeEditText.setText(String.valueOf(latitude));
  481.                     latitudeEditText.setText(String.valueOf(longitude));
  482.  
  483.  
  484.  
  485.  
  486.  
  487.                     imageUris.clear();
  488.  
  489.                     imageUris.clear();
  490.                     for (String imageUrl : imageUrls) {
  491.                         imageUris.add(Uri.parse(imageUrl));
  492.                     }
  493.  
  494.                     adapter.setUris(imageUris);
  495.                     adapter.notifyDataSetChanged();
  496.                 }
  497.             }
  498.  
  499.             @Override
  500.             public void onCancelled(@NonNull DatabaseError databaseError) {
  501.                 Log.e("retrieve", "error" + databaseError.getMessage());
  502.             }
  503.         });
  504.     }
  505.     private void dots(int position) {// again for dots lang nung image slider
  506.         dots = new ImageView[imageUris.size()];
  507.         dotsLayout.removeAllViews();
  508.  
  509.         for (int i = 0; i < dots.length; i++) {
  510.             dots[i] = new ImageView(this);
  511.             dots[i].setImageDrawable(ContextCompat.getDrawable(this, R.drawable.dots_unselected));
  512.  
  513.             LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
  514.                     LinearLayout.LayoutParams.WRAP_CONTENT,
  515.                     LinearLayout.LayoutParams.WRAP_CONTENT
  516.             );
  517.  
  518.             params.setMargins(8, 0, 8, 0);
  519.             dotsLayout.addView(dots[i], params);
  520.         }
  521.         if (dots.length > 0) {
  522.             dots[position].setImageDrawable(ContextCompat.getDrawable(this, R.drawable.dots_selected));
  523.         }
  524.     }
  525.     public void goBack(View view) {
  526.         onBackPressed();
  527.     }
  528.  
  529. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement