From 87f168cc2fd3dcfe3c2dfcc52060523fdbfa3e56 Mon Sep 17 00:00:00 2001 From: SLMS Development Team Date: Mon, 15 Dec 2025 23:15:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DSLMS=E7=89=B9=E8=89=B2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E6=9E=84=E5=BB=BA=E9=94=99=E8=AF=AF=20-=20Sm?= =?UTF-8?q?artReminderService=E4=BD=BF=E7=94=A8ic=5Fnotifications=E6=9B=BF?= =?UTF-8?q?=E4=BB=A3ic=5Flauncher=5Fforeground=20-=20ImmersiveReadingActiv?= =?UTF-8?q?ity=E4=BF=AE=E5=A4=8DTTS=E6=9C=8D=E5=8A=A1=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=20-=20TranslationActivity=E4=BF=AE=E5=A4=8DT?= =?UTF-8?q?TS=E6=9C=8D=E5=8A=A1=E8=B0=83=E7=94=A8=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/service/SmartReminderService.java | 2 +- .../android/ui/ImmersiveReadingActivity.java | 32 ++++++++++++++++--- .../android/ui/TranslationActivity.java | 23 +++++++++++-- 3 files changed, 50 insertions(+), 7 deletions(-) diff --git a/android/src/main/java/com/smartlibrary/android/service/SmartReminderService.java b/android/src/main/java/com/smartlibrary/android/service/SmartReminderService.java index f6ae48e..2eda04b 100644 --- a/android/src/main/java/com/smartlibrary/android/service/SmartReminderService.java +++ b/android/src/main/java/com/smartlibrary/android/service/SmartReminderService.java @@ -272,7 +272,7 @@ public class SmartReminderService { */ private void sendNotification(int notificationId, String channelId, String title, String content, int priority) { NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channelId) - .setSmallIcon(R.drawable.ic_launcher_foreground) + .setSmallIcon(R.drawable.ic_notifications) .setContentTitle(title) .setContentText(content) .setStyle(new NotificationCompat.BigTextStyle().bigText(content)) diff --git a/android/src/main/java/com/smartlibrary/android/ui/ImmersiveReadingActivity.java b/android/src/main/java/com/smartlibrary/android/ui/ImmersiveReadingActivity.java index a1f245c..5c929e2 100644 --- a/android/src/main/java/com/smartlibrary/android/ui/ImmersiveReadingActivity.java +++ b/android/src/main/java/com/smartlibrary/android/ui/ImmersiveReadingActivity.java @@ -65,7 +65,8 @@ public class ImmersiveReadingActivity extends AppCompatActivity { getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); immersiveService = ImmersiveReadingService.getInstance(this); - ttsService = TextToSpeechService.getInstance(this); + ttsService = TextToSpeechService.getInstance(); + ttsService.initialize(this); initViews(); applyCurrentTheme(); @@ -241,9 +242,32 @@ public class ImmersiveReadingActivity extends AppCompatActivity { Toast.makeText(this, "已停止朗读", Toast.LENGTH_SHORT).show(); } else { String content = tvContent.getText().toString(); - ttsService.speak(content); - isSpeaking = true; - btnSpeak.setText("⏹️ 停止"); + ttsService.speak(content, new TextToSpeechService.TTSCallback() { + @Override + public void onStart() { + runOnUiThread(() -> { + isSpeaking = true; + btnSpeak.setText("⏹️ 停止"); + }); + } + + @Override + public void onComplete() { + runOnUiThread(() -> { + isSpeaking = false; + btnSpeak.setText("🔊 朗读"); + }); + } + + @Override + public void onError(String error) { + runOnUiThread(() -> { + isSpeaking = false; + btnSpeak.setText("🔊 朗读"); + Toast.makeText(ImmersiveReadingActivity.this, "朗读失败: " + error, Toast.LENGTH_SHORT).show(); + }); + } + }); Toast.makeText(this, "开始朗读...", Toast.LENGTH_SHORT).show(); } } diff --git a/android/src/main/java/com/smartlibrary/android/ui/TranslationActivity.java b/android/src/main/java/com/smartlibrary/android/ui/TranslationActivity.java index 0c29953..e509857 100644 --- a/android/src/main/java/com/smartlibrary/android/ui/TranslationActivity.java +++ b/android/src/main/java/com/smartlibrary/android/ui/TranslationActivity.java @@ -71,7 +71,8 @@ public class TranslationActivity extends AppCompatActivity { setContentView(R.layout.activity_translation); translationService = TranslationService.getInstance(this); - ttsService = TextToSpeechService.getInstance(this); + ttsService = TextToSpeechService.getInstance(); + ttsService.initialize(this); initViews(); setupLanguageSpinners(); @@ -244,7 +245,25 @@ public class TranslationActivity extends AppCompatActivity { return; } - ttsService.speak(text); + ttsService.speak(text, new TextToSpeechService.TTSCallback() { + @Override + public void onStart() { + runOnUiThread(() -> btnSpeak.setText("🔊 朗读中...")); + } + + @Override + public void onComplete() { + runOnUiThread(() -> btnSpeak.setText("🔊 朗读")); + } + + @Override + public void onError(String error) { + runOnUiThread(() -> { + btnSpeak.setText("🔊 朗读"); + Toast.makeText(TranslationActivity.this, "朗读失败: " + error, Toast.LENGTH_SHORT).show(); + }); + } + }); } @Override