diff --git a/README.md b/README.md index 5a65b74..f38c50d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# see_our_sounds +# hear_sitter A new Flutter project. diff --git a/android/app/build.gradle b/android/app/build.gradle index 68409a0..30f78a5 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -44,7 +44,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.see_our_sounds" + applicationId "com.example.hear_sitter" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. minSdkVersion 21 diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml index 1a646a4..7a40903 100644 --- a/android/app/src/debug/AndroidManifest.xml +++ b/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.example.hear_sitter"> @@ -18,7 +18,7 @@ + + + + + diff --git a/android/app/src/main/res/drawable-night/background.png b/android/app/src/main/res/drawable-night/background.png new file mode 100644 index 0000000..71e9c81 Binary files /dev/null and b/android/app/src/main/res/drawable-night/background.png differ diff --git a/android/app/src/main/res/drawable-night/launch_background.xml b/android/app/src/main/res/drawable-night/launch_background.xml new file mode 100644 index 0000000..f88598c --- /dev/null +++ b/android/app/src/main/res/drawable-night/launch_background.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/android/app/src/main/res/drawable-v21/background.png b/android/app/src/main/res/drawable-v21/background.png new file mode 100644 index 0000000..3107d37 Binary files /dev/null and b/android/app/src/main/res/drawable-v21/background.png differ diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml index f74085f..f88598c 100644 --- a/android/app/src/main/res/drawable-v21/launch_background.xml +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -1,12 +1,6 @@ - - - - - + + + diff --git a/android/app/src/main/res/drawable/background.png b/android/app/src/main/res/drawable/background.png new file mode 100644 index 0000000..3107d37 Binary files /dev/null and b/android/app/src/main/res/drawable/background.png differ diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml index 304732f..f88598c 100644 --- a/android/app/src/main/res/drawable/launch_background.xml +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -1,12 +1,6 @@ - - - - - + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index db77bb4..50a2d68 100644 Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 17987b7..4cd8f03 100644 Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 09d4391..3c905f8 100644 Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d..c7d17ab 100644 Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372e..dd55d12 100644 Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml index 06952be..58ee4d9 100644 --- a/android/app/src/main/res/values-night/styles.xml +++ b/android/app/src/main/res/values-night/styles.xml @@ -5,6 +5,9 @@ @drawable/launch_background + false + false + shortEdges @drawable/launch_background + false + false + shortEdges - NSLocationWhenInUseUsageDescription - Need location when in use - NSLocationAlwaysAndWhenInUseUsageDescription - Always and when in use! - NSLocationUsageDescription - Older devices need location. - NSLocationAlwaysUsageDescription - Can I have location always? - - - NSMicrophoneUsageDescription - microphone - - - NSSpeechRecognitionUsageDescription - speech - - CADisableMinimumFrameDurationOnPhone - - UIApplicationSupportsIndirectInputEvents - - + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + HearSitter + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + hear_sitter + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + NSLocationWhenInUseUsageDescription + Need location when in use + NSLocationAlwaysAndWhenInUseUsageDescription + Always and when in use! + NSLocationUsageDescription + Older devices need location. + NSLocationAlwaysUsageDescription + Can I have location always? + + NSMicrophoneUsageDescription + microphone + + NSSpeechRecognitionUsageDescription + speech + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + UIStatusBarHidden + + diff --git a/lib/main.dart b/lib/main.dart index 7ee7684..77038de 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,33 +1,37 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:see_our_sounds/src/core/utils/sharedprefs_util.dart'; -import 'package:see_our_sounds/src/screens/home/home_screen.dart'; +import 'package:hear_sitter/src/core/app_router.dart'; +import 'package:hear_sitter/src/core/app_theme.dart'; +import 'package:hear_sitter/src/core/utils/sharedprefs_util.dart'; +import 'package:hear_sitter/src/screens/home/home_screen.dart'; -import 'package:see_our_sounds/src/screens/onboarding/onboarding_screen.dart'; +import 'package:hear_sitter/src/screens/onboarding/onboarding_screen.dart'; late bool isOnboard; Future main() async { WidgetsFlutterBinding.ensureInitialized(); await SharedPreferencesUtil.initialize(); - final prefs = SharedPreferencesUtil().prefs; - isOnboard = prefs.getBool('isOnboard') ?? false; + // final prefs = SharedPreferencesUtil().prefs; + // isOnboard = prefs.getBool('isOnboard') ?? false; runApp(ProviderScope(child: const MyApp())); } -class MyApp extends StatelessWidget { +class MyApp extends ConsumerWidget { const MyApp({super.key}); @override - Widget build(BuildContext context) { - return MaterialApp( + Widget build(BuildContext context, WidgetRef ref) { + final router = ref.watch(routerProvider); + return MaterialApp.router( title: 'HearSitter', debugShowCheckedModeBanner: false, - theme: ThemeData( - primarySwatch: Colors.blue, - fontFamily: 'NotoSansKR', - scaffoldBackgroundColor: Colors.white), - home: isOnboard ? const HomseScreen() : const OnboardingScreen(), + theme: themeData(), + routeInformationParser: router.routeInformationParser, + routeInformationProvider: router.routeInformationProvider, + routerDelegate: router.routerDelegate, + + // home: isOnboard ? const HomseScreen() : const OnboardingScreen(), ); } } diff --git a/lib/src/core/app_assets.dart b/lib/src/core/app_assets.dart index ec0a5a3..b288ebc 100644 --- a/lib/src/core/app_assets.dart +++ b/lib/src/core/app_assets.dart @@ -1,7 +1,8 @@ class AppAssets { AppAssets._(); - static const String logo = ""; + static const String logo1 = "assets/logo/logo1.png"; + static const String logo2 = "assets/logo/logo2.png"; static const String announcementIconDark = 'assets/icon_dark/announcement_dark.png'; static const String announcementIconLight = diff --git a/lib/src/core/app_constants.dart b/lib/src/core/app_constants.dart index dd7caa2..0dc99de 100644 --- a/lib/src/core/app_constants.dart +++ b/lib/src/core/app_constants.dart @@ -1,6 +1,6 @@ import 'dart:ui'; -import 'package:see_our_sounds/src/core/app_assets.dart'; +import 'package:hear_sitter/src/core/app_assets.dart'; class AppUri { AppUri._(); @@ -38,86 +38,88 @@ enum SoundCategory { PAPA, // 아빠 } -String soundCategoryIconLight(SoundCategory soundCategory) { - switch (soundCategory) { - case SoundCategory.BABY_CRYING: - return AppAssets.infantCryingIconLight; - case SoundCategory.CRACK_SOUND: - return AppAssets.crackIconLight; - case SoundCategory.FIRE_ALARM: - return AppAssets.fireAlarmIconLight; - case SoundCategory.GUN_SHOT: - return AppAssets.gunIconLight; - case SoundCategory.CAR_HORN: - return AppAssets.carHornIconLight; - case SoundCategory.NAME: - return AppAssets.nameIconLight; - case SoundCategory.MAMA: - return AppAssets.mamaPapaIconLight; - case SoundCategory.PAPA: - return AppAssets.mamaPapaIconLight; +extension SoundCategoryUtil on SoundCategory { + String get iconLight { + switch (this) { + case SoundCategory.BABY_CRYING: + return AppAssets.infantCryingIconLight; + case SoundCategory.CRACK_SOUND: + return AppAssets.crackIconLight; + case SoundCategory.FIRE_ALARM: + return AppAssets.fireAlarmIconLight; + case SoundCategory.GUN_SHOT: + return AppAssets.gunIconLight; + case SoundCategory.CAR_HORN: + return AppAssets.carHornIconLight; + case SoundCategory.NAME: + return AppAssets.nameIconLight; + case SoundCategory.MAMA: + return AppAssets.mamaPapaIconLight; + case SoundCategory.PAPA: + return AppAssets.mamaPapaIconLight; + } } -} -String soundCategoryIconDark(SoundCategory soundCategory) { - switch (soundCategory) { - case SoundCategory.BABY_CRYING: - return AppAssets.infantCryingIconDark; - case SoundCategory.CRACK_SOUND: - return AppAssets.crackIconDark; - case SoundCategory.FIRE_ALARM: - return AppAssets.fireAlarmIconDark; - case SoundCategory.GUN_SHOT: - return AppAssets.gunIconDark; - case SoundCategory.CAR_HORN: - return AppAssets.carHornIconDark; - case SoundCategory.NAME: - return AppAssets.nameIconDark; - case SoundCategory.MAMA: - return AppAssets.mamaPapaIconDark; - case SoundCategory.PAPA: - return AppAssets.mamaPapaIconDark; + String get iconDark { + switch (this) { + case SoundCategory.BABY_CRYING: + return AppAssets.infantCryingIconDark; + case SoundCategory.CRACK_SOUND: + return AppAssets.crackIconDark; + case SoundCategory.FIRE_ALARM: + return AppAssets.fireAlarmIconDark; + case SoundCategory.GUN_SHOT: + return AppAssets.gunIconDark; + case SoundCategory.CAR_HORN: + return AppAssets.carHornIconDark; + case SoundCategory.NAME: + return AppAssets.nameIconDark; + case SoundCategory.MAMA: + return AppAssets.mamaPapaIconDark; + case SoundCategory.PAPA: + return AppAssets.mamaPapaIconDark; + } } -} -String soundCategoryToLabel(SoundCategory soundCategory) { - switch (soundCategory) { - case SoundCategory.BABY_CRYING: - return 'Baby Crying'; - case SoundCategory.CRACK_SOUND: - return 'Glass'; - case SoundCategory.FIRE_ALARM: - return 'Fire alarm'; - case SoundCategory.GUN_SHOT: - return 'Gunshot'; - case SoundCategory.CAR_HORN: - return 'Car horn'; - case SoundCategory.NAME: - return 'Name'; - case SoundCategory.MAMA: - return 'Mama'; - case SoundCategory.PAPA: - return 'Papa'; + String get label { + switch (this) { + case SoundCategory.BABY_CRYING: + return 'Baby Crying'; + case SoundCategory.CRACK_SOUND: + return 'Glass'; + case SoundCategory.FIRE_ALARM: + return 'Fire alarm'; + case SoundCategory.GUN_SHOT: + return 'Gunshot'; + case SoundCategory.CAR_HORN: + return 'Car horn'; + case SoundCategory.NAME: + return 'Name'; + case SoundCategory.MAMA: + return 'Mama'; + case SoundCategory.PAPA: + return 'Papa'; + } } -} -Color soundCategoryColor(SoundCategory soundCategory) { - switch (soundCategory) { - case SoundCategory.BABY_CRYING: - return const Color(0xffffd400); - case SoundCategory.CRACK_SOUND: - return const Color(0xff0072db); - case SoundCategory.FIRE_ALARM: - return const Color(0xffe94025); - case SoundCategory.GUN_SHOT: - return Color(0xff473b3d); - case SoundCategory.CAR_HORN: - return Color(0xff7c1bbb); - case SoundCategory.NAME: - return Color(0xffffa7cb); - case SoundCategory.MAMA: - return Color(0xffff6e11); - case SoundCategory.PAPA: - return Color(0xff008d62); + Color get color { + switch (this) { + case SoundCategory.BABY_CRYING: + return const Color(0xffffd400); + case SoundCategory.CRACK_SOUND: + return const Color(0xff0072db); + case SoundCategory.FIRE_ALARM: + return const Color(0xffe94025); + case SoundCategory.GUN_SHOT: + return const Color(0xff473b3d); + case SoundCategory.CAR_HORN: + return const Color(0xff7c1bbb); + case SoundCategory.NAME: + return const Color(0xffffa7cb); + case SoundCategory.MAMA: + return const Color(0xffff6e11); + case SoundCategory.PAPA: + return const Color(0xff008d62); + } } } diff --git a/lib/src/core/app_router.dart b/lib/src/core/app_router.dart new file mode 100644 index 0000000..e7ecb3b --- /dev/null +++ b/lib/src/core/app_router.dart @@ -0,0 +1,34 @@ +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:go_router/go_router.dart'; +import 'package:hear_sitter/src/core/utils/router_util.dart'; +import 'package:hear_sitter/src/core/utils/sharedprefs_util.dart'; +import 'package:hear_sitter/src/screens/category/category_screen.dart'; +import 'package:hear_sitter/src/screens/history/history_screen.dart'; +import 'package:hear_sitter/src/screens/home/home_screen.dart'; +import 'package:hear_sitter/src/screens/onboarding/onboarding_screen.dart'; + +final routerProvider = Provider((ref) => _router); +final prefs = SharedPreferencesUtil().prefs; +bool isOnboard = prefs.getBool('isOnboard') ?? false; + +final GoRouter _router = GoRouter( + initialLocation: + isOnboard ? APP_SCREEN.home.routePath : APP_SCREEN.onboarding.routePath, + routes: [ + GoRoute( + path: APP_SCREEN.home.routePath, + builder: (context, state) => const HomseScreen(), + ), + GoRoute( + path: APP_SCREEN.onboarding.routePath, + builder: (context, state) => const OnboardingScreen(), + ), + GoRoute( + path: APP_SCREEN.category.routePath, + builder: (context, state) => const CategoryScreen(), + ), + GoRoute( + path: APP_SCREEN.history.routePath, + builder: (context, state) => const HistoryScreen(), + ) + ]); diff --git a/lib/src/core/app_routes.dart b/lib/src/core/app_routes.dart deleted file mode 100644 index e69de29..0000000 diff --git a/lib/src/core/app_theme.dart b/lib/src/core/app_theme.dart new file mode 100644 index 0000000..bfbd8cb --- /dev/null +++ b/lib/src/core/app_theme.dart @@ -0,0 +1,8 @@ +import 'package:flutter/material.dart'; + +ThemeData themeData() { + return ThemeData( + scaffoldBackgroundColor: Colors.white, + fontFamily: 'NotoSansKR', + ); +} diff --git a/lib/src/core/app_themes.dart b/lib/src/core/app_themes.dart deleted file mode 100644 index e69de29..0000000 diff --git a/lib/src/core/core.dart b/lib/src/core/core.dart index fc785b5..eef29bd 100644 --- a/lib/src/core/core.dart +++ b/lib/src/core/core.dart @@ -1,4 +1,4 @@ -export 'app_themes.dart'; +export 'app_theme.dart'; export 'app_constants.dart'; export 'app_assets.dart'; -export 'app_routes.dart'; \ No newline at end of file +export 'app_router.dart'; diff --git a/lib/src/core/utils/database_util.dart b/lib/src/core/utils/database_util.dart index 9b32126..7498851 100644 --- a/lib/src/core/utils/database_util.dart +++ b/lib/src/core/utils/database_util.dart @@ -1,7 +1,8 @@ +import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:intl/intl.dart'; import 'package:path/path.dart'; // db에 접근하기 위해 -import 'package:see_our_sounds/src/core/app_constants.dart'; -import 'package:see_our_sounds/src/models/audio_tagging_model.dart'; +import 'package:hear_sitter/src/core/app_constants.dart'; +import 'package:hear_sitter/src/models/audio_tagging_model.dart'; import 'package:sqflite/sqflite.dart'; class DatabaseUtil { @@ -71,6 +72,7 @@ class DatabaseUtil { await db.rawDelete("DELETE FROM $tableName WHERE id = ?", [id]); } + // 앱이 종료되면, DB 자동으로 닫히지만, // 원할 때 종료하고 싶은 경우 사용됨. Future close() async { diff --git a/lib/src/core/utils/router_util.dart b/lib/src/core/utils/router_util.dart new file mode 100644 index 0000000..cf48a7c --- /dev/null +++ b/lib/src/core/utils/router_util.dart @@ -0,0 +1,33 @@ +enum APP_SCREEN { onboarding, category, home, history } + +extension AppRouter on APP_SCREEN { + String get routePath { + switch (this) { + case APP_SCREEN.onboarding: + return '/onboarding'; + case APP_SCREEN.category: + return '/category'; + case APP_SCREEN.home: + return '/'; + case APP_SCREEN.history: + return '/history'; + default: + return '/'; + } + } + + String get routeName { + switch (this) { + case APP_SCREEN.onboarding: + return 'onboarding'; + case APP_SCREEN.category: + return 'category'; + case APP_SCREEN.home: + return 'home'; + case APP_SCREEN.history: + return 'history'; + default: + return 'home'; + } + } +} diff --git a/lib/src/providers/audio_tagging_api_provider.dart b/lib/src/providers/audio_tagging_api_provider.dart index 3d80747..1b8673b 100644 --- a/lib/src/providers/audio_tagging_api_provider.dart +++ b/lib/src/providers/audio_tagging_api_provider.dart @@ -3,9 +3,9 @@ import 'dart:typed_data'; import 'package:flutter/cupertino.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:permission_handler/permission_handler.dart'; -import 'package:see_our_sounds/src/core/utils/audio_util.dart'; -import 'package:see_our_sounds/src/models/audio_tagging_model.dart'; -import 'package:see_our_sounds/src/services/audio_tagging_service.dart'; +import 'package:hear_sitter/src/core/utils/audio_util.dart'; +import 'package:hear_sitter/src/models/audio_tagging_model.dart'; +import 'package:hear_sitter/src/services/audio_tagging_service.dart'; import 'package:sound_stream/sound_stream.dart'; final recorderStreamProvider = diff --git a/lib/src/providers/audio_tagging_db_provider.dart b/lib/src/providers/audio_tagging_db_provider.dart index f474353..73d78e3 100644 --- a/lib/src/providers/audio_tagging_db_provider.dart +++ b/lib/src/providers/audio_tagging_db_provider.dart @@ -1,6 +1,6 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:see_our_sounds/src/core/utils/database_util.dart'; -import 'package:see_our_sounds/src/repositories/audio_tagging_repository.dart'; +import 'package:hear_sitter/src/core/utils/database_util.dart'; +import 'package:hear_sitter/src/repositories/audio_tagging_repository.dart'; final audioTaggingDBProvider = ChangeNotifierProvider((ref) => AudioTaggingRepositoryImpl(DatabaseUtil())); diff --git a/lib/src/repositories/audio_tagging_repository.dart b/lib/src/repositories/audio_tagging_repository.dart index 842a03f..1375300 100644 --- a/lib/src/repositories/audio_tagging_repository.dart +++ b/lib/src/repositories/audio_tagging_repository.dart @@ -1,7 +1,7 @@ import 'package:flutter/cupertino.dart'; import 'package:intl/intl.dart'; -import 'package:see_our_sounds/src/core/utils/database_util.dart'; -import 'package:see_our_sounds/src/models/audio_tagging_model.dart'; +import 'package:hear_sitter/src/core/utils/database_util.dart'; +import 'package:hear_sitter/src/models/audio_tagging_model.dart'; abstract class AudioTaggingRepository { Future getAllHistory(); diff --git a/lib/src/screens/category/category_screen.dart b/lib/src/screens/category/category_screen.dart index 6fe4b16..7f13702 100644 --- a/lib/src/screens/category/category_screen.dart +++ b/lib/src/screens/category/category_screen.dart @@ -1,8 +1,8 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:see_our_sounds/src/core/app_constants.dart'; -import 'package:see_our_sounds/src/screens/category/widgets/category_card.dart'; -import 'package:see_our_sounds/src/screens/category/widgets/bottom_nav_button.dart'; +import 'package:hear_sitter/src/core/app_constants.dart'; +import 'package:hear_sitter/src/screens/category/widgets/category_card.dart'; +import 'package:hear_sitter/src/screens/category/widgets/bottom_nav_button.dart'; class CategoryScreen extends StatefulWidget { const CategoryScreen({Key? key}) : super(key: key); @@ -45,55 +45,48 @@ class _CategoryScreenState extends State { CategoryCard( color: AppColor.primaryColor, labelColor: Colors.white, - audioLabel: - soundCategoryToLabel(SoundCategory.BABY_CRYING), - imgUrl: - soundCategoryIconLight(SoundCategory.BABY_CRYING), + audioLabel: SoundCategory.BABY_CRYING.label, + imgUrl: SoundCategory.BABY_CRYING.iconLight, width: 120, onTap: () {}, isSelected: false), CategoryCard( audioLabel: 'Crack Sound', width: 130, - imgUrl: - soundCategoryIconDark(SoundCategory.CRACK_SOUND), + imgUrl: SoundCategory.CRACK_SOUND.iconDark, onTap: () {}, isSelected: false), CategoryCard( - audioLabel: - soundCategoryToLabel(SoundCategory.FIRE_ALARM), - imgUrl: - soundCategoryIconDark(SoundCategory.FIRE_ALARM), + audioLabel: SoundCategory.FIRE_ALARM.label, + imgUrl: SoundCategory.FIRE_ALARM.iconDark, width: 110, onTap: () {}, isSelected: false), CategoryCard( - audioLabel: - soundCategoryToLabel(SoundCategory.GUN_SHOT), - imgUrl: soundCategoryIconDark(SoundCategory.GUN_SHOT), + audioLabel: SoundCategory.GUN_SHOT.label, + imgUrl: SoundCategory.GUN_SHOT.iconDark, onTap: () {}, width: 95, isSelected: false), CategoryCard( - audioLabel: - soundCategoryToLabel(SoundCategory.CAR_HORN), - imgUrl: soundCategoryIconDark(SoundCategory.CAR_HORN), + audioLabel: SoundCategory.CAR_HORN.label, + imgUrl: SoundCategory.CAR_HORN.iconDark, width: 100, onTap: () {}, isSelected: false), CategoryCard( - audioLabel: soundCategoryToLabel(SoundCategory.NAME), - imgUrl: soundCategoryIconDark(SoundCategory.NAME), + audioLabel: SoundCategory.NAME.label, + imgUrl: SoundCategory.NAME.iconDark, onTap: () {}, isSelected: false), CategoryCard( - audioLabel: soundCategoryToLabel(SoundCategory.MAMA), - imgUrl: soundCategoryIconDark(SoundCategory.MAMA), + audioLabel: SoundCategory.MAMA.label, + imgUrl: SoundCategory.MAMA.iconDark, onTap: () {}, isSelected: false), CategoryCard( - audioLabel: soundCategoryToLabel(SoundCategory.PAPA), - imgUrl: soundCategoryIconDark(SoundCategory.PAPA), + audioLabel: SoundCategory.PAPA.label, + imgUrl: SoundCategory.PAPA.iconDark, onTap: () {}, isSelected: false), ], diff --git a/lib/src/screens/category/widgets/bottom_nav_button.dart b/lib/src/screens/category/widgets/bottom_nav_button.dart index 0a3ac7f..4268e27 100644 --- a/lib/src/screens/category/widgets/bottom_nav_button.dart +++ b/lib/src/screens/category/widgets/bottom_nav_button.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:see_our_sounds/src/core/app_constants.dart'; +import 'package:hear_sitter/src/core/app_constants.dart'; Widget bottomNavButton( {required VoidCallback onTap, diff --git a/lib/src/screens/category/widgets/category_card.dart b/lib/src/screens/category/widgets/category_card.dart index 33f4785..6349e5f 100644 --- a/lib/src/screens/category/widgets/category_card.dart +++ b/lib/src/screens/category/widgets/category_card.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:see_our_sounds/src/core/app_constants.dart'; +import 'package:hear_sitter/src/core/app_constants.dart'; class CategoryCard extends StatelessWidget { final String imgUrl; diff --git a/lib/src/screens/history/history_screen.dart b/lib/src/screens/history/history_screen.dart index d35748c..81830b2 100644 --- a/lib/src/screens/history/history_screen.dart +++ b/lib/src/screens/history/history_screen.dart @@ -1,7 +1,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter/material.dart'; -import 'package:see_our_sounds/src/models/audio_tagging_model.dart'; -import 'package:see_our_sounds/src/providers/audio_tagging_db_provider.dart'; +import 'package:hear_sitter/src/models/audio_tagging_model.dart'; +import 'package:hear_sitter/src/providers/audio_tagging_db_provider.dart'; class HistoryScreen extends ConsumerWidget { const HistoryScreen({Key? key}) : super(key: key); diff --git a/lib/src/screens/home/home_screen.dart b/lib/src/screens/home/home_screen.dart index 0cbe8a1..007cf71 100644 --- a/lib/src/screens/home/home_screen.dart +++ b/lib/src/screens/home/home_screen.dart @@ -1,13 +1,14 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:see_our_sounds/src/core/app_constants.dart'; -import 'package:see_our_sounds/src/models/audio_tagging_model.dart'; -import 'package:see_our_sounds/src/providers/audio_tagging_api_provider.dart'; -import 'package:see_our_sounds/src/providers/audio_tagging_db_provider.dart'; -import 'package:see_our_sounds/src/providers/decibel_provider.dart'; -import 'package:see_our_sounds/src/providers/stt_provider.dart'; -import 'package:see_our_sounds/src/screens/home/widgets/decibel_history_chart.dart'; -import 'package:see_our_sounds/src/screens/home/widgets/toggle_button.dart'; +import 'package:hear_sitter/src/core/app_assets.dart'; +import 'package:hear_sitter/src/core/app_constants.dart'; +import 'package:hear_sitter/src/models/audio_tagging_model.dart'; +import 'package:hear_sitter/src/providers/audio_tagging_api_provider.dart'; +import 'package:hear_sitter/src/providers/audio_tagging_db_provider.dart'; +import 'package:hear_sitter/src/providers/decibel_provider.dart'; +import 'package:hear_sitter/src/providers/stt_provider.dart'; +import 'package:hear_sitter/src/screens/home/widgets/decibel_history_chart.dart'; +import 'package:hear_sitter/src/screens/home/widgets/toggle_button.dart'; import 'package:syncfusion_flutter_gauges/gauges.dart'; @@ -60,10 +61,10 @@ class _HomseScreenState extends ConsumerState { size: 24, color: AppColor.lightGrayColor, )), - const Text( - 'HearSitter', - style: TextStyle(fontSize: 17, fontWeight: FontWeight.bold), - ), + SizedBox( + height: 50, + width: 50, + child: Image.asset(AppAssets.logo2)), appBarIconButton( onTap: () {}, icon: const Icon( diff --git a/lib/src/screens/home/widgets/toggle_button.dart b/lib/src/screens/home/widgets/toggle_button.dart index c088ffa..afaaf5f 100644 --- a/lib/src/screens/home/widgets/toggle_button.dart +++ b/lib/src/screens/home/widgets/toggle_button.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:see_our_sounds/src/core/app_constants.dart'; +import 'package:hear_sitter/src/core/app_constants.dart'; class ToggleButton extends StatefulWidget { final VoidCallback onTap; diff --git a/lib/src/screens/onboarding/onboarding_screen.dart b/lib/src/screens/onboarding/onboarding_screen.dart index cc1f7c7..9e138d0 100644 --- a/lib/src/screens/onboarding/onboarding_screen.dart +++ b/lib/src/screens/onboarding/onboarding_screen.dart @@ -1,8 +1,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:see_our_sounds/src/core/utils/sharedprefs_util.dart'; -import 'package:see_our_sounds/src/core/app_constants.dart'; -import 'package:see_our_sounds/src/screens/category/widgets/bottom_nav_button.dart'; +import 'package:go_router/go_router.dart'; +import 'package:hear_sitter/src/core/utils/router_util.dart'; +import 'package:hear_sitter/src/core/utils/sharedprefs_util.dart'; +import 'package:hear_sitter/src/core/app_constants.dart'; +import 'package:hear_sitter/src/screens/category/widgets/bottom_nav_button.dart'; final validateNameProvider = StateProvider((ref) => false); @@ -81,6 +83,7 @@ class _OnboardingScreenState extends ConsumerState { onTap: () { _prefs.setString('userName', textEditingController.text); _prefs.setBool('isOnboard', true); + context.go(APP_SCREEN.category.routePath); }, validate: validateName, text: 'Next'), diff --git a/lib/src/services/audio_tagging_service.dart b/lib/src/services/audio_tagging_service.dart index c230311..c735288 100644 --- a/lib/src/services/audio_tagging_service.dart +++ b/lib/src/services/audio_tagging_service.dart @@ -3,11 +3,9 @@ import 'dart:convert'; import 'dart:typed_data'; import 'package:flutter/cupertino.dart'; import 'package:http/http.dart' as http; -import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:see_our_sounds/src/core/core.dart'; -import 'package:see_our_sounds/src/core/app_constants.dart'; -import 'package:see_our_sounds/src/models/audio_tagging_model.dart'; -import 'package:sound_stream/sound_stream.dart'; +import 'package:hear_sitter/src/core/core.dart'; +import 'package:hear_sitter/src/core/app_constants.dart'; +import 'package:hear_sitter/src/models/audio_tagging_model.dart'; abstract class AudioTaggingService { Future getPong(); diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt index 493fcff..93c144d 100644 --- a/linux/CMakeLists.txt +++ b/linux/CMakeLists.txt @@ -4,10 +4,10 @@ project(runner LANGUAGES CXX) # The name of the executable created for the application. Change this to change # the on-disk name of your application. -set(BINARY_NAME "see_our_sounds") +set(BINARY_NAME "hear_sitter") # The unique GTK application identifier for this application. See: # https://wiki.gnome.org/HowDoI/ChooseApplicationID -set(APPLICATION_ID "com.example.see_our_sounds") +set(APPLICATION_ID "com.example.hear_sitter") # Explicitly opt in to modern CMake behaviors to avoid warnings with recent # versions of CMake. diff --git a/linux/my_application.cc b/linux/my_application.cc index 793db95..735de3a 100644 --- a/linux/my_application.cc +++ b/linux/my_application.cc @@ -40,11 +40,11 @@ static void my_application_activate(GApplication* application) { if (use_header_bar) { GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); gtk_widget_show(GTK_WIDGET(header_bar)); - gtk_header_bar_set_title(header_bar, "see_our_sounds"); + gtk_header_bar_set_title(header_bar, "hear_sitter"); gtk_header_bar_set_show_close_button(header_bar, TRUE); gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); } else { - gtk_window_set_title(window, "see_our_sounds"); + gtk_window_set_title(window, "hear_sitter"); } gtk_window_set_default_size(window, 1280, 720); diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 0cd40c4..07b8ad5 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -54,7 +54,7 @@ /* Begin PBXFileReference section */ 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* see_our_sounds.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "see_our_sounds.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10ED2044A3C60003C045 /* hear_sitter.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "hear_sitter.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; @@ -105,7 +105,7 @@ 33CC10EE2044A3C60003C045 /* Products */ = { isa = PBXGroup; children = ( - 33CC10ED2044A3C60003C045 /* see_our_sounds.app */, + 33CC10ED2044A3C60003C045 /* hear_sitter.app */, ); name = Products; sourceTree = ""; @@ -172,7 +172,7 @@ ); name = Runner; productName = Runner; - productReference = 33CC10ED2044A3C60003C045 /* see_our_sounds.app */; + productReference = 33CC10ED2044A3C60003C045 /* hear_sitter.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index eb47d16..ce6ae44 100644 --- a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -15,7 +15,7 @@ @@ -31,7 +31,7 @@ @@ -54,7 +54,7 @@ @@ -71,7 +71,7 @@ diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig index 97e82ef..5379f02 100644 --- a/macos/Runner/Configs/AppInfo.xcconfig +++ b/macos/Runner/Configs/AppInfo.xcconfig @@ -5,10 +5,10 @@ // 'flutter create' template. // The application's name. By default this is also the title of the Flutter window. -PRODUCT_NAME = see_our_sounds +PRODUCT_NAME = hear_sitter // The application's bundle identifier -PRODUCT_BUNDLE_IDENTIFIER = com.example.seeOurSounds +PRODUCT_BUNDLE_IDENTIFIER = com.example.HearSitter // The copyright displayed in application information PRODUCT_COPYRIGHT = Copyright © 2023 com.example. All rights reserved. diff --git a/pubspec.lock b/pubspec.lock index cf3074b..1bdfd07 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -15,6 +15,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "5.2.0" + archive: + dependency: transitive + description: + name: archive + url: "https://pub.dartlang.org" + source: hosted + version: "3.3.6" args: dependency: transitive description: @@ -113,6 +120,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.2" + cli_util: + dependency: transitive + description: + name: cli_util + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.5" clock: dependency: transitive description: @@ -216,6 +230,13 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_launcher_icons: + dependency: "direct main" + description: + name: flutter_launcher_icons + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.0" flutter_lints: dependency: "direct dev" description: @@ -289,6 +310,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.1" + go_router: + dependency: "direct main" + description: + name: go_router + url: "https://pub.dartlang.org" + source: hosted + version: "6.5.0" graphs: dependency: transitive description: @@ -317,6 +345,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "4.0.2" + image: + dependency: transitive + description: + name: image + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.15" intl: dependency: "direct main" description: @@ -506,6 +541,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.4" + pointycastle: + dependency: transitive + description: + name: pointycastle + url: "https://pub.dartlang.org" + source: hosted + version: "3.7.2" pool: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0f29cf5..fe9c779 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,4 +1,4 @@ -name: see_our_sounds +name: hear_sitter description: A new Flutter project. publish_to: 'none' @@ -32,8 +32,17 @@ dependencies: sqflite: ^2.2.6 path: ^1.8.2 shared_preferences: ^2.0.20 + go_router: ^6.5.0 + flutter_launcher_icons: ^0.12.0 +flutter_icons: + android: "ic_launcher" + ios: true + image_path: "assets/logo/logo1.png" + android_12: + icon_background_color: "#ffffff" + image: assets/logo/logo3.png dev_dependencies: flutter_test: @@ -49,6 +58,7 @@ flutter: - assets/ - assets/icon_dark/ - assets/icon_light/ + - assets/logo/ fonts: - family: NotoSansKR diff --git a/test/widget_test.dart b/test/widget_test.dart index ba71056..e2c5ae4 100644 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -8,7 +8,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:see_our_sounds/main.dart'; +import 'package:hear_sitter/main.dart'; void main() { testWidgets('Counter increments smoke test', (WidgetTester tester) async { diff --git a/web/index.html b/web/index.html index ee7aad0..dae56fb 100644 --- a/web/index.html +++ b/web/index.html @@ -1,6 +1,4 @@ - - - + - + - + - see_our_sounds + hear_sitter - + + + + - + - - + + + \ No newline at end of file diff --git a/web/manifest.json b/web/manifest.json index 03f725a..80aeace 100644 --- a/web/manifest.json +++ b/web/manifest.json @@ -1,6 +1,6 @@ { - "name": "see_our_sounds", - "short_name": "see_our_sounds", + "name": "hear_sitter", + "short_name": "hear_sitter", "start_url": ".", "display": "standalone", "background_color": "#0175C2", diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt index 24ba710..9cdc29e 100644 --- a/windows/CMakeLists.txt +++ b/windows/CMakeLists.txt @@ -1,10 +1,10 @@ # Project-level configuration. cmake_minimum_required(VERSION 3.14) -project(see_our_sounds LANGUAGES CXX) +project(hear_sitter LANGUAGES CXX) # The name of the executable created for the application. Change this to change # the on-disk name of your application. -set(BINARY_NAME "see_our_sounds") +set(BINARY_NAME "hear_sitter") # Explicitly opt in to modern CMake behaviors to avoid warnings with recent # versions of CMake. diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc index 2bb3b99..f14936e 100644 --- a/windows/runner/Runner.rc +++ b/windows/runner/Runner.rc @@ -90,12 +90,12 @@ BEGIN BLOCK "040904e4" BEGIN VALUE "CompanyName", "com.example" "\0" - VALUE "FileDescription", "see_our_sounds" "\0" + VALUE "FileDescription", "hear_sitter" "\0" VALUE "FileVersion", VERSION_AS_STRING "\0" - VALUE "InternalName", "see_our_sounds" "\0" + VALUE "InternalName", "hear_sitter" "\0" VALUE "LegalCopyright", "Copyright (C) 2023 com.example. All rights reserved." "\0" - VALUE "OriginalFilename", "see_our_sounds.exe" "\0" - VALUE "ProductName", "see_our_sounds" "\0" + VALUE "OriginalFilename", "hear_sitter.exe" "\0" + VALUE "ProductName", "hear_sitter" "\0" VALUE "ProductVersion", VERSION_AS_STRING "\0" END END diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp index d931f0d..c0b2273 100644 --- a/windows/runner/main.cpp +++ b/windows/runner/main.cpp @@ -27,7 +27,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, FlutterWindow window(project); Win32Window::Point origin(10, 10); Win32Window::Size size(1280, 720); - if (!window.CreateAndShow(L"see_our_sounds", origin, size)) { + if (!window.CreateAndShow(L"hear_sitter", origin, size)) { return EXIT_FAILURE; } window.SetQuitOnClose(true);