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 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) {
- Intent intent = new Intent(DynamicHotel.this, BookForm.class);
- intent.putExtra("hotelKey", hotelId);
- Log.d("bookButton", "hotelId: " + hotelId);
- startActivity(intent);
- }
- });
- 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