Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.gypsy;
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import androidx.appcompat.app.AlertDialog;
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.fragment.app.DialogFragment;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.ProgressBar;
- import android.widget.ScrollView;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.google.android.gms.tasks.OnCompleteListener;
- import com.google.android.gms.tasks.Task;
- import com.google.android.material.floatingactionbutton.FloatingActionButton;
- 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.squareup.picasso.Picasso;
- import java.util.HashMap;
- import java.util.Map;
- public class ReserveDetails extends AppCompatActivity {
- private TextView fullNameTextView;
- private TextView contactNumberTextView, personTextView;
- private TextView emailTextView;
- private TextView reserveDateTextView;
- private TextView gcashname, gcashnum, refnumber;
- private Button confirmButton;
- private FloatingActionButton messageButton;
- private ImageView imagepayment;
- private String touristUserId;
- private String recipientName;
- private String currentUserName;
- private FirebaseAuth mAuth;
- private String currentUserId;
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_reserve_details);
- fullNameTextView = findViewById(R.id.fullNameTextView);
- contactNumberTextView = findViewById(R.id.contactNumberTextView);
- emailTextView = findViewById(R.id.emailTextView);
- reserveDateTextView = findViewById(R.id.reserveDateTextView);
- contactNumberTextView = findViewById(R.id.contactNumberTextView);
- personTextView = findViewById(R.id.personTextView);
- gcashnum = findViewById(R.id.gcashnum);
- gcashname = findViewById(R.id.gcashname);
- refnumber = findViewById(R.id.refnum);
- imagepayment = findViewById(R.id.imagepayment);
- ScrollView contentLayout = findViewById(R.id.contentLayout);
- ProgressBar loadingProgressBar = findViewById(R.id.loadingProgressBar);
- loadingProgressBar.setVisibility(View.VISIBLE);
- contentLayout.setVisibility(View.GONE);
- loadingProgressBar.setVisibility(View.VISIBLE);
- contentLayout.setVisibility(View.GONE);
- confirmButton = findViewById(R.id.confirmButton);
- messageButton = findViewById(R.id.messageButton);
- mAuth = FirebaseAuth.getInstance();
- FirebaseUser currentUser = mAuth.getCurrentUser();
- if (currentUser != null) {
- currentUserId = currentUser.getUid();
- }
- Intent intent = getIntent();
- ReservationInfoModel selectedReserve = (ReservationInfoModel) intent.getSerializableExtra("selectedReserve");
- if (selectedReserve != null) {
- String userId = selectedReserve.getUserId();
- fullNameTextView.setText("Full Name: " + selectedReserve.getFullName());
- contactNumberTextView.setText(selectedReserve.getContactNumber());
- emailTextView.setText(selectedReserve.getEmail());
- String reservationId = selectedReserve.getReservationId();
- retrieveRecipientName(userId);
- retrieveAndStartChatWithCurrentUserName(currentUserId);
- messageButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(ReserveDetails.this, TouristHotelChat.class);
- intent.putExtra("recipientUserId", userId);
- intent.putExtra("recipientUserName", recipientName);
- intent.putExtra("currentUserName", currentUserName);
- Log.d("ReserveDetails messageButton", "recipientUserId: " + userId);
- Log.d("ReserveDetails messageButton", "recipientUserName: " + recipientName);
- Log.d("ReserveDetails messageButton", "currentUserName: " + currentUserName);
- startActivity(intent);
- }
- });
- DatabaseReference reserveRef = FirebaseDatabase.getInstance().getReference().child("reservation_info").child(reservationId);
- Button declineButton = findViewById(R.id.declineButton);
- declineButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- AlertDialog.Builder builder = new AlertDialog.Builder(ReserveDetails.this);
- builder.setTitle("Decline Booking");
- builder.setMessage("Please provide a reason for declining:");
- final EditText input = new EditText(ReserveDetails.this);
- builder.setView(input);
- builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- String declineReason = input.getText().toString();
- DatabaseReference reserveRef = FirebaseDatabase.getInstance().getReference().child("reservation_info").child(reservationId);
- Map<String, Object> updates = new HashMap<>();
- updates.put("isDeclined", true);
- updates.put("isConfirmed", false);
- updates.put("isPending", false);
- updates.put("declineReason", declineReason);
- reserveRef.updateChildren(updates).addOnCompleteListener(new OnCompleteListener<Void>() {
- @Override
- public void onComplete(@NonNull Task<Void> task) {
- if (task.isSuccessful()) {
- Toast.makeText(ReserveDetails.this, "Booking declined successfully", Toast.LENGTH_SHORT).show();
- // Exit the current activity
- finish();
- } else {
- Toast.makeText(ReserveDetails.this, "Failed to decline booking", Toast.LENGTH_SHORT).show();
- }
- }
- });
- }
- });
- builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- dialog.cancel();
- }
- });
- builder.show();
- }
- });
- reserveRef.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- if (dataSnapshot.exists()) {
- touristUserId = dataSnapshot.child("userId").getValue(String.class);
- Log.d("ReserveDetails", "touristUserId" + touristUserId);
- String fullName = dataSnapshot.child("fullName").getValue(String.class);
- String reservationDate = dataSnapshot.child("reservationDate").getValue(String.class);
- String contactNumberDetail = dataSnapshot.child("contactNumber").getValue(String.class);
- String email = dataSnapshot.child("email").getValue(String.class);
- Integer person = dataSnapshot.child("customers").getValue(Integer.class);
- String GcashName = dataSnapshot.child("GcashName").getValue(String.class);
- String yGcashNumber = dataSnapshot.child("yGcashNumber").getValue(String.class);
- String referenceNumber = dataSnapshot.child("referenceNumber").getValue(String.class);
- String imageUrl = dataSnapshot.child("imageUrl").getValue(String.class);
- reserveDateTextView.setText(reservationDate);
- fullNameTextView.setText(fullName);
- contactNumberTextView.setText(contactNumberDetail);
- personTextView.setText(String.valueOf(person));
- gcashnum.setText(yGcashNumber);
- gcashname.setText(GcashName);
- refnumber.setText(referenceNumber);
- Picasso.get().load(imageUrl).into(imagepayment);
- loadingProgressBar.setVisibility(View.GONE);
- contentLayout.setVisibility(View.VISIBLE);
- }
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- Log.e("ReserveDetails", "Database error: " + databaseError.getMessage());
- }
- });
- confirmButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- DatabaseReference reserveRef = FirebaseDatabase.getInstance().getReference().child("reservation_info").child(reservationId);
- reserveRef.child("isConfirmed").setValue(true).addOnCompleteListener(new OnCompleteListener<Void>() {
- @Override
- public void onComplete(@NonNull Task<Void> task) {
- if (task.isSuccessful()) {
- reserveRef.child("isPending").setValue(false);
- Toast.makeText(ReserveDetails.this, "Booking confirmed successfully", Toast.LENGTH_SHORT).show();
- // Exit the current activity
- finish();
- } else {
- Toast.makeText(ReserveDetails.this, "Failed to confirm booking", Toast.LENGTH_SHORT).show();
- }
- }
- });
- }
- });
- }
- }
- private void retrieveRecipientName(String userId) {
- if (userId != null && !userId.isEmpty()) {
- DatabaseReference usersRef = FirebaseDatabase.getInstance().getReference().child("users").child("Tourist").child(userId);
- usersRef.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- if (dataSnapshot.exists()) {
- recipientName = dataSnapshot.child("name").getValue(String.class);
- Log.d("ReserveDetails", "Recipient Name: " + recipientName);
- }
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- Log.e("ReserveDetails", "Recipient name retrieval cancelled: " + databaseError.getMessage());
- }
- });
- } else {
- Log.e("ReserveDetails", "userId is null or empty");
- }
- }
- private void retrieveAndStartChatWithCurrentUserName(String currentUserId) {
- if (currentUserId != null && !currentUserId.isEmpty()) {
- DatabaseReference usersRef = FirebaseDatabase.getInstance().getReference().child("users").child("Restaurant").child(currentUserId);
- Log.d("ReserveDetails", " User ref: " + usersRef);
- usersRef.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- if (dataSnapshot.exists()) {
- currentUserName = dataSnapshot.child("name").getValue(String.class);
- Log.d("ReserveDetails", "Current User Name: " + currentUserName);
- }
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- Log.e("ReserveDetails", "Current user name retrieval cancelled: " + databaseError.getMessage());
- }
- });
- } else {
- Log.e("ReserveDetails", "currentUserId is null or empty");
- }
- }
- public void goBack(View view) {
- onBackPressed();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement