...
This commit is contained in:
@@ -42,10 +42,13 @@ public class ClientDashboardActivity extends AppCompatActivity {
|
|||||||
profileLauncher = registerForActivityResult(
|
profileLauncher = registerForActivityResult(
|
||||||
new androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult(),
|
new androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult(),
|
||||||
result -> {
|
result -> {
|
||||||
if (result.getResultCode() == RESULT_OK) {
|
if (result.getResultCode() == RESULT_OK && result.getData() != null) {
|
||||||
android.widget.Toast.makeText(this,
|
String updatedName = result.getData()
|
||||||
"Perfil atualizado. Reinicie para ver mudanças.",
|
.getStringExtra(MainActivity.EXTRA_DISPLAY_NAME);
|
||||||
android.widget.Toast.LENGTH_SHORT).show();
|
if (updatedName != null) {
|
||||||
|
displayName = updatedName;
|
||||||
|
updateGreeting();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -64,10 +67,14 @@ public class ClientDashboardActivity extends AppCompatActivity {
|
|||||||
cats.add(new FoodCategory("Carnes", R.drawable.cat_carnes));
|
cats.add(new FoodCategory("Carnes", R.drawable.cat_carnes));
|
||||||
cats.add(new FoodCategory("Massas", R.drawable.cat_massas));
|
cats.add(new FoodCategory("Massas", R.drawable.cat_massas));
|
||||||
cats.add(new FoodCategory("Sushi", R.drawable.cat_sushi));
|
cats.add(new FoodCategory("Sushi", R.drawable.cat_sushi));
|
||||||
cats.add(new FoodCategory("Pizzas", R.drawable.ic_launcher_background));
|
cats.add(new FoodCategory("Pizzas", R.drawable.cat_pizzas));
|
||||||
cats.add(new FoodCategory("Sobremesas", R.drawable.ic_launcher_background));
|
cats.add(new FoodCategory("Sobremesas", R.drawable.cat_sobremesas));
|
||||||
|
|
||||||
FoodCategoryAdapter adapter = new FoodCategoryAdapter(cats);
|
FoodCategoryAdapter adapter = new FoodCategoryAdapter(cats, category -> {
|
||||||
|
Intent intent = new Intent(this, ExplorarRestaurantesActivity.class);
|
||||||
|
intent.putExtra("category_filter", category.getName());
|
||||||
|
startActivity(intent);
|
||||||
|
});
|
||||||
rv.setAdapter(adapter);
|
rv.setAdapter(adapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,8 +99,5 @@ public class ClientDashboardActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
findViewById(R.id.btnNovaReserva)
|
findViewById(R.id.btnNovaReserva)
|
||||||
.setOnClickListener(v -> startActivity(new Intent(this, NovaReservaActivity.class)));
|
.setOnClickListener(v -> startActivity(new Intent(this, NovaReservaActivity.class)));
|
||||||
|
|
||||||
findViewById(R.id.btnExplorar).setOnClickListener(
|
|
||||||
v -> startActivity(new Intent(this, ExplorarRestaurantesActivity.class)));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,10 +27,40 @@ public class ExplorarRestaurantesActivity extends AppCompatActivity {
|
|||||||
if (back != null) {
|
if (back != null) {
|
||||||
back.setOnClickListener(v -> finish());
|
back.setOnClickListener(v -> finish());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setupRestaurantList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setupRestaurantList() {
|
||||||
|
String filter = getIntent().getStringExtra("category_filter");
|
||||||
|
android.widget.TextView txtTitle = findViewById(R.id.txtTituloExplorar);
|
||||||
|
if (filter != null && txtTitle != null) {
|
||||||
|
txtTitle.setText("Explorar: " + filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
androidx.recyclerview.widget.RecyclerView rv = findViewById(R.id.rvRestaurants);
|
||||||
|
java.util.List<com.example.pap_teste.models.Restaurant> allRestaurants = new java.util.ArrayList<>();
|
||||||
|
allRestaurants.add(new com.example.pap_teste.models.Restaurant("Sabor & Arte", "Tradicional", true));
|
||||||
|
allRestaurants.add(new com.example.pap_teste.models.Restaurant("Pizzeria Bella", "Pizzas", false));
|
||||||
|
allRestaurants.add(new com.example.pap_teste.models.Restaurant("Sushi Zen", "Sushi", false));
|
||||||
|
allRestaurants.add(new com.example.pap_teste.models.Restaurant("O Chuveiro", "Frutos do Mar", true));
|
||||||
|
allRestaurants.add(new com.example.pap_teste.models.Restaurant("Hamburgueria Real", "Carnes", false));
|
||||||
|
allRestaurants.add(new com.example.pap_teste.models.Restaurant("Churrascaria Gaúcha", "Carnes", false));
|
||||||
|
allRestaurants.add(new com.example.pap_teste.models.Restaurant("Sushi House", "Sushi", false));
|
||||||
|
allRestaurants.add(new com.example.pap_teste.models.Restaurant("Doce Momento", "Sobremesas", false));
|
||||||
|
|
||||||
|
java.util.List<com.example.pap_teste.models.Restaurant> filteredList = new java.util.ArrayList<>();
|
||||||
|
if (filter != null) {
|
||||||
|
for (com.example.pap_teste.models.Restaurant r : allRestaurants) {
|
||||||
|
if (r.getCategory().equalsIgnoreCase(filter)) {
|
||||||
|
filteredList.add(r);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
filteredList.addAll(allRestaurants);
|
||||||
|
}
|
||||||
|
|
||||||
|
RestaurantAdapter adapter = new RestaurantAdapter(filteredList);
|
||||||
|
rv.setAdapter(adapter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -27,10 +27,17 @@ public class FavoritosActivity extends AppCompatActivity {
|
|||||||
if (back != null) {
|
if (back != null) {
|
||||||
back.setOnClickListener(v -> finish());
|
back.setOnClickListener(v -> finish());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setupFavoritesList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setupFavoritesList() {
|
||||||
|
androidx.recyclerview.widget.RecyclerView rv = findViewById(R.id.rvFavoritos);
|
||||||
|
java.util.List<com.example.pap_teste.models.Restaurant> list = new java.util.ArrayList<>();
|
||||||
|
list.add(new com.example.pap_teste.models.Restaurant("Sabor & Arte", "Tradicional", true));
|
||||||
|
list.add(new com.example.pap_teste.models.Restaurant("O Chuveiro", "Mariscos", true));
|
||||||
|
|
||||||
|
RestaurantAdapter adapter = new RestaurantAdapter(list);
|
||||||
|
rv.setAdapter(adapter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,10 +15,16 @@ import java.util.List;
|
|||||||
|
|
||||||
public class FoodCategoryAdapter extends RecyclerView.Adapter<FoodCategoryAdapter.ViewHolder> {
|
public class FoodCategoryAdapter extends RecyclerView.Adapter<FoodCategoryAdapter.ViewHolder> {
|
||||||
|
|
||||||
private final List<FoodCategory> categories;
|
public interface OnCategoryClickListener {
|
||||||
|
void onCategoryClick(FoodCategory category);
|
||||||
|
}
|
||||||
|
|
||||||
public FoodCategoryAdapter(List<FoodCategory> categories) {
|
private final List<FoodCategory> categories;
|
||||||
|
private final OnCategoryClickListener listener;
|
||||||
|
|
||||||
|
public FoodCategoryAdapter(List<FoodCategory> categories, OnCategoryClickListener listener) {
|
||||||
this.categories = categories;
|
this.categories = categories;
|
||||||
|
this.listener = listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@@ -35,6 +41,12 @@ public class FoodCategoryAdapter extends RecyclerView.Adapter<FoodCategoryAdapte
|
|||||||
if (category.getImageResId() != 0) {
|
if (category.getImageResId() != 0) {
|
||||||
holder.imgCategory.setImageResource(category.getImageResId());
|
holder.imgCategory.setImageResource(category.getImageResId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
holder.itemView.setOnClickListener(v -> {
|
||||||
|
if (listener != null) {
|
||||||
|
listener.onCategoryClick(category);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.example.pap_teste;
|
package com.example.pap_teste;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import androidx.activity.EdgeToEdge;
|
import androidx.activity.EdgeToEdge;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
@@ -27,10 +28,41 @@ public class NovaReservaActivity extends AppCompatActivity {
|
|||||||
if (back != null) {
|
if (back != null) {
|
||||||
back.setOnClickListener(v -> finish());
|
back.setOnClickListener(v -> finish());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setupReservationOptions();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setupReservationOptions() {
|
||||||
|
// Dates
|
||||||
|
RecyclerView rvDates = findViewById(R.id.rvDates);
|
||||||
|
java.util.List<String> dates = new java.util.ArrayList<>();
|
||||||
|
dates.add("Hoje");
|
||||||
|
dates.add("Amanhã");
|
||||||
|
dates.add("Quarta, 12 Mar");
|
||||||
|
dates.add("Quinta, 13 Mar");
|
||||||
|
dates.add("Sexta, 14 Mar");
|
||||||
|
rvDates.setAdapter(new ReservationOptionAdapter(dates));
|
||||||
|
|
||||||
|
// Times
|
||||||
|
RecyclerView rvTimes = findViewById(R.id.rvTimes);
|
||||||
|
java.util.List<String> times = new java.util.ArrayList<>();
|
||||||
|
times.add("12:00");
|
||||||
|
times.add("13:00");
|
||||||
|
times.add("19:00");
|
||||||
|
times.add("20:00");
|
||||||
|
times.add("21:00");
|
||||||
|
times.add("22:00");
|
||||||
|
rvTimes.setAdapter(new ReservationOptionAdapter(times));
|
||||||
|
|
||||||
|
// Party Size
|
||||||
|
RecyclerView rvParty = findViewById(R.id.rvPartySize);
|
||||||
|
java.util.List<String> party = new java.util.ArrayList<>();
|
||||||
|
party.add("1 pessoa");
|
||||||
|
party.add("2 pessoas");
|
||||||
|
party.add("3 pessoas");
|
||||||
|
party.add("4 pessoas");
|
||||||
|
party.add("5 pessoas");
|
||||||
|
party.add("6+ pessoas");
|
||||||
|
rvParty.setAdapter(new ReservationOptionAdapter(party));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.example.pap_teste;
|
package com.example.pap_teste;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
@@ -20,9 +21,10 @@ import java.util.Map;
|
|||||||
|
|
||||||
public class ProfileDashboardActivity extends AppCompatActivity {
|
public class ProfileDashboardActivity extends AppCompatActivity {
|
||||||
|
|
||||||
private EditText inputName;
|
private EditText inputName, inputPhone, inputEmailEdit;
|
||||||
private String email, documentId;
|
private String email, documentId;
|
||||||
private DatabaseReference databaseReference;
|
private DatabaseReference databaseReference;
|
||||||
|
private androidx.activity.result.ActivityResultLauncher<Intent> imagePickerLauncher;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -45,9 +47,36 @@ public class ProfileDashboardActivity extends AppCompatActivity {
|
|||||||
databaseReference = FirebaseDatabase.getInstance().getReference().child("users");
|
databaseReference = FirebaseDatabase.getInstance().getReference().child("users");
|
||||||
|
|
||||||
inputName = findViewById(R.id.inputProfileName);
|
inputName = findViewById(R.id.inputProfileName);
|
||||||
|
inputPhone = findViewById(R.id.inputProfilePhone);
|
||||||
|
inputEmailEdit = findViewById(R.id.inputProfileEmail);
|
||||||
|
|
||||||
if (currentName != null) {
|
if (currentName != null) {
|
||||||
inputName.setText(currentName);
|
inputName.setText(currentName);
|
||||||
}
|
}
|
||||||
|
if (email != null) {
|
||||||
|
inputEmailEdit.setText(email);
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchAdditionalProfileData();
|
||||||
|
|
||||||
|
imagePickerLauncher = registerForActivityResult(
|
||||||
|
new androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult(),
|
||||||
|
result -> {
|
||||||
|
if (result.getResultCode() == RESULT_OK && result.getData() != null) {
|
||||||
|
android.net.Uri imageUri = result.getData().getData();
|
||||||
|
if (imageUri != null) {
|
||||||
|
Toast.makeText(this, "Foto selecionada (Simulação: Seria feito o upload)",
|
||||||
|
Toast.LENGTH_SHORT).show();
|
||||||
|
// In a real app, you'd upload this to Firebase Storage.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findViewById(R.id.cardProfileBig).setOnClickListener(v -> {
|
||||||
|
Intent intent = new Intent(Intent.ACTION_PICK);
|
||||||
|
intent.setType("image/*");
|
||||||
|
imagePickerLauncher.launch(intent);
|
||||||
|
});
|
||||||
|
|
||||||
Button btnSave = findViewById(R.id.btnSaveProfile);
|
Button btnSave = findViewById(R.id.btnSaveProfile);
|
||||||
Button btnBack = findViewById(R.id.btnVoltar);
|
Button btnBack = findViewById(R.id.btnVoltar);
|
||||||
@@ -55,17 +84,32 @@ public class ProfileDashboardActivity extends AppCompatActivity {
|
|||||||
Button btnRes = findViewById(R.id.btnMinhasReservas);
|
Button btnRes = findViewById(R.id.btnMinhasReservas);
|
||||||
|
|
||||||
btnBack.setOnClickListener(v -> finish());
|
btnBack.setOnClickListener(v -> finish());
|
||||||
|
|
||||||
btnSave.setOnClickListener(v -> saveProfile());
|
btnSave.setOnClickListener(v -> saveProfile());
|
||||||
|
|
||||||
btnFavs.setOnClickListener(v -> {
|
btnFavs.setOnClickListener(v -> {
|
||||||
Toast.makeText(this, "A abrir Favoritos...", Toast.LENGTH_SHORT).show();
|
startActivity(new Intent(this, FavoritosActivity.class));
|
||||||
// startActivity(new Intent(this, FavoritosActivity.class));
|
|
||||||
});
|
});
|
||||||
|
|
||||||
btnRes.setOnClickListener(v -> {
|
btnRes.setOnClickListener(v -> {
|
||||||
Toast.makeText(this, "A abrir Reservas...", Toast.LENGTH_SHORT).show();
|
startActivity(new Intent(this, DetalhesReservasActivity.class));
|
||||||
// startActivity(new Intent(this, DetalhesReservasActivity.class));
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fetchAdditionalProfileData() {
|
||||||
|
if (documentId == null)
|
||||||
|
return;
|
||||||
|
databaseReference.child(documentId).get().addOnSuccessListener(snapshot -> {
|
||||||
|
if (snapshot.exists()) {
|
||||||
|
String phone = snapshot.child("ownerPhone").getValue(String.class);
|
||||||
|
if (phone == null)
|
||||||
|
phone = snapshot.child("phone").getValue(String.class);
|
||||||
|
if (phone != null)
|
||||||
|
inputPhone.setText(phone);
|
||||||
|
|
||||||
|
String dbEmail = snapshot.child("email").getValue(String.class);
|
||||||
|
if (dbEmail != null)
|
||||||
|
inputEmailEdit.setText(dbEmail);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,6 +118,9 @@ public class ProfileDashboardActivity extends AppCompatActivity {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
String newName = inputName.getText().toString().trim();
|
String newName = inputName.getText().toString().trim();
|
||||||
|
String newPhone = inputPhone.getText().toString().trim();
|
||||||
|
String newEmail = inputEmailEdit.getText().toString().trim();
|
||||||
|
|
||||||
if (TextUtils.isEmpty(newName)) {
|
if (TextUtils.isEmpty(newName)) {
|
||||||
Toast.makeText(this, "Indique um nome.", Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, "Indique um nome.", Toast.LENGTH_SHORT).show();
|
||||||
return;
|
return;
|
||||||
@@ -81,11 +128,15 @@ public class ProfileDashboardActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
Map<String, Object> updates = new HashMap<>();
|
Map<String, Object> updates = new HashMap<>();
|
||||||
updates.put("displayName", newName);
|
updates.put("displayName", newName);
|
||||||
|
updates.put("phone", newPhone);
|
||||||
|
updates.put("email", newEmail);
|
||||||
|
|
||||||
databaseReference.child(documentId).updateChildren(updates)
|
databaseReference.child(documentId).updateChildren(updates)
|
||||||
.addOnSuccessListener(aVoid -> {
|
.addOnSuccessListener(aVoid -> {
|
||||||
Toast.makeText(this, "Perfil atualizado!", Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, "Perfil atualizado!", Toast.LENGTH_SHORT).show();
|
||||||
setResult(RESULT_OK);
|
Intent resultIntent = new Intent();
|
||||||
|
resultIntent.putExtra(MainActivity.EXTRA_DISPLAY_NAME, newName);
|
||||||
|
setResult(RESULT_OK, resultIntent);
|
||||||
finish();
|
finish();
|
||||||
})
|
})
|
||||||
.addOnFailureListener(
|
.addOnFailureListener(
|
||||||
|
|||||||
@@ -208,14 +208,12 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
android:columnCount="2"
|
android:columnCount="1">
|
||||||
android:rowCount="1">
|
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
<androidx.cardview.widget.CardView
|
||||||
android:id="@+id/cardNewRes"
|
android:id="@+id/cardNewRes"
|
||||||
android:layout_width="0dp"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="100dp"
|
android:layout_height="100dp"
|
||||||
android:layout_columnWeight="1"
|
|
||||||
android:layout_margin="8dp"
|
android:layout_margin="8dp"
|
||||||
app:cardCornerRadius="16dp"
|
app:cardCornerRadius="16dp"
|
||||||
app:cardElevation="2dp">
|
app:cardElevation="2dp">
|
||||||
@@ -231,30 +229,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Reservar"
|
android:text="Reservar"
|
||||||
android:textColor="#000"
|
android:textColor="#000"
|
||||||
android:textStyle="bold" />
|
android:textSize="18sp"
|
||||||
</LinearLayout>
|
|
||||||
</androidx.cardview.widget.CardView>
|
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
|
||||||
android:id="@+id/cardExplore"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="100dp"
|
|
||||||
android:layout_columnWeight="1"
|
|
||||||
android:layout_margin="8dp"
|
|
||||||
app:cardCornerRadius="16dp"
|
|
||||||
app:cardElevation="2dp">
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/btnExplorar"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:gravity="center"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:background="?attr/selectableItemBackground">
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="Explorar"
|
|
||||||
android:textColor="#000"
|
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</androidx.cardview.widget.CardView>
|
</androidx.cardview.widget.CardView>
|
||||||
|
|||||||
@@ -32,18 +32,19 @@
|
|||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
android:layout_marginTop="32dp" />
|
android:layout_marginTop="32dp" />
|
||||||
|
|
||||||
<TextView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/txtDescricaoExplorar"
|
android:id="@+id/rvRestaurants"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="0dp"
|
||||||
android:layout_marginHorizontal="24dp"
|
android:layout_marginTop="16dp"
|
||||||
android:layout_marginTop="12dp"
|
android:clipToPadding="false"
|
||||||
android:text="Ecrã dedicado a descobrir restaurantes recomendados, próximos de si e filtrados por preferência."
|
android:paddingBottom="24dp"
|
||||||
android:textSize="14sp"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
android:textColor="#4D4D4D"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/txtTituloExplorar"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent" />
|
app:layout_constraintTop_toBottomOf="@id/txtTituloExplorar"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||||
|
tools:listitem="@layout/item_restaurant" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -32,18 +32,19 @@
|
|||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
android:layout_marginTop="32dp" />
|
android:layout_marginTop="32dp" />
|
||||||
|
|
||||||
<TextView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/txtDescricaoFavoritos"
|
android:id="@+id/rvFavoritos"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="0dp"
|
||||||
android:layout_marginHorizontal="24dp"
|
android:layout_marginTop="16dp"
|
||||||
android:layout_marginTop="12dp"
|
android:clipToPadding="false"
|
||||||
android:text="Aqui serão listados os restaurantes que o cliente marcar como favorito."
|
android:paddingBottom="24dp"
|
||||||
android:textSize="14sp"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
android:textColor="#4D4D4D"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/txtTituloFavoritos"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent" />
|
app:layout_constraintTop_toBottomOf="@id/txtTituloFavoritos"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||||
|
tools:listitem="@layout/item_restaurant" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -32,18 +32,104 @@
|
|||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
android:layout_marginTop="32dp" />
|
android:layout_marginTop="32dp" />
|
||||||
|
|
||||||
<TextView
|
<ScrollView
|
||||||
android:id="@+id/txtDescricaoNovaReserva"
|
android:id="@+id/scrollNovaReserva"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="0dp"
|
||||||
android:layout_marginHorizontal="24dp"
|
android:layout_marginTop="24dp"
|
||||||
android:layout_marginTop="12dp"
|
android:fillViewport="true"
|
||||||
android:text="Aqui poderá configurar uma nova reserva (data, hora, número de pessoas, restaurante, etc.)."
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
android:textSize="14sp"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
android:textColor="#4D4D4D"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/txtTituloNovaReserva"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent" />
|
app:layout_constraintTop_toBottomOf="@id/txtTituloNovaReserva">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingBottom="32dp">
|
||||||
|
|
||||||
|
<!-- Section: Date -->
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="24dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:text="Escolha a data"
|
||||||
|
android:textColor="#000"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rvDates"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:paddingStart="16dp"
|
||||||
|
android:paddingEnd="16dp"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
|
||||||
|
|
||||||
|
<!-- Section: Time -->
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="24dp"
|
||||||
|
android:layout_marginTop="24dp"
|
||||||
|
android:text="Escolha o horário"
|
||||||
|
android:textColor="#000"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rvTimes"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:paddingStart="16dp"
|
||||||
|
android:paddingEnd="16dp"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
|
||||||
|
|
||||||
|
<!-- Section: Party size -->
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="24dp"
|
||||||
|
android:layout_marginTop="24dp"
|
||||||
|
android:text="Número de pessoas"
|
||||||
|
android:textColor="#000"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rvPartySize"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:paddingStart="16dp"
|
||||||
|
android:paddingEnd="16dp"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/btnConfirmarReserva"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="55dp"
|
||||||
|
android:layout_marginHorizontal="24dp"
|
||||||
|
android:layout_marginTop="32dp"
|
||||||
|
android:background="@drawable/btn_primary"
|
||||||
|
android:text="Confirmar Reserva"
|
||||||
|
android:textAllCaps="false"
|
||||||
|
android:textColor="#FFF"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -73,11 +73,47 @@
|
|||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
android:background="@drawable/input_bg" />
|
android:background="@drawable/input_bg" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:text="Telemóvel"
|
||||||
|
android:textColor="#8A8A8A"
|
||||||
|
android:textSize="12sp" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/inputProfilePhone"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:hint="O seu número"
|
||||||
|
android:inputType="phone"
|
||||||
|
android:padding="12dp"
|
||||||
|
android:background="@drawable/input_bg" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:text="Email"
|
||||||
|
android:textColor="#8A8A8A"
|
||||||
|
android:textSize="12sp" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/inputProfileEmail"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:hint="O seu email"
|
||||||
|
android:inputType="textEmailAddress"
|
||||||
|
android:padding="12dp"
|
||||||
|
android:background="@drawable/input_bg" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/btnSaveProfile"
|
android:id="@+id/btnSaveProfile"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="24dp"
|
||||||
android:background="@drawable/btn_primary"
|
android:background="@drawable/btn_primary"
|
||||||
android:text="Guardar Alterações"
|
android:text="Guardar Alterações"
|
||||||
android:textAllCaps="false"
|
android:textAllCaps="false"
|
||||||
|
|||||||
Reference in New Issue
Block a user