From 0fca6363118b59703dbe4b10a6cc5161d079506b Mon Sep 17 00:00:00 2001 From: unknown <55nknown@pm.me> Date: Tue, 1 Feb 2022 18:33:13 +0100 Subject: [PATCH] compile time version definition --- .vscode/launch.json | 4 ++-- changelog.md | 4 +++- filcnaplo/.gitignore | 1 - filcnaplo/build.sh | 19 +++++++++++++++++++ filcnaplo/lib/api/client.dart | 13 ++++++++++++- .../lib/api/providers/update_provider.dart | 7 ++----- filcnaplo/lib/app.dart | 1 + filcnaplo/lib/models/config.dart | 10 +++------- filcnaplo/lib/models/settings.dart | 10 +--------- filcnaplo/lib/utils/jwt.dart | 2 ++ filcnaplo/pubspec.yaml | 4 +--- filcnaplo/run.sh | 12 ++++++++++++ filcnaplo_kreta_api | 2 +- filcnaplo_mobile_ui | 2 +- 14 files changed, 60 insertions(+), 31 deletions(-) create mode 100644 filcnaplo/build.sh create mode 100644 filcnaplo/run.sh diff --git a/.vscode/launch.json b/.vscode/launch.json index ced4510..bff795b 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -7,8 +7,8 @@ { "name": "filcnaplo", "cwd": "filcnaplo", - "request": "launch", - "type": "dart" + "request": "attach", + "type": "dart", } ] } \ No newline at end of file diff --git a/changelog.md b/changelog.md index df35841..8442297 100644 --- a/changelog.md +++ b/changelog.md @@ -1,4 +1,6 @@ +- Órarendben dolgozatok javítása +- Kilógó félév jelző javítása a grafikonon - Dicséretes jegyek jelzése - Üzenet & Szellem jegy animációk - Design javítások -- Kisebb hibajavítások \ No newline at end of file +- Kisebb hibajavítások diff --git a/filcnaplo/.gitignore b/filcnaplo/.gitignore index 99287a2..0fa6b67 100644 --- a/filcnaplo/.gitignore +++ b/filcnaplo/.gitignore @@ -8,7 +8,6 @@ .buildlog/ .history .svn/ -build.sh # IntelliJ related *.iml diff --git a/filcnaplo/build.sh b/filcnaplo/build.sh new file mode 100644 index 0000000..c784b09 --- /dev/null +++ b/filcnaplo/build.sh @@ -0,0 +1,19 @@ +#!/bin/fish + +# With build number +function get_version_bn + cat pubspec.yaml | grep version: | cut -d' ' -f2 +end + +function get_version + cat pubspec.yaml | grep version: | cut -d' ' -f2 | cut -d+ -f1 +end + +if test -e /mnt/enc/keys/filc3.properties + set -x ANDROID_SIGNING /mnt/enc/keys/filc3.properties +else + +flutter build apk --dart-define=APPVER=(get_version) +cp -v "build/app/outputs/flutter-apk/app-release.apk" ~/"Desktop/hu.filc.naplo_"(get_version_bn).apk + +notify-send "Flutter" "Apk build done." \ No newline at end of file diff --git a/filcnaplo/lib/api/client.dart b/filcnaplo/lib/api/client.dart index 2fabfe7..0a8e049 100644 --- a/filcnaplo/lib/api/client.dart +++ b/filcnaplo/lib/api/client.dart @@ -1,6 +1,7 @@ // ignore_for_file: avoid_print import 'dart:convert'; +import 'dart:developer'; import 'package:filcnaplo/models/config.dart'; import 'package:filcnaplo/models/news.dart'; @@ -45,14 +46,20 @@ class FilcAPI { } catch (error) { print("ERROR: FilcAPI.getSchools: $error"); } + return null; } static Future getConfig(SettingsProvider settings) async { + final userAgent = SettingsProvider.defaultSettings().config.userAgent; + Map headers = { "x-filc-id": settings.xFilcId, - "user-agent": SettingsProvider.defaultSettings().config.userAgent, + "user-agent": userAgent, }; + log("[CONFIG] x-filc-id: \"${settings.xFilcId}\""); + log("[CONFIG] user-agent: \"$userAgent\""); + try { http.Response res = await http.get(Uri.parse(config), headers: headers); @@ -66,6 +73,7 @@ class FilcAPI { } catch (error) { print("ERROR: FilcAPI.getConfig: $error"); } + return null; } static Future?> getNews() async { @@ -80,6 +88,7 @@ class FilcAPI { } catch (error) { print("ERROR: FilcAPI.getNews: $error"); } + return null; } static Future getSupporters() async { @@ -94,6 +103,7 @@ class FilcAPI { } catch (error) { print("ERROR: FilcAPI.getSupporters: $error"); } + return null; } static Future?> getReleases() async { @@ -108,6 +118,7 @@ class FilcAPI { } catch (error) { print("ERROR: FilcAPI.getReleases: $error"); } + return null; } static Future downloadRelease(Release release) { diff --git a/filcnaplo/lib/api/providers/update_provider.dart b/filcnaplo/lib/api/providers/update_provider.dart index e72f2bd..f23f23f 100644 --- a/filcnaplo/lib/api/providers/update_provider.dart +++ b/filcnaplo/lib/api/providers/update_provider.dart @@ -3,14 +3,12 @@ import 'dart:io'; import 'package:filcnaplo/api/client.dart'; import 'package:filcnaplo/models/release.dart'; import 'package:flutter/material.dart'; -import 'package:package_info_plus/package_info_plus.dart'; class UpdateProvider extends ChangeNotifier { // Private late List _releases; bool _available = false; bool get available => _available && _releases.isNotEmpty; - PackageInfo? _packageInfo; // Public List get releases => _releases; @@ -20,10 +18,9 @@ class UpdateProvider extends ChangeNotifier { required BuildContext context, }) { _releases = List.castFrom(initialReleases); - PackageInfo.fromPlatform().then((value) => _packageInfo = value); } - String get currentVersion => _packageInfo?.version ?? ""; + static const currentVersion = String.fromEnvironment("APPVER", defaultValue: "1.0"); Future fetch() async { if (!Platform.isAndroid) return; @@ -33,7 +30,7 @@ class UpdateProvider extends ChangeNotifier { // Check for new releases if (_releases.isNotEmpty) { - _available = _packageInfo != null && _releases.first.version.compareTo(Version.fromString(currentVersion)) == 1; + _available = _releases.first.version.compareTo(Version.fromString(currentVersion)) == 1; // ignore: avoid_print if (_available) print("INFO: New update: ${releases.first.version}"); notifyListeners(); diff --git a/filcnaplo/lib/app.dart b/filcnaplo/lib/app.dart index 77941cf..d94bd2f 100644 --- a/filcnaplo/lib/app.dart +++ b/filcnaplo/lib/app.dart @@ -143,6 +143,7 @@ class App extends StatelessWidget { case "settings": return settingsRoute(const SettingsScreen()); } + return null; // else if platform == windows || ... } diff --git a/filcnaplo/lib/models/config.dart b/filcnaplo/lib/models/config.dart index 87e022b..197231e 100644 --- a/filcnaplo/lib/models/config.dart +++ b/filcnaplo/lib/models/config.dart @@ -1,15 +1,11 @@ import 'dart:io'; -import 'package:package_info_plus/package_info_plus.dart'; - class Config { String _userAgent; - String? _version; Map? json; + static const String _version = String.fromEnvironment("APPVER", defaultValue: "2.2.0"); - Config({required String userAgent, this.json}) : _userAgent = userAgent { - PackageInfo.fromPlatform().then((value) => _version = value.version); - } + Config({required String userAgent, this.json}) : _userAgent = userAgent; factory Config.fromJson(Map json) { return Config( @@ -18,7 +14,7 @@ class Config { ); } - String get userAgent => _userAgent.replaceAll("\$0", _version ?? "0").replaceAll("\$1", platform).replaceAll("\$2", "0"); + String get userAgent => _userAgent.replaceAll("\$0", _version).replaceAll("\$1", platform).replaceAll("\$2", "0"); static String get platform { if (Platform.isAndroid) { diff --git a/filcnaplo/lib/models/settings.dart b/filcnaplo/lib/models/settings.dart index d58d4d3..ffb2666 100644 --- a/filcnaplo/lib/models/settings.dart +++ b/filcnaplo/lib/models/settings.dart @@ -4,7 +4,6 @@ import 'package:filcnaplo/api/providers/database_provider.dart'; import 'package:filcnaplo/models/config.dart'; import 'package:filcnaplo/theme.dart'; import 'package:flutter/material.dart'; -import 'package:package_info_plus/package_info_plus.dart'; import 'package:provider/provider.dart'; import 'package:uuid/uuid.dart'; @@ -13,8 +12,6 @@ enum UpdateChannel { stable, beta, dev } enum VibrationStrength { off, light, medium, strong } class SettingsProvider extends ChangeNotifier { - PackageInfo? _packageInfo; - // en_en, hu_hu, de_de String _language; Pages _startPage; @@ -86,11 +83,7 @@ class SettingsProvider extends ChangeNotifier { _swapABweeks = swapABweeks, _updateChannel = updateChannel, _config = config, - _xFilcId = xFilcId { - PackageInfo.fromPlatform().then((PackageInfo packageInfo) { - _packageInfo = packageInfo; - }); - } + _xFilcId = xFilcId; factory SettingsProvider.fromMap(Map map) { return SettingsProvider( @@ -194,7 +187,6 @@ class SettingsProvider extends ChangeNotifier { bool get abWeeks => _abWeeks; bool get swapABweeks => _swapABweeks; UpdateChannel get updateChannel => _updateChannel; - PackageInfo? get packageInfo => _packageInfo; Config get config => _config; String get xFilcId => _xFilcId; diff --git a/filcnaplo/lib/utils/jwt.dart b/filcnaplo/lib/utils/jwt.dart index fa6ea85..2602ad5 100644 --- a/filcnaplo/lib/utils/jwt.dart +++ b/filcnaplo/lib/utils/jwt.dart @@ -20,6 +20,7 @@ class JwtUtils { // ignore: avoid_print print("ERROR: JwtUtils.decodeJwt: $error"); } + return null; } static String? getNameFromJWT(String jwt) { @@ -36,5 +37,6 @@ class JwtUtils { case "Gondviselo": return Role.parent; } + return null; } } diff --git a/filcnaplo/pubspec.yaml b/filcnaplo/pubspec.yaml index a2f775a..780a80a 100644 --- a/filcnaplo/pubspec.yaml +++ b/filcnaplo/pubspec.yaml @@ -3,7 +3,7 @@ description: "Nem hivatalos e-napló alkalmazás az e-Kréta rendszerhez" homepage: https://filcnaplo.hu publish_to: "none" -version: 3.2.3+147 +version: 3.2.3+148 environment: sdk: ">=2.16.0-80.1.beta <3.0.0" @@ -34,13 +34,11 @@ dependencies: path_provider: ^2.0.2 permission_handler: ^8.3.0 share_plus: ^3.0.4 - package_info_plus: ^1.0.6 connectivity_plus: ^2.0.2 flutter_displaymode: ^0.3.2 quick_actions: ^0.6.0 implicitly_animated_reorderable_list: ^0.4.2 - dev_dependencies: flutter_test: sdk: flutter diff --git a/filcnaplo/run.sh b/filcnaplo/run.sh new file mode 100644 index 0000000..495e44e --- /dev/null +++ b/filcnaplo/run.sh @@ -0,0 +1,12 @@ +#!/bin/fish + +function get_version + cat pubspec.yaml | grep version: | cut -d' ' -f2 | cut -d+ -f1 +end + + +if test -e /mnt/enc/keys/filc3.properties + set -x ANDROID_SIGNING /mnt/enc/keys/filc3.properties +end + +flutter run --debug --dart-define=APPVER=(get_version) diff --git a/filcnaplo_kreta_api b/filcnaplo_kreta_api index bab39c9..a5b02cc 160000 --- a/filcnaplo_kreta_api +++ b/filcnaplo_kreta_api @@ -1 +1 @@ -Subproject commit bab39c9eb4160b4140b63b6a95b8679b441aabee +Subproject commit a5b02cc2c8dc6ea65291fdba0f8f7d35a50b2cd5 diff --git a/filcnaplo_mobile_ui b/filcnaplo_mobile_ui index e1dced5..ac16642 160000 --- a/filcnaplo_mobile_ui +++ b/filcnaplo_mobile_ui @@ -1 +1 @@ -Subproject commit e1dced5d35fcd0dbb9974f2f39fb9dc3b3d2e28b +Subproject commit ac16642564f7e715fb39c43c0eb5b130b80874cc