Add loading comon + docker file + update opacity and layout for main menu

This commit is contained in:
Fransolet Thomas 2023-01-26 17:49:44 +01:00
parent 47056aec7c
commit 042e1196c9
6 changed files with 218 additions and 261 deletions

23
Dockerfile Normal file
View File

@ -0,0 +1,23 @@
#Stage 1 - Install dependencies and build the app in a build environment
FROM debian:latest AS build-env
# Install flutter dependencies
RUN apt-get update
RUN apt-get install -y curl git wget unzip libgconf-2-4 gdb libstdc++6 libglu1-mesa fonts-droid-fallback lib32stdc++6 python3 sed
RUN apt-get clean
# Clone the flutter repo
RUN git clone https://github.com/flutter/flutter.git /usr/local/flutter
# Set flutter path
ENV PATH="${PATH}:/usr/local/flutter/bin:/usr/local/flutter/bin/cache/dart-sdk/bin"
# Run flutter doctor
RUN flutter doctor -v
RUN flutter channel master
RUN flutter upgrade
# Copy files to container and build
RUN mkdir /app/
COPY . /app/
WORKDIR /app/
RUN flutter build web --no-sound-null-safety
#--no-sound-null-safety
# Stage 2 - Create the run-time image
FROM nginx:1.21.1-alpine
COPY --from=build-env /app/build/web /usr/share/nginx/html

View File

@ -0,0 +1,50 @@
import 'package:flutter/material.dart';
import 'package:tablet_app/constants.dart';
class LoadingCommon extends StatefulWidget {
const LoadingCommon({Key? key}) : super(key: key);
@override
State<LoadingCommon> createState() => _LoadingCommonState();
}
class _LoadingCommonState extends State<LoadingCommon> with TickerProviderStateMixin {
AnimationController? _controller;
@override
void initState() {
_controller = AnimationController(
duration: const Duration(milliseconds: 5000),
vsync: this,
)..repeat();
super.initState();
}
@override
void dispose() {
_controller!.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size;
_controller!.forward(from: 0.0);
_controller!.addListener(() {
if (_controller!.isCompleted) {
_controller!.reverse();
}
if(_controller!.isDismissed){
_controller!.forward();
}
});
return Center(
child: RotationTransition(
turns: Tween(begin: 0.0, end: 3.0).animate(_controller!),
child: Icon(Icons.museum_outlined, color: kTestSecondColor, size: size.height*0.1),
),
);
}
}

View File

@ -10,6 +10,7 @@ import 'package:mqtt_client/mqtt_server_client.dart';
import 'package:provider/provider.dart';
import 'package:tablet_app/Components/Buttons/rounded_button.dart';
import 'package:tablet_app/Components/loading.dart';
import 'package:tablet_app/Components/loading_common.dart';
import 'package:tablet_app/Components/rounded_input_field.dart';
import 'package:tablet_app/Helpers/DatabaseHelper.dart';
import 'package:tablet_app/Helpers/DeviceInfoHelper.dart';
@ -136,7 +137,7 @@ class _ConfigViewWidget extends State<ConfigViewWidget> {
return Center(
child: Container(
height: size.height * 0.2,
child: Loading()
child: kIsWeb ? LoadingCommon() : Loading()
)
);
}

View File

@ -5,6 +5,7 @@ import 'package:flutter/services.dart';
import 'package:manager_api/api.dart';
import 'package:provider/provider.dart';
import 'package:tablet_app/Components/loading.dart';
import 'package:tablet_app/Components/loading_common.dart';
import 'package:tablet_app/Helpers/MQTTHelper.dart';
import 'package:tablet_app/Screens/Configuration/config_view.dart';
import 'package:tablet_app/Screens/Map/map_context.dart';
@ -228,7 +229,7 @@ class _MainViewWidget extends State<MainViewWidget> {
child: Align(
alignment: Alignment.bottomRight,
child: FractionallySizedBox(
heightFactor: 0.4,
heightFactor: 0.25,
child: Column(
children: [
Align(
@ -262,7 +263,7 @@ class _MainViewWidget extends State<MainViewWidget> {
} else {
return Center(
child: Container(
child: Loading()
child: kIsWeb ? LoadingCommon() : Loading()
)
);
}
@ -305,7 +306,7 @@ boxDecoration(SectionDTO section, bool isSelected) {
borderRadius: BorderRadius.circular(30.0),
image: section.imageSource != null ? new DecorationImage(
fit: !isSelected || kIsWeb ? BoxFit.cover : BoxFit.contain,
colorFilter: !isSelected? new ColorFilter.mode(Colors.black.withOpacity(0.5), BlendMode.dstATop) : null,
colorFilter: !isSelected? new ColorFilter.mode(Colors.black.withOpacity(0.3), BlendMode.dstATop) : null,
image: new NetworkImage(
section.imageSource!,
),

View File

@ -8,6 +8,7 @@ import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:manager_api/api.dart';
import 'package:provider/provider.dart';
import 'package:tablet_app/Components/loading.dart';
import 'package:tablet_app/Components/loading_common.dart';
import 'package:tablet_app/Models/map-marker.dart';
import 'dart:ui' as ui;
import 'package:flutter/widgets.dart';
@ -81,7 +82,7 @@ class _MapViewWidget extends State<MapViewWidget> {
} else {
return Center(
child: Container(
child: Loading()
child: kIsWeb ? LoadingCommon() : Loading()
)
);
}

File diff suppressed because it is too large Load Diff