Patch for web compatibility

This commit is contained in:
zontreck 2025-05-17 02:34:15 -07:00
parent 444d67cb28
commit de6d767a38
6 changed files with 25 additions and 13 deletions

View file

@ -9,7 +9,7 @@ class TTConsts {
static get SESSION_SERVER => static get SESSION_SERVER =>
"https://api.zontreck.com/timetrack/$UPDATE_CHANNEL/timetrack.php"; "https://api.zontreck.com/timetrack/$UPDATE_CHANNEL/timetrack.php";
static const VERSION = "1.0.0-beta.6"; static const VERSION = "1.0.0-beta.7";
static bool UPDATE_AVAILABLE = false; static bool UPDATE_AVAILABLE = false;
static UpdateChannel UPDATE_CHANNEL = UpdateChannel.beta; static UpdateChannel UPDATE_CHANNEL = UpdateChannel.beta;

View file

@ -25,6 +25,9 @@ class SessionData {
static String LastSessionID = ""; static String LastSessionID = "";
static String DisplayError = ""; static String DisplayError = "";
/// Is true if the try-catch is tripped or if not running on Android
static bool isWeb = false;
/// This flag is usually set when data is loaded from a saved state. Or when accessed using the Web version of the app. /// This flag is usually set when data is loaded from a saved state. Or when accessed using the Web version of the app.
static bool IsReadOnly = false; static bool IsReadOnly = false;

View file

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_map_tile_caching/flutter_map_tile_caching.dart'; import 'package:flutter_map_tile_caching/flutter_map_tile_caching.dart';
import 'package:timetrack/consts.dart'; import 'package:timetrack/consts.dart';
@ -7,7 +9,12 @@ import 'package:timetrack/pages/MainApp.dart';
Future<void> main() async { Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
await TTConsts.checkUpdate(); SessionData.isWeb = true;
try {
SessionData.isWeb = !Platform.isAndroid;
} catch (E) {}
if (!SessionData.isWeb) await TTConsts.checkUpdate();
var sess = Uri.base.queryParameters["code"] ?? ""; var sess = Uri.base.queryParameters["code"] ?? "";
SessionData.LastSessionID = sess; SessionData.LastSessionID = sess;
@ -19,9 +26,8 @@ Future<void> main() async {
} }
} }
await FMTCObjectBoxBackend().initialise(); if (!SessionData.isWeb) await FMTCObjectBoxBackend().initialise();
if (!SessionData.isWeb) await FMTCStore('mapStore').manage.create();
await FMTCStore('mapStore').manage.create();
runApp(MainApp()); runApp(MainApp());
} }

View file

@ -1,6 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:timetrack/data.dart';
import 'package:timetrack/pages/HomePage.dart'; import 'package:timetrack/pages/HomePage.dart';
import 'package:timetrack/pages/MapPage.dart'; import 'package:timetrack/pages/MapPage.dart';
import 'package:timetrack/pages/UpdateSettings.dart'; import 'package:timetrack/pages/UpdateSettings.dart';
@ -27,7 +26,7 @@ class MainAppState extends State<MainApp> {
return MaterialApp( return MaterialApp(
title: "Time Tracker", title: "Time Tracker",
routes: { routes: {
"/": (ctx) => Platform.isAndroid ? HomePage() : WebMain(), "/": (ctx) => !SessionData.isWeb ? HomePage() : WebMain(),
"/upd": (ctx) => UpdateSettingsPage(), "/upd": (ctx) => UpdateSettingsPage(),
"/map": (ctx) => MapPage(), "/map": (ctx) => MapPage(),
"/work": (ctx) => WorkDataPage(), "/work": (ctx) => WorkDataPage(),

View file

@ -21,9 +21,7 @@ class _MapPage extends State<MapPage> {
List<Marker> Markers = []; List<Marker> Markers = [];
bool autorefresh = true; bool autorefresh = true;
final _tileProvider = FMTCTileProvider( late FMTCTileProvider _tileProvider;
stores: const {'mapStore': BrowseStoreStrategy.readUpdateCreate},
);
@override @override
void initState() { void initState() {
@ -40,6 +38,11 @@ class _MapPage extends State<MapPage> {
@override @override
void didChangeDependencies() { void didChangeDependencies() {
if (!SessionData.isWeb) {
_tileProvider = FMTCTileProvider(
stores: const {'mapStore': BrowseStoreStrategy.readUpdateCreate},
);
}
PointMap = []; PointMap = [];
Markers = []; Markers = [];
@ -141,7 +144,8 @@ class _MapPage extends State<MapPage> {
TileLayer( TileLayer(
urlTemplate: "https://tile.openstreetmap.org/{z}/{x}/{y}.png", urlTemplate: "https://tile.openstreetmap.org/{z}/{x}/{y}.png",
userAgentPackageName: "dev.zontreck.timetrack", userAgentPackageName: "dev.zontreck.timetrack",
tileProvider: _tileProvider,
tileProvider: SessionData.isWeb ? null : _tileProvider,
), ),
PolylineLayer( PolylineLayer(
polylines: [ polylines: [

View file

@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts # In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix. # of the product and file versions while build-number is used as the build suffix.
version: 1.0.0-beta.6 version: 1.0.0-beta.7
environment: environment:
sdk: ^3.7.2 sdk: ^3.7.2