From 7839484192b6f981d34b4c197fbf7eb483e0729f Mon Sep 17 00:00:00 2001 From: joaomiranda Date: Fri, 20 Feb 2026 14:49:18 +0000 Subject: [PATCH] =?UTF-8?q?utiliza=C3=A7=C3=A3o=20do=20tts=20para=20sauda?= =?UTF-8?q?=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 9 +- .../java/pt/epvc/dreambar/MainActivity.java | 3 +- .../java/pt/epvc/dreambar/NomeActivity.java | 83 +++++++++++++++++++ app/src/main/res/layout/activity_menu.xml | 41 --------- app/src/main/res/layout/activity_nome.xml | 53 ++++++++++++ app/src/main/res/values/strings.xml | 2 + 6 files changed, 145 insertions(+), 46 deletions(-) create mode 100644 app/src/main/java/pt/epvc/dreambar/NomeActivity.java create mode 100644 app/src/main/res/layout/activity_nome.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 927fabb..998060a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + xmlns:tools="http://schemas.android.com/tools" > + android:theme="@style/Theme.DreamBar" > + + android:exported="true" > diff --git a/app/src/main/java/pt/epvc/dreambar/MainActivity.java b/app/src/main/java/pt/epvc/dreambar/MainActivity.java index ffcf5f4..b5f9929 100644 --- a/app/src/main/java/pt/epvc/dreambar/MainActivity.java +++ b/app/src/main/java/pt/epvc/dreambar/MainActivity.java @@ -4,7 +4,6 @@ import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; -import android.widget.Toast; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; @@ -32,7 +31,7 @@ public class MainActivity extends AppCompatActivity { @Override public void onClick(View v) { //Toast.makeText(MainActivity.this, "SOU O MAIOR!!!!", Toast.LENGTH_SHORT).show(); - Intent intent = new Intent(MainActivity.this, MenuActivity.class); + Intent intent = new Intent(MainActivity.this, NomeActivity.class); startActivity(intent); } }); diff --git a/app/src/main/java/pt/epvc/dreambar/NomeActivity.java b/app/src/main/java/pt/epvc/dreambar/NomeActivity.java new file mode 100644 index 0000000..8bfd8dd --- /dev/null +++ b/app/src/main/java/pt/epvc/dreambar/NomeActivity.java @@ -0,0 +1,83 @@ +package pt.epvc.dreambar; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.speech.tts.TextToSpeech; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +import androidx.activity.EdgeToEdge; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; + +import java.util.Locale; + +public class NomeActivity extends AppCompatActivity { + + private Button seguinteButton; + private EditText nomeEditText; + + private TextToSpeech tts; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + setContentView(R.layout.activity_nome); + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { + Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); + return insets; + }); + + seguinteButton = findViewById(R.id.seguinteButton); + nomeEditText = findViewById(R.id.nomeEditText); + + tts = new TextToSpeech(this, status -> { + if (status == TextToSpeech.SUCCESS) { + int lang = tts.setLanguage(new Locale("pt", "PT")); // pt-PT + if (lang == TextToSpeech.LANG_MISSING_DATA || lang == TextToSpeech.LANG_NOT_SUPPORTED) { + // fallback + tts.setLanguage(Locale.US); + } + + tts.setSpeechRate(1.0f); // 1.0 = normal + tts.setPitch(1.0f); // 1.0 = normal + + + } + }); + + seguinteButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String nome = nomeEditText.getText().toString(); + if (nome.isBlank()){ + Toast.makeText(NomeActivity.this, "Tem que preencher o nome", Toast.LENGTH_SHORT).show(); + } + else { + SharedPreferences prefs = getSharedPreferences("dados", Context.MODE_PRIVATE); + prefs.edit() + .putString("nome", nome) + .apply(); + speak("Olá " + nome + "! Como te posso ajudar?"); + Intent intent = new Intent(NomeActivity.this, MenuActivity.class); + startActivity(intent); + } + } + }); + } + + private void speak(String text) { + // QUEUE_FLUSH: cancela o que estava a falar e fala já + tts.speak(text, TextToSpeech.QUEUE_FLUSH, null, "utterance_1"); + } + +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_menu.xml b/app/src/main/res/layout/activity_menu.xml index 3a184a0..7759e0d 100644 --- a/app/src/main/res/layout/activity_menu.xml +++ b/app/src/main/res/layout/activity_menu.xml @@ -7,45 +7,4 @@ android:layout_height="match_parent" tools:context=".MenuActivity"> -