diff --git a/android/app/google-services.json b/android/app/google-services.json
index 5edf582..56a8b0b 100644
--- a/android/app/google-services.json
+++ b/android/app/google-services.json
@@ -14,11 +14,11 @@
},
"oauth_client": [
{
- "client_id": "574860813475-glgnkruic7dflaomb59el8994b7hhfga.apps.googleusercontent.com",
+ "client_id": "574860813475-3p3k63lkrfd113sn6jscgvdj0aigsg5s.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.yimaru.lms.app",
- "certificate_hash": "378836a3aa9f36958b6c6c69bc67e3195352f68d"
+ "certificate_hash": "928ead08b5e39d6a861a55ae7cceb8c402d1ee7a"
}
},
{
diff --git a/android/build/reports/problems/problems-report.html b/android/build/reports/problems/problems-report.html
index 9a79f4e..1e24d19 100644
--- a/android/build/reports/problems/problems-report.html
+++ b/android/build/reports/problems/problems-report.html
@@ -646,7 +646,7 @@ code + .copy-button {
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index 6388f31..a20f2c4 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-all.zip
diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts
index 37ff765..dbbc5c6 100644
--- a/android/settings.gradle.kts
+++ b/android/settings.gradle.kts
@@ -19,9 +19,10 @@ pluginManagement {
plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
- id("com.android.application") version "9.0.1" apply false
+ id("com.android.application") version "9.1.0" apply false
id("org.jetbrains.kotlin.android") version "2.3.0" apply false
id("com.google.gms.google-services") version("4.4.4") apply false
+ id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
}
diff --git a/lib/app/app.dart b/lib/app/app.dart
index eab8a42..2c6972c 100644
--- a/lib/app/app.dart
+++ b/lib/app/app.dart
@@ -48,6 +48,8 @@ import 'package:yimaru_app/services/smart_auth_service.dart';
import 'package:yimaru_app/services/course_service.dart';
import 'package:yimaru_app/ui/views/course_subcategory/course_subcategory_view.dart';
import 'package:yimaru_app/ui/views/course/course_view.dart';
+import 'package:yimaru_app/services/audio_player_service.dart';
+import 'package:yimaru_app/services/voice_recorder_service.dart';
// @stacked-import
@StackedApp(
@@ -104,6 +106,8 @@ import 'package:yimaru_app/ui/views/course/course_view.dart';
LazySingleton(classType: NotificationService),
LazySingleton(classType: SmartAuthService),
LazySingleton(classType: CourseService),
+ LazySingleton(classType: AudioPlayerService),
+ LazySingleton(classType: VoiceRecorderService),
// @stacked-service
],
bottomsheets: [
diff --git a/lib/app/app.locator.dart b/lib/app/app.locator.dart
index 569deb2..2e05699 100644
--- a/lib/app/app.locator.dart
+++ b/lib/app/app.locator.dart
@@ -12,6 +12,7 @@ import 'package:stacked_services/src/navigation/navigation_service.dart';
import 'package:stacked_shared/stacked_shared.dart';
import '../services/api_service.dart';
+import '../services/audio_player_service.dart';
import '../services/authentication_service.dart';
import '../services/course_service.dart';
import '../services/dio_service.dart';
@@ -23,6 +24,7 @@ import '../services/permission_handler_service.dart';
import '../services/secure_storage_service.dart';
import '../services/smart_auth_service.dart';
import '../services/status_checker_service.dart';
+import '../services/voice_recorder_service.dart';
final locator = StackedLocator.instance;
@@ -50,4 +52,6 @@ Future setupLocator({
locator.registerLazySingleton(() => NotificationService());
locator.registerLazySingleton(() => SmartAuthService());
locator.registerLazySingleton(() => CourseService());
+ locator.registerLazySingleton(() => AudioPlayerService());
+ locator.registerLazySingleton(() => VoiceRecorderService());
}
diff --git a/lib/app/app.router.dart b/lib/app/app.router.dart
index d820fb7..3d47d9f 100644
--- a/lib/app/app.router.dart
+++ b/lib/app/app.router.dart
@@ -445,8 +445,15 @@ class StackedRouter extends _i1.RouterBase {
);
},
_i23.LearnLessonView: (data) {
+ final args = data.getArgs(nullOk: false);
return _i36.MaterialPageRoute(
- builder: (context) => const _i23.LearnLessonView(),
+ builder: (context) => _i23.LearnLessonView(
+ key: args.key,
+ title: args.title,
+ topics: args.topics,
+ subtitle: args.subtitle,
+ practices: args.practices,
+ description: args.description),
settings: data,
);
},
@@ -457,8 +464,13 @@ class StackedRouter extends _i1.RouterBase {
);
},
_i25.LearnLessonDetailView: (data) {
+ final args = data.getArgs(nullOk: false);
return _i36.MaterialPageRoute(
- builder: (context) => const _i25.LearnLessonDetailView(),
+ builder: (context) => _i25.LearnLessonDetailView(
+ key: args.key,
+ title: args.title,
+ practices: args.practices,
+ description: args.description),
settings: data,
);
},
@@ -469,6 +481,7 @@ class StackedRouter extends _i1.RouterBase {
key: args.key,
title: args.title,
subtitle: args.subtitle,
+ practices: args.practices,
buttonLabel: args.buttonLabel),
settings: data,
);
@@ -604,11 +617,100 @@ class AssessmentViewArguments {
}
}
+class LearnLessonViewArguments {
+ const LearnLessonViewArguments({
+ this.key,
+ required this.title,
+ required this.topics,
+ required this.subtitle,
+ required this.practices,
+ required this.description,
+ });
+
+ final _i36.Key? key;
+
+ final String title;
+
+ final String topics;
+
+ final String subtitle;
+
+ final List