first commit
This commit is contained in:
135
app/src/main/java/com/example/pap/HomeActivity.java
Normal file
135
app/src/main/java/com/example/pap/HomeActivity.java
Normal file
@@ -0,0 +1,135 @@
|
||||
package com.example.pap;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.text.InputType;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.Toast;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.cardview.widget.CardView;
|
||||
|
||||
public class HomeActivity extends AppCompatActivity {
|
||||
|
||||
private SharedPreferences sharedPreferences;
|
||||
|
||||
// Agora são 6 cartões!
|
||||
private CardView cardPerfil, cardEstatisticas, cardTirarFoto, cardChat, cardDesafios, cardDefinicoes;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_home);
|
||||
|
||||
// 1. Iniciar a memória do telemóvel
|
||||
sharedPreferences = getSharedPreferences("AppEmagrecimento", MODE_PRIVATE);
|
||||
|
||||
// 2. Ligar os cartões do XML ao código
|
||||
cardPerfil = findViewById(R.id.cardPerfil);
|
||||
cardEstatisticas = findViewById(R.id.cardEstatisticas);
|
||||
cardTirarFoto = findViewById(R.id.cardTirarFoto);
|
||||
cardChat = findViewById(R.id.cardChat);
|
||||
cardDesafios = findViewById(R.id.cardDesafios);
|
||||
cardDefinicoes = findViewById(R.id.cardDefinicoes);
|
||||
|
||||
// 3. Configurar os cliques para abrir os outros ecrãs
|
||||
cardPerfil.setOnClickListener(v -> {
|
||||
Toast.makeText(this, "A abrir O Meu Perfil...", Toast.LENGTH_SHORT).show();
|
||||
// startActivity(new Intent(HomeActivity.this, PerfilActivity.class));
|
||||
});
|
||||
|
||||
cardEstatisticas.setOnClickListener(v -> {
|
||||
Toast.makeText(this, "A abrir Estatísticas...", Toast.LENGTH_SHORT).show();
|
||||
// startActivity(new Intent(HomeActivity.this, EstatisticasActivity.class));
|
||||
});
|
||||
|
||||
cardTirarFoto.setOnClickListener(v -> {
|
||||
startActivity(new Intent(HomeActivity.this, FotoActivity.class));
|
||||
});
|
||||
|
||||
cardChat.setOnClickListener(v -> {
|
||||
startActivity(new Intent(HomeActivity.this, ChatActivity.class));
|
||||
});
|
||||
|
||||
cardDesafios.setOnClickListener(v -> {
|
||||
startActivity(new Intent(HomeActivity.this, DesafiosActivity.class));
|
||||
});
|
||||
|
||||
cardDefinicoes.setOnClickListener(v -> {
|
||||
Toast.makeText(this, "A abrir Definições...", Toast.LENGTH_SHORT).show();
|
||||
// startActivity(new Intent(HomeActivity.this, DefinicoesActivity.class));
|
||||
});
|
||||
|
||||
// 4. Verifica se já passou o tempo para pedir o novo peso
|
||||
verificarAtualizacaoSemanal();
|
||||
}
|
||||
|
||||
// Função que calcula se já passou o tempo (1 semana ou 10 segundos)
|
||||
private void verificarAtualizacaoSemanal() {
|
||||
long dataUltimaAtualizacao = sharedPreferences.getLong("data_ultima_atualizacao", 0);
|
||||
long dataAtual = System.currentTimeMillis();
|
||||
|
||||
if (dataUltimaAtualizacao == 0) {
|
||||
sharedPreferences.edit().putLong("data_ultima_atualizacao", dataAtual).apply();
|
||||
} else {
|
||||
// TEMPO CONFIGURADO PARA TESTES: 10 segundos!
|
||||
// Para a PAP final usa: long tempoNecessario = 7L * 24 * 60 * 60 * 1000;
|
||||
long tempoNecessario = 10 * 1000;
|
||||
|
||||
if (dataAtual - dataUltimaAtualizacao >= tempoNecessario) {
|
||||
mostrarPopupAtualizacao();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Função que cria o pop-up para atualizar o peso
|
||||
private void mostrarPopupAtualizacao() {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setTitle("Hora da pesagem! ⚖️");
|
||||
builder.setMessage("Já passou 1 semana! Atualiza o teu peso e altura para acompanharmos a tua evolução.");
|
||||
builder.setCancelable(false);
|
||||
|
||||
LinearLayout layout = new LinearLayout(this);
|
||||
layout.setOrientation(LinearLayout.VERTICAL);
|
||||
layout.setPadding(50, 40, 50, 10);
|
||||
|
||||
final EditText etNovoPeso = new EditText(this);
|
||||
etNovoPeso.setHint("Novo Peso (ex: 75.5)");
|
||||
etNovoPeso.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
|
||||
layout.addView(etNovoPeso);
|
||||
|
||||
final EditText etNovaAltura = new EditText(this);
|
||||
etNovaAltura.setHint("Nova Altura (ex: 1.75)");
|
||||
etNovaAltura.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
|
||||
layout.addView(etNovaAltura);
|
||||
|
||||
builder.setView(layout);
|
||||
builder.setPositiveButton("Atualizar Dados", null);
|
||||
|
||||
AlertDialog dialog = builder.create();
|
||||
dialog.show();
|
||||
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> {
|
||||
String pesoStr = etNovoPeso.getText().toString().trim();
|
||||
String alturaStr = etNovaAltura.getText().toString().trim();
|
||||
|
||||
if (!pesoStr.isEmpty() && !alturaStr.isEmpty()) {
|
||||
float novoPeso = Float.parseFloat(pesoStr);
|
||||
float novaAltura = Float.parseFloat(alturaStr);
|
||||
|
||||
SharedPreferences.Editor editor = sharedPreferences.edit();
|
||||
editor.putFloat("pesoAtual", novoPeso);
|
||||
editor.putFloat("alturaAtual", novaAltura);
|
||||
editor.putLong("data_ultima_atualizacao", System.currentTimeMillis());
|
||||
editor.apply();
|
||||
|
||||
Toast.makeText(HomeActivity.this, "Dados atualizados com sucesso! 💪", Toast.LENGTH_SHORT).show();
|
||||
dialog.dismiss();
|
||||
} else {
|
||||
Toast.makeText(HomeActivity.this, "Tens de preencher os dois campos!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user