diff --git a/assets/images/old/ar.png b/assets/images/old/ar.png new file mode 100644 index 0000000..395928c Binary files /dev/null and b/assets/images/old/ar.png differ diff --git a/assets/images/old/cn.png b/assets/images/old/cn.png new file mode 100644 index 0000000..344eab5 Binary files /dev/null and b/assets/images/old/cn.png differ diff --git a/assets/images/old/DE.png b/assets/images/old/de.png similarity index 100% rename from assets/images/old/DE.png rename to assets/images/old/de.png diff --git a/assets/images/old/EN.png b/assets/images/old/en.png similarity index 100% rename from assets/images/old/EN.png rename to assets/images/old/en.png diff --git a/assets/images/old/es.png b/assets/images/old/es.png new file mode 100644 index 0000000..f19308d Binary files /dev/null and b/assets/images/old/es.png differ diff --git a/assets/images/old/FR.png b/assets/images/old/fr.png similarity index 100% rename from assets/images/old/FR.png rename to assets/images/old/fr.png diff --git a/assets/images/old/it.png b/assets/images/old/it.png new file mode 100644 index 0000000..81013f0 Binary files /dev/null and b/assets/images/old/it.png differ diff --git a/assets/images/old/NL.png b/assets/images/old/nl.png similarity index 100% rename from assets/images/old/NL.png rename to assets/images/old/nl.png diff --git a/assets/images/old/pl.png b/assets/images/old/pl.png new file mode 100644 index 0000000..91d8931 Binary files /dev/null and b/assets/images/old/pl.png differ diff --git a/assets/images/old/uk.png b/assets/images/old/uk.png new file mode 100644 index 0000000..8219610 Binary files /dev/null and b/assets/images/old/uk.png differ diff --git a/lib/Screens/MainView/language_selection.dart b/lib/Screens/MainView/language_selection.dart index d844a30..460bdd5 100644 --- a/lib/Screens/MainView/language_selection.dart +++ b/lib/Screens/MainView/language_selection.dart @@ -4,11 +4,11 @@ import 'package:provider/provider.dart'; import 'package:tablet_app/Models/tabletContext.dart'; import 'package:tablet_app/app_context.dart'; import 'package:tablet_app/constants.dart'; -import 'package:flutter_svg_provider/flutter_svg_provider.dart'; import 'package:webview_flutter/webview_flutter.dart'; class LanguageSelection extends StatefulWidget { - LanguageSelection(); + LanguageSelection({required this.size}); + Size size; @override _LanguageSelection createState() => _LanguageSelection(); @@ -16,8 +16,6 @@ class LanguageSelection extends StatefulWidget { class _LanguageSelection extends State with TickerProviderStateMixin { List? languagesEnable; - Size sizeScreen = new Size(1080.0, 1920.0); // Tablet resolution - double flagSize = 60; String? selectedLanguage; @@ -33,10 +31,10 @@ class _LanguageSelection extends State with TickerProviderSta @override void initState() { setState(() { - _leftLanguage = kIsWeb ? sizeScreen.width - (sizeScreen.width *0.07) : sizeScreen.width - (sizeScreen.width *0.07); //size.width - size.width *0.07; - _topLanguage = kIsWeb ? sizeScreen.height * 0.07 : sizeScreen.height * 0.075; + _leftLanguage = kIsWeb ? widget.size.width - (widget.size.width *0.07) : widget.size.width - (widget.size.width *0.07); //size.width - size.width *0.07; + _topLanguage = kIsWeb ? widget.size.height * 0.06 : widget.size.height * 0.1; _rightLanguage = 0; - _bottomLanguage = minimized ? (kIsWeb ? sizeScreen.height*0.8 : sizeScreen.height*0.6) : (kIsWeb ? sizeScreen.height - (sizeScreen.height *0.45) : sizeScreen.height - (sizeScreen.height *0.07)); + _bottomLanguage = minimized ? (kIsWeb ? widget.size.height*0.2 : widget.size.height*0.15) : (kIsWeb ? widget.size.height - (widget.size.height *0.07) : widget.size.height - (widget.size.height *0.07)); }); _controller = AnimationController( @@ -102,8 +100,8 @@ class _LanguageSelection extends State with TickerProviderSta child: Padding( padding: const EdgeInsets.all(8.0), child: Container( - width: sizeScreen.height *0.07, - height: kIsWeb ? sizeScreen.height *0.015 : sizeScreen.width *0.07, + width: 75, + height: 75, decoration: flagDecoration(language), ), ), @@ -126,9 +124,9 @@ class _LanguageSelection extends State with TickerProviderSta } setState(() { _leftLanguage = kIsWeb ? size.width - (size.width *0.07) : size.width - (size.width *0.07); //size.width - size.width *0.07; - _topLanguage = kIsWeb ? sizeScreen.height * 0.06 : sizeScreen.height * 0.07; + _topLanguage = kIsWeb ? size.height * 0.06 : size.height * 0.1; _rightLanguage = 0; - _bottomLanguage = minimized ? (kIsWeb ? size.height*0.2 : size.height*0.6) : (kIsWeb ? size.height - (size.height *0.07) : size.height - (size.height *0.07)); + _bottomLanguage = minimized ? (kIsWeb ? size.height*0.2 : size.height*0.15) : (kIsWeb ? size.height - (size.height *0.07) : size.height - (size.height *0.07)); }); } @@ -139,9 +137,7 @@ class _LanguageSelection extends State with TickerProviderSta //border: Border.all(width: 1.5, color: kSecondGrey), image: DecorationImage( fit: BoxFit.contain, - image: Svg( - "assets/images/"+language.toLowerCase()+".svg", - ), //AssetImage("assets/images/"+language+".png"), + image: AssetImage("assets/images/old/"+language.toLowerCase()+".png"), ), boxShadow: [ BoxShadow( diff --git a/lib/Screens/MainView/main_view.dart b/lib/Screens/MainView/main_view.dart index a6e45fc..9e576f8 100644 --- a/lib/Screens/MainView/main_view.dart +++ b/lib/Screens/MainView/main_view.dart @@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_widget_from_html/flutter_widget_from_html.dart'; import 'package:manager_api/api.dart'; import 'package:provider/provider.dart'; import 'package:tablet_app/Components/loading.dart'; @@ -18,7 +19,6 @@ import 'package:tablet_app/Screens/Video/video_view.dart'; import 'package:tablet_app/Screens/Web/web_view.dart'; import 'package:tablet_app/app_context.dart'; import 'package:tablet_app/constants.dart'; -import 'package:auto_size_text/auto_size_text.dart'; import '../Quizz/quizz_view.dart'; import 'language_selection.dart'; @@ -94,7 +94,7 @@ class _MainViewWidget extends State { decoration: configurationDTO.imageId != null ? BoxDecoration( image: new DecorationImage( fit: BoxFit.cover, - colorFilter: new ColorFilter.mode(Colors.grey.withOpacity(0.7), BlendMode.color), + colorFilter: new ColorFilter.mode(Colors.white.withOpacity(0.8), BlendMode.lighten), image: new NetworkImage( configurationDTO.imageSource!, ), @@ -130,22 +130,20 @@ class _MainViewWidget extends State { Expanded( child: Align( alignment: Alignment.centerLeft, - child: AutoSizeText( + child: HtmlWidget( sectionSelected!.title!.firstWhere((translation) => translation.language == appContext.getContext().language).value!, - style: new TextStyle(fontSize: kIsWeb ? kWebSectionTitleDetailSize : kSectionTitleDetailSize), - maxLines: 1, - ), + textStyle: new TextStyle(fontSize: kIsWeb ? kWebSectionTitleDetailSize : kSectionTitleDetailSize), + ) ) ), if(sectionSelected!.description!.firstWhere((translation) => translation.language == appContext.getContext().language).value != null && sectionSelected!.description!.firstWhere((translation) => translation.language == appContext.getContext().language).value!.trim().isNotEmpty) Expanded( child: Align( alignment: Alignment.centerLeft, - child: AutoSizeText( + child: HtmlWidget( sectionSelected!.description!.firstWhere((translation) => translation.language == appContext.getContext().language).value!, - style: new TextStyle(fontSize: kIsWeb? kWebSectionDescriptionDetailSize : kSectionDescriptionDetailSize), - maxLines: 2, - ), + textStyle: new TextStyle(fontSize: kIsWeb? kWebSectionDescriptionDetailSize : kSectionDescriptionDetailSize), + ) ) ) ], @@ -213,7 +211,7 @@ class _MainViewWidget extends State { decoration: configurationDTO.imageId != null ? BoxDecoration( image: new DecorationImage( fit: BoxFit.cover, - colorFilter: new ColorFilter.mode(Colors.grey.withOpacity(0.7), BlendMode.color), + colorFilter: new ColorFilter.mode(Colors.grey.withOpacity(0.1), BlendMode.color), image: new NetworkImage( configurationDTO.imageSource!, ), @@ -221,7 +219,7 @@ class _MainViewWidget extends State { ) : null, child: Stack( children: [ - if (configurationDTO != null) LanguageSelection(), + LanguageSelection(size: size), Center( child: Container( height: kIsWeb ? size.height : size.height * 0.85, @@ -259,18 +257,22 @@ class _MainViewWidget extends State { children: [ Align( alignment: Alignment.centerRight, - child: AutoSizeText( + child: HtmlWidget( snapshot.data[index].title.firstWhere((translation) => translation.language == appContext.getContext().language).value, - style: new TextStyle(fontSize: kIsWeb ? kWebMenuTitleDetailSize: kMenuTitleDetailSize), - maxLines: 1, + customStylesBuilder: (element) { + return {'text-align': 'right'}; + }, + textStyle: new TextStyle(fontSize: kIsWeb ? kWebMenuTitleDetailSize: kMenuTitleDetailSize), ), ), Align( alignment: Alignment.centerRight, - child: AutoSizeText( + child: HtmlWidget( snapshot.data[index].description.firstWhere((translation) => translation.language == appContext.getContext().language).value, - style: new TextStyle(fontSize: kIsWeb ? kWebMenuDescriptionDetailSize: kMenuDescriptionDetailSize, fontFamily: ""), - maxLines: 1, + customStylesBuilder: (element) { + return {'text-align': 'right'}; + }, + textStyle: new TextStyle(fontSize: kIsWeb ? kWebMenuDescriptionDetailSize: kMenuDescriptionDetailSize, fontFamily: ""), ), ), ], diff --git a/lib/Screens/Menu/menu_view.dart b/lib/Screens/Menu/menu_view.dart index 6705690..cb9d34b 100644 --- a/lib/Screens/Menu/menu_view.dart +++ b/lib/Screens/Menu/menu_view.dart @@ -2,6 +2,7 @@ import 'dart:convert'; import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_widget_from_html/flutter_widget_from_html.dart'; import 'package:manager_api/api.dart'; import 'package:provider/provider.dart'; import 'package:tablet_app/Models/map-marker.dart'; @@ -165,18 +166,22 @@ class _MenuViewWidget extends State { children: [ Align( alignment: Alignment.centerRight, - child: AutoSizeText( + child: HtmlWidget( menuDTO.sections![index].title!.firstWhere((translation) => translation.language == appContext.getContext().language).value!, - style: new TextStyle(fontSize: kIsWeb? kWebMenuTitleDetailSize : kMenuTitleDetailSize), - maxLines: 1, + customStylesBuilder: (element) { + return {'text-align': 'right'}; + }, + textStyle: new TextStyle(fontSize: kIsWeb? kWebMenuTitleDetailSize : kMenuTitleDetailSize), ), ), Align( alignment: Alignment.centerRight, - child: AutoSizeText( + child: HtmlWidget( menuDTO.sections![index].description!.firstWhere((translation) => translation.language == appContext.getContext().language).value!, - style: new TextStyle(fontSize: kIsWeb? kWebSectionDescriptionDetailSize: kSectionDescriptionDetailSize, fontFamily: ""), - maxLines: 1, + customStylesBuilder: (element) { + return {'text-align': 'right'}; + }, + textStyle: new TextStyle(fontSize: kIsWeb? kWebSectionDescriptionDetailSize: kSectionDescriptionDetailSize, fontFamily: ""), ), ), ], diff --git a/lib/Screens/Quizz/quizz_view.dart b/lib/Screens/Quizz/quizz_view.dart index f62809f..bd9ea33 100644 --- a/lib/Screens/Quizz/quizz_view.dart +++ b/lib/Screens/Quizz/quizz_view.dart @@ -5,6 +5,7 @@ import 'package:confetti/confetti.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_widget_from_html/flutter_widget_from_html.dart'; import 'package:manager_api/api.dart'; import 'package:provider/provider.dart'; import 'package:tablet_app/Components/Buttons/rounded_button.dart'; @@ -178,7 +179,15 @@ class _QuizzViewWidget extends State { child: SingleChildScrollView( child: Padding( padding: const EdgeInsets.all(15.0), - child: levelToShow != null ? Text(levelToShow.label.firstWhere((translation) => translation.language == appContext.getContext().language).value != null ? levelToShow.label.firstWhere((translation) => translation.language == appContext.getContext().language).value : "", textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? kWebDescriptionSize : kDescriptionSize)): Text("No data"), + child: levelToShow != null ? + HtmlWidget( + levelToShow.label.firstWhere((translation) => translation.language == appContext.getContext().language).value != null ? levelToShow.label.firstWhere((translation) => translation.language == appContext.getContext().language).value : "", + textStyle: TextStyle(fontSize: kIsWeb ? kWebDescriptionSize : kDescriptionSize), + customStylesBuilder: (element) { + return {'text-align': 'center'}; + }, + ) + : Text("No data"), ), ), ), @@ -342,7 +351,13 @@ class _QuizzViewWidget extends State { child: SingleChildScrollView( child: Padding( padding: const EdgeInsets.all(15.0), - child: Text(i.label!.firstWhere((translation) => translation.language == appContext.getContext().language).value != null ? i.label!.firstWhere((translation) => translation.language == appContext.getContext().language).value! : "", textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? kWebDescriptionSize : kDescriptionSize)), + child: HtmlWidget( + i.label!.firstWhere((translation) => translation.language == appContext.getContext().language).value != null ? i.label!.firstWhere((translation) => translation.language == appContext.getContext().language).value! : "", + textStyle: TextStyle(fontSize: kIsWeb ? kWebDescriptionSize : kDescriptionSize), + customStylesBuilder: (element) { + return {'text-align': 'center'}; + }, + ), ), ), ), @@ -390,7 +405,13 @@ class _QuizzViewWidget extends State { padding: const EdgeInsets.all(8.0), child: Container( alignment: Alignment.center, - child: Text(i.responsesSubDTO![index].label!.firstWhere((translation) => translation.language == appContext.getContext().language).value != null ? i.responsesSubDTO![index].label!.firstWhere((translation) => translation.language == appContext.getContext().language).value! : "", textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? kWebDescriptionSize : kDescriptionSize, color: i.chosen == index ? Colors.white : Colors.black)), + child: HtmlWidget( + i.responsesSubDTO![index].label!.firstWhere((translation) => translation.language == appContext.getContext().language).value != null ? i.responsesSubDTO![index].label!.firstWhere((translation) => translation.language == appContext.getContext().language).value! : "", + textStyle: TextStyle(fontSize: kIsWeb ? kWebDescriptionSize : kDescriptionSize, color: i.chosen == index ? Colors.white : Colors.black), + customStylesBuilder: (element) { + return {'text-align': 'center'}; + }, + ), decoration: BoxDecoration( color: i.chosen == index ? kTestSecondColor : kBackgroundLight, shape: BoxShape.rectangle, diff --git a/lib/Screens/Quizz/showResponses.dart b/lib/Screens/Quizz/showResponses.dart index b8d47bd..3f75f80 100644 --- a/lib/Screens/Quizz/showResponses.dart +++ b/lib/Screens/Quizz/showResponses.dart @@ -4,6 +4,7 @@ import 'package:carousel_slider/carousel_slider.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_widget_from_html/flutter_widget_from_html.dart'; import 'package:manager_api/api.dart'; import 'package:provider/provider.dart'; import 'package:tablet_app/Models/ResponseSubDTO.dart'; @@ -124,7 +125,13 @@ class _ShowReponsesWidget extends State { child: SingleChildScrollView( child: Padding( padding: const EdgeInsets.all(1.0), - child: Text(i.label!.firstWhere((translation) => translation.language == appContext.getContext().language).value != null ? i.label!.firstWhere((translation) => translation.language == appContext.getContext().language).value! : "", textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? kWebDescriptionSize : kDescriptionSize)), + child: HtmlWidget( + i.label!.firstWhere((translation) => translation.language == appContext.getContext().language).value != null ? i.label!.firstWhere((translation) => translation.language == appContext.getContext().language).value! : "", + textStyle: TextStyle(fontSize: kIsWeb ? kWebDescriptionSize : kDescriptionSize), + customStylesBuilder: (element) { + return {'text-align': 'center'}; + }, + ), ), ), ), @@ -156,7 +163,13 @@ class _ShowReponsesWidget extends State { padding: const EdgeInsets.all(5.0), child: Container( alignment: Alignment.center, - child: Text(i.responsesSubDTO![index].label!.firstWhere((translation) => translation.language == appContext.getContext().language).value != null ? i.responsesSubDTO![index].label!.firstWhere((translation) => translation.language == appContext.getContext().language).value! : "", textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? kWebDescriptionSize : kDescriptionSize, color: i.chosen == index ? Colors.white : Colors.black)), + child: HtmlWidget( + i.responsesSubDTO![index].label!.firstWhere((translation) => translation.language == appContext.getContext().language).value != null ? i.responsesSubDTO![index].label!.firstWhere((translation) => translation.language == appContext.getContext().language).value! : "", + textStyle: TextStyle(fontSize: kIsWeb ? kWebDescriptionSize : kDescriptionSize, color: i.chosen == index ? Colors.white : Colors.black), + customStylesBuilder: (element) { + return {'text-align': 'center'}; + }, + ), decoration: BoxDecoration( color: i.responsesSubDTO![index].isGood! ? kGreen : i.chosen == index ? kMainRed : kBackgroundLight, shape: BoxShape.rectangle, diff --git a/lib/Screens/Slider/slider_view.dart b/lib/Screens/Slider/slider_view.dart index 46c2a07..16ce3c1 100644 --- a/lib/Screens/Slider/slider_view.dart +++ b/lib/Screens/Slider/slider_view.dart @@ -3,6 +3,7 @@ import 'package:carousel_slider/carousel_slider.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_widget_from_html/flutter_widget_from_html.dart'; import 'package:manager_api/api.dart'; import 'package:provider/provider.dart'; import 'package:tablet_app/app_context.dart'; @@ -136,7 +137,10 @@ class _SliderViewWidget extends State { right: 0, child: Padding( padding: const EdgeInsets.all(15.0), - child: Text(i.title!.firstWhere((translation) => translation.language == appContext.getContext().language).value != null ? i.title!.firstWhere((translation) => translation.language == appContext.getContext().language).value! : "", textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? kWebTitleSize : kTitleSize, color: kBackgroundLight)), + child: HtmlWidget( + i.title!.firstWhere((translation) => translation.language == appContext.getContext().language).value != null ? i.title!.firstWhere((translation) => translation.language == appContext.getContext().language).value! : "", + textStyle: TextStyle(fontSize: kIsWeb ? kWebTitleSize : kTitleSize, color: kBackgroundLight), + ), ) ) ] @@ -165,7 +169,13 @@ class _SliderViewWidget extends State { child: SingleChildScrollView( child: Padding( padding: const EdgeInsets.all(15.0), - child: Text(i.description!.firstWhere((translation) => translation.language == appContext.getContext().language).value != null ? i.description!.firstWhere((translation) => translation.language == appContext.getContext().language).value! : "", textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? kWebDescriptionSize : kDescriptionSize)), + child: HtmlWidget( + i.description!.firstWhere((translation) => translation.language == appContext.getContext().language).value != null ? i.description!.firstWhere((translation) => translation.language == appContext.getContext().language).value! : "", + textStyle: TextStyle(fontSize: kIsWeb ? kWebDescriptionSize : kDescriptionSize), + customStylesBuilder: (element) { + return {'text-align': 'center'}; + }, + ), ), ), ), diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index efc96d3..eeaefbd 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,10 +5,22 @@ import FlutterMacOS import Foundation +import audio_session +import just_audio +import package_info_plus +import path_provider_foundation import sqflite import url_launcher_macos +import video_player_avfoundation +import wakelock_plus func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + AudioSessionPlugin.register(with: registry.registrar(forPlugin: "AudioSessionPlugin")) + JustAudioPlugin.register(with: registry.registrar(forPlugin: "JustAudioPlugin")) + FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) + FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin")) + WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin")) } diff --git a/pubspec.yaml b/pubspec.yaml index d693ea9..45eff3b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -46,7 +46,8 @@ dependencies: photo_view: ^0.14.0 confetti: ^0.7.0 flutter_launcher_icons: ^0.13.1 # All but web - flutter_svg_provider: ^1.0.6 + #flutter_svg_provider: ^1.0.6 + flutter_widget_from_html: ^0.10.1 openapi_generator_cli: ^4.13.1 openapi_generator: ^4.13.1 @@ -82,6 +83,7 @@ flutter: assets: - assets/icons/ - assets/images/ + - assets/images/old/ - assets/animations/ # - assets/files/ # - images/a_dot_burr.jpeg