Browse Source

Switching to routes instead of manual navigation

working_branch
Kenneth Bruen 5 years ago
parent
commit
59fd435bd7
  1. 53
      lib/main.dart
  2. 2
      lib/train_info_page/train_info.dart
  3. 32
      lib/train_info_page/train_info_prompt.dart

53
lib/main.dart

@ -2,6 +2,9 @@ import 'dart:io' show Platform;
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:info_tren/train_info_page/train_info.dart';
import 'package:info_tren/train_info_page/train_info_cupertino.dart';
import 'package:info_tren/train_info_page/train_info_material.dart';
import 'package:info_tren/train_info_page/train_info_prompt.dart';
@ -20,7 +23,20 @@ class StartPoint extends StatelessWidget {
primaryColor: Colors.blue.shade600,
accentColor: Colors.blue.shade700,
),
home: MainPageMaterial(),
// home: MainPageMaterial(),
routes: {
Navigator.defaultRouteName: (context) {
return MainPageMaterial();
},
TrainInfoPromptCommon.routeName: (context) {
return TrainInfoPromptMaterial();
},
TrainInfo.routeName: (context) {
return TrainInfoMaterial(
trainNumber: ModalRoute.of(context).settings.arguments as int,
);
},
},
);
}
else if (Platform.isIOS) {
@ -30,7 +46,20 @@ class StartPoint extends StatelessWidget {
primaryColor: Colors.blue.shade600,
brightness: Brightness.dark,
),
home: MainPageCupertino(),
// home: MainPageCupertino(),
routes: {
Navigator.defaultRouteName: (context) {
return MainPageCupertino();
},
TrainInfoPromptCommon.routeName: (context) {
return TrainInfoPromptCupertino();
},
TrainInfo.routeName: (context) {
return TrainInfoCupertino(
trainNumber: ModalRoute.of(context).settings.arguments as int,
);
},
}
);
}
return null;
@ -39,25 +68,7 @@ class StartPoint extends StatelessWidget {
mixin MainPageAction {
onTrainInfoPageInvoke(BuildContext context) {
if (Platform.isAndroid) {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return TrainInfoPromptMaterial();
}
)
);
}
else if (Platform.isIOS) {
Navigator.of(context).push(
CupertinoPageRoute(
builder: (context) {
return TrainInfoPromptCupertino();
},
title: "Informații despre tren"
)
);
}
Navigator.of(context).pushNamed(TrainInfoPromptCommon.routeName);
}
onStationBoardPageInvoke(BuildContext context) {

2
lib/train_info_page/train_info.dart

@ -15,6 +15,8 @@ mixin TrainInfoMixin {
}
class TrainInfo extends StatelessWidget {
static String routeName = "/trainInfo/display";
final int trainNumber;
TrainInfo({@required this.trainNumber});

32
lib/train_info_page/train_info_prompt.dart

@ -12,31 +12,11 @@ part 'train_info_prompt.g.dart';
typedef TrainSelectedCallback(int trainNumber);
mixin TrainInfoPromptAction {
mixin TrainInfoPromptCommon {
static String routeName = "/trainInfo/chooseTrain";
onTrainSelected(BuildContext context, int selection) {
if (Platform.isAndroid) {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return TrainInfo(
trainNumber: selection,
);
},
)
);
}
else if (Platform.isIOS) {
Navigator.of(context).push(
CupertinoPageRoute(
title: "Informații despre trenul $selection",
builder: (context) {
return TrainInfo(
trainNumber: selection,
);
},
)
);
}
Navigator.of(context).pushNamed(TrainInfo.routeName, arguments: selection);
}
}
@ -251,7 +231,7 @@ class TrainInfoPromptMaterial extends StatefulWidget {
_TrainInfoPromptMaterialState createState() => _TrainInfoPromptMaterialState();
}
class _TrainInfoPromptMaterialState extends State<TrainInfoPromptMaterial> with TrainInfoPromptAction, TrainInfoPromptListHandling {
class _TrainInfoPromptMaterialState extends State<TrainInfoPromptMaterial> with TrainInfoPromptCommon, TrainInfoPromptListHandling {
TextEditingController trainNoController = TextEditingController();
@override
@ -311,7 +291,7 @@ class TrainInfoPromptCupertino extends StatefulWidget {
_TrainInfoPromptCupertinoState createState() => _TrainInfoPromptCupertinoState();
}
class _TrainInfoPromptCupertinoState extends State<TrainInfoPromptCupertino> with TrainInfoPromptAction, TrainInfoPromptListHandling {
class _TrainInfoPromptCupertinoState extends State<TrainInfoPromptCupertino> with TrainInfoPromptCommon, TrainInfoPromptListHandling {
TextEditingController trainNoController = TextEditingController();
@override

Loading…
Cancel
Save