Skip to content

Commit de53780

Browse files
committed
#339: fixed debug selector screen
1 parent dd72459 commit de53780

17 files changed

+411
-402
lines changed

lib/di/injectable.config.dart

+87-84
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/screen/debug/debug_platform_selector_screen.dart

+20-32
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
import 'package:flutter/material.dart';
2-
import 'package:flutter/services.dart';
32
import 'package:flutter_navigation_generator_annotations/flutter_navigation_generator_annotations.dart';
43
import 'package:flutter_template/di/injectable.dart';
54
import 'package:flutter_template/viewmodel/debug/debug_platform_selector_viewmodel.dart';
6-
import 'package:flutter_template/viewmodel/global/global_viewmodel.dart';
75
import 'package:flutter_template/widget/debug/selector_item.dart';
8-
import 'package:flutter_template/widget/general/styled/flutter_template_back_button.dart';
6+
import 'package:flutter_template/widget/general/simple_screen/base_screen.dart';
97
import 'package:flutter_template/widget/provider/provider_widget.dart';
10-
import 'package:provider/provider.dart';
118

129
@flutterRoute
1310
class DebugPlatformSelectorScreen extends StatefulWidget {
@@ -23,35 +20,26 @@ class DebugPlatformSelectorScreenState extends State<DebugPlatformSelectorScreen
2320
Widget build(BuildContext context) {
2421
return ProviderWidget<DebugPlatformSelectorViewModel>(
2522
create: getIt.call,
26-
consumerWithThemeAndLocalization: (context, value, _, theme, localization) => Scaffold(
27-
backgroundColor: theme.background,
28-
appBar: AppBar(
29-
systemOverlayStyle: SystemUiOverlayStyle.light,
30-
leading: FlutterTemplateBackButton.light(onClick: value.onBackClicked),
31-
title: const Text('Select a platform'),
32-
backgroundColor: theme.primary,
33-
),
34-
body: Consumer<GlobalViewModel>(
35-
builder: (context, viewModel, child) => ListView(
36-
children: [
37-
SelectorItem(
38-
title: localization.generalLabelSystemDefault,
39-
onClick: viewModel.setSelectedPlatformToDefault,
40-
selected: viewModel.targetPlatform == null,
41-
),
42-
SelectorItem(
43-
title: localization.generalLabelAndroid,
44-
onClick: viewModel.setSelectedPlatformToAndroid,
45-
selected: viewModel.targetPlatform == TargetPlatform.android,
46-
),
47-
SelectorItem(
48-
title: localization.generalLabelIos,
49-
onClick: viewModel.setSelectedPlatformToIOS,
50-
selected: viewModel.targetPlatform == TargetPlatform.iOS,
51-
),
52-
],
23+
consumerWithThemeAndLocalization: (context, viewModel, _, theme, localization) => BaseScreen(
24+
title: 'Select a platform',
25+
isScrollable: true,
26+
children: [
27+
SelectorItem(
28+
title: localization.generalLabelSystemDefault,
29+
onClick: viewModel.setSelectedPlatformToDefault,
30+
selected: viewModel.selectedPlatform == null,
5331
),
54-
),
32+
SelectorItem(
33+
title: localization.generalLabelAndroid,
34+
onClick: viewModel.setSelectedPlatformToAndroid,
35+
selected: viewModel.selectedPlatform == TargetPlatform.android,
36+
),
37+
SelectorItem(
38+
title: localization.generalLabelIos,
39+
onClick: viewModel.setSelectedPlatformToIOS,
40+
selected: viewModel.selectedPlatform == TargetPlatform.iOS,
41+
)
42+
],
5543
),
5644
);
5745
}
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,26 @@
1+
import 'package:flutter/foundation.dart';
12
import 'package:flutter_template/navigator/main_navigator.dart';
3+
import 'package:flutter_template/viewmodel/global/global_viewmodel.dart';
24
import 'package:icapps_architecture/icapps_architecture.dart';
35
import 'package:injectable/injectable.dart';
46

57
@injectable
68
class DebugPlatformSelectorViewModel with ChangeNotifierEx {
79
final MainNavigator _navigator;
10+
final GlobalViewModel _globalViewModel;
811

9-
DebugPlatformSelectorViewModel(this._navigator);
12+
TargetPlatform? get selectedPlatform => _globalViewModel.targetPlatform;
13+
14+
DebugPlatformSelectorViewModel(
15+
this._globalViewModel,
16+
this._navigator,
17+
);
1018

1119
void onBackClicked() => _navigator.goBack();
20+
21+
void setSelectedPlatformToDefault() => _globalViewModel.setSelectedPlatformToDefault();
22+
23+
void setSelectedPlatformToAndroid() => _globalViewModel.setSelectedPlatformToAndroid();
24+
25+
void setSelectedPlatformToIOS() => _globalViewModel.setSelectedPlatformToIOS();
1226
}

0 commit comments

Comments
 (0)