Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.gypsy;
- import static android.content.ContentValues.TAG;
- import android.app.Activity;
- import android.content.Intent;
- import android.net.Uri;
- import android.os.Bundle;
- import android.provider.MediaStore;
- import android.util.Log;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import androidx.activity.result.ActivityResultLauncher;
- import androidx.activity.result.contract.ActivityResultContracts;
- import androidx.annotation.NonNull;
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.core.content.ContextCompat;
- import androidx.recyclerview.widget.LinearLayoutManager;
- import androidx.recyclerview.widget.RecyclerView;
- import androidx.viewpager2.widget.ViewPager2;
- import java.io.FileNotFoundException;
- import java.io.InputStream;
- import com.google.android.gms.tasks.OnCompleteListener;
- import com.google.android.gms.tasks.OnFailureListener;
- import com.google.android.gms.tasks.Task;
- import com.google.android.material.floatingactionbutton.FloatingActionButton;
- import com.google.android.material.textfield.TextInputEditText;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.auth.FirebaseUser;
- import com.google.firebase.database.DataSnapshot;
- import com.google.firebase.database.DatabaseError;
- import com.google.firebase.database.DatabaseReference;
- import com.google.firebase.database.FirebaseDatabase;
- import com.google.firebase.database.Query;
- import com.google.firebase.database.ValueEventListener;
- import com.google.firebase.storage.FirebaseStorage;
- import com.google.firebase.storage.StorageReference;
- import com.google.firebase.storage.UploadTask;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.concurrent.atomic.AtomicInteger;
- public class EditHotelActivity extends AppCompatActivity {
- private List<Uri> imageUris = new ArrayList<>();
- private ActivityResultLauncher<Intent> galleryLauncher;
- private FloatingActionButton uploadButton;
- private TextInputEditText hotelNameET;
- private TextInputEditText hotelAddET;
- private TextInputEditText hotelDescET;
- private TextInputEditText hotelContactET;
- private TextInputEditText hotelEmailET;
- private TextInputEditText roomTypeET;
- private List<String> roomTypes = new ArrayList<>();
- private RoomTypeAdapter roomTypeAdapter;
- private RecyclerView roomTypeRecyclerView;
- private TextInputEditText cancellationPolicyET;
- private TextInputEditText amenityET;
- private TextInputEditText gcashNumberET;
- private TextInputEditText gcashNameET;
- private Button postButton, cancelButton;
- private Uri imageUri;
- private StorageReference storageReference;
- private DatabaseReference databaseReference;
- private String userId;
- private HotelImageSliderAdapter adapter;
- private ViewPager2 viewPager;
- private LinearLayout dotsLayout;
- private ImageView[] dots;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_edit_hotel);
- viewPager = findViewById(R.id.viewPager);
- dotsLayout = findViewById(R.id.dotsLayout);
- uploadButton = findViewById(R.id.uploadButton);
- hotelNameET = findViewById(R.id.hotelNameET);
- hotelAddET = findViewById(R.id.hotelAddET);
- hotelDescET = findViewById(R.id.hotelDescET);
- hotelContactET = findViewById(R.id.hotelContactET);
- hotelEmailET = findViewById(R.id.hotelEmailET);
- roomTypeET = findViewById(R.id.roomtypeET);
- amenityET = findViewById(R.id.amenityET);
- cancellationPolicyET = findViewById(R.id.cancellationPolicyET);
- gcashNumberET = findViewById(R.id.gcashNumber);
- gcashNameET = findViewById(R.id.gcashName);
- postButton = findViewById(R.id.postButton);
- roomTypeRecyclerView = findViewById(R.id.roomTypesRecyclerView);
- roomTypeAdapter = new RoomTypeAdapter(roomTypes, new RoomTypeAdapter.OnRoomTypeDeleteListener() {
- @Override
- public void deleteRoomType(String roomType) {
- getHotelId(new HotelIdCallback() {
- @Override
- public void onHotelIdReceived(String hotelId) {
- if (hotelId != null) {
- DatabaseReference hotelRef = databaseReference.child("hotels").child(hotelId);
- // Fetch the current room types
- hotelRef.child("roomTypes").addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
- if (dataSnapshot.exists()) {
- List<String> currentRoomTypes = new ArrayList<>();
- for (DataSnapshot roomTypeSnapshot : dataSnapshot.getChildren()) {
- String existingRoomType = roomTypeSnapshot.getValue(String.class);
- if (!roomType.equals(existingRoomType)) {
- currentRoomTypes.add(existingRoomType);
- }
- }
- // Update the room types in the Firebase Realtime Database
- updateRoomTypesInDatabase(hotelRef, currentRoomTypes);
- }
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- Log.e("deleteRoomType", "Error: " + databaseError.getMessage());
- }
- });
- } else {
- Log.e("deleteRoomType", "Hotel ID is null");
- }
- }
- });
- }
- });
- roomTypeRecyclerView.setLayoutManager(new LinearLayoutManager(this));
- roomTypeRecyclerView.setAdapter(roomTypeAdapter);
- roomTypeET = findViewById(R.id.roomtypeET);
- Button addRoomTypeBtn = findViewById(R.id.addRoomTypeBtn);
- // dynamically pag-add ng room types nila
- addRoomTypeBtn.setOnClickListener(v -> {
- String roomType = roomTypeET.getText().toString().trim();
- if (!roomType.isEmpty()) {
- roomTypes.add(roomType);
- roomTypeAdapter.notifyDataSetChanged();
- roomTypeET.setText("");
- }
- });
- FirebaseAuth auth = FirebaseAuth.getInstance();
- FirebaseUser currentUser = auth.getCurrentUser();
- userId = currentUser.getUid();
- FirebaseStorage storage = FirebaseStorage.getInstance();
- storageReference = storage.getReference();
- FirebaseDatabase database = FirebaseDatabase.getInstance();
- databaseReference = database.getReference();
- // adapter para sa multiple images ng hotel, slider
- adapter = new HotelImageSliderAdapter(this, imageUris, viewPager, dotsLayout);
- viewPager.setAdapter(adapter);
- // yung dots nag-iindicate ng pang ilang images na, parang sa ig
- dotsLayout = findViewById(R.id.dotsLayout);
- HotelImageSliderAdapter adapter = new HotelImageSliderAdapter(this, imageUris, viewPager, dotsLayout);
- viewPager.setAdapter(adapter);
- viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
- @Override
- public void onPageSelected(int position) {
- super.onPageSelected(position);
- adapter.updateDotsIndicator(position);
- }
- });
- adapter.updateDotsIndicator(0);
- // gallery
- galleryLauncher = registerForActivityResult(
- new ActivityResultContracts.StartActivityForResult(),
- result -> {
- if (result.getResultCode() == Activity.RESULT_OK) {
- Intent data = result.getData();
- if (data != null && data.getData() != null) {
- imageUri = data.getData();
- imageUris.add(imageUri);
- adapter.notifyDataSetChanged();
- }
- }
- }
- );
- uploadButton.setOnClickListener(v -> openGallery());
- // button "save changes" mapopost na sa tourist interface
- postButton.setOnClickListener(v -> {
- String hotelName = hotelNameET.getText().toString();
- String hotelAddress = hotelAddET.getText().toString();
- String hotelDescription = hotelDescET.getText().toString();
- String hotelContact = hotelContactET.getText().toString();
- String hotelEmail = hotelEmailET.getText().toString();
- String roomType = roomTypeET.getText().toString();
- String cancellationPolicy = cancellationPolicyET.getText().toString();
- String amenitiesHotel = amenityET.getText().toString();
- String gcashNumber = gcashNumberET.getText().toString();
- String gcashName = gcashNameET.getText().toString();
- checkIfExists(userId, hotelName, hotelAddress, hotelDescription, hotelContact, hotelEmail, roomTypes, cancellationPolicy, imageUri, amenitiesHotel, gcashNumber, gcashName);
- // back to HotelEditFrag, or yung read-only, na nakaretrieve na
- Intent intent = new Intent(this, MainActivity2.class);
- intent.putExtra("fragmentToLoad", "HotelEditFragment");
- startActivity(intent);
- });
- retrieve(userId);
- addDotsIndicator(0); // para lang to sa dots sa image slider
- viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
- @Override
- public void onPageSelected(int position) {
- super.onPageSelected(position);
- addDotsIndicator(position);
- }
- });
- Log.d(TAG, "image upload triggeredd");
- }
- // if nag eexist na yung user sa "hotels", di na pwede mag generate ng new set of data, para iwas doble doeble
- private void checkIfExists(String userId, String hotelName, String hotelAddress, String hotelDescription, String hotelContact, String hotelEmail, List<String> roomTypes,
- String cancellationPolicy, Uri imageUri, String amenitiesHotel, String gcashNumber, String gcashName) {
- DatabaseReference hotelsRef = databaseReference.child("hotels");
- Query query = hotelsRef.orderByChild("user_id").equalTo(userId);
- query.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- // pag nag-eexist na, mag uupdate nalang yung existing data instead na gumawa ng new
- public void onDataChange(@NonNull com.google.firebase.database.DataSnapshot dataSnapshot) {
- if (dataSnapshot.exists()) {
- String existingHotelId = dataSnapshot.getChildren().iterator().next().getKey();
- update(hotelName, hotelAddress, hotelDescription, imageUris, hotelContact, hotelEmail, roomTypes,
- cancellationPolicy, existingHotelId, amenitiesHotel, gcashNumber, gcashName);
- adapter.setUris(imageUris);
- adapter.notifyDataSetChanged();
- Log.d(TAG, "hotel exists, id: " + userId);
- } else {
- // if hindi pa nag-eeexist, gagawa ng new data under "hotels"
- create(userId, hotelName, hotelAddress, hotelDescription, hotelContact, hotelEmail, roomTypes,
- cancellationPolicy, imageUris, amenitiesHotel, gcashNumber, gcashName);
- adapter.setUris(imageUris);
- adapter.notifyDataSetChanged();
- Log.d(TAG, "hotel dont exist: .getText().getText() " + userId);
- }
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- Log.e("check", "error" + databaseError.getMessage());
- }
- });
- }
- private void create(String userId, String hotelName, String hotelAddress, String hotelDescription,
- String hotelContact, String hotelEmail, List<String> roomTypes,
- String cancellationPolicy, List<Uri> imageUris, String amenitiesHotel,
- String gcashNumber, String gcashName) {
- DatabaseReference hotelsRef = databaseReference.child("hotels");
- DatabaseReference hotelRef = hotelsRef.push();
- String hotelId = hotelRef.getKey();
- List<String> imageUrls = new ArrayList<>();
- AtomicInteger uploadCount = new AtomicInteger(0);
- for (int i = 0; i < imageUris.size(); i++) {
- final int finalIndex = i;
- Uri imageUri = imageUris.get(i);
- try {
- // Convert Uri to InputStream
- InputStream imageInputStream = getContentResolver().openInputStream(imageUri);
- if (imageInputStream != null) {
- StorageReference imageRef = storageReference.child("hotel_images/" + hotelId + "/image" + (i + 1));
- UploadTask uploadTask = imageRef.putStream(imageInputStream);
- uploadTask.addOnFailureListener(new MyFailureListener());
- uploadTask.addOnSuccessListener(taskSnapshot -> {
- imageRef.getDownloadUrl().addOnCompleteListener(task -> {
- if (task.isSuccessful() && task.getResult() != null) {
- String url = task.getResult().toString();
- imageUrls.add(url);
- if (uploadCount.incrementAndGet() == imageUris.size()) {
- save(hotelId, imageUrls, hotelName, hotelAddress, hotelDescription,
- hotelContact, hotelEmail, roomTypes, cancellationPolicy,
- amenitiesHotel, gcashNumber, gcashName);
- saveImages(hotelId, imageUrls);
- adapter.setUris(imageUris);
- adapter.notifyDataSetChanged();
- }
- }
- });
- });
- } else {
- Log.e(TAG, "ImageInputStream is null. Handle this case accordingly.");
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- Log.e(TAG, "Unexpected error: " + e.getMessage());
- }
- }
- }
- private void update(String hotelName, String hotelAddress, String hotelDescription,
- List<Uri> imageUris, String hotelContact, String hotelEmail,
- List<String> roomTypes, String cancellationPolicy, String hotelId,
- String amenitiesHotel, String gcashNumber, String gcashName) {
- DatabaseReference hotelsRef = databaseReference.child("hotels");
- Query query = hotelsRef.orderByChild("user_id").equalTo(userId);
- query.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull com.google.firebase.database.DataSnapshot dataSnapshot) {
- if (dataSnapshot.exists()) {
- for (com.google.firebase.database.DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
- String hotelId = childSnapshot.getKey();
- DatabaseReference hotelRef = hotelsRef.child(hotelId);
- hotelRef.child("name").setValue(hotelName);
- hotelRef.child("address").setValue(hotelAddress);
- hotelRef.child("description").setValue(hotelDescription);
- hotelRef.child("contact").setValue(hotelContact);
- hotelRef.child("email").setValue(hotelEmail);
- hotelRef.child("cancellationPolicy").setValue(cancellationPolicy);
- hotelRef.child("amenities").setValue(amenitiesHotel);
- hotelRef.child("gcashNumber").setValue(gcashNumber);
- hotelRef.child("gcashName").setValue(gcashName);
- saveRoomTypes(hotelId, roomTypes);
- if (!imageUris.isEmpty()) {
- List<String> imageUrls = new ArrayList<>();
- for (int i = 0; i < imageUris.size(); i++) {
- if (imageUris.get(i) != null) {
- Uri imageUri = imageUris.get(i);
- try {
- // Convert Uri to InputStream
- InputStream imageInputStream = getContentResolver().openInputStream(imageUri);
- if (imageInputStream != null) {
- StorageReference imageRef = storageReference.child("hotel_images/" + hotelId + "/image" + (i + 1));
- UploadTask uploadTask = imageRef.putStream(imageInputStream);
- // Rest of your code for uploading the image
- uploadTask.addOnFailureListener(new OnFailureListener() {
- @Override
- public void onFailure(@NonNull Exception e) {
- Log.e("image upload", "Error during upload: " + e.getMessage());
- }
- });
- uploadTask.addOnFailureListener(new MyFailureListener());
- uploadTask.addOnSuccessListener(taskSnapshot -> imageRef.getDownloadUrl().addOnSuccessListener(downloadUri -> {
- String imageUrl = downloadUri.toString();
- imageUrls.add(imageUrl);
- if (imageUrls.size() == imageUris.size()) {
- saveImages(hotelId, imageUrls);
- }
- Log.d(TAG, "Image URL: " + imageUrl);
- })).addOnFailureListener(e -> {
- Log.e("image upload", "error");
- Log.e("image upload", "Firebase Storage Error: " + e.getMessage());
- });
- } else {
- Log.e(TAG, "ImageInputStream is null. Handle this case accordingly.");
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- Log.e(TAG, "FileNotFoundException: " + e.getMessage());
- }
- }
- }
- }
- }
- }
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- Log.e("update", "error" + databaseError.getMessage());
- }
- });
- }
- private void openGallery() {
- // lalagyan natin to ng permission first
- Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
- galleryLauncher.launch(galleryIntent);
- }
- // always save changes
- private void save(String hotelId, List<String> imageUrls, String hotelName, String hotelAddress, String hotelDescription,
- String hotelContact, String hotelEmail, List<String> roomTypes, String cancellationPolicy, String amenitiesHotel,
- String gcashNumber, String gcashName) {
- DatabaseReference hotelsRef = databaseReference.child("hotels");
- DatabaseReference hotelRef = hotelsRef.child(hotelId);
- // set sa rdb yung value
- hotelRef.child("name").setValue(hotelName);
- hotelRef.child("address").setValue(hotelAddress);
- hotelRef.child("description").setValue(hotelDescription);
- hotelRef.child("contact").setValue(hotelContact);
- hotelRef.child("email").setValue(hotelEmail);
- hotelRef.child("cancellationPolicy").setValue(cancellationPolicy);
- hotelRef.child("user_id").setValue(userId);
- hotelRef.child("amenities").setValue(amenitiesHotel);
- hotelRef.child("gcashNumber").setValue(gcashNumber);
- hotelRef.child("gcashName").setValue(gcashName);
- Map<String, Object> imagesMap = new HashMap<>();
- for (int i = 0; i < imageUrls.size(); i++) {
- imagesMap.put("image" + (i + 1), imageUrls.get(i));
- }
- hotelRef.child("images").setValue(imagesMap);
- Map<String, Object> roomTypesMap = new HashMap<>();
- for (int i = 0; i < roomTypes.size(); i++) {
- roomTypesMap.put("roomType" + (i + 1), roomTypes.get(i));
- }
- hotelRef.child("roomTypes").setValue(roomTypesMap);
- }
- // then reretrieve natin sa mga edit texts
- private void retrieve(String userId) {
- DatabaseReference hotelsRef = databaseReference.child("hotels");
- Query query = hotelsRef.orderByChild("user_id").equalTo(userId);
- query.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
- if (dataSnapshot.exists()) {
- DataSnapshot hotelSnapshot = dataSnapshot.getChildren().iterator().next();
- String title = hotelSnapshot.child("name").getValue(String.class);
- String hotelAddress = hotelSnapshot.child("address").getValue(String.class);
- String description = hotelSnapshot.child("description").getValue(String.class);
- String hotelContact = hotelSnapshot.child("contact").getValue(String.class);
- String hotelEmail = hotelSnapshot.child("email").getValue(String.class);
- String cancellationPolicy = hotelSnapshot.child("cancellationPolicy").getValue(String.class);
- String amenitiesHotel = hotelSnapshot.child("amenities").getValue(String.class);
- String gcashNumber = hotelSnapshot.child("gcashNumber").getValue(String.class);
- String gcashName = hotelSnapshot.child("gcashName").getValue(String.class);
- DataSnapshot roomTypesSnapshot = hotelSnapshot.child("roomTypes");
- List<String> roomTypes = new ArrayList<>();
- for (DataSnapshot roomTypeSnapshot : roomTypesSnapshot.getChildren()) {
- String roomType = roomTypeSnapshot.getValue(String.class);
- roomTypes.add(roomType);
- }
- List<String> imageUrls = new ArrayList<>();
- DataSnapshot imagesSnapshot = hotelSnapshot.child("images");
- for (DataSnapshot imageSnapshot : imagesSnapshot.getChildren()) {
- imageUrls.clear();
- String imageUrl = imageSnapshot.getValue(String.class);
- Log.d(TAG, "Image URL: " + imageUrl);
- imageUrls.add(imageUrl);
- }
- hotelNameET.setText(title);
- hotelDescET.setText(description);
- hotelAddET.setText(hotelAddress);
- hotelContactET.setText(hotelContact);
- hotelEmailET.setText(hotelEmail);
- cancellationPolicyET.setText(cancellationPolicy);
- amenityET.setText(amenitiesHotel);
- gcashNumberET.setText(gcashNumber);
- gcashNameET.setText(gcashName);
- imageUris.clear();
- imageUris.clear();
- for (String imageUrl : imageUrls) {
- imageUris.add(Uri.parse(imageUrl));
- }
- adapter.setUris(imageUris);
- adapter.notifyDataSetChanged();
- roomTypeAdapter.setRoomTypes(roomTypes);
- roomTypeAdapter.notifyDataSetChanged();
- }
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- Log.e("retrieve", "error" + databaseError.getMessage());
- }
- });
- }
- private void addDotsIndicator(int position) { // again for dots lang nung image slider
- dots = new ImageView[imageUris.size()];
- dotsLayout.removeAllViews();
- for (int i = 0; i < dots.length; i++) {
- dots[i] = new ImageView(this);
- dots[i].setImageDrawable(ContextCompat.getDrawable(this, R.drawable.dots_unselected));
- LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
- LinearLayout.LayoutParams.WRAP_CONTENT,
- LinearLayout.LayoutParams.WRAP_CONTENT
- );
- params.setMargins(8, 0, 8, 0);
- dotsLayout.addView(dots[i], params);
- }
- if (dots.length > 0) {
- dots[position].setImageDrawable(ContextCompat.getDrawable(this, R.drawable.dots_selected));
- }
- }
- private void saveImages(String hotelId, List<String> imageUrls) {
- DatabaseReference imagesRef = databaseReference.child("hotels").child(hotelId).child("images");
- for (int i = 0; i < imageUrls.size(); i++) {
- imagesRef.child("image" + (i + 1)).setValue(imageUrls.get(i));
- }
- }
- private void saveRoomTypes(String hotelId, List<String> roomTypes) {
- DatabaseReference roomTypesRef = databaseReference.child("hotels").child(hotelId).child("roomTypes");
- if (roomTypes != null) {
- for (int i = 0; i < roomTypes.size(); i++) {
- String roomType = roomTypes.get(i);
- if (roomType != null) {
- roomTypesRef.child("roomType" + (i + 1)).setValue(roomType);
- }
- }
- }
- }
- private void deleteRoomType(String roomType) {
- getHotelId(new HotelIdCallback() {
- @Override
- public void onHotelIdReceived(String hotelId) {
- if (hotelId != null) {
- DatabaseReference hotelRef = databaseReference.child("hotels").child(hotelId);
- // Fetch the current room types
- hotelRef.child("roomTypes").addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
- if (dataSnapshot.exists()) {
- List<String> currentRoomTypes = new ArrayList<>();
- for (DataSnapshot roomTypeSnapshot : dataSnapshot.getChildren()) {
- String existingRoomType = roomTypeSnapshot.getValue(String.class);
- if (!roomType.equals(existingRoomType)) {
- currentRoomTypes.add(existingRoomType);
- }
- }
- // Update the room types in the Firebase Realtime Database
- updateRoomTypesInDatabase(hotelRef, currentRoomTypes);
- }
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- Log.e("deleteRoomType", "Error: " + databaseError.getMessage());
- }
- });
- } else {
- Log.e("deleteRoomType", "Hotel ID is null");
- }
- }
- });
- }
- private void updateRoomTypesInDatabase(DatabaseReference hotelRef, List<String> roomTypes) {
- // Set the updated room types in the database
- hotelRef.child("roomTypes").removeValue(); // Remove the old room types
- Map<String, Object> roomTypesMap = new HashMap<>();
- for (int i = 0; i < roomTypes.size(); i++) {
- roomTypesMap.put("roomType" + (i + 1), roomTypes.get(i));
- }
- hotelRef.child("roomTypes").updateChildren(roomTypesMap);
- }
- private void getHotelId(HotelIdCallback callback) {
- FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
- if (currentUser != null) {
- String currentUserId = currentUser.getUid();
- DatabaseReference hotelRef = FirebaseDatabase.getInstance().getReference("hotels");
- Query query = hotelRef.orderByChild("user_id").equalTo(currentUserId);
- query.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
- if (dataSnapshot.exists()) {
- String hotelId = dataSnapshot.getChildren().iterator().next().getKey();
- callback.onHotelIdReceived(hotelId);
- } else {
- callback.onHotelIdReceived(null);
- }
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- // Handle errors or failures
- }
- });
- } else {
- callback.onHotelIdReceived(null);
- }
- }
- private interface HotelIdCallback {
- void onHotelIdReceived(String hotelId);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement