From ea85f7838af5efb7ef547b57e49d66ab6cc44a98 Mon Sep 17 00:00:00 2001 From: cghislai Date: Wed, 19 Jan 2022 19:11:31 +0100 Subject: [PATCH] Winbooks Connect migration --- Jenkinsfile | 2 - images/winbooks_connect.png | Bin 0 -> 13570 bytes lib/main.dart | 8 +-- lib/webview_widget.dart | 47 ---------------- lib/winbooks_migration_widget.dart | 83 +++++++++++++++++++++++++++++ pubspec.lock | 26 ++++++--- pubspec.yaml | 5 +- 7 files changed, 110 insertions(+), 61 deletions(-) create mode 100644 images/winbooks_connect.png delete mode 100644 lib/webview_widget.dart create mode 100644 lib/winbooks_migration_widget.dart diff --git a/Jenkinsfile b/Jenkinsfile index d90833a..1dbc985 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,6 @@ pipeline { string(name: 'APP_PACKAGE_ID', defaultValue: 'comptaplan.app', description: 'Application package id used as android identifier') string(name: 'APP_BUNDLE_ID', defaultValue: 'comptaplan_app', description: 'Application bundle id used as ios identifier') string(name: 'APP_TITLE', defaultValue: 'My Comptaplan', description: 'Application title') - string(name: 'APP_URI', defaultValue: 'https://my.comptaplan.be', description: 'Application uri') string(name: 'APP_COLOR', defaultValue: 'blue', description: 'Application color (blue, teal, ...)') string(name: 'BUILD_MODE', defaultValue: 'debug', description: 'Flutter build mode (debug/release)') string(name: 'ANDROID_SIGNING_KEYSTORE_CREDENTIAL', defaultValue: 'jenkins-gestemps-android-service-secret-keystore') @@ -39,7 +38,6 @@ pipeline { env.APP_PACKAGE_ID= params.APP_PACKAGE_ID env.APP_BUNDLE_ID= params.APP_BUNDLE_ID env.APP_TITLE= params.APP_TITLE - env.APP_URI= params.APP_URI env.APP_COLOR= params.APP_COLOR env.BUILD_MODE= params.BUILD_MODE env.SSH_KNOWN_HOSTS_FILE= params.SSH_KNOWN_HOSTS_FILE diff --git a/images/winbooks_connect.png b/images/winbooks_connect.png new file mode 100644 index 0000000000000000000000000000000000000000..e280904b72e9b4d582848ac1b6349ca3e259af4f GIT binary patch literal 13570 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 IM6N<$g6#4&aR2}S literal 0 HcmV?d00001 diff --git a/lib/main.dart b/lib/main.dart index d087092..f666b70 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,11 +1,11 @@ -import 'package:comptaplan_app/webview_widget.dart'; +import 'package:comptaplan_app/winbooks_migration_widget.dart'; import 'package:flutter/material.dart'; void main() { const title = String.fromEnvironment("APP_TITLE"); - const uri = String.fromEnvironment("APP_URI"); + const playStoreUri = 'https://play.google.com/store/apps/details?id=com.winbooks.connect'; const color = String.fromEnvironment("APP_COLOR"); - runApp(const MyApp(title, uri, color)); + runApp(const MyApp(title, playStoreUri, color)); } class MyApp extends StatelessWidget { @@ -19,7 +19,7 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { MaterialColor materialColor = _getMaterialColor(_color); - return MaterialApp(title: _title, theme: ThemeData(primarySwatch: materialColor), home: WebViewWidget(_uri)); + return MaterialApp(title: _title, theme: ThemeData(primarySwatch: materialColor), home: WinbooksMigrationWidget(_title, _uri)); } MaterialColor _getMaterialColor(String colorString) { diff --git a/lib/webview_widget.dart b/lib/webview_widget.dart deleted file mode 100644 index a16e0c1..0000000 --- a/lib/webview_widget.dart +++ /dev/null @@ -1,47 +0,0 @@ -import 'dart:io'; - -import 'package:flutter/material.dart'; -import 'package:flutter_webview_pro/webview_flutter.dart'; - -class WebViewWidget extends StatefulWidget { - final String _initialUrl; - - const WebViewWidget(this._initialUrl, {Key? key}) : super(key: key); - - @override - WebViewWidgetState createState() => WebViewWidgetState(); -} - -class WebViewWidgetState extends State { - WebViewWidgetState(); - - @override - void initState() { - super.initState(); - // Enable hybrid composition. - if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView(); - } - - @override - Widget build(BuildContext context) { - return WebView( - initialUrl: widget._initialUrl, - javascriptMode: JavascriptMode.unrestricted, - javascriptChannels: { - _toasterJavascriptChannel(context), - }, - gestureNavigationEnabled: true, - ); - } - - JavascriptChannel _toasterJavascriptChannel(BuildContext context) { - return JavascriptChannel( - name: 'Toaster', - onMessageReceived: (JavascriptMessage message) { - // ignore: deprecated_member_use - Scaffold.of(context).showSnackBar( - SnackBar(content: Text(message.message)), - ); - }); - } -} diff --git a/lib/winbooks_migration_widget.dart b/lib/winbooks_migration_widget.dart new file mode 100644 index 0000000..0dafbfb --- /dev/null +++ b/lib/winbooks_migration_widget.dart @@ -0,0 +1,83 @@ +import 'dart:io'; + +import 'package:android_intent_plus/android_intent.dart'; +import 'package:flutter/material.dart'; + +class WinbooksMigrationWidget extends StatefulWidget { + final String _playStoreUrl; + final String _title; + + const WinbooksMigrationWidget(this._title, this._playStoreUrl, {Key? key}) : super(key: key); + + @override + WinbooksMigrationWidgetState createState() => WinbooksMigrationWidgetState(); +} + +class WinbooksMigrationWidgetState extends State { + WinbooksMigrationWidgetState(); + + @override + void initState() { + super.initState(); + } + + @override + Widget build(BuildContext context) { + ThemeData themeData = Theme.of(context); + TextStyle largerTextStyle = themeData.textTheme.bodyText1!.apply(fontSizeFactor: 1.4); + TextStyle smallerTextStyle = themeData.textTheme.bodyText2!; + AssetBundle assetBundle = DefaultAssetBundle.of(context); + return Scaffold( + appBar: AppBar( + title: Text(widget._title), + ), + body: GridView.count( + crossAxisCount: 1, + children: [ + Column(children: [ + Container( + margin: const EdgeInsets.all(10.0), + child: Text( + 'My comptaplan migre vers WinBooks Connect. Téléchargez WinBooks Connect pour continuer à envoyer vos fichiers à votre comptable', + textAlign: TextAlign.center, + style: largerTextStyle), + ), + Center( + child: Container( + margin: const EdgeInsets.all(10.0), + child: ElevatedButton( + style: ElevatedButton.styleFrom(textStyle: largerTextStyle, padding: const EdgeInsets.all(20.0)), + child: Row(children: [ + Image.asset('images/winbooks_connect.png', bundle: assetBundle, width: 50.0, height: 50.0), + const SizedBox(width: 10), + const Text('Télécharger WinBooks Connect') + ]), + onPressed: () async { + return _onWinbooksConnectPress(); + }, + ), + ), + ), + Container( + margin: const EdgeInsets.all(10.0), + child: Text( + 'Si vous ne parvenez pas à télécharger Winbooks Connect, ou pour obtenir vos identifiants, veuillez contacter votre comptable.', + textAlign: TextAlign.left, + style: smallerTextStyle), + ), + ]) + ], + )); + } + + Future _onWinbooksConnectPress() async { + if (Platform.isAndroid) { + AndroidIntent intent = AndroidIntent( + action: 'action_view', + data: widget._playStoreUrl, + package: 'com.android.vending', + ); + return intent.launch(); + } + } +} diff --git a/pubspec.lock b/pubspec.lock index f1e5d5e..102305b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,13 +1,20 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + android_intent_plus: + dependency: "direct main" + description: + name: android_intent_plus + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.2" async: dependency: transitive description: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.8.1" + version: "2.8.2" boolean_selector: dependency: transitive description: @@ -21,7 +28,7 @@ packages: name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" charcode: dependency: transitive description: @@ -94,7 +101,7 @@ packages: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.10" + version: "0.12.11" meta: dependency: transitive description: @@ -109,6 +116,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.0" + platform: + dependency: transitive + description: + name: platform + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" sky_engine: dependency: transitive description: flutter @@ -155,7 +169,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.2" + version: "0.4.3" typed_data: dependency: transitive description: @@ -169,7 +183,7 @@ packages: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.1" sdks: - dart: ">=2.12.0 <3.0.0" + dart: ">=2.14.0 <3.0.0" flutter: ">=1.22.0" diff --git a/pubspec.yaml b/pubspec.yaml index 62315b0..1abf7f2 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -36,6 +36,7 @@ dependencies: cupertino_icons: ^1.0.2 #webview_flutter: ^2.3.1 flutter_webview_pro: ^1.0.0 + android_intent_plus: ^3.0.2 dev_dependencies: flutter_test: @@ -60,8 +61,8 @@ flutter: uses-material-design: true # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg + assets: + - images/winbooks_connect.png # - images/a_dot_ham.jpeg # An image asset can refer to one or more resolution-specific "variants", see