Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.gypsy;
- import android.content.Intent;
- import android.net.Uri;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.TextView;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import androidx.appcompat.app.AlertDialog;
- import androidx.annotation.NonNull;
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.viewpager2.widget.ViewPager2;
- import com.google.android.material.appbar.CollapsingToolbarLayout;
- 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.ArrayList;
- import java.util.List;
- public class DynamicHotel extends AppCompatActivity {
- private ViewPager2 imageSliderViewPager;
- private HotelImageSliderAdapter imageSliderAdapter;
- private ArrayList<Uri> imageUris = new ArrayList<>();
- private LinearLayout sliderDotsPanel;
- private Button bookButton;
- private FloatingActionButton messageButton;
- private String recepientName;
- private String hotelUserId;
- private String currentUserName;
- private FirebaseAuth mAuth;
- private String currentUserId;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_dynamic_hotel);
- // retrieve intent galing sa hotel fragment
- Intent intent = getIntent();
- String hotelId = intent.getStringExtra("hotelKey");
- Log.d("DynamicHotel", "hotelId: " + hotelId);
- mAuth = FirebaseAuth.getInstance();
- FirebaseUser currentUser = mAuth.getCurrentUser();
- if (currentUser != null) {
- currentUserId = currentUser.getUid();
- Log.d("DynamicHotel", "currentUserId: " + currentUserId);
- }
- bookButton = findViewById(R.id.book_button);
- messageButton = findViewById(R.id.messageButton);
- imageSliderViewPager = findViewById(R.id.imageSliderViewPager);
- sliderDotsPanel = findViewById(R.id.dotsLayout2);
- imageSliderAdapter = new HotelImageSliderAdapter(this, imageUris, imageSliderViewPager, sliderDotsPanel);
- imageSliderViewPager.setAdapter(imageSliderAdapter);
- imageSliderAdapter.updateDotsIndicator(0);
- imageSliderViewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
- @Override
- public void onPageSelected(int position) {
- super.onPageSelected(position);
- imageSliderAdapter.updateDotsIndicator(position);
- }
- });
- bookButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // Create an AlertDialog.Builder
- AlertDialog.Builder builder = new AlertDialog.Builder(DynamicHotel.this);
- // Set the alert dialog title and message
- builder.setTitle("Terms and Condition ");
- builder.setMessage("**Payment Terms and Conditions**\n" +
- "\n" +
- "**1. Payment Policy**\n" +
- "\n" +
- "1.1. **Booking Confirmation:** By making a payment for your booking through GYPSYGO, you acknowledge and agree to the following Payment Terms and Conditions.\n" +
- "\n" +
- "1.2. **Payment Method:** The payment method currently accepted for bookings on GYPSYGO is GCash. Please note that the accepted payment methods may change in the future. Any changes will be communicated to users through official channels.\n" +
- "\n" +
- "1.3. **Non-Refundable:** All payments are non-refundable, except in cases of proven fraudulent activity. Once a payment is completed, no refunds will be provided, subject to our No Refund Policy (as specified in the General Terms and Conditions).\n" +
- "\n" +
- "**2. Anti-Scam Policy**\n" +
- "\n" +
- "2.1. **Scam Awareness:** GYPSYGO is committed to maintaining a scam-free platform. We encourage users to remain vigilant and cautious while making payments.\n" +
- "\n" +
- "2.2. **Suspicious Activity:** If you encounter any suspicious or fraudulent activity while making a payment, please report it to us immediately.\n" +
- "\n" +
- "2.3. **User Verification:** We may implement user verification processes, including identity verification, to ensure the legitimacy of users and payments. By making a payment, you consent to such verification.\n" +
- "\n" +
- "**3. Post-Payment Verification**\n" +
- "\n" +
- "3.1. **Notification:** After you successfully complete your payment, you will receive a payment confirmation notification via email or the GYPSYGO app. This notification serves as your proof of payment.\n" +
- "\n" +
- "3.2. **Verification Process:** Please be aware that your payment will be subject to manual verification by our team. This verification process may take up to 15 minutes.\n" +
- "\n" +
- "3.3. **Requirement:** To book or gain entry to a hotel or restaurant, you must present the payment confirmation notification you received from GYPSYGO. This notification is your evidence that you have paid the correct amount for your booking.\n" +
- "\n" +
- "\n" +
- "By proceeding with your payment through GYPSYGO, you indicate that you have read, understood, and accepted these Payment Terms and Conditions.\n" +
- "\n");
- // Set positive button (yes)
- builder.setPositiveButton("I Understand", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // User clicked Yes button, proceed to BookForm activity
- Intent intent = new Intent(DynamicHotel.this, BookForm.class);
- intent.putExtra("hotelKey", hotelId);
- Log.d("bookButton", "hotelId: " + hotelId);
- startActivity(intent);
- }
- });
- // Create and show the AlertDialog
- AlertDialog alertDialog = builder.create();
- alertDialog.show();
- }
- });
- Button mapButton = findViewById(R.id.map);
- mapButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // Directly navigate to the map when the "View in map" button is clicked
- navigateToMap(hotelId);
- }
- });
- queryHotelUserId(hotelId);
- retrieveHotelUserName(hotelId);
- retrieveCurrentUserName(currentUserId);
- messageButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(DynamicHotel.this, TouristHotelChat.class);
- intent.putExtra("recipientUserId", hotelUserId);
- intent.putExtra("recipientUserName", recepientName);
- intent.putExtra("currentUserName", currentUserName);
- Log.d("DynamicHotel messageButton", "recipientUserId : " + hotelUserId);
- Log.d("DynamicHotel messageButton", "recipientName : " + recepientName);
- Log.d("DynamicHotel messageButton", "currentUserName: " + currentUserName);
- startActivity(intent);
- }
- });
- retrieve(hotelId);
- }
- private void navigateToMap(String hotelId) {
- Intent intent = new Intent(DynamicHotel.this, DynamicHotelMap.class);
- intent.putExtra("hotelId", hotelId);
- startActivity(intent);
- }
- public void retrieve(String hotelId){
- TextView hotelNameTV = findViewById(R.id.nameTextView);
- TextView hotelDescriptionTV = findViewById(R.id.descriptionTextView);
- TextView amenitiesTV = findViewById(R.id.amenitiesTextView);
- TextView hotelAddressTV = findViewById(R.id.addressTextView);
- TextView hotelContactTV = findViewById(R.id.contactTextView);
- TextView hotelEmailTV = findViewById(R.id.emailTextView);
- TextView cancellationPolicyTV = findViewById(R.id.cancellationPolicyTextView);
- DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
- DatabaseReference hotelRef = databaseReference.child("hotels").child(hotelId);
- hotelRef.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
- Log.d("DynamicHotel", "onDataChange called");
- if (dataSnapshot.exists()) {
- String title = dataSnapshot.child("name").getValue(String.class);
- String hotelAddress = dataSnapshot.child("address").getValue(String.class);
- String amenities = dataSnapshot.child("amenities").getValue(String.class);
- String description = dataSnapshot.child("description").getValue(String.class);
- String hotelContact = dataSnapshot.child("contact").getValue(String.class);
- String hotelEmail = dataSnapshot.child("email").getValue(String.class);
- String cancellationPolicy = dataSnapshot.child("cancellationPolicy").getValue(String.class);
- hotelNameTV.setText(title);
- hotelDescriptionTV.setText(description);
- amenitiesTV.setText(amenities);
- hotelAddressTV.setText(hotelAddress);
- hotelContactTV.setText(hotelContact);
- hotelEmailTV.setText(hotelEmail);
- cancellationPolicyTV.setText(cancellationPolicy);
- imageUris.clear();
- DataSnapshot imagesSnapshot = dataSnapshot.child("images");
- for (DataSnapshot imageSnapshot : imagesSnapshot.getChildren()) {
- String imageUrl = imageSnapshot.getValue(String.class);
- Uri uri = Uri.parse(imageUrl);
- imageUris.add(uri);
- }
- imageSliderAdapter.setImageUris(imageUris);
- imageSliderAdapter.notifyDataSetChanged();
- // kahit wag na lagyan ng title
- //CollapsingToolbarLayout collapsingToolbar = findViewById(R.id.Collapsing_toolbar);
- //collapsingToolbar.setTitle(title);
- }
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- Log.e("DynamicHotel", "Failed to retrieve hotel data: " + databaseError.getMessage());
- }
- });
- }
- private void queryHotelUserId(String hotelId) {
- DatabaseReference hotelRef = FirebaseDatabase.getInstance().getReference().child("hotels").child(hotelId);
- hotelRef.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
- if (dataSnapshot.exists()) {
- hotelUserId = dataSnapshot.child("user_id").getValue(String.class);
- Log.d("DynamicHotel", "hotelUserId / recipientId: " + hotelUserId);
- // You can perform any additional actions here after obtaining hotelUserId
- }
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- Log.e("DynamicHotel", "Database error: " + databaseError.getMessage());
- }
- });
- }
- private void retrieveHotelUserName(String hotelId) {
- DatabaseReference hotelRef = FirebaseDatabase.getInstance().getReference().child("hotels").child(hotelId);
- hotelRef.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
- if (dataSnapshot.exists()) {
- hotelUserId = dataSnapshot.child("user_id").getValue(String.class);
- Log.d("RetrieveHotelUserName", "hotelUserId: " + hotelUserId);
- retrieveHotelName(hotelUserId);
- }
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- Log.e("DynamicHotel", "Hotel user id retrieval cancelled: " + databaseError.getMessage());
- }
- });
- }
- private void retrieveHotelName(String hotelUserId) {
- DatabaseReference usersRef = FirebaseDatabase.getInstance().getReference().child("users").child("Hotel").child(hotelUserId);
- usersRef.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
- if (dataSnapshot.exists()) {
- recepientName = dataSnapshot.child("name").getValue(String.class);
- Log.d("retrieveHotelName", "recepientName: " + recepientName);
- }
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- Log.e("DynamicHotel", "Hotel user name retrieval cancelled: " + databaseError.getMessage());
- }
- });
- }
- private void retrieveCurrentUserName(String currentUserId) {
- DatabaseReference usersRef = FirebaseDatabase.getInstance().getReference().child("users").child("Tourist").child(currentUserId);
- Log.d("DynamicHotel", " 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("DynamicHotel", "Current User Name: " + currentUserName);
- }
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- Log.e("BookingDetail", "Current user name retrieval cancelled: " + databaseError.getMessage());
- }
- });
- }
- public void goBack(View view) {
- onBackPressed();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement