Patch for web compatibility
This commit is contained in:
parent
444d67cb28
commit
de6d767a38
6 changed files with 25 additions and 13 deletions
|
@ -9,7 +9,7 @@ class TTConsts {
|
|||
static get SESSION_SERVER =>
|
||||
"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 UpdateChannel UPDATE_CHANNEL = UpdateChannel.beta;
|
||||
|
|
|
@ -25,6 +25,9 @@ class SessionData {
|
|||
static String LastSessionID = "";
|
||||
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.
|
||||
static bool IsReadOnly = false;
|
||||
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_map_tile_caching/flutter_map_tile_caching.dart';
|
||||
import 'package:timetrack/consts.dart';
|
||||
|
@ -7,7 +9,12 @@ import 'package:timetrack/pages/MainApp.dart';
|
|||
Future<void> main() async {
|
||||
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"] ?? "";
|
||||
|
||||
SessionData.LastSessionID = sess;
|
||||
|
@ -19,9 +26,8 @@ Future<void> main() async {
|
|||
}
|
||||
}
|
||||
|
||||
await FMTCObjectBoxBackend().initialise();
|
||||
|
||||
await FMTCStore('mapStore').manage.create();
|
||||
if (!SessionData.isWeb) await FMTCObjectBoxBackend().initialise();
|
||||
if (!SessionData.isWeb) await FMTCStore('mapStore').manage.create();
|
||||
|
||||
runApp(MainApp());
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:timetrack/data.dart';
|
||||
import 'package:timetrack/pages/HomePage.dart';
|
||||
import 'package:timetrack/pages/MapPage.dart';
|
||||
import 'package:timetrack/pages/UpdateSettings.dart';
|
||||
|
@ -27,7 +26,7 @@ class MainAppState extends State<MainApp> {
|
|||
return MaterialApp(
|
||||
title: "Time Tracker",
|
||||
routes: {
|
||||
"/": (ctx) => Platform.isAndroid ? HomePage() : WebMain(),
|
||||
"/": (ctx) => !SessionData.isWeb ? HomePage() : WebMain(),
|
||||
"/upd": (ctx) => UpdateSettingsPage(),
|
||||
"/map": (ctx) => MapPage(),
|
||||
"/work": (ctx) => WorkDataPage(),
|
||||
|
|
|
@ -21,9 +21,7 @@ class _MapPage extends State<MapPage> {
|
|||
List<Marker> Markers = [];
|
||||
bool autorefresh = true;
|
||||
|
||||
final _tileProvider = FMTCTileProvider(
|
||||
stores: const {'mapStore': BrowseStoreStrategy.readUpdateCreate},
|
||||
);
|
||||
late FMTCTileProvider _tileProvider;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
|
@ -40,6 +38,11 @@ class _MapPage extends State<MapPage> {
|
|||
|
||||
@override
|
||||
void didChangeDependencies() {
|
||||
if (!SessionData.isWeb) {
|
||||
_tileProvider = FMTCTileProvider(
|
||||
stores: const {'mapStore': BrowseStoreStrategy.readUpdateCreate},
|
||||
);
|
||||
}
|
||||
PointMap = [];
|
||||
Markers = [];
|
||||
|
||||
|
@ -141,7 +144,8 @@ class _MapPage extends State<MapPage> {
|
|||
TileLayer(
|
||||
urlTemplate: "https://tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||
userAgentPackageName: "dev.zontreck.timetrack",
|
||||
tileProvider: _tileProvider,
|
||||
|
||||
tileProvider: SessionData.isWeb ? null : _tileProvider,
|
||||
),
|
||||
PolylineLayer(
|
||||
polylines: [
|
||||
|
|
|
@ -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
|
||||
# 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.
|
||||
version: 1.0.0-beta.6
|
||||
version: 1.0.0-beta.7
|
||||
|
||||
environment:
|
||||
sdk: ^3.7.2
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue