ecra principal

main
230409 2025-12-03 10:30:58 +00:00
parent 446b6fed75
commit 06beff62cd
22 changed files with 681 additions and 20 deletions

View File

@ -16,11 +16,56 @@
android:exported="false" android:exported="false"
android:label="Área do Estabelecimento" android:label="Área do Estabelecimento"
android:theme="@style/Theme.Pap_teste" /> android:theme="@style/Theme.Pap_teste" />
<activity
android:name=".ListaEsperaActivity"
android:exported="false"
android:label="Lista de espera"
android:theme="@style/Theme.Pap_teste" />
<activity
android:name=".BloqueioHorarioActivity"
android:exported="false"
android:label="Bloqueio de horário"
android:theme="@style/Theme.Pap_teste" />
<activity
android:name=".GestaoStaffActivity"
android:exported="false"
android:label="Gestão de staff"
android:theme="@style/Theme.Pap_teste" />
<activity
android:name=".RelatoriosActivity"
android:exported="false"
android:label="Relatórios"
android:theme="@style/Theme.Pap_teste" />
<activity <activity
android:name=".ClientDashboardActivity" android:name=".ClientDashboardActivity"
android:exported="false" android:exported="false"
android:label="Área do Cliente" android:label="Área do Cliente"
android:theme="@style/Theme.Pap_teste" /> android:theme="@style/Theme.Pap_teste" />
<activity
android:name=".NovaReservaActivity"
android:exported="false"
android:label="Nova reserva"
android:theme="@style/Theme.Pap_teste" />
<activity
android:name=".ExplorarRestaurantesActivity"
android:exported="false"
android:label="Explorar restaurantes"
android:theme="@style/Theme.Pap_teste" />
<activity
android:name=".FavoritosActivity"
android:exported="false"
android:label="Favoritos"
android:theme="@style/Theme.Pap_teste" />
<activity
android:name=".CheckInAntecipadoActivity"
android:exported="false"
android:label="Check-in antecipado"
android:theme="@style/Theme.Pap_teste" />
<activity
android:name=".PartilharReservaActivity"
android:exported="false"
android:label="Partilhar reserva"
android:theme="@style/Theme.Pap_teste" />
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true"> android:exported="true">

View File

@ -0,0 +1,26 @@
package com.example.pap_teste;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class BloqueioHorarioActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_bloqueio_horario);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.bloqueioRoot), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
}

View File

@ -0,0 +1,26 @@
package com.example.pap_teste;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class CheckInAntecipadoActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_checkin_antecipado);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.checkinRoot), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
}

View File

@ -1,9 +1,9 @@
package com.example.pap_teste; package com.example.pap_teste;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.widget.Button; import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.EdgeToEdge; import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
@ -48,15 +48,30 @@ public class ClientDashboardActivity extends AppCompatActivity {
Button btnCheckIn = findViewById(R.id.btnCheckIn); Button btnCheckIn = findViewById(R.id.btnCheckIn);
Button btnShare = findViewById(R.id.btnPartilhar); Button btnShare = findViewById(R.id.btnPartilhar);
btnNewReservation.setOnClickListener(v -> showToast("Abrindo fluxo de nova reserva...")); btnNewReservation.setOnClickListener(v ->
btnExplore.setOnClickListener(v -> showToast("A explorar restaurantes recomendados.")); startActivity(new Intent(this, NovaReservaActivity.class))
btnFavorites.setOnClickListener(v -> showToast("A mostrar os seus favoritos.")); );
btnCheckIn.setOnClickListener(v -> showToast("Check-in antecipado registado!"));
btnShare.setOnClickListener(v -> showToast("Partilhe a reserva com os seus convidados.")); btnExplore.setOnClickListener(v ->
startActivity(new Intent(this, ExplorarRestaurantesActivity.class))
);
btnFavorites.setOnClickListener(v ->
startActivity(new Intent(this, FavoritosActivity.class))
);
btnCheckIn.setOnClickListener(v ->
startActivity(new Intent(this, CheckInAntecipadoActivity.class))
);
btnShare.setOnClickListener(v ->
startActivity(new Intent(this, PartilharReservaActivity.class))
);
} }
private void showToast(String message) { // Mantemos este método caso seja útil no futuro para feedback rápido.
Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); // private void showToast(String message) {
} // Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
// }
} }

View File

@ -1,9 +1,9 @@
package com.example.pap_teste; package com.example.pap_teste;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.widget.Button; import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.EdgeToEdge; import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
@ -41,14 +41,26 @@ public class EstablishmentDashboardActivity extends AppCompatActivity {
Button btnStaff = findViewById(R.id.btnGestaoStaff); Button btnStaff = findViewById(R.id.btnGestaoStaff);
Button btnReports = findViewById(R.id.btnVerRelatorios); Button btnReports = findViewById(R.id.btnVerRelatorios);
btnOpenWalkIns.setOnClickListener(v -> showToast("Lista de espera aberta para novos clientes.")); btnOpenWalkIns.setOnClickListener(v ->
btnBlockTime.setOnClickListener(v -> showToast("Bloqueio criado para o horário selecionado.")); startActivity(new Intent(this, ListaEsperaActivity.class))
btnStaff.setOnClickListener(v -> showToast("Gestão de staff disponível em breve.")); );
btnReports.setOnClickListener(v -> showToast("Relatórios do dia enviados para o seu email."));
btnBlockTime.setOnClickListener(v ->
startActivity(new Intent(this, BloqueioHorarioActivity.class))
);
btnStaff.setOnClickListener(v ->
startActivity(new Intent(this, GestaoStaffActivity.class))
);
btnReports.setOnClickListener(v ->
startActivity(new Intent(this, RelatoriosActivity.class))
);
} }
private void showToast(String message) { // Mantemos este método caso seja útil no futuro para feedback rápido.
Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); // private void showToast(String message) {
} // Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
// }
} }

View File

@ -0,0 +1,26 @@
package com.example.pap_teste;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class ExplorarRestaurantesActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_explorar_restaurantes);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.explorarRoot), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
}

View File

@ -0,0 +1,26 @@
package com.example.pap_teste;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class FavoritosActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_favoritos);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.favoritosRoot), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
}

View File

@ -0,0 +1,26 @@
package com.example.pap_teste;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class GestaoStaffActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_gestao_staff);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.gestaoStaffRoot), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
}

View File

@ -0,0 +1,26 @@
package com.example.pap_teste;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class ListaEsperaActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_lista_espera);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.listaEsperaRoot), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
}

View File

@ -0,0 +1,26 @@
package com.example.pap_teste;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class NovaReservaActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_nova_reserva);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.novaReservaRoot), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
}

View File

@ -0,0 +1,26 @@
package com.example.pap_teste;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class PartilharReservaActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_partilhar_reserva);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.partilharRoot), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
}

View File

@ -0,0 +1,26 @@
package com.example.pap_teste;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class RelatoriosActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_relatorios);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.relatoriosRoot), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
}

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/bloqueioRoot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F7F7F7"
tools:context=".BloqueioHorarioActivity">
<TextView
android:id="@+id/txtTituloBloqueio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bloqueio de horário"
android:textSize="22sp"
android:textStyle="bold"
android:textColor="#000"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="32dp" />
<TextView
android:id="@+id/txtDescricaoBloqueio"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="12dp"
android:text="Neste ecrã o estabelecimento poderá marcar períodos em que não aceita reservas."
android:textSize="14sp"
android:textColor="#4D4D4D"
app:layout_constraintTop_toBottomOf="@id/txtTituloBloqueio"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/checkinRoot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F7F7F7"
tools:context=".CheckInAntecipadoActivity">
<TextView
android:id="@+id/txtTituloCheckin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Check-in antecipado"
android:textSize="22sp"
android:textStyle="bold"
android:textColor="#000"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="32dp" />
<TextView
android:id="@+id/txtDescricaoCheckin"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="12dp"
android:text="Aqui o cliente poderá confirmar a chegada antes do horário marcado."
android:textSize="14sp"
android:textColor="#4D4D4D"
app:layout_constraintTop_toBottomOf="@id/txtTituloCheckin"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/explorarRoot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F7F7F7"
tools:context=".ExplorarRestaurantesActivity">
<TextView
android:id="@+id/txtTituloExplorar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Explorar restaurantes"
android:textSize="22sp"
android:textStyle="bold"
android:textColor="#000"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="32dp" />
<TextView
android:id="@+id/txtDescricaoExplorar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="12dp"
android:text="Ecrã dedicado a descobrir restaurantes recomendados, próximos de si e filtrados por preferência."
android:textSize="14sp"
android:textColor="#4D4D4D"
app:layout_constraintTop_toBottomOf="@id/txtTituloExplorar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/favoritosRoot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F7F7F7"
tools:context=".FavoritosActivity">
<TextView
android:id="@+id/txtTituloFavoritos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Restaurantes favoritos"
android:textSize="22sp"
android:textStyle="bold"
android:textColor="#000"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="32dp" />
<TextView
android:id="@+id/txtDescricaoFavoritos"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="12dp"
android:text="Aqui serão listados os restaurantes que o cliente marcar como favorito."
android:textSize="14sp"
android:textColor="#4D4D4D"
app:layout_constraintTop_toBottomOf="@id/txtTituloFavoritos"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/gestaoStaffRoot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F7F7F7"
tools:context=".GestaoStaffActivity">
<TextView
android:id="@+id/txtTituloGestaoStaff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Gestão de staff"
android:textSize="22sp"
android:textStyle="bold"
android:textColor="#000"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="32dp" />
<TextView
android:id="@+id/txtDescricaoGestaoStaff"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="12dp"
android:text="Zona para configurar turnos, equipas e disponibilidade do staff."
android:textSize="14sp"
android:textColor="#4D4D4D"
app:layout_constraintTop_toBottomOf="@id/txtTituloGestaoStaff"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/listaEsperaRoot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F7F7F7"
tools:context=".ListaEsperaActivity">
<TextView
android:id="@+id/txtTituloListaEspera"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lista de espera"
android:textSize="22sp"
android:textStyle="bold"
android:textColor="#000"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="32dp" />
<TextView
android:id="@+id/txtDescricaoListaEspera"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="12dp"
android:text="Aqui o estabelecimento irá gerir a lista de espera em tempo real."
android:textSize="14sp"
android:textColor="#4D4D4D"
app:layout_constraintTop_toBottomOf="@id/txtTituloListaEspera"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -69,7 +69,7 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="40dp" android:layout_height="50dp"
android:orientation="horizontal" android:orientation="horizontal"
android:background="@drawable/bg_tabs" android:background="@drawable/bg_tabs"
android:padding="3dp"> android:padding="3dp">
@ -80,6 +80,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" android:layout_weight="1"
android:text="Cliente" android:text="Cliente"
android:textSize="5pt"
android:background="@drawable/tab_selected" android:background="@drawable/tab_selected"
android:textAllCaps="false" /> android:textAllCaps="false" />
@ -88,14 +89,15 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" android:layout_weight="1"
android:text="Estabelecimento"
android:background="@drawable/tab_unselected" android:background="@drawable/tab_unselected"
android:text="Estabelecimento"
android:textSize="5pt"
android:textAllCaps="false" /> android:textAllCaps="false" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="40dp" android:layout_height="50dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:orientation="horizontal" android:orientation="horizontal"
android:background="@drawable/bg_tabs" android:background="@drawable/bg_tabs"
@ -107,6 +109,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" android:layout_weight="1"
android:text="Entrar" android:text="Entrar"
android:textSize="5pt"
android:background="@drawable/tab_selected" android:background="@drawable/tab_selected"
android:textAllCaps="false" /> android:textAllCaps="false" />
@ -116,6 +119,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" android:layout_weight="1"
android:text="Criar Conta" android:text="Criar Conta"
android:textSize="5pt"
android:background="@drawable/tab_unselected" android:background="@drawable/tab_unselected"
android:textAllCaps="false" /> android:textAllCaps="false" />
</LinearLayout> </LinearLayout>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/novaReservaRoot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F7F7F7"
tools:context=".NovaReservaActivity">
<TextView
android:id="@+id/txtTituloNovaReserva"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nova reserva"
android:textSize="22sp"
android:textStyle="bold"
android:textColor="#000"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="32dp" />
<TextView
android:id="@+id/txtDescricaoNovaReserva"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="12dp"
android:text="Aqui poderá configurar uma nova reserva (data, hora, número de pessoas, restaurante, etc.)."
android:textSize="14sp"
android:textColor="#4D4D4D"
app:layout_constraintTop_toBottomOf="@id/txtTituloNovaReserva"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/partilharRoot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F7F7F7"
tools:context=".PartilharReservaActivity">
<TextView
android:id="@+id/txtTituloPartilhar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Partilhar reserva"
android:textSize="22sp"
android:textStyle="bold"
android:textColor="#000"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="32dp" />
<TextView
android:id="@+id/txtDescricaoPartilhar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="12dp"
android:text="Ecrã onde o cliente poderá enviar convites/links de partilha da reserva."
android:textSize="14sp"
android:textColor="#4D4D4D"
app:layout_constraintTop_toBottomOf="@id/txtTituloPartilhar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/relatoriosRoot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F7F7F7"
tools:context=".RelatoriosActivity">
<TextView
android:id="@+id/txtTituloRelatorios"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Relatórios"
android:textSize="22sp"
android:textStyle="bold"
android:textColor="#000"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="32dp" />
<TextView
android:id="@+id/txtDescricaoRelatorios"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="12dp"
android:text="Visualização de relatórios diários, semanais e mensais do desempenho do restaurante."
android:textSize="14sp"
android:textColor="#4D4D4D"
app:layout_constraintTop_toBottomOf="@id/txtTituloRelatorios"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>