mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-11-21 20:39:22 +00:00
Start to build Forez main route
This commit is contained in:
parent
e301b0e95b
commit
1de7e699d7
@ -1,6 +1,7 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:comunic/forez/tour/forez_tour_builder.dart';
|
||||
import 'package:comunic/forez/ui/routes/forez_route.dart';
|
||||
import 'package:comunic/main.dart';
|
||||
import 'package:comunic/models/config.dart';
|
||||
import 'package:comunic/utils/intl_utils.dart';
|
||||
@ -33,6 +34,7 @@ void main() {
|
||||
appName: "#Forez",
|
||||
appQuickDescription: tr("Events organisation in Forez plain"),
|
||||
toursEntriesBuilder: buildTour,
|
||||
mainRouteBuilder: (c) => ForezRoute(),
|
||||
));
|
||||
|
||||
HttpOverrides.global = new MyHttpOverride();
|
||||
|
65
lib/forez/ui/routes/forez_route.dart
Normal file
65
lib/forez/ui/routes/forez_route.dart
Normal file
@ -0,0 +1,65 @@
|
||||
import 'package:comunic/models/conversation.dart';
|
||||
import 'package:comunic/ui/dialogs/alert_dialog.dart';
|
||||
import 'package:comunic/ui/routes/main_route/main_route.dart';
|
||||
import 'package:comunic/ui/routes/main_route/page_info.dart';
|
||||
import 'package:comunic/utils/intl_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
/// Forez route
|
||||
///
|
||||
/// @author Pierre Hubert
|
||||
|
||||
class ForezRoute extends StatefulWidget implements MainRoute {
|
||||
const ForezRoute({Key key}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<StatefulWidget> createState() => _MainRouteState();
|
||||
}
|
||||
|
||||
/// Private implementation of HomeController
|
||||
class _MainRouteState extends MainController {
|
||||
@override
|
||||
PageInfo get defaultPage => PageInfo(
|
||||
type: PageType.OTHER_PAGE, child: ForezRouteBody(), hideNavBar: true);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
color: Colors.blueAccent,
|
||||
child: SafeArea(
|
||||
// Avoid OS areas
|
||||
child: WillPopScope(
|
||||
onWillPop: willPop,
|
||||
child: Scaffold(
|
||||
appBar: currentPage.hideNavBar ? null : AppBar(),
|
||||
body: SafeArea(key: currentPage.key, child: currentPage.child),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void openConversation(Conversation conv, {fullScreen: false}) {
|
||||
// Forcefully open conversations in a "normal" way (do not display groups)
|
||||
openConversationById(conv.id, fullScreen: fullScreen);
|
||||
}
|
||||
|
||||
@override
|
||||
void openGroup(int groupID, {int conversationID}) {
|
||||
alert(context,
|
||||
tr("This feature is available only in the Comunic application!"));
|
||||
}
|
||||
}
|
||||
|
||||
class ForezRouteBody extends StatefulWidget {
|
||||
@override
|
||||
_ForezRouteBodyState createState() => _ForezRouteBodyState();
|
||||
}
|
||||
|
||||
class _ForezRouteBodyState extends State<ForezRouteBody> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Text("yolo");
|
||||
}
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:comunic/ui/routes/tour_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
/// Application configuration model
|
||||
@ -15,6 +16,8 @@ class Config {
|
||||
final String apiServerUri;
|
||||
final bool apiServerSecure;
|
||||
final String clientName;
|
||||
|
||||
// Theme customization
|
||||
final Color splashBackgroundColor;
|
||||
final Color primaryColor;
|
||||
final Color primaryColorDark;
|
||||
@ -24,6 +27,9 @@ class Config {
|
||||
// Entries for the welcome tour
|
||||
final TourEntriesBuilder toursEntriesBuilder;
|
||||
|
||||
// Custom main application route
|
||||
final Widget Function(BuildContext) mainRouteBuilder;
|
||||
|
||||
const Config({
|
||||
@required this.apiServerName,
|
||||
@required this.apiServerUri,
|
||||
@ -35,6 +41,7 @@ class Config {
|
||||
this.appName = "Comunic",
|
||||
this.appQuickDescription,
|
||||
this.toursEntriesBuilder,
|
||||
this.mainRouteBuilder,
|
||||
}) : assert(apiServerName != null),
|
||||
assert(apiServerUri != null),
|
||||
assert(apiServerSecure != null),
|
||||
|
@ -105,11 +105,14 @@ class _InitializeWidgetState extends SafeState<InitializeWidget> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return (!_error && WebSocketHelper.isConnected())
|
||||
? (isTablet(context)
|
||||
? TabletRoute(key: mainControllerKey)
|
||||
: SmartphoneMainRoute(key: mainControllerKey))
|
||||
: _buildNonReadyWidget();
|
||||
if (_error || !WebSocketHelper.isConnected()) return _buildNonReadyWidget();
|
||||
|
||||
if (config().mainRouteBuilder != null)
|
||||
return config().mainRouteBuilder(context);
|
||||
|
||||
return isTablet(context)
|
||||
? TabletRoute(key: mainControllerKey)
|
||||
: SmartphoneMainRoute(key: mainControllerKey);
|
||||
}
|
||||
|
||||
/// Build loading widget
|
||||
|
Loading…
Reference in New Issue
Block a user