mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-11-25 22: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 'dart:io';
|
||||||
|
|
||||||
import 'package:comunic/forez/tour/forez_tour_builder.dart';
|
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/main.dart';
|
||||||
import 'package:comunic/models/config.dart';
|
import 'package:comunic/models/config.dart';
|
||||||
import 'package:comunic/utils/intl_utils.dart';
|
import 'package:comunic/utils/intl_utils.dart';
|
||||||
@ -33,6 +34,7 @@ void main() {
|
|||||||
appName: "#Forez",
|
appName: "#Forez",
|
||||||
appQuickDescription: tr("Events organisation in Forez plain"),
|
appQuickDescription: tr("Events organisation in Forez plain"),
|
||||||
toursEntriesBuilder: buildTour,
|
toursEntriesBuilder: buildTour,
|
||||||
|
mainRouteBuilder: (c) => ForezRoute(),
|
||||||
));
|
));
|
||||||
|
|
||||||
HttpOverrides.global = new MyHttpOverride();
|
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 'dart:ui';
|
||||||
|
|
||||||
import 'package:comunic/ui/routes/tour_route.dart';
|
import 'package:comunic/ui/routes/tour_route.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
import 'package:meta/meta.dart';
|
import 'package:meta/meta.dart';
|
||||||
|
|
||||||
/// Application configuration model
|
/// Application configuration model
|
||||||
@ -15,6 +16,8 @@ class Config {
|
|||||||
final String apiServerUri;
|
final String apiServerUri;
|
||||||
final bool apiServerSecure;
|
final bool apiServerSecure;
|
||||||
final String clientName;
|
final String clientName;
|
||||||
|
|
||||||
|
// Theme customization
|
||||||
final Color splashBackgroundColor;
|
final Color splashBackgroundColor;
|
||||||
final Color primaryColor;
|
final Color primaryColor;
|
||||||
final Color primaryColorDark;
|
final Color primaryColorDark;
|
||||||
@ -24,6 +27,9 @@ class Config {
|
|||||||
// Entries for the welcome tour
|
// Entries for the welcome tour
|
||||||
final TourEntriesBuilder toursEntriesBuilder;
|
final TourEntriesBuilder toursEntriesBuilder;
|
||||||
|
|
||||||
|
// Custom main application route
|
||||||
|
final Widget Function(BuildContext) mainRouteBuilder;
|
||||||
|
|
||||||
const Config({
|
const Config({
|
||||||
@required this.apiServerName,
|
@required this.apiServerName,
|
||||||
@required this.apiServerUri,
|
@required this.apiServerUri,
|
||||||
@ -35,6 +41,7 @@ class Config {
|
|||||||
this.appName = "Comunic",
|
this.appName = "Comunic",
|
||||||
this.appQuickDescription,
|
this.appQuickDescription,
|
||||||
this.toursEntriesBuilder,
|
this.toursEntriesBuilder,
|
||||||
|
this.mainRouteBuilder,
|
||||||
}) : assert(apiServerName != null),
|
}) : assert(apiServerName != null),
|
||||||
assert(apiServerUri != null),
|
assert(apiServerUri != null),
|
||||||
assert(apiServerSecure != null),
|
assert(apiServerSecure != null),
|
||||||
|
@ -105,11 +105,14 @@ class _InitializeWidgetState extends SafeState<InitializeWidget> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return (!_error && WebSocketHelper.isConnected())
|
if (_error || !WebSocketHelper.isConnected()) return _buildNonReadyWidget();
|
||||||
? (isTablet(context)
|
|
||||||
|
if (config().mainRouteBuilder != null)
|
||||||
|
return config().mainRouteBuilder(context);
|
||||||
|
|
||||||
|
return isTablet(context)
|
||||||
? TabletRoute(key: mainControllerKey)
|
? TabletRoute(key: mainControllerKey)
|
||||||
: SmartphoneMainRoute(key: mainControllerKey))
|
: SmartphoneMainRoute(key: mainControllerKey);
|
||||||
: _buildNonReadyWidget();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Build loading widget
|
/// Build loading widget
|
||||||
|
Loading…
Reference in New Issue
Block a user