From 0a3c42ef916fdbf9ce1918ab2190cd80acf09991 Mon Sep 17 00:00:00 2001 From: JRazek Date: Fri, 5 Nov 2021 11:01:00 +0100 Subject: [PATCH 01/39] flutter tizen splash --- packages/flutter_splash_tizen/.gitignore | 8 +++ packages/flutter_splash_tizen/.metadata | 10 +++ packages/flutter_splash_tizen/CHANGELOG.md | 3 + packages/flutter_splash_tizen/LICENSE | 1 + packages/flutter_splash_tizen/README.md | 32 +++++++++ .../analysis_options.yaml | 4 ++ packages/flutter_splash_tizen/bin/create.dart | 36 ++++++++++ .../flutter_splash_tizen/bin/file_utils.dart | 28 ++++++++ packages/flutter_splash_tizen/bin/remove.dart | 20 ++++++ .../flutter_splash_tizen/example/.gitignore | 44 +++++++++++++ .../flutter_splash_tizen/example/.metadata | 10 +++ .../flutter_splash_tizen/example/README.md | 16 +++++ .../example/analysis_options.yaml | 29 ++++++++ .../example/lib/main.dart | 62 ++++++++++++++++++ .../flutter_splash_tizen/example/pubspec.yaml | 28 ++++++++ .../example/test/widget_test.dart | 27 ++++++++ .../example/tizen/.gitignore | 5 ++ .../flutter_splash_tizen/example/tizen/App.cs | 20 ++++++ .../example/tizen/Runner.csproj | 26 ++++++++ .../example/tizen/shared/res/ic_launcher.png | Bin 0 -> 1443 bytes .../example/tizen/shared/res/test.png | Bin 0 -> 104688 bytes .../example/tizen/tizen-manifest.xml | 14 ++++ .../lib/flutter_splash_tizen.dart | 18 +++++ packages/flutter_splash_tizen/pubspec.yaml | 20 ++++++ .../test/flutter_splash_tizen_test.dart | 23 +++++++ 25 files changed, 484 insertions(+) create mode 100644 packages/flutter_splash_tizen/.gitignore create mode 100644 packages/flutter_splash_tizen/.metadata create mode 100644 packages/flutter_splash_tizen/CHANGELOG.md create mode 100644 packages/flutter_splash_tizen/LICENSE create mode 100644 packages/flutter_splash_tizen/README.md create mode 100644 packages/flutter_splash_tizen/analysis_options.yaml create mode 100644 packages/flutter_splash_tizen/bin/create.dart create mode 100644 packages/flutter_splash_tizen/bin/file_utils.dart create mode 100644 packages/flutter_splash_tizen/bin/remove.dart create mode 100644 packages/flutter_splash_tizen/example/.gitignore create mode 100644 packages/flutter_splash_tizen/example/.metadata create mode 100644 packages/flutter_splash_tizen/example/README.md create mode 100644 packages/flutter_splash_tizen/example/analysis_options.yaml create mode 100644 packages/flutter_splash_tizen/example/lib/main.dart create mode 100644 packages/flutter_splash_tizen/example/pubspec.yaml create mode 100644 packages/flutter_splash_tizen/example/test/widget_test.dart create mode 100644 packages/flutter_splash_tizen/example/tizen/.gitignore create mode 100644 packages/flutter_splash_tizen/example/tizen/App.cs create mode 100644 packages/flutter_splash_tizen/example/tizen/Runner.csproj create mode 100644 packages/flutter_splash_tizen/example/tizen/shared/res/ic_launcher.png create mode 100644 packages/flutter_splash_tizen/example/tizen/shared/res/test.png create mode 100644 packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml create mode 100644 packages/flutter_splash_tizen/lib/flutter_splash_tizen.dart create mode 100644 packages/flutter_splash_tizen/pubspec.yaml create mode 100644 packages/flutter_splash_tizen/test/flutter_splash_tizen_test.dart diff --git a/packages/flutter_splash_tizen/.gitignore b/packages/flutter_splash_tizen/.gitignore new file mode 100644 index 000000000..dfe665603 --- /dev/null +++ b/packages/flutter_splash_tizen/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +.dart_tool/ + +.packages +.pub/ +.vscode/ +.idea/ +build/ diff --git a/packages/flutter_splash_tizen/.metadata b/packages/flutter_splash_tizen/.metadata new file mode 100644 index 000000000..7ea0729e8 --- /dev/null +++ b/packages/flutter_splash_tizen/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: ffb2ecea5223acdd139a5039be2f9c796962833d + channel: unknown + +project_type: plugin diff --git a/packages/flutter_splash_tizen/CHANGELOG.md b/packages/flutter_splash_tizen/CHANGELOG.md new file mode 100644 index 000000000..41cc7d819 --- /dev/null +++ b/packages/flutter_splash_tizen/CHANGELOG.md @@ -0,0 +1,3 @@ +## 0.0.1 + +* TODO: Describe initial release. diff --git a/packages/flutter_splash_tizen/LICENSE b/packages/flutter_splash_tizen/LICENSE new file mode 100644 index 000000000..ba75c69f7 --- /dev/null +++ b/packages/flutter_splash_tizen/LICENSE @@ -0,0 +1 @@ +TODO: Add your license here. diff --git a/packages/flutter_splash_tizen/README.md b/packages/flutter_splash_tizen/README.md new file mode 100644 index 000000000..d7182f0e2 --- /dev/null +++ b/packages/flutter_splash_tizen/README.md @@ -0,0 +1,32 @@ +# flutter_splash_tizen + +Flutter-tizen package that allows to add custom splash-screen images into your apps. +## Getting Started + +First you should add the package to dependencies section in your `pubspec.yaml` + +```yaml +dependencies: + flutter_splash_tizen: ^0.0.1 +``` +After that run +``` +flutter-tizen pub get +``` +in order to download all the dependencies.
+ +By adding +```yaml +flutter_splash_tizen: + image: test.png +``` +section in your `pubspec.yaml` and running +``` +flutter-tizen pub run flutter_splash_tizen:create +``` +the image from `tizen/shared/res/test.png` will be added as splash screen. Each call of `create` will override the previous.
+ +If you wish to remove the splash image from your app simply run +``` +flutter-tizen pub run flutter_splash_tizen:remove +``` diff --git a/packages/flutter_splash_tizen/analysis_options.yaml b/packages/flutter_splash_tizen/analysis_options.yaml new file mode 100644 index 000000000..a5744c1cf --- /dev/null +++ b/packages/flutter_splash_tizen/analysis_options.yaml @@ -0,0 +1,4 @@ +include: package:flutter_lints/flutter.yaml + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/packages/flutter_splash_tizen/bin/create.dart b/packages/flutter_splash_tizen/bin/create.dart new file mode 100644 index 000000000..e4477e63d --- /dev/null +++ b/packages/flutter_splash_tizen/bin/create.dart @@ -0,0 +1,36 @@ +import 'file_utils.dart'; +import 'package:xml/xml.dart'; + +void main() { + var doc = loadYamlFileSync("pubspec.yaml")?['flutter_splash_tizen']; + String color = doc["color"] ?? ""; //[TODO] generation of image in this color? + String image = doc["image"] ?? ""; + bool tizenFlag = doc["tizen"] ?? false; + if (!tizenFlag) return; + + String tizenManifestPath = "tizen/tizen-manifest.xml"; + + XmlDocument tizenManifest = loadXMLFileSync(tizenManifestPath); + XmlNode el = tizenManifest.root; + + XmlElement? uiApp = el.getElement("manifest")?.getElement("ui-application"); + if (uiApp == null) { + throw FormatException("error when reading $tizenManifestPath"); + } + XmlElement? splashScreens = uiApp.getElement("splash-screens"); + if (splashScreens == null) { + splashScreens = XmlElement(XmlName("splash-screen")); + uiApp.children.add(splashScreens); + } + + splashScreens.children.clear(); + XmlElement splashScreen = XmlElement(XmlName("splash-screen")); + splashScreen.setAttribute("src", image); + splashScreen.setAttribute("type", "img"); + splashScreen.setAttribute("indicator-display", "true"); + splashScreen.setAttribute("app-control-operation", "true"); + splashScreen.setAttribute("orientation", "portrait"); + splashScreens.children.add(splashScreen); + + writeToFileSync(tizenManifestPath, el.toXmlString()); +} diff --git a/packages/flutter_splash_tizen/bin/file_utils.dart b/packages/flutter_splash_tizen/bin/file_utils.dart new file mode 100644 index 000000000..77cb0d752 --- /dev/null +++ b/packages/flutter_splash_tizen/bin/file_utils.dart @@ -0,0 +1,28 @@ +import 'dart:io'; +import 'package:yaml/yaml.dart'; +import 'package:xml/xml.dart'; + +Map? loadYamlFileSync(String path) { + File file = File(path); + if (file.existsSync() == true) { + return loadYaml(file.readAsStringSync()); + } + return null; +} + +XmlDocument loadXMLFileSync(String path) { + File file = File(path); + if (file.existsSync() == true) { + return XmlDocument.parse(file.readAsStringSync()); + } + throw FormatException("could not read $path"); +} + +void writeToFileSync(String path, String data) { + File file = File(path); + if (file.existsSync() == true) { + file.writeAsStringSync(data); + } else { + throw FormatException("could not write to $path"); + } +} diff --git a/packages/flutter_splash_tizen/bin/remove.dart b/packages/flutter_splash_tizen/bin/remove.dart new file mode 100644 index 000000000..8b9cbc4f1 --- /dev/null +++ b/packages/flutter_splash_tizen/bin/remove.dart @@ -0,0 +1,20 @@ +import 'file_utils.dart'; +import 'package:xml/xml.dart'; + +void main() { + var doc = loadYamlFileSync("pubspec.yaml")?['flutter_splash_tizen']; + String tizenManifestPath = "tizen/tizen-manifest.xml"; + + XmlDocument tizenManifest = loadXMLFileSync(tizenManifestPath); + XmlNode el = tizenManifest.root; + + XmlElement? splashScreens = el + .getElement("manifest") + ?.getElement("ui-application") + ?.getElement("splash-screens"); + if (splashScreens == null) { + throw FormatException("error when reading $tizenManifestPath"); + } + splashScreens.children.clear(); + writeToFileSync(tizenManifestPath, el.toXmlString()); +} diff --git a/packages/flutter_splash_tizen/example/.gitignore b/packages/flutter_splash_tizen/example/.gitignore new file mode 100644 index 000000000..eadf111d1 --- /dev/null +++ b/packages/flutter_splash_tizen/example/.gitignore @@ -0,0 +1,44 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# VS Code related +.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/packages/flutter_splash_tizen/example/.metadata b/packages/flutter_splash_tizen/example/.metadata new file mode 100644 index 000000000..51ec5564d --- /dev/null +++ b/packages/flutter_splash_tizen/example/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: ffb2ecea5223acdd139a5039be2f9c796962833d + channel: unknown + +project_type: app diff --git a/packages/flutter_splash_tizen/example/README.md b/packages/flutter_splash_tizen/example/README.md new file mode 100644 index 000000000..813dd0a53 --- /dev/null +++ b/packages/flutter_splash_tizen/example/README.md @@ -0,0 +1,16 @@ +# flutter_splash_tizen_example + +Demonstrates how to use the flutter_splash_tizen plugin. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) + +For help getting started with Flutter, view our +[online documentation](https://flutter.dev/docs), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/packages/flutter_splash_tizen/example/analysis_options.yaml b/packages/flutter_splash_tizen/example/analysis_options.yaml new file mode 100644 index 000000000..61b6c4de1 --- /dev/null +++ b/packages/flutter_splash_tizen/example/analysis_options.yaml @@ -0,0 +1,29 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at + # https://dart-lang.github.io/linter/lints/index.html. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/packages/flutter_splash_tizen/example/lib/main.dart b/packages/flutter_splash_tizen/example/lib/main.dart new file mode 100644 index 000000000..795f0e575 --- /dev/null +++ b/packages/flutter_splash_tizen/example/lib/main.dart @@ -0,0 +1,62 @@ +import 'package:flutter/material.dart'; +import 'dart:async'; + +import 'package:flutter/services.dart'; +import 'package:flutter_splash_tizen/flutter_splash_tizen.dart'; + +void main() { + runApp(const MyApp()); +} + +class MyApp extends StatefulWidget { + const MyApp({Key? key}) : super(key: key); + + @override + State createState() => _MyAppState(); +} + +class _MyAppState extends State { + String _platformVersion = 'Unknown'; + + @override + void initState() { + super.initState(); + initPlatformState(); + } + + // Platform messages are asynchronous, so we initialize in an async method. + Future initPlatformState() async { + String platformVersion; + // Platform messages may fail, so we use a try/catch PlatformException. + // We also handle the message potentially returning null. + try { + platformVersion = + await FlutterNativeSplashTizen.platformVersion ?? 'Unknown platform version'; + } on PlatformException { + platformVersion = 'Failed to get platform version.'; + } + + // If the widget was removed from the tree while the asynchronous platform + // message was in flight, we want to discard the reply rather than calling + // setState to update our non-existent appearance. + if (!mounted) return; + + setState(() { + _platformVersion = platformVersion; + }); + } + + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + appBar: AppBar( + title: const Text('Plugin example app'), + ), + body: Center( + child: Text('Running on: $_platformVersion\n'), + ), + ), + ); + } +} diff --git a/packages/flutter_splash_tizen/example/pubspec.yaml b/packages/flutter_splash_tizen/example/pubspec.yaml new file mode 100644 index 000000000..58f96c0fc --- /dev/null +++ b/packages/flutter_splash_tizen/example/pubspec.yaml @@ -0,0 +1,28 @@ +name: flutter_splash_tizen_example +description: Demonstrates how to use the flutter_splash_tizen plugin. + +publish_to: 'none' + +environment: + sdk: ">=2.12.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + + flutter_splash_tizen: + path: ../ + + cupertino_icons: ^1.0.2 + +dev_dependencies: + flutter_test: + sdk: flutter + + flutter_lints: ^1.0.0 + +flutter: + uses-material-design: true + +flutter_splash_tizen: + image: assets/test.png \ No newline at end of file diff --git a/packages/flutter_splash_tizen/example/test/widget_test.dart b/packages/flutter_splash_tizen/example/test/widget_test.dart new file mode 100644 index 000000000..c5457f325 --- /dev/null +++ b/packages/flutter_splash_tizen/example/test/widget_test.dart @@ -0,0 +1,27 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility that Flutter provides. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:flutter_splash_tizen_example/main.dart'; + +void main() { + testWidgets('Verify Platform version', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that platform version is retrieved. + expect( + find.byWidgetPredicate( + (Widget widget) => widget is Text && + widget.data!.startsWith('Running on:'), + ), + findsOneWidget, + ); + }); +} diff --git a/packages/flutter_splash_tizen/example/tizen/.gitignore b/packages/flutter_splash_tizen/example/tizen/.gitignore new file mode 100644 index 000000000..750f3af1b --- /dev/null +++ b/packages/flutter_splash_tizen/example/tizen/.gitignore @@ -0,0 +1,5 @@ +flutter/ +.vs/ +*.user +bin/ +obj/ diff --git a/packages/flutter_splash_tizen/example/tizen/App.cs b/packages/flutter_splash_tizen/example/tizen/App.cs new file mode 100644 index 000000000..6dd4a6356 --- /dev/null +++ b/packages/flutter_splash_tizen/example/tizen/App.cs @@ -0,0 +1,20 @@ +using Tizen.Flutter.Embedding; + +namespace Runner +{ + public class App : FlutterApplication + { + protected override void OnCreate() + { + base.OnCreate(); + + GeneratedPluginRegistrant.RegisterPlugins(this); + } + + static void Main(string[] args) + { + var app = new App(); + app.Run(args); + } + } +} diff --git a/packages/flutter_splash_tizen/example/tizen/Runner.csproj b/packages/flutter_splash_tizen/example/tizen/Runner.csproj new file mode 100644 index 000000000..c3c43aed9 --- /dev/null +++ b/packages/flutter_splash_tizen/example/tizen/Runner.csproj @@ -0,0 +1,26 @@ + + + + Exe + tizen40 + + + + portable + + + none + + + + + + + + + + %(RecursiveDir) + + + + diff --git a/packages/flutter_splash_tizen/example/tizen/shared/res/ic_launcher.png b/packages/flutter_splash_tizen/example/tizen/shared/res/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/packages/flutter_splash_tizen/example/tizen/shared/res/test.png b/packages/flutter_splash_tizen/example/tizen/shared/res/test.png new file mode 100644 index 0000000000000000000000000000000000000000..063369572f34b2f599ade1284b0537e96ec4af54 GIT binary patch literal 104688 zcmXt9bzBr}xCNw}rBQl8xMjDoo?vjvh>6Y%!r8`tYx}>EWX;`|OJAU`x`RzX& zGyBf-K6TD{CPGC?1`C}G9S#l-OHNi&4Gs?e91ada6%_&agfp?=6C4~BoSdYXh6ns% zJ4zPe%))JM+ev0=XS4Uo^b~a5PFKeZUnPUUTD~rTMmF9c#eAO}UIITt8xBJnOFnu> z@$x1%#L7Uo793jYPe((=vh?u6eX~GbLtrYtVD5fwDeS&GHkR$Zlg_>7Ip&;mjxS&L z-2-$AUYF}k6fKPJR3;lu_jtPjyz_qxuZ)mnf&*JM>igd}-{cV}W?#>2UuqC4Bjg}{ zK=aVPsXhMhrvcJ*@Hnt<2TopIk^jyEzOD4uzWKk)CisV4NxKRN3H{%NC}xE!y+J>s z>HOn*zxc_46x82gDkdQ65U~zhSy|B{sz#!T)w9rm@d7zg=;Zjd1UXYkY0G~Tgs4Sw zrWlLKc58=9P=mWBjfQ_>&meyH*6xUQ*r%U2Y*!anL};nzk~Y&JkfKOqL(N*tby~E) zdRE2d*VnRJDk2!JFJ+kK;DMO$+K}{fi6^we{rIZ@zs)v5N}B=Ag7GUlw}!dmz;Y1T zOwnW$L{YgEg~+f&0#9(mGgo1h)>tDxHy>A4FN(7!dM2vmqzeVj(USX&05QZGIl$T?g z-l0(7?7sKgTs<~^;`&wm+I{YF?07&{l)y9Z^*9Pc-~N7CvmHH{=Y?~vJ?X(eS#OGf z1HZTkjD~;$y>8$O!YyLZm?F^EGM*)H!$(xY<(C7I&>GFCLXhdR8z@Sw?JsMOjaL#o z%~{|lMmbYFg*z|c#p5bE-Z2z(@i0=6n3Bdly(&ak-7?P5NRf)UaL%GMCAHAecPHZy zFHjlB-)Xcx`fp{*ttqPm^tABk?A;7+Pg{(yUh|vvA9{X|p|C}yWd-5m#xq8-DlOW% zTPn=Ew`X(gZo2FKTB5|4MuXr^;Z8BQzQJTHjy93r{(;o+BWu-FCTK00A<^b_=Nn7O z0gpgDbwc>R{tQxFpRSKZYHd$oBhxNAs-vz12rf30`sRwD%n=NFDZQ_ zY^0fKN#e_xQiN39B#qC!1-jHGX%01XURhtJyBQnQ7qpxVt!@uPRiGo2N=n>hnCqnh0erw(@lDjrslsfI?GY>}B^phYQHio((cIGq+913G22v*kGq zW&82=540rDQr@eabW|SOG5GIR(T-TQwIo+}g0v8aQQS{KM%ntjuW zo1Ju6bws_Cn&6n;FW1wwH>(HJn8h-S*EVzQ4$dN}De)Qc6!{=aBgST*FxURzMX{i; ztEjWR)0llAO?Jj6b^fenlZS`Urh!&?7^Zyv0@R`ynu|iFWixdL#&dtI|FXV#*L2J` zs7y$?5zn-TjD_6OoD5}9jX;!=l7Z6M(l-=DAQ15k%R10mr4*6P*Q)XV@>HuQA3c?0 zl2I4DBonaR?wLyYY}jV6g|3u%#bRTrmki>NFdm(#i$0Jhlvgkw;4BOiB?y@9=CKI= z;vvsCi8~WC$;W-6xhmxDI&QrAr-sz;;qlw|(Iwn{&bA(ZJoiz39@oE-jc(c1mq=z% z#!&0fZVm2ulVt(Vu}dV|mg|lg8|RhLM6Klyu8?6{hvWILm%+<34XM?W0R zx%T$S`m39djoaa^nMLYvyjwj%R!Ja!;#pQ*ZdOQ~WH$pn)4*^f2rMrfWoGzStEtge zwp0+y{o$vfasp>F1l~D39F@8L^ALZa&L@BEQO_)}bwcv0f(CwE-|PKRI@a{GK%!|H z(otU%j)ry|ltf3bC4)kGmSy43=Pf^Bx%ceCPaOz<{o}KP73DDQ5Y0l=87I>k__brx z8|Z3V_h1&V_J%pnjD@K&7CKWY?th(xfuO0 z3)ekb-3547q0IyMg*j}yDO>Fw-k_^PTUna{L;@aeLH%vZ^z7<}PX>kG52ubo%M!JO zg^d^RH&b8Go5%xnai*8_DUbe$EH^)lCrFwE9zlW6miG1?b+> z(f9Fn8K)OTurN1l<~0l1XVw}mZEeRYY5#)7NX3qPdbymYyD{W;Y)qNeQBnUkJ?q8K zoGt<4<^Qa0eRO%r2H$>E)b>F1+2i`0-Cx`CCNrDzNSxx5wNSSWR zpM2K7;S;-1@ZU2DWQEfRXYkqYobN}SWTv^VrTx57*8BA^R;;Y_=^@kDnIfy@I9-mJ zVoc{|Fu0AEAuXMSF?^A2))X06tkB=Jm}sxl1tbn;N{rrNY|d?@FB6g(U*`WZG}fAO z*kU?4Mrxbe^4$DJutFx1KoKuUQaLrr2tBqZ-7e#9o4{?0U1<%UQ^><-U;0{T+OwNK<%#}>$D)^d+ks+jp&?s| z4_hThf#FPeuo>D=n?H-7(~{k0O7$|o_uu<{jCX9mZuZffPbfv))mw#Wi;NIM6e;l@ zN$4<`W|l6=J=~8s!kkisc$~U77MLkXczyehoM(5QHzG(YDARv9!cNhm)EZ|a7!>8& zy^bU8qKV5zO4DVNzIb&X@7(Wp8&Sogb^etxi&TiDA+F z$hgV!WZN1{0!IVy*9WqC{tTP4${PAA3H=EZcFWe3Vk10{UC7i z%i4J^CWoWOJj@^gL{z#hGaU|%vY8k;nE1LCti$Xl;6A!Jx6$3g&KVcWa5xLf)4}LFTTow*SE5g)KAU^%+!#GgfU~iFff8fwUowLTf_f9HOWiF@hh zmKm_(koIM`vg&81VOHI-&a@N5@4bO~Zy0MUN<)o(muf*MS_G+aErl(|ym1l9to6uF zwQ2!gIjs#12xQG)A(3m1ajf5Vb~Y4se8O+_Sh}p}&gR9@Fi^^P!B^ShK5+T7qRMIs zoDV~f8-8^hhQfC!%+=;V_$|26doh6q4zQpYu~kB(>f7#J=UA)CNt@;Y-N zYtnwTe1$tz_`UO8Omn*o@<=I3V|>+H)99;|4`at)H?tU>zmFR{-!}H)xRAS)EVK+H zGmxRWzTvQOJ6_DjcRo4dGivOtPv{G;YyvgT$`vVAP!tY~J#04;#;)+XSCAZrcIzX^ zOBa;tlvN>Cau&zzW6x$ssPE>#R*%cxpGt$ZZz8j%9O=KXwuUYI|~`$}e6*tc%BzGUr}m(MD@ zWtCT!g}ytXJf)EDkpEKuTjN)x`DS?O`3(7=SQl(JO8|7^)$$MMU`YTLX(`A1{RShN z;Ug-u0w)h^Wd^A*fjxb(V)o1W)*X(b?zu`u4lRCqwrH)902`<5FnXS5kn~t)^Ll(4 z2IWulb0&dlP93=y$}!A&yN4AnR)>|C^r&|?ulWqr>U~Ub%hD4Pwo4X{yuameIKV0i z1y3@5{`x7hms+U(aWmcqk@gvmeV9bUiKyp&aSY6hMS2=d;+xc~nf|=@Y)1<5>DL!# zxur{t)AuKE_EX-c=XS9>)!tN#XDvH^bXl`XaaXy|ZKSHatX6bL35h=lY+kn&@TJx& zqdh5i4j#JobYm$i4K8KPdhRJ_sK2qtSLqS?h+P`50pH*s{wvmXmvhq^c2!fv6Hndj zo{@v-r~S_&(H^8{X&}fPCU=od3IkJwFpYJ(T;q0hA7G9~(=n!j&TbuR_@2`Wn*vFX zloTp6%oYLn@Uo@uqIR%{X;Vaw-i?p@cTuR;EpBP?RzwrI>@GvwsDyfjQ}*(gK- z=xrG_N!c9co8;D=)J==(kpmu4l|NFfObmR=5LObimH>`#@49hIgaBw9nseT>vhq;# zHULTmq?BwGG<-a~5e=z#fsr=rMhn%0Er?QGOLsxn5Y)SpZWWX#_ zwW3ok*X`y9-J=4`-^X?9r8NH#uqsN+H(0QK9#$dz9e3z~KWm~7Z}%ivInaGWF4&qV z0GEI=2ugke4XA<{SahU?6%Zl2WlY9|_%qECU5>ITeMLz`TpLw!JH)=zDw2?{&}^Ct zk>A;3O7Z(8n2xs&Fz3XWjsqhVap^^fHMmU{{PX#1gF3_S#&ue(Cloisb0~0K)89{JzKL-=<~I2qh~=y$ z#9=)qBuqf(1+}+4t;gT|{lzcru<565mIg{)BS(yzLV6+tl#PCHavAmp%Y4+RfaO%S z6TJt$Fr!+Bx_~VD-~+qb2#;bS9X$Tz1Zj6*ITz_i)`Z0H@{m9E;Y3N0OcGTk4G8aa zn^Zmfx@Gifpz@6D1fQ6_t2#6XuU~ye2+adz#qqC~g?wXRf}-~%4TeX6@T5Xg8{x3; ztfg0f>pQ0i347laR(UUH42lmaw94b+ODY`Awk=wmRta#Y*ysMRn(D0Mu8F(cnQlW* z*JEhC8EoCD@;18uqxdAV9MQz1#1&3PXw9$Fyl5ckqPDu2HG`v|+gKbz(B56+%mU_8 z2g^tG2J_i1@(YlY*Uw3(_n#h>?lR?*Y4Yg3Cf(XmH`7SL!_k>DMYB$Wk|qRWjuxen zX4oGfi)qg#<=LqPHfrY!=Ir{ycYsY5G~g%U-bNts@g!1x-m|fpp4Cu@C@oXsSF7ZV zbNbWc6|_I0XdHf&UHCSDGUXql3HMWwgv@EIe7O_V{-TFDQ%hk@Zj|o6`}vpieShl( zh1J@w8{;&Y4A+(s11YE6(7NpGgsMP8ibHPm=izWhPezMr%VPT1Wjw9J{*&rX#|wPE zL!n)T$0^f1*bCDN#M(bdYs~e8jP%CJb!;iJ>M!9ry+&Ug^K+pL1?lBdT-8?b1aj_N zUuUG@#JUaWIr_^q9MfW4u&kM8-#mD;oF}S&wziqzQ!g|go~DaQ^$eh9xj?|H3rwrh zftrN-b)}|(zqAF)nKbNZOE+7q$|H%XK!gY)=Plxt|8lTPD{z}wi)E`2$bNnn$zrEY zQ38E_QtD}AoI>V7c=}6m@-zofXQ`r9UkcfnYciL5zc@ylv+g3vC0O$(d>Q3^avW!caK$d}v5=OY&=i_-$i& zfaKTDNpLaAP15+&>0*R!cxuqHCl~bI4|L5u85=Uq=fGI3-`LW2uWXeHn$0GEz{D#3D`|E~#^W@!$l5?$mD6M;<-gxnPD@K*z2deWu3Iv0$Zt7${$jzz~L&o__db(!cWH)U)yG3emZw}jF2bo1XEY;g9B0l z2BeF4nVH)P9m9V#3_!M8iGoU}ro?cN>{ia+M$BCIzF|L*mQ9%Mm5i?)9M=tJ`GYNE zOH5`bQ)s7Mgca4?t$F_fMjw4VA5Zki?VUEtP!>g)N;2wIwo0IKR-m>}`GXb1z=-WS|1*V$HgspCJp^;PA8XS) zf#G=lq1lt=+2o3E%c<3QJJDLmlSnWIx!&U2kVKLu5h7KD;$fGZg47^Ido;z`ytU9F zg`Uu=P+cfh;v#8+#m92vVsk68;plnUGA!PE;aSt)UJ?nGzWc*h53M=PtF;sjS4*$k z3~SucdKY5y7oDnL-^=SA`59zQBH5|J`2|979P5K2eVD4uMQM0_n2Z*(yg{||T@389 zAK1|Y^B8UT&1{*bTp|6aobnoqP%xD|qh2R_I6?xQIH5!;s^VXSEU+LX43~&Au{6G0 zbyR642(PkKLmi3b9zl+i{Yo3HC{4e0tYZR5u-4fiuS!Y+ zE2{HId=GTv;nkl~B*pu!L5hbbm~+TQa~z1f!OteZ7=Uq0k}LtWfT4pB+SnO!Pw_%| z6=^X|qapfrc1w*|!Exn+0a67l{GT;Z#ZmDpZBnRA4B`^h9|2Akp)FTMP8Cl>`-!c6 z&YkpE+w1aYx^?6B=NhqB@R4)Tq15my9?DwYGuj^5{W09`g6PzbFS*K z-lQ!y>0X1=fuT0#Nka%5zQ_{R#=7giO4@NO=mm!BuM$Rv5~#xcbUyE2dRirBq z%>L~vX`<0DOQo$rl0c^f0$>|>tV9+3ML0s4lefDRJS^Oghy%mAYrd*o6}7jhA|Fm*U>1*a-RQuAiw4DuR+e+AfeU0+v>32qqGnpg?w=WzXgK6eYu$d2i3vn$KX<<;6uEwvb6$sa zyXF0(&?_D#5++A{7vUkexqz*Lf-$AgK7^mjwo0y{{j@)qBu<_p+ZR z_U84wvL@R(JNNe&H-9Vy7#p*QMLVv0VxM14yLG2#nM_%doOSfHr0Q1~8~65j^|Vmz zzT{oUINr%qg}TC*y-`Dwv5X}|_!h?D(d;vxkHjyg`XM))!`|_&IQ4%kbCSr*VDm zmR8WaP%GI#4`LC#*ouz>Ss}o=>R$ipb9t(AojqQKEmqxT|Ma@e6#xHKs{knu zWTgQ*tz9i;v)r5&Yiqawq__0}+0LGpFxUST>v)*{IfO>)#lVN5cHjTbSO(7cC)oTa z_5HuP_j&n!xVzgfJ3PcZQal~s3DDw#siMubNoZAqBGg!h3#c3eJ9Sd>t!Uxw%I}L4o8}sX(571v;abl| z{aF*hRDi$-cid9_Pf!aTPaU~{k2Z&xtHeg&f`@6wQE(GDQp|Od!0@J|Irt>Qj<_C9 zaLbV7zL$dUesw@*`froy!SJP7#L5O61cfOKeW-E?V7Nm4(G|#dWnHw8Lq~qAB`B0p z)TbY{^eC8$1lNeACtj%1@N-PAn-305aW6&qXwjQ8GY=6CmM6(AEqX;HWiSV%@Y2<4 zGPcMz>x1&&ov5^tAH+eXMb*(vAuoO9?kWs^+@lTSB<~x0y;E|exs4TGy zEoPjvdui9~>XMZ|^}BXCL&ZbnO~xZ6b@O&#oruG;;qZmg3` zSO31MQ>y+%#rD@m2&3qDy3In50L`BZTfGofE>fIz7&YYcKUEeJnRS>eP^`igb_lCE z`8q&eSfZ4jm73~((hhSw^tdf6$?>`0H#}N>x-E=7UT)Y;H+;F@m!Vww>G!mlm9?-r z5ZijxtQ(5c!Aa8CNu8jENhUPE+&=8Z2;BNp!SV-@a}XC(n4O|2SHj)AWTJd}Bw==G zsD+GV!9kamD2+k`mSDykT%MIiR?C-)>c^i241o+4k))`nKwZ*^M2HZh&q$lXO(o-D zky7R0g7oE1({Qs&nswk>*=K?hKm>H1X}L^q%n^*aOf)nJ1T^8_UZ0jKr$5S0dbS22 zN;3M_=GlNjP3lwPNkd#4J$N5g>&o$@`nWa(ghPmZg5^7P6sNQgi_2{o2yB*`?Z$J2 z-YN@TvpD_#EI>|HVq$~W)d32nkK@T|d(E%=gVvK@4}ZfbcXoGk-@BIA*47pk6}7ds zm6w;(Uo)|@v$L|YGBLgPJl~oulRj_>E-tH}dD!K~&Yp4l|t2kXSQZSM@9h6F{FKH+( z{8+rSFtxKocTG=JUYS43^v*>H+%jK7RyV? zo+X1(_sL>Gn5Age|pqu)wtea}P4=NF$F~-o%^xSXXma6a;>=WRt;yyi#szn7e zztVH!H=!$Oj5AZ33Ag8fQjwk&5X6~{o!l@-{`uwm5Kk+!v$JEr(&7r(^5OdEVXrV2 z`whS2?djh_nOGtMf~1rbP2hk)l2cMrl9Q8DQ?)cSI#Uh~Y^Vg=w1AIOQ&W?Y2nY!Y ziHLw-ZSU@WeZJfM`UEpv^W4qWGVnA9F0B0FthYA;-=Y0#R@nEx@$-V(6wg5NAI~o_ z6~%!rLFp;wuQBmC`%)bt4Y^(1Xeu$aRJ0UC3X*Uw!(YUUr<#Af1a|Fhd+3Zej8e?P zNMYhsjAnHy`>H(?32F(t;D>a)5v!@Pmv7%2j~3qo3fm&fc8S)#hlx$TLS+V;aLfQd zHPyukXvUGD;?*oINK;C+k%x#6lKxS()=W2)#k3~|Id1jg9xpOGk|2A}hAXuwU4s`_ zm49NEG4TWKi07)*)vc>kpMqEc0d6te-p>prEcGwRdJ~pMc{wXgh0dwhiS&xUhliH{ zi&DPa4k!!XZ2|Y2=bxIK4AIcY3O)4jnVX*0m}}R|erhD&5b6E}_w?t_pRbRbl>dxU z1K5k#b~gI;yK3cJ;i^wf=wU%h;PS})(UdAuXhA6n8ID323Mg8ZMc26wyYE)CEEVrX zD5QJSVIY(=2mx28)(kzm@f#lO^|G($8>-dj}_FU?l8Rpdh8%j50Y&Dz(OpSw9rjn-2eeHdYwq%NaPS~BWE2_tup5pC;1 z`0#|nBwT^iJsgC;%_bJ;(gmluf@;@|g?_#IzX-Inl#Up=Qv-2GWtcNta3ri8AHa~C z_r0>yXa078%!LZG$*l254oF50=BvF$7}K8D;495sDY)Er_R>GrP<(hlfBh*V(4@qG+<*PA1%+6Y!kI0 zxP1Uqr#jQ0(tY6s$)3?^Hxnshm6PEW!wr<+GD)ci4KcE!CV%=q)bh7q41;*o`}$`I z4*7Et6xvkR$w?s8uq`<=aWb)3f|1^bt08?cg=w{VofIps&~(o+&7#JciDO%M^!% z>gV~P1gB!0QQe=`^Vw7C+L!W^hx5DreK+>s>svo9=v&k*Pc)BXX$^`owom@V#Fl`^Z+<2@iFL!#`wnsUh)0wk<>9^fJ#SE8uOou@r5Gg6C^-t<0 zb6TPoHa6uG+oC=mH}nN zrGY^SFSsOgX3qfE;hv4h<-oE?Z=s41Hb{VEE?Q?1k#h6aoP^gg{1G-Xb31h2Yz(oj z*}58G^M$hOCC}FFj(Z9Q$)KQJ|r?DBqY;wd`m4>nKwg6NAw9+g`YGF;3Yl; z^y$YMNizEdRw*u!FRJQFV_?j9`X)lG=?*c<9#eia|7&F!&FTO$8@#0^eY18-e0DZ3 zuwWda#;48Lm-{~Au!{@jq~zqJ)YO#JR85T}h?byqG7v%=8zvL8`d4po_4M`ib#&0) zyXqWnJ3aEaJ}a2D>WV7I&MgcBo+U3o#>ou(;ABFd8~OXUlXhNNadF>Ur8goTr&C&n zPn-SUI!FYZJSsF?@giA}?WLBG&Y`L5WCTSITd6jrp9G^_s&W|U=k&RGk zIDc3pm-v~d#wcwmUrLYvv0p4*o8&d3Z7|%3?Mo+0*iNvT%vX1iso@6O-jiM%B9+P% zkE?7MYF!?xT#C6UDnpTFKv6^n(Q7A8lO>Dq_FCgt1YVDi_$b&ukNvM7`eVqazB}YbNAt*Og@drn z%HzTCE}SHP|#}0O3LM=FlXzHK4US?Blzvk` z5J}hjp^HP61K>x9SOhR4z85hEGX>jl4o8Pw-5-LClmaGvg2A%3VR0k zBRyT%2`=?04;rp8tTODLG(gr(jIyyOA{_jaBMNn!)(op1LajKvXpTkNl zXeB%!_dT?0#=Ym$_dx>Ebc*J|svT6w92n+J`+s)t+1gQD+wHBE?0t_$u6yNAcpW9{ zJJlK%-C&EfRx;)~AJ6ln4=cPcNf%4j;vD(QK?_uY5l?j?+~IKRv+-7gt{59wy)fD7 z_)@&ELn9|@jV~tRX`yKwQtAC`6sdkf1ocP(iQq0CSNAUMP7zfv6``RLbC zUfygcLldvUV7An3oe^0eo3Qx~^Ij0l{_5MW$+zg&wFcwbbEMK-VP>i`yv%P@tKvEv z3DVC-{?O=%-0edwcwSeysfqTF#Nnx@hk7jV(KIL1M}Cs`SFw-{EEUk+)vL61)sC&p z;jS|>@gP=UA?a1!HEkv%HHpVnH|q-kIMR=?=eLFcDjM`;9;O+%6I(;1#oRkA7?h#O z?+QX;)2X+bt0q5byBHIBxl`^m1S*2@Aw*3Lgws3xpzV@7$fWP6_>HR&d#?WiO zI4diQO}{0rE){C66lkQ=PeL0ksT$1EWzXcPvMV+aOYBXnd-LzM-Vqcq$*QN9+iI&K zjYt-}f961_o2vgh%QA@xH7Rgv%SuW4tBh6@LQ7_z;7`hn%OzDrT}c*-H#I8|bc?ky z$AGfqYAHQ^X6Qmyjn~!L^edVZziqQliPUK2%sq)Pl7z0(0O`-x+t07ybD@m!vf*l3 zNlBew{CXw=#V{g?LVCJ#gle({obPM=njSg>Vn52;JdIYAmv=sWSbf(PtgO8^E@e+^K?&f~+)+KYrZSn|bOL zcA>r^^J?p%Zhvbt`(K90JAP&IB4C{ZFmT%9Sw2q{AAdF!op3N?Tc zL%W*^(L$ztKX3=8b8*vwrs~rPUbTo4$Z6J=G8GiaWkhONc11=KN@w@M`|4}tB<2%? z(58#=9UGp#Qh!l^;po>bMynNMt#VR`nzELKO<=PN7{p_1&2~U2J)aH6e{E?9@9R_A zgTg*wkL?r}7r#}`iKg8$|9Nn)o|Ezw3P9B#Klp_oNcPTod3ovR=pJrPzHUUkC1N-D z;B~oYTm6$>NT}U>SYc|~TnF)n` z*fx}6{ihXAIn2vREl^t3f+vX-%Y@nphF+Mq+h@eUOP#J>#i8k9AkB&Y6Ej*m@=fd& ze|-bVf~h@w(|(*@r6A6$g5HGMcgHf;J;H)w>ooDWroHvi6*b3M05{TPo64%o*Zy?< z;(Na@f{uP3u%Dc~ZEj9iSB&X19u*mResS?S03!6vxYfPlS_-67HbzE978Vz0h3@B& zkdXBVLjwc9%e~2eds#O?q5IPb=v%PumYR8^z4P+;l6GS{P+qUKgk5>{du7kQsj$LJ zb;L#wEh|r~ot_}=DgYy!Mf42HsmY`M;gRBYfih`Omsg7x2%}P3GV$4sHe!vc;Kdtv z5eRs-$dgwIrL^Bah&<^-zV*)y!_J}!2u*3k*_Z|u8E6gujW_XRw=g>65fRLk3F1|7 zZY9O=DK@yDtTJm>&VP4UJKG%CG~TVsWrX*D`yu^W7R69c@9}JaQsiQUdkU)fYFmf^ zT_8jp6JYyG#d=883Hs_;Adtj_goC;YpwwU2u6EWMq^fJEa&`xTozucqKwTWkD)Yfd zap908guuO6Wj{pE@A;p_{Xd5KD680YDv}^jc8p)Pgvl>EZzH(XLwy)ljN(4cruXC} zfSr?u@@q-g6U=)B8Qu}D7>Ry;+r?6>-{L|l;`exe1^b7$J8o9J*Zdxi(g`k_v*-gn z9$G6FgU+7j>r8=OZgsWY`4r?!i8&rHELZoTl>OVV$Y^*hzpWg(hm}g5%*< z|L*haK6CduV;XTT@!?sXY$qRi|Bq0GS(oztu|YJ)aRRe6c@DGaHv;E5-p6-Sxz8>D zvb$~6DN!AH@W?=12J;=eO)Rg(0wI8egjCb+m%2alNtj9|ZgQe347(dpQXJtyY))4M`1Cpl7hofV*i> zJFj2bGj0zs5#nVn+Sf=BklPXMX#UI!YRZo$g%h6%w-zYo)|+BA=bE=Bv#bh>N2F6!(nsasxL+5!)a@ ztW~MRXA-M|TQSN|%Kt%Jl&;AuUP`c@005r+gmMAwsB&qeR@8f=tH#ivR%G1-+v)BOB z#>&VTFkf(RaL}O1_@24D?VF{1=jbCvZhAcwx^pou@^vTOvOk*CGy}SJ@;114M-}!O zm3RaB5>T3IOsLj_8l9W%4qBMx5XMm?<8ST~copS7MnOwTn(eb!8g`q4koAGKyEEVw z%H_%0cbQn*_pS#MP{oSrY1DqFiybX7CBg8TphuP9JZZ`gzQR<$YS%(4kUdGM_l+3L zzJE^loYOZ=WjDM(Z0HbnT;JT-5TCQdi|h|DY<{ifc`#kZZM|(LP=Q!pQK4UxmXSdw zD|UFS1E2#{RaMO$j}U<3A|xPaJO9lLBmvu%mZky*)O-x@D;UfQ7&7rOC#Nq41UT?&vYga*x z66vNlYv9J_raqG=^NSjSz4cq!+v8 |g8G7EKM4wsGIh>~1Cujx|N^z`)Lxc*5I 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 NNb0(31u8bd{~tr01@Hg> literal 0 HcmV?d00001 diff --git a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml new file mode 100644 index 000000000..bb29258f1 --- /dev/null +++ b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml @@ -0,0 +1,14 @@ + + + + + + ic_launcher.png + + + + + T-INFOLINK2021-1000 + + + diff --git a/packages/flutter_splash_tizen/lib/flutter_splash_tizen.dart b/packages/flutter_splash_tizen/lib/flutter_splash_tizen.dart new file mode 100644 index 000000000..d330ceac1 --- /dev/null +++ b/packages/flutter_splash_tizen/lib/flutter_splash_tizen.dart @@ -0,0 +1,18 @@ +// You have generated a new plugin project without +// specifying the `--platforms` flag. A plugin project supports no platforms is generated. +// To add platforms, run `flutter create -t plugin --platforms .` under the same +// directory. You can also find a detailed instruction on how to add platforms in the `pubspec.yaml` at https://flutter.dev/docs/development/packages-and-plugins/developing-packages#plugin-platforms. + +import 'dart:async'; + +import 'package:flutter/services.dart'; + +class FlutterNativeSplashTizen { + static const MethodChannel _channel = + MethodChannel('flutter_splash_tizen'); + + static Future get platformVersion async { + final String? version = await _channel.invokeMethod('getPlatformVersion'); + return version; + } +} diff --git a/packages/flutter_splash_tizen/pubspec.yaml b/packages/flutter_splash_tizen/pubspec.yaml new file mode 100644 index 000000000..428639b44 --- /dev/null +++ b/packages/flutter_splash_tizen/pubspec.yaml @@ -0,0 +1,20 @@ +name: flutter_splash_tizen +description: A new flutter plugin project. +version: 0.0.1 +homepage: + +environment: + sdk: ">=2.12.0 <3.0.0" + flutter: ">=1.20.0" + +dependencies: + flutter: + sdk: flutter + image: ^3.0.8 + xml: ^5.3.1 + yaml: ^3.1.0 + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^1.0.0 \ No newline at end of file diff --git a/packages/flutter_splash_tizen/test/flutter_splash_tizen_test.dart b/packages/flutter_splash_tizen/test/flutter_splash_tizen_test.dart new file mode 100644 index 000000000..5879d4d9a --- /dev/null +++ b/packages/flutter_splash_tizen/test/flutter_splash_tizen_test.dart @@ -0,0 +1,23 @@ +import 'package:flutter/services.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:flutter_splash_tizen/flutter_splash_tizen.dart'; + +void main() { + const MethodChannel channel = MethodChannel('flutter_splash_tizen'); + + TestWidgetsFlutterBinding.ensureInitialized(); + + setUp(() { + channel.setMockMethodCallHandler((MethodCall methodCall) async { + return '42'; + }); + }); + + tearDown(() { + channel.setMockMethodCallHandler(null); + }); + + test('getPlatformVersion', () async { + expect(await FlutterNativeSplashTizen.platformVersion, '42'); + }); +} From 0f4ad8aaa11b51784d2750e9975d42888fa5aa3a Mon Sep 17 00:00:00 2001 From: JRazek Date: Fri, 5 Nov 2021 11:03:48 +0100 Subject: [PATCH 02/39] img change --- .../example/tizen/shared/res/test.png | Bin 104688 -> 1443 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/packages/flutter_splash_tizen/example/tizen/shared/res/test.png b/packages/flutter_splash_tizen/example/tizen/shared/res/test.png index 063369572f34b2f599ade1284b0537e96ec4af54..4d6372eebdb28e45604e46eeda8dd24651419bc0 100644 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 104688 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 |g8G7EKM4wsGIh>~1Cujx|N^z`)Lxc*5I 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 NNb0(31u8bd{~tr01@Hg> From abc30f796e79ff48fe9483b7d6af16382f9cbcb7 Mon Sep 17 00:00:00 2001 From: JRazek Date: Fri, 5 Nov 2021 11:48:32 +0100 Subject: [PATCH 03/39] license, changelog --- packages/flutter_splash_tizen/CHANGELOG.md | 2 +- packages/flutter_splash_tizen/LICENSE | 27 +++++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/flutter_splash_tizen/CHANGELOG.md b/packages/flutter_splash_tizen/CHANGELOG.md index 41cc7d819..fd17e71b4 100644 --- a/packages/flutter_splash_tizen/CHANGELOG.md +++ b/packages/flutter_splash_tizen/CHANGELOG.md @@ -1,3 +1,3 @@ ## 0.0.1 -* TODO: Describe initial release. +* Initial release \ No newline at end of file diff --git a/packages/flutter_splash_tizen/LICENSE b/packages/flutter_splash_tizen/LICENSE index ba75c69f7..af489333e 100644 --- a/packages/flutter_splash_tizen/LICENSE +++ b/packages/flutter_splash_tizen/LICENSE @@ -1 +1,26 @@ -TODO: Add your license here. +Copyright 2013 The Flutter Authors. All rights reserved. +Copyright (c) 2021, Samsung Electronics Co., Ltd. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From 065e874e27ca8d94ad0c89e09401f64d0552bb11 Mon Sep 17 00:00:00 2001 From: JRazek Date: Fri, 5 Nov 2021 12:13:34 +0100 Subject: [PATCH 04/39] cleanup --- .../lib/flutter_splash_tizen.dart | 18 --------------- .../test/flutter_splash_tizen_test.dart | 23 ------------------- 2 files changed, 41 deletions(-) delete mode 100644 packages/flutter_splash_tizen/lib/flutter_splash_tizen.dart delete mode 100644 packages/flutter_splash_tizen/test/flutter_splash_tizen_test.dart diff --git a/packages/flutter_splash_tizen/lib/flutter_splash_tizen.dart b/packages/flutter_splash_tizen/lib/flutter_splash_tizen.dart deleted file mode 100644 index d330ceac1..000000000 --- a/packages/flutter_splash_tizen/lib/flutter_splash_tizen.dart +++ /dev/null @@ -1,18 +0,0 @@ -// You have generated a new plugin project without -// specifying the `--platforms` flag. A plugin project supports no platforms is generated. -// To add platforms, run `flutter create -t plugin --platforms .` under the same -// directory. You can also find a detailed instruction on how to add platforms in the `pubspec.yaml` at https://flutter.dev/docs/development/packages-and-plugins/developing-packages#plugin-platforms. - -import 'dart:async'; - -import 'package:flutter/services.dart'; - -class FlutterNativeSplashTizen { - static const MethodChannel _channel = - MethodChannel('flutter_splash_tizen'); - - static Future get platformVersion async { - final String? version = await _channel.invokeMethod('getPlatformVersion'); - return version; - } -} diff --git a/packages/flutter_splash_tizen/test/flutter_splash_tizen_test.dart b/packages/flutter_splash_tizen/test/flutter_splash_tizen_test.dart deleted file mode 100644 index 5879d4d9a..000000000 --- a/packages/flutter_splash_tizen/test/flutter_splash_tizen_test.dart +++ /dev/null @@ -1,23 +0,0 @@ -import 'package:flutter/services.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:flutter_splash_tizen/flutter_splash_tizen.dart'; - -void main() { - const MethodChannel channel = MethodChannel('flutter_splash_tizen'); - - TestWidgetsFlutterBinding.ensureInitialized(); - - setUp(() { - channel.setMockMethodCallHandler((MethodCall methodCall) async { - return '42'; - }); - }); - - tearDown(() { - channel.setMockMethodCallHandler(null); - }); - - test('getPlatformVersion', () async { - expect(await FlutterNativeSplashTizen.platformVersion, '42'); - }); -} From 16721424dd8f10d4d41f7c1994df05811ff4dd20 Mon Sep 17 00:00:00 2001 From: JRazek Date: Fri, 5 Nov 2021 12:27:31 +0100 Subject: [PATCH 05/39] minimal main, new line at the end of the file --- .../example/lib/main.dart | 51 +------------------ .../flutter_splash_tizen/example/pubspec.yaml | 3 +- packages/flutter_splash_tizen/pubspec.yaml | 3 +- 3 files changed, 5 insertions(+), 52 deletions(-) diff --git a/packages/flutter_splash_tizen/example/lib/main.dart b/packages/flutter_splash_tizen/example/lib/main.dart index 795f0e575..9f2114922 100644 --- a/packages/flutter_splash_tizen/example/lib/main.dart +++ b/packages/flutter_splash_tizen/example/lib/main.dart @@ -8,55 +8,6 @@ void main() { runApp(const MyApp()); } -class MyApp extends StatefulWidget { +class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); - - @override - State createState() => _MyAppState(); -} - -class _MyAppState extends State { - String _platformVersion = 'Unknown'; - - @override - void initState() { - super.initState(); - initPlatformState(); - } - - // Platform messages are asynchronous, so we initialize in an async method. - Future initPlatformState() async { - String platformVersion; - // Platform messages may fail, so we use a try/catch PlatformException. - // We also handle the message potentially returning null. - try { - platformVersion = - await FlutterNativeSplashTizen.platformVersion ?? 'Unknown platform version'; - } on PlatformException { - platformVersion = 'Failed to get platform version.'; - } - - // If the widget was removed from the tree while the asynchronous platform - // message was in flight, we want to discard the reply rather than calling - // setState to update our non-existent appearance. - if (!mounted) return; - - setState(() { - _platformVersion = platformVersion; - }); - } - - @override - Widget build(BuildContext context) { - return MaterialApp( - home: Scaffold( - appBar: AppBar( - title: const Text('Plugin example app'), - ), - body: Center( - child: Text('Running on: $_platformVersion\n'), - ), - ), - ); - } } diff --git a/packages/flutter_splash_tizen/example/pubspec.yaml b/packages/flutter_splash_tizen/example/pubspec.yaml index 58f96c0fc..cc772f607 100644 --- a/packages/flutter_splash_tizen/example/pubspec.yaml +++ b/packages/flutter_splash_tizen/example/pubspec.yaml @@ -25,4 +25,5 @@ flutter: uses-material-design: true flutter_splash_tizen: - image: assets/test.png \ No newline at end of file + image: assets/test.png + \ No newline at end of file diff --git a/packages/flutter_splash_tizen/pubspec.yaml b/packages/flutter_splash_tizen/pubspec.yaml index 428639b44..b8df2edeb 100644 --- a/packages/flutter_splash_tizen/pubspec.yaml +++ b/packages/flutter_splash_tizen/pubspec.yaml @@ -17,4 +17,5 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^1.0.0 \ No newline at end of file + flutter_lints: ^1.0.0 + \ No newline at end of file From 5520b566de3b5dab458c7ea4878bb1eaa6f24bed Mon Sep 17 00:00:00 2001 From: JRazek Date: Fri, 5 Nov 2021 13:18:06 +0100 Subject: [PATCH 06/39] more cleanup --- .../example/test/widget_test.dart | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 packages/flutter_splash_tizen/example/test/widget_test.dart diff --git a/packages/flutter_splash_tizen/example/test/widget_test.dart b/packages/flutter_splash_tizen/example/test/widget_test.dart deleted file mode 100644 index c5457f325..000000000 --- a/packages/flutter_splash_tizen/example/test/widget_test.dart +++ /dev/null @@ -1,27 +0,0 @@ -// This is a basic Flutter widget test. -// -// To perform an interaction with a widget in your test, use the WidgetTester -// utility that Flutter provides. For example, you can send tap and scroll -// gestures. You can also use WidgetTester to find child widgets in the widget -// tree, read text, and verify that the values of widget properties are correct. - -import 'package:flutter/material.dart'; -import 'package:flutter_test/flutter_test.dart'; - -import 'package:flutter_splash_tizen_example/main.dart'; - -void main() { - testWidgets('Verify Platform version', (WidgetTester tester) async { - // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); - - // Verify that platform version is retrieved. - expect( - find.byWidgetPredicate( - (Widget widget) => widget is Text && - widget.data!.startsWith('Running on:'), - ), - findsOneWidget, - ); - }); -} From 1ac69b2743be9ed13ac9feb7adac2f683d16d052 Mon Sep 17 00:00:00 2001 From: JRazek Date: Fri, 5 Nov 2021 13:21:42 +0100 Subject: [PATCH 07/39] example path fix --- packages/flutter_splash_tizen/example/pubspec.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/flutter_splash_tizen/example/pubspec.yaml b/packages/flutter_splash_tizen/example/pubspec.yaml index cc772f607..29965e0d5 100644 --- a/packages/flutter_splash_tizen/example/pubspec.yaml +++ b/packages/flutter_splash_tizen/example/pubspec.yaml @@ -25,5 +25,4 @@ flutter: uses-material-design: true flutter_splash_tizen: - image: assets/test.png - \ No newline at end of file + image: test.png From 4620b31dbdaaa29e3a98ffec5bbee602375ffd3a Mon Sep 17 00:00:00 2001 From: JRazek Date: Mon, 8 Nov 2021 12:27:14 +0100 Subject: [PATCH 08/39] main fixes --- .../example/lib/main.dart | 25 ++++++++++++------- .../example/tizen/tizen-manifest.xml | 4 ++- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/packages/flutter_splash_tizen/example/lib/main.dart b/packages/flutter_splash_tizen/example/lib/main.dart index 9f2114922..72c327c7a 100644 --- a/packages/flutter_splash_tizen/example/lib/main.dart +++ b/packages/flutter_splash_tizen/example/lib/main.dart @@ -1,13 +1,20 @@ import 'package:flutter/material.dart'; -import 'dart:async'; -import 'package:flutter/services.dart'; -import 'package:flutter_splash_tizen/flutter_splash_tizen.dart'; - -void main() { - runApp(const MyApp()); -} +void main() => runApp(MyApp()); class MyApp extends StatelessWidget { - const MyApp({Key? key}) : super(key: key); -} + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Welcome to Flutter', + home: Scaffold( + appBar: AppBar( + title: const Text('Welcome to Flutter'), + ), + body: const Center( + child: Text('sample app for flutter splash tizen'), + ), + ), + ); + } +} \ No newline at end of file diff --git a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml index bb29258f1..a45aa0d7c 100644 --- a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml +++ b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml @@ -5,7 +5,9 @@ ic_launcher.png - + + + T-INFOLINK2021-1000 From 0ee93400861241bc2843770b01c1e112e3922cba Mon Sep 17 00:00:00 2001 From: JRazek Date: Mon, 8 Nov 2021 12:58:45 +0100 Subject: [PATCH 09/39] flag fixes --- packages/flutter_splash_tizen/bin/create.dart | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/flutter_splash_tizen/bin/create.dart b/packages/flutter_splash_tizen/bin/create.dart index e4477e63d..0a409c0a7 100644 --- a/packages/flutter_splash_tizen/bin/create.dart +++ b/packages/flutter_splash_tizen/bin/create.dart @@ -5,8 +5,6 @@ void main() { var doc = loadYamlFileSync("pubspec.yaml")?['flutter_splash_tizen']; String color = doc["color"] ?? ""; //[TODO] generation of image in this color? String image = doc["image"] ?? ""; - bool tizenFlag = doc["tizen"] ?? false; - if (!tizenFlag) return; String tizenManifestPath = "tizen/tizen-manifest.xml"; @@ -31,6 +29,6 @@ void main() { splashScreen.setAttribute("app-control-operation", "true"); splashScreen.setAttribute("orientation", "portrait"); splashScreens.children.add(splashScreen); - + writeToFileSync(tizenManifestPath, el.toXmlString()); } From 2f6303c163c0cfee0e4b21c27d8e307754c656ee Mon Sep 17 00:00:00 2001 From: JRazek Date: Mon, 8 Nov 2021 13:00:57 +0100 Subject: [PATCH 10/39] flag fixes --- packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml index a45aa0d7c..fe7639fa8 100644 --- a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml +++ b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml @@ -5,9 +5,6 @@ ic_launcher.png - - - T-INFOLINK2021-1000 From 5917fcec1186642ad6db0b8513f2ef4be5626d12 Mon Sep 17 00:00:00 2001 From: JRazek Date: Mon, 8 Nov 2021 13:06:49 +0100 Subject: [PATCH 11/39] flag fixes --- packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml index fe7639fa8..83c768326 100644 --- a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml +++ b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml @@ -1,6 +1,6 @@ - + ic_launcher.png From 0f73916e09a1d81350f6d3216f552df5ea012905 Mon Sep 17 00:00:00 2001 From: JRazek Date: Mon, 8 Nov 2021 13:15:05 +0100 Subject: [PATCH 12/39] flag fixes --- packages/flutter_splash_tizen/bin/create.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/flutter_splash_tizen/bin/create.dart b/packages/flutter_splash_tizen/bin/create.dart index 0a409c0a7..bc513a61d 100644 --- a/packages/flutter_splash_tizen/bin/create.dart +++ b/packages/flutter_splash_tizen/bin/create.dart @@ -25,8 +25,7 @@ void main() { XmlElement splashScreen = XmlElement(XmlName("splash-screen")); splashScreen.setAttribute("src", image); splashScreen.setAttribute("type", "img"); - splashScreen.setAttribute("indicator-display", "true"); - splashScreen.setAttribute("app-control-operation", "true"); + splashScreen.setAttribute("indicator-display", "false"); splashScreen.setAttribute("orientation", "portrait"); splashScreens.children.add(splashScreen); From 07f43b3ba86abfd1a426aed66658d8b49c4848e2 Mon Sep 17 00:00:00 2001 From: JRazek Date: Mon, 8 Nov 2021 13:15:39 +0100 Subject: [PATCH 13/39] flag fixes --- packages/flutter_splash_tizen/bin/create.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/flutter_splash_tizen/bin/create.dart b/packages/flutter_splash_tizen/bin/create.dart index bc513a61d..27a9576c5 100644 --- a/packages/flutter_splash_tizen/bin/create.dart +++ b/packages/flutter_splash_tizen/bin/create.dart @@ -17,7 +17,7 @@ void main() { } XmlElement? splashScreens = uiApp.getElement("splash-screens"); if (splashScreens == null) { - splashScreens = XmlElement(XmlName("splash-screen")); + splashScreens = XmlElement(XmlName("splash-screens")); uiApp.children.add(splashScreens); } From b3a41f795bba405801ab5cdf1f216c3e34ec5d2f Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 08:27:24 +0100 Subject: [PATCH 14/39] suggested fixes and cleanups --- packages/flutter_splash_tizen/.metadata | 10 ---------- packages/flutter_splash_tizen/CHANGELOG.md | 3 +-- packages/flutter_splash_tizen/bin/create.dart | 13 ++++++++++--- .../flutter_splash_tizen/bin/file_utils.dart | 17 ++++------------- .../example/tizen/tizen-manifest.xml | 2 +- 5 files changed, 16 insertions(+), 29 deletions(-) delete mode 100644 packages/flutter_splash_tizen/.metadata diff --git a/packages/flutter_splash_tizen/.metadata b/packages/flutter_splash_tizen/.metadata deleted file mode 100644 index 7ea0729e8..000000000 --- a/packages/flutter_splash_tizen/.metadata +++ /dev/null @@ -1,10 +0,0 @@ -# This file tracks properties of this Flutter project. -# Used by Flutter tool to assess capabilities and perform upgrades etc. -# -# This file should be version controlled and should not be manually edited. - -version: - revision: ffb2ecea5223acdd139a5039be2f9c796962833d - channel: unknown - -project_type: plugin diff --git a/packages/flutter_splash_tizen/CHANGELOG.md b/packages/flutter_splash_tizen/CHANGELOG.md index fd17e71b4..e84569abf 100644 --- a/packages/flutter_splash_tizen/CHANGELOG.md +++ b/packages/flutter_splash_tizen/CHANGELOG.md @@ -1,3 +1,2 @@ -## 0.0.1 - +## 0.1.0 * Initial release \ No newline at end of file diff --git a/packages/flutter_splash_tizen/bin/create.dart b/packages/flutter_splash_tizen/bin/create.dart index 27a9576c5..b0c876e43 100644 --- a/packages/flutter_splash_tizen/bin/create.dart +++ b/packages/flutter_splash_tizen/bin/create.dart @@ -1,14 +1,21 @@ import 'file_utils.dart'; +import 'dart:io'; import 'package:xml/xml.dart'; void main() { - var doc = loadYamlFileSync("pubspec.yaml")?['flutter_splash_tizen']; + var doc = loadYamlFileSync("pubspec.yaml"); + if(doc == null) + throw FormatException("could not read pubspec.yaml!"); + String color = doc["color"] ?? ""; //[TODO] generation of image in this color? String image = doc["image"] ?? ""; String tizenManifestPath = "tizen/tizen-manifest.xml"; - XmlDocument tizenManifest = loadXMLFileSync(tizenManifestPath); + XmlDocument? tizenManifest = loadXMLFileSync(tizenManifestPath); + if(tizenManifest == null) + throw FormatException("could not read tizen-manifext.xml!"); + XmlNode el = tizenManifest.root; XmlElement? uiApp = el.getElement("manifest")?.getElement("ui-application"); @@ -29,5 +36,5 @@ void main() { splashScreen.setAttribute("orientation", "portrait"); splashScreens.children.add(splashScreen); - writeToFileSync(tizenManifestPath, el.toXmlString()); + File(tizenManifestPath).writeAsStringSync(el.toXmlString()); } diff --git a/packages/flutter_splash_tizen/bin/file_utils.dart b/packages/flutter_splash_tizen/bin/file_utils.dart index 77cb0d752..5b6004bdf 100644 --- a/packages/flutter_splash_tizen/bin/file_utils.dart +++ b/packages/flutter_splash_tizen/bin/file_utils.dart @@ -4,25 +4,16 @@ import 'package:xml/xml.dart'; Map? loadYamlFileSync(String path) { File file = File(path); - if (file.existsSync() == true) { + if (file.existsSync()) { return loadYaml(file.readAsStringSync()); } return null; } -XmlDocument loadXMLFileSync(String path) { +XmlDocument? loadXMLFileSync(String path) { File file = File(path); - if (file.existsSync() == true) { + if (file.existsSync()) { return XmlDocument.parse(file.readAsStringSync()); } - throw FormatException("could not read $path"); -} - -void writeToFileSync(String path, String data) { - File file = File(path); - if (file.existsSync() == true) { - file.writeAsStringSync(data); - } else { - throw FormatException("could not write to $path"); - } + return null; } diff --git a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml index 83c768326..a33a2af96 100644 --- a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml +++ b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml @@ -5,7 +5,7 @@ ic_launcher.png - + T-INFOLINK2021-1000 From 0aa13d93d7ece453d321eaa6e406652fc1d0c5f1 Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 08:28:56 +0100 Subject: [PATCH 15/39] version --- packages/flutter_splash_tizen/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/flutter_splash_tizen/pubspec.yaml b/packages/flutter_splash_tizen/pubspec.yaml index b8df2edeb..e2988549a 100644 --- a/packages/flutter_splash_tizen/pubspec.yaml +++ b/packages/flutter_splash_tizen/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_splash_tizen description: A new flutter plugin project. -version: 0.0.1 +version: 0.1.0 homepage: environment: From 02e6a45af50fe3a6ca5a0c2ec5d505121145b41d Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 08:31:09 +0100 Subject: [PATCH 16/39] homepage, repository --- packages/flutter_splash_tizen/pubspec.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/flutter_splash_tizen/pubspec.yaml b/packages/flutter_splash_tizen/pubspec.yaml index e2988549a..1ac52cc65 100644 --- a/packages/flutter_splash_tizen/pubspec.yaml +++ b/packages/flutter_splash_tizen/pubspec.yaml @@ -1,7 +1,8 @@ name: flutter_splash_tizen description: A new flutter plugin project. version: 0.1.0 -homepage: +homepage: https://github.com/flutter-tizen/plugins +repository: https://github.com/flutter-tizen/plugins/tree/master/packages/flutter_splash_tizen environment: sdk: ">=2.12.0 <3.0.0" @@ -10,7 +11,6 @@ environment: dependencies: flutter: sdk: flutter - image: ^3.0.8 xml: ^5.3.1 yaml: ^3.1.0 From 898757be3243021d759b6aae94a6fdc374ad021d Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 08:32:55 +0100 Subject: [PATCH 17/39] tv info removal --- .../flutter_splash_tizen/example/tizen/tizen-manifest.xml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml index a33a2af96..849419a40 100644 --- a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml +++ b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml @@ -5,9 +5,7 @@ ic_launcher.png - - - T-INFOLINK2021-1000 - + + From 0b43e665e9b87dc7851f1f7afb9f8b2128a52ffb Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 08:44:50 +0100 Subject: [PATCH 18/39] tizen-manifest cleanup --- packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml index 849419a40..43d9f8d82 100644 --- a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml +++ b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml @@ -5,7 +5,6 @@ ic_launcher.png - From 0cd16b6d8518a5ff573949257269c2324c3c36d9 Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 09:00:25 +0100 Subject: [PATCH 19/39] cleanup... --- packages/flutter_splash_tizen/LICENSE | 5 ---- packages/flutter_splash_tizen/README.md | 4 +-- .../analysis_options.yaml | 5 +--- packages/flutter_splash_tizen/bin/create.dart | 7 ++--- packages/flutter_splash_tizen/bin/remove.dart | 11 ++++++-- .../flutter_splash_tizen/example/.metadata | 10 ------- .../example/analysis_options.yaml | 27 +------------------ 7 files changed, 17 insertions(+), 52 deletions(-) delete mode 100644 packages/flutter_splash_tizen/example/.metadata diff --git a/packages/flutter_splash_tizen/LICENSE b/packages/flutter_splash_tizen/LICENSE index af489333e..23b23b458 100644 --- a/packages/flutter_splash_tizen/LICENSE +++ b/packages/flutter_splash_tizen/LICENSE @@ -1,4 +1,3 @@ -Copyright 2013 The Flutter Authors. All rights reserved. Copyright (c) 2021, Samsung Electronics Co., Ltd. All rights reserved. Redistribution and use in source and binary forms, with or without modification, @@ -10,10 +9,6 @@ are permitted provided that the following conditions are met: copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE diff --git a/packages/flutter_splash_tizen/README.md b/packages/flutter_splash_tizen/README.md index d7182f0e2..79afb7fb3 100644 --- a/packages/flutter_splash_tizen/README.md +++ b/packages/flutter_splash_tizen/README.md @@ -3,7 +3,7 @@ Flutter-tizen package that allows to add custom splash-screen images into your apps. ## Getting Started -First you should add the package to dependencies section in your `pubspec.yaml` +First you should add the package to dev_dependencies section in your `pubspec.yaml` ```yaml dependencies: @@ -13,7 +13,7 @@ After that run ``` flutter-tizen pub get ``` -in order to download all the dependencies.
+in order to download the dependency. By adding ```yaml diff --git a/packages/flutter_splash_tizen/analysis_options.yaml b/packages/flutter_splash_tizen/analysis_options.yaml index a5744c1cf..a3be6b826 100644 --- a/packages/flutter_splash_tizen/analysis_options.yaml +++ b/packages/flutter_splash_tizen/analysis_options.yaml @@ -1,4 +1 @@ -include: package:flutter_lints/flutter.yaml - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options +include: package:flutter_lints/flutter.yaml \ No newline at end of file diff --git a/packages/flutter_splash_tizen/bin/create.dart b/packages/flutter_splash_tizen/bin/create.dart index b0c876e43..f8a792557 100644 --- a/packages/flutter_splash_tizen/bin/create.dart +++ b/packages/flutter_splash_tizen/bin/create.dart @@ -3,12 +3,13 @@ import 'dart:io'; import 'package:xml/xml.dart'; void main() { - var doc = loadYamlFileSync("pubspec.yaml"); + var doc = loadYamlFileSync("pubspec.yaml")?['flutter_splash_tizen']; if(doc == null) throw FormatException("could not read pubspec.yaml!"); - String color = doc["color"] ?? ""; //[TODO] generation of image in this color? - String image = doc["image"] ?? ""; + String? image = doc["image"]; + if(image == null) + throw FormatException("could not find image section!"); String tizenManifestPath = "tizen/tizen-manifest.xml"; diff --git a/packages/flutter_splash_tizen/bin/remove.dart b/packages/flutter_splash_tizen/bin/remove.dart index 8b9cbc4f1..da4bfa087 100644 --- a/packages/flutter_splash_tizen/bin/remove.dart +++ b/packages/flutter_splash_tizen/bin/remove.dart @@ -1,11 +1,18 @@ import 'file_utils.dart'; import 'package:xml/xml.dart'; +import 'dart:io'; void main() { var doc = loadYamlFileSync("pubspec.yaml")?['flutter_splash_tizen']; + if(doc == null) + throw FormatException("could not read pubspec.yaml!"); + String tizenManifestPath = "tizen/tizen-manifest.xml"; - XmlDocument tizenManifest = loadXMLFileSync(tizenManifestPath); + XmlDocument? tizenManifest = loadXMLFileSync(tizenManifestPath); + if(tizenManifest == null) + throw FormatException("could not read tizen-manifext.xml!"); + XmlNode el = tizenManifest.root; XmlElement? splashScreens = el @@ -16,5 +23,5 @@ void main() { throw FormatException("error when reading $tizenManifestPath"); } splashScreens.children.clear(); - writeToFileSync(tizenManifestPath, el.toXmlString()); + File(tizenManifestPath).writeAsStringSync(el.toXmlString()); } diff --git a/packages/flutter_splash_tizen/example/.metadata b/packages/flutter_splash_tizen/example/.metadata deleted file mode 100644 index 51ec5564d..000000000 --- a/packages/flutter_splash_tizen/example/.metadata +++ /dev/null @@ -1,10 +0,0 @@ -# This file tracks properties of this Flutter project. -# Used by Flutter tool to assess capabilities and perform upgrades etc. -# -# This file should be version controlled and should not be manually edited. - -version: - revision: ffb2ecea5223acdd139a5039be2f9c796962833d - channel: unknown - -project_type: app diff --git a/packages/flutter_splash_tizen/example/analysis_options.yaml b/packages/flutter_splash_tizen/example/analysis_options.yaml index 61b6c4de1..f16eeada9 100644 --- a/packages/flutter_splash_tizen/example/analysis_options.yaml +++ b/packages/flutter_splash_tizen/example/analysis_options.yaml @@ -1,29 +1,4 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. - -# The following line activates a set of recommended lints for Flutter apps, -# packages, and plugins designed to encourage good coding practices. include: package:flutter_lints/flutter.yaml linter: - # The lint rules applied to this project can be customized in the - # section below to disable rules from the `package:flutter_lints/flutter.yaml` - # included above or to enable additional rules. A list of all available lints - # and their documentation is published at - # https://dart-lang.github.io/linter/lints/index.html. - # - # Instead of disabling a lint rule for the entire project in the - # section below, it can also be suppressed for a single line of code - # or a specific dart file by using the `// ignore: name_of_lint` and - # `// ignore_for_file: name_of_lint` syntax on the line or in the file - # producing the lint. - rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options + rules: \ No newline at end of file From 220a58d37bcfbdc6d7746e5df7625f5148c4facf Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 09:15:31 +0100 Subject: [PATCH 20/39] remove bug fix --- packages/flutter_splash_tizen/bin/remove.dart | 15 ++++++++------- packages/flutter_splash_tizen/example/README.md | 2 +- packages/flutter_splash_tizen/pubspec.yaml | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/flutter_splash_tizen/bin/remove.dart b/packages/flutter_splash_tizen/bin/remove.dart index da4bfa087..268756757 100644 --- a/packages/flutter_splash_tizen/bin/remove.dart +++ b/packages/flutter_splash_tizen/bin/remove.dart @@ -15,13 +15,14 @@ void main() { XmlNode el = tizenManifest.root; - XmlElement? splashScreens = el - .getElement("manifest") - ?.getElement("ui-application") - ?.getElement("splash-screens"); - if (splashScreens == null) { + XmlElement? uiApp = el.getElement("manifest")?.getElement("ui-application"); + if (uiApp == null) { throw FormatException("error when reading $tizenManifestPath"); } - splashScreens.children.clear(); - File(tizenManifestPath).writeAsStringSync(el.toXmlString()); + XmlElement? splashScreens = uiApp.getElement("splash-screens"); + + if (splashScreens != null) { + splashScreens.children.clear(); + File(tizenManifestPath).writeAsStringSync(el.toXmlString()); + } } diff --git a/packages/flutter_splash_tizen/example/README.md b/packages/flutter_splash_tizen/example/README.md index 813dd0a53..ef9236870 100644 --- a/packages/flutter_splash_tizen/example/README.md +++ b/packages/flutter_splash_tizen/example/README.md @@ -1,6 +1,6 @@ # flutter_splash_tizen_example -Demonstrates how to use the flutter_splash_tizen plugin. +Demonstrates how to use the flutter_splash_tizen package. ## Getting Started diff --git a/packages/flutter_splash_tizen/pubspec.yaml b/packages/flutter_splash_tizen/pubspec.yaml index 1ac52cc65..15ec58535 100644 --- a/packages/flutter_splash_tizen/pubspec.yaml +++ b/packages/flutter_splash_tizen/pubspec.yaml @@ -1,5 +1,5 @@ name: flutter_splash_tizen -description: A new flutter plugin project. +description: Flutter-tizen package that allows to add custom splash-screen images into your apps. version: 0.1.0 homepage: https://github.com/flutter-tizen/plugins repository: https://github.com/flutter-tizen/plugins/tree/master/packages/flutter_splash_tizen From 6301cb78621e52ad5fca1ca7a6422464272d8a6b Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 09:18:43 +0100 Subject: [PATCH 21/39] intergration test exclude --- .github/workflows/integration_test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/integration_test.yml b/.github/workflows/integration_test.yml index 3b787aeef..aa2b93dbe 100644 --- a/.github/workflows/integration_test.yml +++ b/.github/workflows/integration_test.yml @@ -43,7 +43,7 @@ jobs: --exclude wearable_rotary image_picker camera webview_flutter \ video_player permission_handler geolocator battery connectivity \ device_info package_info sensors share wifi_info_flutter \ - google_maps_flutter tizen_app_control url_launcher network_info_plus + google_maps_flutter tizen_app_control url_launcher network_info_plus flutter_splash_tizen # The following packages are excluded from tests: # wearable_rotary, image_picker: no tests. # camera: no supported profiles. @@ -53,3 +53,4 @@ jobs: # battery, connectivity, device_info, package_info, sensors, share, wifi_info_flutter: deprecated. # google_maps_flutter, webview_flutter, url_launcher, network_info_plus: not supported by emulators # tizen_app_control: test available after Flutter 2.5 migration. + # flutter_splash_tizen: non plugin package. From 2ce30eb84ffdae4ccc2d511a1735696b5200b5c8 Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 09:24:56 +0100 Subject: [PATCH 22/39] intergration test exclude --- .github/workflows/integration_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration_test.yml b/.github/workflows/integration_test.yml index aa2b93dbe..39a8419ac 100644 --- a/.github/workflows/integration_test.yml +++ b/.github/workflows/integration_test.yml @@ -32,7 +32,7 @@ jobs: --exclude wearable_rotary image_picker camera webview_flutter \ video_player permission_handler geolocator battery connectivity \ device_info package_info sensors share wifi_info_flutter \ - google_maps_flutter tizen_app_control url_launcher network_info_plus + google_maps_flutter tizen_app_control url_launcher network_info_plus flutter_splash_tizen - name: Run tests for all plugins if: ${{ github.event_name == 'push' }} run: | From e047ba7d81993cb8bda476d2455d20837862673b Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 10:01:05 +0100 Subject: [PATCH 23/39] integration, LICENSE --- .github/workflows/integration_test.yml | 9 +++++---- packages/flutter_splash_tizen/LICENSE | 6 +++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/integration_test.yml b/.github/workflows/integration_test.yml index 39a8419ac..8b934db50 100644 --- a/.github/workflows/integration_test.yml +++ b/.github/workflows/integration_test.yml @@ -32,7 +32,8 @@ jobs: --exclude wearable_rotary image_picker camera webview_flutter \ video_player permission_handler geolocator battery connectivity \ device_info package_info sensors share wifi_info_flutter \ - google_maps_flutter tizen_app_control url_launcher network_info_plus flutter_splash_tizen + google_maps_flutter tizen_app_control url_launcher network_info_plus \ + flutter_splash_tizen - name: Run tests for all plugins if: ${{ github.event_name == 'push' }} run: | @@ -43,9 +44,10 @@ jobs: --exclude wearable_rotary image_picker camera webview_flutter \ video_player permission_handler geolocator battery connectivity \ device_info package_info sensors share wifi_info_flutter \ - google_maps_flutter tizen_app_control url_launcher network_info_plus flutter_splash_tizen + google_maps_flutter tizen_app_control url_launcher network_info_plus \ + flutter_splash_tizen # The following packages are excluded from tests: - # wearable_rotary, image_picker: no tests. + # wearable_rotary, image_picker: no tests, flutter_splash_tizen: runs manually. # camera: no supported profiles. # video_player: test frequently breaks due to memory issue(https://github.com/flutter-tizen/plugins/issues/135). # permission_handler: permission related test. @@ -53,4 +55,3 @@ jobs: # battery, connectivity, device_info, package_info, sensors, share, wifi_info_flutter: deprecated. # google_maps_flutter, webview_flutter, url_launcher, network_info_plus: not supported by emulators # tizen_app_control: test available after Flutter 2.5 migration. - # flutter_splash_tizen: non plugin package. diff --git a/packages/flutter_splash_tizen/LICENSE b/packages/flutter_splash_tizen/LICENSE index 23b23b458..b8fc05698 100644 --- a/packages/flutter_splash_tizen/LICENSE +++ b/packages/flutter_splash_tizen/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2021, Samsung Electronics Co., Ltd. All rights reserved. +Copyright (c) 2021 Samsung Electronics Co., Ltd. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -9,6 +9,10 @@ are permitted provided that the following conditions are met: copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of the + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE From 5eacc8af5a00313f017a1843a5dfcc32ed181181 Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 10:03:07 +0100 Subject: [PATCH 24/39] new lines files --- packages/flutter_splash_tizen/CHANGELOG.md | 2 +- packages/flutter_splash_tizen/analysis_options.yaml | 2 +- packages/flutter_splash_tizen/example/analysis_options.yaml | 2 +- packages/flutter_splash_tizen/example/lib/main.dart | 2 +- packages/flutter_splash_tizen/pubspec.yaml | 1 - 5 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/flutter_splash_tizen/CHANGELOG.md b/packages/flutter_splash_tizen/CHANGELOG.md index e84569abf..9d0b371f8 100644 --- a/packages/flutter_splash_tizen/CHANGELOG.md +++ b/packages/flutter_splash_tizen/CHANGELOG.md @@ -1,2 +1,2 @@ ## 0.1.0 -* Initial release \ No newline at end of file +* Initial release diff --git a/packages/flutter_splash_tizen/analysis_options.yaml b/packages/flutter_splash_tizen/analysis_options.yaml index a3be6b826..f9b303465 100644 --- a/packages/flutter_splash_tizen/analysis_options.yaml +++ b/packages/flutter_splash_tizen/analysis_options.yaml @@ -1 +1 @@ -include: package:flutter_lints/flutter.yaml \ No newline at end of file +include: package:flutter_lints/flutter.yaml diff --git a/packages/flutter_splash_tizen/example/analysis_options.yaml b/packages/flutter_splash_tizen/example/analysis_options.yaml index f16eeada9..0bd999bf0 100644 --- a/packages/flutter_splash_tizen/example/analysis_options.yaml +++ b/packages/flutter_splash_tizen/example/analysis_options.yaml @@ -1,4 +1,4 @@ include: package:flutter_lints/flutter.yaml linter: - rules: \ No newline at end of file + rules: diff --git a/packages/flutter_splash_tizen/example/lib/main.dart b/packages/flutter_splash_tizen/example/lib/main.dart index 72c327c7a..d2a211a7a 100644 --- a/packages/flutter_splash_tizen/example/lib/main.dart +++ b/packages/flutter_splash_tizen/example/lib/main.dart @@ -17,4 +17,4 @@ class MyApp extends StatelessWidget { ), ); } -} \ No newline at end of file +} diff --git a/packages/flutter_splash_tizen/pubspec.yaml b/packages/flutter_splash_tizen/pubspec.yaml index 15ec58535..a2745b14f 100644 --- a/packages/flutter_splash_tizen/pubspec.yaml +++ b/packages/flutter_splash_tizen/pubspec.yaml @@ -18,4 +18,3 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^1.0.0 - \ No newline at end of file From 3944f4af1b2bc0d5e724659383df9e972fb559c8 Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 10:05:14 +0100 Subject: [PATCH 25/39] pretty XML --- packages/flutter_splash_tizen/bin/create.dart | 2 +- packages/flutter_splash_tizen/bin/remove.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/flutter_splash_tizen/bin/create.dart b/packages/flutter_splash_tizen/bin/create.dart index f8a792557..f20a942b2 100644 --- a/packages/flutter_splash_tizen/bin/create.dart +++ b/packages/flutter_splash_tizen/bin/create.dart @@ -37,5 +37,5 @@ void main() { splashScreen.setAttribute("orientation", "portrait"); splashScreens.children.add(splashScreen); - File(tizenManifestPath).writeAsStringSync(el.toXmlString()); + File(tizenManifestPath).writeAsStringSync(el.toXmlString(pretty: true, indent: ' ') + '\n'); } diff --git a/packages/flutter_splash_tizen/bin/remove.dart b/packages/flutter_splash_tizen/bin/remove.dart index 268756757..49f1c30d1 100644 --- a/packages/flutter_splash_tizen/bin/remove.dart +++ b/packages/flutter_splash_tizen/bin/remove.dart @@ -23,6 +23,6 @@ void main() { if (splashScreens != null) { splashScreens.children.clear(); - File(tizenManifestPath).writeAsStringSync(el.toXmlString()); + File(tizenManifestPath).writeAsStringSync(el.toXmlString(pretty: true, indent: ' ') + '\n'); } } From 1c44a2aefda17ae7d8c6330a4f9a638bb7fd4153 Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 10:28:01 +0100 Subject: [PATCH 26/39] example should be out of box working --- packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml index 43d9f8d82..585f29bd7 100644 --- a/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml +++ b/packages/flutter_splash_tizen/example/tizen/tizen-manifest.xml @@ -5,6 +5,9 @@ ic_launcher.png + + + From 6c75101649a148382b20308e3c2f829f95e95bd0 Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 19:43:03 +0100 Subject: [PATCH 27/39] file_utils.dart not needed anymore. Removed redundant file read. --- packages/flutter_splash_tizen/bin/create.dart | 20 ++++++++++++++++++- packages/flutter_splash_tizen/bin/remove.dart | 17 ++++++++++------ 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/packages/flutter_splash_tizen/bin/create.dart b/packages/flutter_splash_tizen/bin/create.dart index f20a942b2..3bed0793a 100644 --- a/packages/flutter_splash_tizen/bin/create.dart +++ b/packages/flutter_splash_tizen/bin/create.dart @@ -1,7 +1,25 @@ -import 'file_utils.dart'; import 'dart:io'; +import 'package:yaml/yaml.dart'; import 'package:xml/xml.dart'; + +Map? loadYamlFileSync(String path) { + File file = File(path); + if (file.existsSync()) { + return loadYaml(file.readAsStringSync()); + } + return null; +} + +XmlDocument? loadXMLFileSync(String path) { + File file = File(path); + if (file.existsSync()) { + return XmlDocument.parse(file.readAsStringSync()); + } + return null; +} + + void main() { var doc = loadYamlFileSync("pubspec.yaml")?['flutter_splash_tizen']; if(doc == null) diff --git a/packages/flutter_splash_tizen/bin/remove.dart b/packages/flutter_splash_tizen/bin/remove.dart index 49f1c30d1..e74d3e773 100644 --- a/packages/flutter_splash_tizen/bin/remove.dart +++ b/packages/flutter_splash_tizen/bin/remove.dart @@ -1,12 +1,17 @@ -import 'file_utils.dart'; -import 'package:xml/xml.dart'; import 'dart:io'; +import 'package:yaml/yaml.dart'; +import 'package:xml/xml.dart'; -void main() { - var doc = loadYamlFileSync("pubspec.yaml")?['flutter_splash_tizen']; - if(doc == null) - throw FormatException("could not read pubspec.yaml!"); +XmlDocument? loadXMLFileSync(String path) { + File file = File(path); + if (file.existsSync()) { + return XmlDocument.parse(file.readAsStringSync()); + } + return null; +} + +void main() { String tizenManifestPath = "tizen/tizen-manifest.xml"; XmlDocument? tizenManifest = loadXMLFileSync(tizenManifestPath); From f41ffb1d4b7d746d7f8708e9d7f1e130a083d229 Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 9 Nov 2021 19:45:21 +0100 Subject: [PATCH 28/39] remove not added fix --- .../flutter_splash_tizen/bin/file_utils.dart | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 packages/flutter_splash_tizen/bin/file_utils.dart diff --git a/packages/flutter_splash_tizen/bin/file_utils.dart b/packages/flutter_splash_tizen/bin/file_utils.dart deleted file mode 100644 index 5b6004bdf..000000000 --- a/packages/flutter_splash_tizen/bin/file_utils.dart +++ /dev/null @@ -1,19 +0,0 @@ -import 'dart:io'; -import 'package:yaml/yaml.dart'; -import 'package:xml/xml.dart'; - -Map? loadYamlFileSync(String path) { - File file = File(path); - if (file.existsSync()) { - return loadYaml(file.readAsStringSync()); - } - return null; -} - -XmlDocument? loadXMLFileSync(String path) { - File file = File(path); - if (file.existsSync()) { - return XmlDocument.parse(file.readAsStringSync()); - } - return null; -} From bbd104dcd9b14ba718c98f5613925e2bcb3b345e Mon Sep 17 00:00:00 2001 From: JRazek Date: Wed, 10 Nov 2021 10:30:03 +0100 Subject: [PATCH 29/39] integration tests comments --- .github/workflows/integration_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration_test.yml b/.github/workflows/integration_test.yml index 8b934db50..8e3c78dcf 100644 --- a/.github/workflows/integration_test.yml +++ b/.github/workflows/integration_test.yml @@ -47,7 +47,7 @@ jobs: google_maps_flutter tizen_app_control url_launcher network_info_plus \ flutter_splash_tizen # The following packages are excluded from tests: - # wearable_rotary, image_picker: no tests, flutter_splash_tizen: runs manually. + # wearable_rotary, image_picker, flutter_splash_tizen: no tests. # camera: no supported profiles. # video_player: test frequently breaks due to memory issue(https://github.com/flutter-tizen/plugins/issues/135). # permission_handler: permission related test. From e64f750bd496f8629f4d793fce5ea86fb20a6a06 Mon Sep 17 00:00:00 2001 From: JRazek Date: Wed, 10 Nov 2021 13:21:24 +0100 Subject: [PATCH 30/39] readme supported platforms --- packages/flutter_splash_tizen/README.md | 1 + packages/flutter_splash_tizen/example/README.md | 13 ------------- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/packages/flutter_splash_tizen/README.md b/packages/flutter_splash_tizen/README.md index 79afb7fb3..ac5abf57c 100644 --- a/packages/flutter_splash_tizen/README.md +++ b/packages/flutter_splash_tizen/README.md @@ -30,3 +30,4 @@ If you wish to remove the splash image from your app simply run ``` flutter-tizen pub run flutter_splash_tizen:remove ``` +Package has been tested on Mobile 6.0, Wearable 6.0 and IoT Headed 6.5 platform. diff --git a/packages/flutter_splash_tizen/example/README.md b/packages/flutter_splash_tizen/example/README.md index ef9236870..2d9e3b99f 100644 --- a/packages/flutter_splash_tizen/example/README.md +++ b/packages/flutter_splash_tizen/example/README.md @@ -1,16 +1,3 @@ # flutter_splash_tizen_example Demonstrates how to use the flutter_splash_tizen package. - -## Getting Started - -This project is a starting point for a Flutter application. - -A few resources to get you started if this is your first Flutter project: - -- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) -- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) - -For help getting started with Flutter, view our -[online documentation](https://flutter.dev/docs), which offers tutorials, -samples, guidance on mobile development, and a full API reference. From b3e87360f66923991eef23a04683d0c2573c17f5 Mon Sep 17 00:00:00 2001 From: JRazek Date: Mon, 15 Nov 2021 11:15:45 +0100 Subject: [PATCH 31/39] dart format --- packages/flutter_splash_tizen/bin/create.dart | 17 +++++++---------- packages/flutter_splash_tizen/bin/remove.dart | 8 ++++---- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/packages/flutter_splash_tizen/bin/create.dart b/packages/flutter_splash_tizen/bin/create.dart index 3bed0793a..18458a8ae 100644 --- a/packages/flutter_splash_tizen/bin/create.dart +++ b/packages/flutter_splash_tizen/bin/create.dart @@ -2,7 +2,6 @@ import 'dart:io'; import 'package:yaml/yaml.dart'; import 'package:xml/xml.dart'; - Map? loadYamlFileSync(String path) { File file = File(path); if (file.existsSync()) { @@ -19,22 +18,19 @@ XmlDocument? loadXMLFileSync(String path) { return null; } - void main() { var doc = loadYamlFileSync("pubspec.yaml")?['flutter_splash_tizen']; - if(doc == null) - throw FormatException("could not read pubspec.yaml!"); + if (doc == null) throw FormatException("could not read pubspec.yaml!"); String? image = doc["image"]; - if(image == null) - throw FormatException("could not find image section!"); + if (image == null) throw FormatException("could not find image section!"); String tizenManifestPath = "tizen/tizen-manifest.xml"; XmlDocument? tizenManifest = loadXMLFileSync(tizenManifestPath); - if(tizenManifest == null) + if (tizenManifest == null) throw FormatException("could not read tizen-manifext.xml!"); - + XmlNode el = tizenManifest.root; XmlElement? uiApp = el.getElement("manifest")?.getElement("ui-application"); @@ -54,6 +50,7 @@ void main() { splashScreen.setAttribute("indicator-display", "false"); splashScreen.setAttribute("orientation", "portrait"); splashScreens.children.add(splashScreen); - - File(tizenManifestPath).writeAsStringSync(el.toXmlString(pretty: true, indent: ' ') + '\n'); + + File(tizenManifestPath) + .writeAsStringSync(el.toXmlString(pretty: true, indent: ' ') + '\n'); } diff --git a/packages/flutter_splash_tizen/bin/remove.dart b/packages/flutter_splash_tizen/bin/remove.dart index e74d3e773..5ed2aada5 100644 --- a/packages/flutter_splash_tizen/bin/remove.dart +++ b/packages/flutter_splash_tizen/bin/remove.dart @@ -2,7 +2,6 @@ import 'dart:io'; import 'package:yaml/yaml.dart'; import 'package:xml/xml.dart'; - XmlDocument? loadXMLFileSync(String path) { File file = File(path); if (file.existsSync()) { @@ -15,9 +14,9 @@ void main() { String tizenManifestPath = "tizen/tizen-manifest.xml"; XmlDocument? tizenManifest = loadXMLFileSync(tizenManifestPath); - if(tizenManifest == null) + if (tizenManifest == null) throw FormatException("could not read tizen-manifext.xml!"); - + XmlNode el = tizenManifest.root; XmlElement? uiApp = el.getElement("manifest")?.getElement("ui-application"); @@ -28,6 +27,7 @@ void main() { if (splashScreens != null) { splashScreens.children.clear(); - File(tizenManifestPath).writeAsStringSync(el.toXmlString(pretty: true, indent: ' ') + '\n'); + File(tizenManifestPath) + .writeAsStringSync(el.toXmlString(pretty: true, indent: ' ') + '\n'); } } From 7794d00b567cb0b5333d2942a77bd7fbb871b002 Mon Sep 17 00:00:00 2001 From: JRazek Date: Mon, 15 Nov 2021 17:09:23 +0100 Subject: [PATCH 32/39] analyze --- packages/flutter_splash_tizen/bin/create.dart | 11 ++++++----- packages/flutter_splash_tizen/bin/remove.dart | 7 +++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/flutter_splash_tizen/bin/create.dart b/packages/flutter_splash_tizen/bin/create.dart index 18458a8ae..44d65a430 100644 --- a/packages/flutter_splash_tizen/bin/create.dart +++ b/packages/flutter_splash_tizen/bin/create.dart @@ -20,17 +20,18 @@ XmlDocument? loadXMLFileSync(String path) { void main() { var doc = loadYamlFileSync("pubspec.yaml")?['flutter_splash_tizen']; - if (doc == null) throw FormatException("could not read pubspec.yaml!"); + if (doc == null) throw const FormatException("could not read pubspec.yaml!"); String? image = doc["image"]; - if (image == null) throw FormatException("could not find image section!"); + if (image == null) + throw const FormatException("could not find image section!"); String tizenManifestPath = "tizen/tizen-manifest.xml"; XmlDocument? tizenManifest = loadXMLFileSync(tizenManifestPath); - if (tizenManifest == null) - throw FormatException("could not read tizen-manifext.xml!"); - + if (tizenManifest == null) { + throw const FormatException("could not read tizen-manifext.xml!"); + } XmlNode el = tizenManifest.root; XmlElement? uiApp = el.getElement("manifest")?.getElement("ui-application"); diff --git a/packages/flutter_splash_tizen/bin/remove.dart b/packages/flutter_splash_tizen/bin/remove.dart index 5ed2aada5..fea6a80e5 100644 --- a/packages/flutter_splash_tizen/bin/remove.dart +++ b/packages/flutter_splash_tizen/bin/remove.dart @@ -1,5 +1,4 @@ import 'dart:io'; -import 'package:yaml/yaml.dart'; import 'package:xml/xml.dart'; XmlDocument? loadXMLFileSync(String path) { @@ -14,9 +13,9 @@ void main() { String tizenManifestPath = "tizen/tizen-manifest.xml"; XmlDocument? tizenManifest = loadXMLFileSync(tizenManifestPath); - if (tizenManifest == null) - throw FormatException("could not read tizen-manifext.xml!"); - + if (tizenManifest == null) { + throw const FormatException("could not read tizen-manifext.xml!"); + } XmlNode el = tizenManifest.root; XmlElement? uiApp = el.getElement("manifest")?.getElement("ui-application"); From ce20502b6717b5be4909d30c3be85acc4cae6f9d Mon Sep 17 00:00:00 2001 From: JRazek Date: Tue, 16 Nov 2021 09:44:08 +0100 Subject: [PATCH 33/39] curly brackets and key widget constructor --- packages/flutter_splash_tizen/bin/create.dart | 4 ++-- packages/flutter_splash_tizen/example/lib/main.dart | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/flutter_splash_tizen/bin/create.dart b/packages/flutter_splash_tizen/bin/create.dart index 44d65a430..453cd961a 100644 --- a/packages/flutter_splash_tizen/bin/create.dart +++ b/packages/flutter_splash_tizen/bin/create.dart @@ -23,9 +23,9 @@ void main() { if (doc == null) throw const FormatException("could not read pubspec.yaml!"); String? image = doc["image"]; - if (image == null) + if (image == null) { throw const FormatException("could not find image section!"); - + } String tizenManifestPath = "tizen/tizen-manifest.xml"; XmlDocument? tizenManifest = loadXMLFileSync(tizenManifestPath); diff --git a/packages/flutter_splash_tizen/example/lib/main.dart b/packages/flutter_splash_tizen/example/lib/main.dart index d2a211a7a..dcb5bcd1e 100644 --- a/packages/flutter_splash_tizen/example/lib/main.dart +++ b/packages/flutter_splash_tizen/example/lib/main.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { + MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( From 3f1f7bb5c18c185f483f273b24935e142ab683d0 Mon Sep 17 00:00:00 2001 From: JRazek Date: Wed, 17 Nov 2021 12:35:14 +0100 Subject: [PATCH 34/39] formating, consts --- packages/flutter_splash_tizen/bin/create.dart | 4 ++-- packages/flutter_splash_tizen/bin/remove.dart | 19 ++++++------------- .../example/lib/main.dart | 2 +- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/packages/flutter_splash_tizen/bin/create.dart b/packages/flutter_splash_tizen/bin/create.dart index 453cd961a..65c73574a 100644 --- a/packages/flutter_splash_tizen/bin/create.dart +++ b/packages/flutter_splash_tizen/bin/create.dart @@ -26,7 +26,7 @@ void main() { if (image == null) { throw const FormatException("could not find image section!"); } - String tizenManifestPath = "tizen/tizen-manifest.xml"; + const String tizenManifestPath = "tizen/tizen-manifest.xml"; XmlDocument? tizenManifest = loadXMLFileSync(tizenManifestPath); if (tizenManifest == null) { @@ -36,7 +36,7 @@ void main() { XmlElement? uiApp = el.getElement("manifest")?.getElement("ui-application"); if (uiApp == null) { - throw FormatException("error when reading $tizenManifestPath"); + throw const FormatException("error when reading $tizenManifestPath"); } XmlElement? splashScreens = uiApp.getElement("splash-screens"); if (splashScreens == null) { diff --git a/packages/flutter_splash_tizen/bin/remove.dart b/packages/flutter_splash_tizen/bin/remove.dart index fea6a80e5..69f1a9972 100644 --- a/packages/flutter_splash_tizen/bin/remove.dart +++ b/packages/flutter_splash_tizen/bin/remove.dart @@ -1,26 +1,19 @@ import 'dart:io'; import 'package:xml/xml.dart'; -XmlDocument? loadXMLFileSync(String path) { - File file = File(path); - if (file.existsSync()) { - return XmlDocument.parse(file.readAsStringSync()); - } - return null; -} - void main() { - String tizenManifestPath = "tizen/tizen-manifest.xml"; - - XmlDocument? tizenManifest = loadXMLFileSync(tizenManifestPath); - if (tizenManifest == null) { + const String tizenManifestPath = "tizen/tizen-manifest.xml"; + File tizenManifestFile = File(tizenManifestPath); + if (!tizenManifestFile.existsSync()) { throw const FormatException("could not read tizen-manifext.xml!"); } + XmlDocument? tizenManifest = + XmlDocument.parse(tizenManifestFile.readAsStringSync()); XmlNode el = tizenManifest.root; XmlElement? uiApp = el.getElement("manifest")?.getElement("ui-application"); if (uiApp == null) { - throw FormatException("error when reading $tizenManifestPath"); + throw const FormatException("error when reading $tizenManifestPath"); } XmlElement? splashScreens = uiApp.getElement("splash-screens"); diff --git a/packages/flutter_splash_tizen/example/lib/main.dart b/packages/flutter_splash_tizen/example/lib/main.dart index dcb5bcd1e..9c08148e6 100644 --- a/packages/flutter_splash_tizen/example/lib/main.dart +++ b/packages/flutter_splash_tizen/example/lib/main.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { - MyApp({Key? key}) : super(key: key); + const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( From 73a964164eb8d1e1726b7b50a237549efd84ba2f Mon Sep 17 00:00:00 2001 From: JRazek Date: Wed, 17 Nov 2021 12:35:34 +0100 Subject: [PATCH 35/39] formating, consts --- packages/flutter_splash_tizen/example/lib/main.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/flutter_splash_tizen/example/lib/main.dart b/packages/flutter_splash_tizen/example/lib/main.dart index 9c08148e6..5a2c33a94 100644 --- a/packages/flutter_splash_tizen/example/lib/main.dart +++ b/packages/flutter_splash_tizen/example/lib/main.dart @@ -13,7 +13,7 @@ class MyApp extends StatelessWidget { title: const Text('Welcome to Flutter'), ), body: const Center( - child: Text('sample app for flutter splash tizen'), + child: const Text('sample app for flutter splash tizen'), ), ), ); From 718934e587a7b3f45d494a8d652b70e4c42a6b76 Mon Sep 17 00:00:00 2001 From: JRazek Date: Wed, 17 Nov 2021 14:14:05 +0100 Subject: [PATCH 36/39] readme, labeler --- .github/labeler.yml | 2 ++ packages/flutter_splash_tizen/example/lib/main.dart | 4 ++-- tools/recipe.yaml | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/labeler.yml b/.github/labeler.yml index 234f8a80b..dabbc6c4a 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -15,6 +15,8 @@ - packages/device_info/**/* 'p: device_info_plus': - packages/device_info_plus/**/* +'p: flutter_splash_tizen': + - packages/flutter_splash_tizen/**/* 'p: flutter_tts': - packages/flutter_tts/**/* 'p: geolocator': diff --git a/packages/flutter_splash_tizen/example/lib/main.dart b/packages/flutter_splash_tizen/example/lib/main.dart index 5a2c33a94..6407eee7c 100644 --- a/packages/flutter_splash_tizen/example/lib/main.dart +++ b/packages/flutter_splash_tizen/example/lib/main.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -void main() => runApp(MyApp()); +void main() => runApp(const MyApp()); class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @@ -13,7 +13,7 @@ class MyApp extends StatelessWidget { title: const Text('Welcome to Flutter'), ), body: const Center( - child: const Text('sample app for flutter splash tizen'), + child: Text('sample app for flutter splash tizen'), ), ), ); diff --git a/tools/recipe.yaml b/tools/recipe.yaml index b27d8061e..301731cfe 100644 --- a/tools/recipe.yaml +++ b/tools/recipe.yaml @@ -4,6 +4,7 @@ plugins: camera: [] connectivity_plus: ["wearable-5.5", "tv-6.0"] device_info_plus: ["wearable-5.5", "tv-6.0"] + flutter_splash_tizen: ["wearable-5.5"] flutter_tts: ["wearable-5.5", "tv-6.0"] geolocator: ["wearable-5.5"] google_maps_flutter: [] From 9a3a0d39706bdf80a3a186783bebfeb691a9c03b Mon Sep 17 00:00:00 2001 From: JRazek Date: Fri, 26 Nov 2021 16:00:27 +0100 Subject: [PATCH 37/39] not a package, formatting in pubspec --- packages/flutter_splash_tizen/README.md | 4 ++-- packages/flutter_splash_tizen/example/pubspec.yaml | 13 ++++--------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/packages/flutter_splash_tizen/README.md b/packages/flutter_splash_tizen/README.md index ac5abf57c..372e2b869 100644 --- a/packages/flutter_splash_tizen/README.md +++ b/packages/flutter_splash_tizen/README.md @@ -6,8 +6,8 @@ Flutter-tizen package that allows to add custom splash-screen images into your a First you should add the package to dev_dependencies section in your `pubspec.yaml` ```yaml -dependencies: - flutter_splash_tizen: ^0.0.1 +dev_dependencies: + flutter_splash_tizen: ^0.1.0 ``` After that run ``` diff --git a/packages/flutter_splash_tizen/example/pubspec.yaml b/packages/flutter_splash_tizen/example/pubspec.yaml index 29965e0d5..0c434dfe6 100644 --- a/packages/flutter_splash_tizen/example/pubspec.yaml +++ b/packages/flutter_splash_tizen/example/pubspec.yaml @@ -1,5 +1,5 @@ name: flutter_splash_tizen_example -description: Demonstrates how to use the flutter_splash_tizen plugin. +description: Demonstrates how to use the flutter_splash_tizen package. publish_to: 'none' @@ -7,19 +7,14 @@ environment: sdk: ">=2.12.0 <3.0.0" dependencies: - flutter: - sdk: flutter - - flutter_splash_tizen: - path: ../ - cupertino_icons: ^1.0.2 dev_dependencies: - flutter_test: + flutter: sdk: flutter - flutter_lints: ^1.0.0 + flutter_splash_tizen: + path: ../ flutter: uses-material-design: true From 7973e7b94ff68917a0d3d692dc43cc76412404f2 Mon Sep 17 00:00:00 2001 From: JRazek Date: Fri, 26 Nov 2021 16:13:07 +0100 Subject: [PATCH 38/39] published --- packages/flutter_splash_tizen/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/flutter_splash_tizen/pubspec.yaml b/packages/flutter_splash_tizen/pubspec.yaml index a2745b14f..618c1ac9b 100644 --- a/packages/flutter_splash_tizen/pubspec.yaml +++ b/packages/flutter_splash_tizen/pubspec.yaml @@ -1,8 +1,8 @@ name: flutter_splash_tizen description: Flutter-tizen package that allows to add custom splash-screen images into your apps. -version: 0.1.0 homepage: https://github.com/flutter-tizen/plugins repository: https://github.com/flutter-tizen/plugins/tree/master/packages/flutter_splash_tizen +version: 0.1.0 environment: sdk: ">=2.12.0 <3.0.0" From 18278a6f5e15f471fe96376d862e4efb48d4cae0 Mon Sep 17 00:00:00 2001 From: JRazek Date: Fri, 26 Nov 2021 16:17:55 +0100 Subject: [PATCH 39/39] readme wasnt added in the first push --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b25a3d910..a49f02d02 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ The _"non-endorsed"_ status means that the plugin is not endorsed by the origina | [**camera_tizen**](packages/camera) | [camera](https://github.com/flutter/plugins/tree/master/packages/camera) (1st-party) | [![pub package](https://img.shields.io/pub/v/camera_tizen.svg)](https://pub.dev/packages/camera_tizen) | No | | [**connectivity_plus_tizen**](packages/connectivity_plus) | [connectivity_plus](https://github.com/fluttercommunity/plus_plugins/tree/main/packages/connectivity_plus) (1st-party) | [![pub package](https://img.shields.io/pub/v/connectivity_plus_tizen.svg)](https://pub.dev/packages/connectivity_plus_tizen) | No | | [**device_info_plus_tizen**](packages/device_info_plus) | [device_info_plus](https://github.com/fluttercommunity/plus_plugins/tree/main/packages/device_info_plus) (1st-party) | [![pub package](https://img.shields.io/pub/v/device_info_plus_tizen.svg)](https://pub.dev/packages/device_info_plus_tizen) | No | +| [**flutter_splash_tizen**](packages/flutter_splash_tizen) | (Tizen-only) | [![pub package](https://img.shields.io/pub/v/flutter_splash_tizen.svg)](https://pub.dev/packages/flutter_splash_tizen) | N/A | | [**flutter_tts_tizen**](packages/flutter_tts) | [flutter_tts](https://github.com/dlutton/flutter_tts) (3rd-party) | [![pub package](https://img.shields.io/pub/v/flutter_tts_tizen.svg)](https://pub.dev/packages/flutter_tts_tizen) | No | | [**geolocator_tizen**](packages/geolocator) | [geolocator](https://github.com/Baseflow/flutter-geolocator/tree/master/geolocator) (3rd-party) | [![pub package](https://img.shields.io/pub/v/geolocator_tizen.svg)](https://pub.dev/packages/geolocator_tizen) | No | | [**google_maps_flutter_tizen**](packages/google_maps_flutter) | [google_maps_flutter](https://github.com/flutter/plugins/tree/master/packages/google_maps_flutter) (1st-party) | [![pub package](https://img.shields.io/pub/v/google_maps_flutter_tizen.svg)](https://pub.dev/packages/google_maps_flutter_tizen) | No |