Skip to content

Commit 2c45baf

Browse files
committed
feat(app): inject AdService into app view
- Add AdService import and injection into App widget - Update App constructor to include AdService parameter - Provide AdService in MultiRepositoryProvider - Pass AdService to AppBloc and _AppView
1 parent bdfbd77 commit 2c45baf

File tree

1 file changed

+26
-16
lines changed

1 file changed

+26
-16
lines changed

lib/app/view/app.dart

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:data_repository/data_repository.dart';
44
import 'package:flex_color_scheme/flex_color_scheme.dart';
55
import 'package:flutter/material.dart';
66
import 'package:flutter_bloc/flutter_bloc.dart';
7+
import 'package:flutter_news_app_mobile_client_full_source_code/ads/ad_service.dart';
78
import 'package:flutter_news_app_mobile_client_full_source_code/app/bloc/app_bloc.dart';
89
import 'package:flutter_news_app_mobile_client_full_source_code/app/config/app_environment.dart';
910
import 'package:flutter_news_app_mobile_client_full_source_code/app/services/app_status_service.dart';
@@ -25,24 +26,26 @@ class App extends StatelessWidget {
2526
required DataRepository<Source> sourcesRepository,
2627
required DataRepository<UserAppSettings> userAppSettingsRepository,
2728
required DataRepository<UserContentPreferences>
28-
userContentPreferencesRepository,
29+
userContentPreferencesRepository,
2930
required DataRepository<RemoteConfig> remoteConfigRepository,
3031
required DataRepository<User> userRepository,
3132
required KVStorageService kvStorageService,
3233
required AppEnvironment environment,
34+
required AdService adService,
3335
this.demoDataMigrationService,
3436
super.key,
35-
}) : _authenticationRepository = authenticationRepository,
36-
_headlinesRepository = headlinesRepository,
37-
_topicsRepository = topicsRepository,
38-
_countriesRepository = countriesRepository,
39-
_sourcesRepository = sourcesRepository,
40-
_userAppSettingsRepository = userAppSettingsRepository,
41-
_userContentPreferencesRepository = userContentPreferencesRepository,
42-
_appConfigRepository = remoteConfigRepository,
43-
_userRepository = userRepository,
44-
_kvStorageService = kvStorageService,
45-
_environment = environment;
37+
}) : _authenticationRepository = authenticationRepository,
38+
_headlinesRepository = headlinesRepository,
39+
_topicsRepository = topicsRepository,
40+
_countriesRepository = countriesRepository,
41+
_sourcesRepository = sourcesRepository,
42+
_userAppSettingsRepository = userAppSettingsRepository,
43+
_userContentPreferencesRepository = userContentPreferencesRepository,
44+
_appConfigRepository = remoteConfigRepository,
45+
_userRepository = userRepository,
46+
_kvStorageService = kvStorageService,
47+
_environment = environment,
48+
_adService = adService;
4649

4750
final AuthRepository _authenticationRepository;
4851
final DataRepository<Headline> _headlinesRepository;
@@ -51,11 +54,12 @@ class App extends StatelessWidget {
5154
final DataRepository<Source> _sourcesRepository;
5255
final DataRepository<UserAppSettings> _userAppSettingsRepository;
5356
final DataRepository<UserContentPreferences>
54-
_userContentPreferencesRepository;
57+
_userContentPreferencesRepository;
5558
final DataRepository<RemoteConfig> _appConfigRepository;
5659
final DataRepository<User> _userRepository;
5760
final KVStorageService _kvStorageService;
5861
final AppEnvironment _environment;
62+
final AdService _adService;
5963
final DemoDataMigrationService? demoDataMigrationService;
6064

6165
@override
@@ -72,15 +76,17 @@ class App extends StatelessWidget {
7276
RepositoryProvider.value(value: _appConfigRepository),
7377
RepositoryProvider.value(value: _userRepository),
7478
RepositoryProvider.value(value: _kvStorageService),
79+
RepositoryProvider.value(value: _adService),
7580
],
7681
child: MultiBlocProvider(
7782
providers: [
7883
BlocProvider(
7984
create: (context) => AppBloc(
8085
authenticationRepository: context.read<AuthRepository>(),
81-
userAppSettingsRepository: context
82-
.read<DataRepository<UserAppSettings>>(),
83-
appConfigRepository: context.read<DataRepository<RemoteConfig>>(),
86+
userAppSettingsRepository:
87+
context.read<DataRepository<UserAppSettings>>(),
88+
appConfigRepository:
89+
context.read<DataRepository<RemoteConfig>>(),
8490
userRepository: context.read<DataRepository<User>>(),
8591
environment: _environment,
8692
demoDataMigrationService: demoDataMigrationService,
@@ -103,6 +109,7 @@ class App extends StatelessWidget {
103109
appConfigRepository: _appConfigRepository,
104110
userRepository: _userRepository,
105111
environment: _environment,
112+
adService: _adService,
106113
),
107114
),
108115
);
@@ -121,6 +128,7 @@ class _AppView extends StatefulWidget {
121128
required this.appConfigRepository,
122129
required this.userRepository,
123130
required this.environment,
131+
required this.adService,
124132
});
125133

126134
final AuthRepository authenticationRepository;
@@ -133,6 +141,7 @@ class _AppView extends StatefulWidget {
133141
final DataRepository<RemoteConfig> appConfigRepository;
134142
final DataRepository<User> userRepository;
135143
final AppEnvironment environment;
144+
final AdService adService;
136145

137146
@override
138147
State<_AppView> createState() => _AppViewState();
@@ -174,6 +183,7 @@ class _AppViewState extends State<_AppView> {
174183
remoteConfigRepository: widget.appConfigRepository,
175184
userRepository: widget.userRepository,
176185
environment: widget.environment,
186+
adService: widget.adService,
177187
);
178188

179189
// Removed Dynamic Link Initialization

0 commit comments

Comments
 (0)