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(); } }); } }