mirror of
https://github.com/JideGuru/FlutterEbookApp.git
synced 2025-05-17 13:55:59 +08:00
rfact: more refactoring ofcourse
This commit is contained in:
@ -1,8 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/constants/strings.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/local/local_storage.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/notifiers/current_app_theme/current_app_theme_notifier.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/database/database_config.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_ebook_app/src/router/app_router.dart';
|
||||
import 'package:flutter_ebook_app/src/theme/theme_config.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
@ -33,6 +30,7 @@ class MyApp extends ConsumerWidget {
|
||||
: ThemeConfig.lightTheme,
|
||||
),
|
||||
darkTheme: themeData(ThemeConfig.darkTheme),
|
||||
themeMode: currentAppTheme.value?.themeMode,
|
||||
routerConfig: _appRouter.config(),
|
||||
);
|
||||
}
|
||||
|
@ -1,2 +1,2 @@
|
||||
export 'data/data.dart';
|
||||
export 'screens/screens.dart';
|
||||
export 'presentation/presentation.dart';
|
||||
|
@ -1,2 +1 @@
|
||||
export 'notifier/notifiers.dart';
|
||||
export 'repositories/repositories.dart';
|
||||
|
@ -1,6 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/common/constants/api.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/providers/dio_provider.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/repositories/book/book_repository.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
class BookDetailsRepository extends BookRepository {
|
||||
|
@ -0,0 +1,2 @@
|
||||
export 'notifier/notifiers.dart';
|
||||
export 'ui/ui.dart';
|
1
lib/src/features/book_details/presentation/ui/ui.dart
Normal file
1
lib/src/features/book_details/presentation/ui/ui.dart
Normal file
@ -0,0 +1 @@
|
||||
export 'screens/screens.dart';
|
1
lib/src/features/common/application/application.dart
Normal file
1
lib/src/features/common/application/application.dart
Normal file
@ -0,0 +1 @@
|
||||
export 'services/services.dart';
|
@ -1,6 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/common/constants/shared_preferences_key.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/notifiers/current_app_theme/current_app_theme_notifier.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/providers/shared_preferences_provider.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
@ -1,5 +1,6 @@
|
||||
export 'application/application.dart';
|
||||
export 'constants/constants.dart';
|
||||
export 'data/data.dart';
|
||||
export 'database/database.dart';
|
||||
export 'domain/domain.dart';
|
||||
export 'extensions/extensions.dart';
|
||||
export 'widgets/widgets.dart';
|
||||
export 'presentation/presentation.dart';
|
||||
|
@ -1,8 +1,6 @@
|
||||
export 'data_sources/data_sources.dart';
|
||||
export 'database/database.dart';
|
||||
export 'failures/http_failure.dart';
|
||||
export 'local/local_storage.dart';
|
||||
export 'models/category_feed.dart';
|
||||
export 'notifiers/notifiers.dart';
|
||||
export 'providers/providers.dart';
|
||||
export 'remote/app_dio.dart';
|
||||
export 'repositories/repositories.dart';
|
||||
export 'services/services.dart';
|
||||
|
@ -0,0 +1,4 @@
|
||||
export 'downloads/downloads_local_data_source.dart';
|
||||
export 'downloads/downloads_local_data_source_impl.dart';
|
||||
export 'favorites/favorites_local_data_source.dart';
|
||||
export 'favorites/favorites_local_data_source_impl.dart';
|
@ -1,5 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/common/data/data_sources/downloads/downloads_local_data_source.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/providers/database_provider.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:sembast/sembast.dart';
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/common/data/models/category_feed.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
|
||||
abstract class FavoritesLocalDataSource {
|
||||
const FavoritesLocalDataSource();
|
||||
|
@ -1,6 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/common/data/data_sources/favorites/favorites_local_data_source.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/models/category_feed.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/providers/database_provider.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:sembast/sembast.dart';
|
||||
|
||||
|
@ -1,8 +1,7 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/failures/http_failure.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/models/category_feed.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:xml2json/xml2json.dart';
|
||||
|
||||
typedef BookRepositoryData = ({CategoryFeed? feed, HttpFailure? failure});
|
||||
|
@ -1,6 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/common/data/data_sources/favorites/favorites_local_data_source.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/data_sources/favorites/favorites_local_data_source_impl.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/models/category_feed.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
abstract class FavoritesRepository {
|
||||
|
1
lib/src/features/common/domain/domain.dart
Normal file
1
lib/src/features/common/domain/domain.dart
Normal file
@ -0,0 +1 @@
|
||||
export 'models/models.dart';
|
1
lib/src/features/common/domain/models/models.dart
Normal file
1
lib/src/features/common/domain/models/models.dart
Normal file
@ -0,0 +1 @@
|
||||
export 'category_feed.dart';
|
@ -1,6 +1,7 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter_ebook_app/src/features/common/data/services/current_app_theme_service.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'current_app_theme_notifier.g.dart';
|
||||
@ -23,10 +24,16 @@ class CurrentAppThemeNotifier extends _$CurrentAppThemeNotifier {
|
||||
}
|
||||
|
||||
@override
|
||||
FutureOr<CurrentAppTheme> build() {
|
||||
Future<CurrentAppTheme> build() async {
|
||||
_currentAppThemeService = ref.read(currentAppThemeServiceProvider);
|
||||
return _currentAppThemeService.getCurrentAppTheme();
|
||||
}
|
||||
}
|
||||
|
||||
enum CurrentAppTheme { light, dark }
|
||||
enum CurrentAppTheme {
|
||||
light(ThemeMode.light),
|
||||
dark(ThemeMode.dark);
|
||||
|
||||
final ThemeMode themeMode;
|
||||
const CurrentAppTheme(this.themeMode);
|
||||
}
|
3
lib/src/features/common/presentation/presentation.dart
Normal file
3
lib/src/features/common/presentation/presentation.dart
Normal file
@ -0,0 +1,3 @@
|
||||
export 'notifiers/notifiers.dart';
|
||||
export 'providers/providers.dart';
|
||||
export 'ui/ui.dart';
|
@ -1,4 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/common/database/database_config.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:sembast/sembast.dart';
|
||||
|
1
lib/src/features/common/presentation/ui/ui.dart
Normal file
1
lib/src/features/common/presentation/ui/ui.dart
Normal file
@ -0,0 +1 @@
|
||||
export 'widgets/widgets.dart';
|
@ -1 +1 @@
|
||||
export 'screens/screens.dart';
|
||||
export 'presentation/presentation.dart';
|
||||
|
@ -0,0 +1 @@
|
||||
export 'ui/ui.dart';
|
1
lib/src/features/downloads/presentation/ui/ui.dart
Normal file
1
lib/src/features/downloads/presentation/ui/ui.dart
Normal file
@ -0,0 +1 @@
|
||||
export 'screens/screens.dart';
|
@ -1,2 +1 @@
|
||||
export 'notifiers/notifiers.dart';
|
||||
export 'repositories/repositories.dart';
|
||||
|
@ -1,6 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/common/constants/api.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/providers/dio_provider.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/repositories/book/book_repository.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
class ExploreRepository extends BookRepository {
|
||||
|
@ -1,2 +1,2 @@
|
||||
export 'data/data.dart';
|
||||
export 'screens/screens.dart';
|
||||
export 'presentation/presentation.dart';
|
||||
|
@ -1 +1,2 @@
|
||||
export 'notifiers/notifiers.dart';
|
||||
export 'ui/ui.dart';
|
1
lib/src/features/explore/presentation/ui/ui.dart
Normal file
1
lib/src/features/explore/presentation/ui/ui.dart
Normal file
@ -0,0 +1 @@
|
||||
export 'screens/screens.dart';
|
@ -1 +1 @@
|
||||
export 'screens/screens.dart';
|
||||
export 'presentation/presentation.dart';
|
||||
|
@ -0,0 +1 @@
|
||||
export 'ui/ui.dart';
|
1
lib/src/features/favorites/presentation/ui/ui.dart
Normal file
1
lib/src/features/favorites/presentation/ui/ui.dart
Normal file
@ -0,0 +1 @@
|
||||
export 'screens/screens.dart';
|
@ -1,2 +1 @@
|
||||
export 'notifiers/notifiers.dart';
|
||||
export 'repositories/repositories.dart';
|
||||
|
@ -1,6 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/common/constants/api.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/providers/dio_provider.dart';
|
||||
import 'package:flutter_ebook_app/src/features/common/data/repositories/book/book_repository.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
export 'data/data.dart';
|
||||
export 'screens/screens.dart';
|
||||
export 'presentation/presentation.dart';
|
||||
|
@ -1,5 +1,4 @@
|
||||
import 'package:flutter_ebook_app/src/features/common/data/models/category_feed.dart';
|
||||
import 'package:flutter_ebook_app/src/features/home/data/repositories/home_repository.dart';
|
||||
import 'package:flutter_ebook_app/src/features/features.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'home_feed_notifier.g.dart';
|
||||
@ -13,7 +12,7 @@ class HomeFeedNotifier extends _$HomeFeedNotifier {
|
||||
@override
|
||||
Future<HomeFeedData> build() async {
|
||||
state = const AsyncValue.loading();
|
||||
return await _fetch();
|
||||
return _fetch();
|
||||
}
|
||||
|
||||
Future<void> fetch() async {
|
||||
@ -25,8 +24,7 @@ class HomeFeedNotifier extends _$HomeFeedNotifier {
|
||||
final HomeRepository homeRepository = ref.read(homeRepositoryProvider);
|
||||
final popularFeedSuccessOrFailure =
|
||||
await homeRepository.getPopularHomeFeed();
|
||||
final recentFeedSuccessOrFailure =
|
||||
await homeRepository.getRecentHomeFeed();
|
||||
final recentFeedSuccessOrFailure = await homeRepository.getRecentHomeFeed();
|
||||
CategoryFeed? popularFeed = popularFeedSuccessOrFailure.feed;
|
||||
CategoryFeed? recentFeed = recentFeedSuccessOrFailure.feed;
|
||||
if (popularFeed == null) {
|
2
lib/src/features/home/presentation/presentation.dart
Normal file
2
lib/src/features/home/presentation/presentation.dart
Normal file
@ -0,0 +1,2 @@
|
||||
export 'notifiers/notifiers.dart';
|
||||
export 'ui/ui.dart';
|
1
lib/src/features/home/presentation/ui/ui.dart
Normal file
1
lib/src/features/home/presentation/ui/ui.dart
Normal file
@ -0,0 +1 @@
|
||||
export 'screens/screens.dart';
|
1
lib/src/features/settings/presentation/presentation.dart
Normal file
1
lib/src/features/settings/presentation/presentation.dart
Normal file
@ -0,0 +1 @@
|
||||
export 'ui/ui.dart';
|
1
lib/src/features/settings/presentation/ui/ui.dart
Normal file
1
lib/src/features/settings/presentation/ui/ui.dart
Normal file
@ -0,0 +1 @@
|
||||
export 'screens/screens.dart';
|
@ -1 +1 @@
|
||||
export 'screens/screens.dart';
|
||||
export 'presentation/presentation.dart';
|
||||
|
1
lib/src/features/splash/presentation/presentation.dart
Normal file
1
lib/src/features/splash/presentation/presentation.dart
Normal file
@ -0,0 +1 @@
|
||||
export 'ui/ui.dart';
|
1
lib/src/features/splash/presentation/ui/ui.dart
Normal file
1
lib/src/features/splash/presentation/ui/ui.dart
Normal file
@ -0,0 +1 @@
|
||||
export 'screens/screens.dart';
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user