diff --git a/.gradle/9.1.0/fileHashes/fileHashes.bin b/.gradle/9.1.0/fileHashes/fileHashes.bin index 98a788d..f915660 100644 Binary files a/.gradle/9.1.0/fileHashes/fileHashes.bin and b/.gradle/9.1.0/fileHashes/fileHashes.bin differ diff --git a/.gradle/9.1.0/fileHashes/fileHashes.lock b/.gradle/9.1.0/fileHashes/fileHashes.lock index 9587593..31352d7 100644 Binary files a/.gradle/9.1.0/fileHashes/fileHashes.lock and b/.gradle/9.1.0/fileHashes/fileHashes.lock differ diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/example/cuida/services/Gemini$1.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/example/cuida/services/Gemini$1.class new file mode 100644 index 0000000..b87f976 Binary files /dev/null and b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/example/cuida/services/Gemini$1.class differ diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/example/cuida/services/Gemini$GeminiCallback.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/example/cuida/services/Gemini$GeminiCallback.class new file mode 100644 index 0000000..787fe0b Binary files /dev/null and b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/example/cuida/services/Gemini$GeminiCallback.class differ diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/example/cuida/services/Gemini.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/example/cuida/services/Gemini.class new file mode 100644 index 0000000..6691d9d Binary files /dev/null and b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/example/cuida/services/Gemini.class differ diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_0.jar b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_0.jar new file mode 100644 index 0000000..acf613c Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_0.jar differ diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_1.jar b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_1.jar new file mode 100644 index 0000000..7dd3c1f Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_1.jar differ diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_2.jar b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_2.jar new file mode 100644 index 0000000..3d236d1 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_2.jar differ diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_3.jar b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_3.jar new file mode 100644 index 0000000..3768d8b Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_3.jar differ diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_4.jar b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_4.jar new file mode 100644 index 0000000..22036ef Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_4.jar differ diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_5.jar b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_5.jar new file mode 100644 index 0000000..ece5116 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_5.jar differ diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_6.jar b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_6.jar new file mode 100644 index 0000000..9500c16 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_6.jar differ diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_7.jar b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_7.jar new file mode 100644 index 0000000..2c46a7f Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/b207ff1615c87047b7ed415228b7b19725aa5a495f9b0b8ecb8f8de12854c617_7.jar differ diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/example/cuida/services/Gemini$1.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/example/cuida/services/Gemini$1.dex new file mode 100644 index 0000000..7b5296b Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/example/cuida/services/Gemini$1.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/example/cuida/services/Gemini$GeminiCallback.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/example/cuida/services/Gemini$GeminiCallback.dex new file mode 100644 index 0000000..41361e2 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/example/cuida/services/Gemini$GeminiCallback.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/example/cuida/services/Gemini.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/example/cuida/services/Gemini.dex new file mode 100644 index 0000000..ddbfb95 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/example/cuida/services/Gemini.dex differ diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/Gemini$1.class.uniqueId2 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/Gemini$1.class.uniqueId2 new file mode 100644 index 0000000..f2f3e6f Binary files /dev/null and b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/Gemini$1.class.uniqueId2 differ diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/Gemini.class.uniqueId3 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/Gemini.class.uniqueId3 new file mode 100644 index 0000000..8189b65 Binary files /dev/null and b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/Gemini.class.uniqueId3 differ diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/Sns24Fragment$1.class.uniqueId1 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/Sns24Fragment$1.class.uniqueId1 new file mode 100644 index 0000000..6472aad Binary files /dev/null and b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/Sns24Fragment$1.class.uniqueId1 differ diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/Sns24Fragment.class.uniqueId0 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/Sns24Fragment.class.uniqueId0 new file mode 100644 index 0000000..fe7fd03 Binary files /dev/null and b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/Sns24Fragment.class.uniqueId0 differ diff --git a/app/src/main/java/com/example/cuida/services/Gemini.java b/app/src/main/java/com/example/cuida/services/Gemini.java new file mode 100644 index 0000000..45a46b8 --- /dev/null +++ b/app/src/main/java/com/example/cuida/services/Gemini.java @@ -0,0 +1,57 @@ +package com.example.cuida.services; + +import com.google.ai.client.generativeai.GenerativeModel; +import com.google.ai.client.generativeai.java.GenerativeModelFutures; +import com.google.ai.client.generativeai.type.Content; +import com.google.ai.client.generativeai.type.GenerateContentResponse; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; + +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; + +public class Gemini { + + private final GenerativeModelFutures modelo; + + public Gemini() { + // 1. Configurar o modelo (usa a tua API Key do Google AI Studio) + GenerativeModel generativeModel = new GenerativeModel( + "gemini-1.5-flash", + "AIzaSyBmLgn-SHaTDvAeDWsw2iTZRR9gahhOu7k"); + this.modelo = GenerativeModelFutures.from(generativeModel); + } + + public interface GeminiCallback { + void onSuccess(String result); + + void onError(Throwable t); + } + + public void fazerPergunta(String promptUtilizador, GeminiCallback callback) { + // 2. Preparar o conteúdo da pergunta + Content conteudo = new Content.Builder() + .addText(promptUtilizador) + .build(); + + // 3. Chamar a IA de forma assíncrona + ListenableFuture respostaFuture = modelo.generateContent(conteudo); + + Executor executor = Executors.newSingleThreadExecutor(); + + Futures.addCallback(respostaFuture, new FutureCallback() { + @Override + public void onSuccess(GenerateContentResponse resultado) { + // Aqui recebes o texto da IA + String textoResposta = resultado.getText(); + callback.onSuccess(textoResposta); + } + + @Override + public void onFailure(Throwable t) { + callback.onError(t); + } + }, executor); + } +} diff --git a/build/reports/problems/problems-report.html b/build/reports/problems/problems-report.html index 3dd9ccc..551569e 100644 --- a/build/reports/problems/problems-report.html +++ b/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ code + .copy-button {