From fcf5348f960f514a2710481f04c020e2c5025e12 Mon Sep 17 00:00:00 2001 From: zontreck Date: Wed, 14 May 2025 19:32:03 -0700 Subject: [PATCH] Fix up more of the update functions --- android/app/build.gradle.kts | 15 +++++- lib/consts.dart | 5 +- lib/pages/HomePage.dart | 94 +++++++++++++++++++----------------- lib/pages/MainApp.dart | 3 +- test/widget_test.dart | 13 +++-- 5 files changed, 75 insertions(+), 55 deletions(-) diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 241bd34..2cd3177 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -8,11 +8,13 @@ plugins { android { namespace = "dev.zontreck.timetrack" compileSdk = flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion + ndkVersion = "27.0.12077973" compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 + + isCoreLibraryDesugaringEnabled = true } kotlinOptions { @@ -28,6 +30,8 @@ android { targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName + + multiDexEnabled = true } buildTypes { @@ -39,6 +43,15 @@ android { } } +dependencies { + // For AGP 7.4+ + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") + // For AGP 7.3 + // coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.3' + // For AGP 4.0 to 7.2 + // coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.9' +} + flutter { source = "../.." } diff --git a/lib/consts.dart b/lib/consts.dart index 0258315..b96dc72 100644 --- a/lib/consts.dart +++ b/lib/consts.dart @@ -5,7 +5,7 @@ import 'package:dio/dio.dart'; class TTConsts { static const UPDATE_URL = "https://git.zontreck.com/AriasCreations/TimeTracker/raw/branch/main/latest-releases.json"; - static const VERSION = "1.0.0-dev.2"; + static const VERSION = "1.0.0-dev.3"; static bool UPDATE_AVAILABLE = false; static UpdateChannel UPDATE_CHANNEL = UpdateChannel.alpha; @@ -18,8 +18,9 @@ class TTConsts { if (VERSION == serverVersion) { // Up to date UPDATE_AVAILABLE = false; - } else + } else { UPDATE_AVAILABLE = true; + } } } diff --git a/lib/pages/HomePage.dart b/lib/pages/HomePage.dart index bf91cb2..57d5d43 100644 --- a/lib/pages/HomePage.dart +++ b/lib/pages/HomePage.dart @@ -1,11 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:libacflutter/Constants.dart'; import 'package:ota_update/ota_update.dart'; import 'package:timetrack/consts.dart'; class HomePage extends StatefulWidget { - HomePage({super.key}); + const HomePage({super.key}); @override State createState() { @@ -29,50 +28,59 @@ class _HomePageState extends State { ), drawer: Drawer( elevation: 8, - child: Column( - children: [ - DrawerHeader( - child: Column( - children: [ - Text("Time Tracker"), - Text("Created by Tara Piccari"), - Text("Copyright 2025 - Present"), - ], + child: SingleChildScrollView( + child: Column( + children: [ + DrawerHeader( + child: Column( + children: [ + Text("Time Tracker"), + Text("Created by Tara Piccari"), + Text("Copyright 2025 - Present"), + ], + ), ), - ), - DrawerHeader( - child: Column( - children: [ - Text("Version: ${TTConsts.VERSION}"), - Text("Update Channel: ${TTConsts.UPDATE_CHANNEL}"), - Text( - "* ${TTConsts.UPDATE_AVAILABLE ? "Update Is Available" : "You are up to date!"} *", - ), - ElevatedButton( - onPressed: () async { - await TTConsts.checkUpdate(); + DrawerHeader( + child: Column( + children: [ + Text("Version: ${TTConsts.VERSION}"), + Text("Update Channel: ${TTConsts.UPDATE_CHANNEL}"), + Text( + "* ${TTConsts.UPDATE_AVAILABLE ? "Update Is Available" : "You are up to date!"} *", + ), + ], + ), + ), + DrawerHeader( + child: Column( + children: [ + ElevatedButton( + onPressed: () async { + await TTConsts.checkUpdate(); - setState(() {}); - }, - child: Text("Check for Update"), - ), - ElevatedButton( - onPressed: () async { - OtaUpdate() - .execute( - "https://ci.zontreck.com/job/Projects/job/Dart/job/Time%20Tracker/job/main/lastSuccessfulBuild/artifact/build/app/outputs/flutter-apk/timetrack.apk", - destinationFilename: "timetrack.apk", - ) - .listen((OtaEvent event) { - //setState(() => currentEvent = event); - }); - }, - child: Text("Install Update"), - ), - ], + setState(() {}); + }, + child: Text("Check for Update"), + ), + if (TTConsts.UPDATE_AVAILABLE) + ElevatedButton( + onPressed: () async { + OtaUpdate() + .execute( + "https://ci.zontreck.com/job/Projects/job/Dart/job/Time%20Tracker/job/main/lastSuccessfulBuild/artifact/build/app/outputs/flutter-apk/timetrack.apk", + destinationFilename: "timetrack.apk", + ) + .listen((OtaEvent event) { + //setState(() => currentEvent = event); + }); + }, + child: Text("Install Update"), + ), + ], + ), ), - ), - ], + ], + ), ), ), ); diff --git a/lib/pages/MainApp.dart b/lib/pages/MainApp.dart index 47b13f9..47a1784 100644 --- a/lib/pages/MainApp.dart +++ b/lib/pages/MainApp.dart @@ -1,9 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:timetrack/pages/HomePage.dart'; class MainApp extends StatefulWidget { - MainApp({super.key}); + const MainApp({super.key}); @override State createState() { diff --git a/test/widget_test.dart b/test/widget_test.dart index 648e8b6..bf35d75 100644 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -5,7 +5,6 @@ // 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:timetrack/pages/MainApp.dart'; @@ -16,15 +15,15 @@ void main() { await tester.pumpWidget(MainApp()); // Verify that our counter starts at 0. - expect(find.text('0'), findsOneWidget); - expect(find.text('1'), findsNothing); + //expect(find.text('0'), findsOneWidget); + //expect(find.text('1'), findsNothing); // Tap the '+' icon and trigger a frame. - await tester.tap(find.byIcon(Icons.add)); - await tester.pump(); + //await tester.tap(find.byIcon(Icons.add)); + //await tester.pump(); // Verify that our counter has incremented. - expect(find.text('0'), findsNothing); - expect(find.text('1'), findsOneWidget); + //expect(find.text('0'), findsNothing); + //expect(find.text('1'), findsOneWidget); }); }