No need update check for web
This commit is contained in:
@@ -3,6 +3,7 @@ import 'package:flutter/foundation.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:pub_semver/pub_semver.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:supabase_flutter/supabase_flutter.dart';
|
||||
|
||||
@@ -41,16 +42,40 @@ class _AppUpdateScreenState extends ConsumerState<AppUpdateScreen> {
|
||||
Future<void> _loadCurrent() async {
|
||||
try {
|
||||
final client = Supabase.instance.client;
|
||||
final data = await client
|
||||
.from('app_versions')
|
||||
.select()
|
||||
.order('version_code', ascending: false)
|
||||
.limit(1)
|
||||
.maybeSingle();
|
||||
if (data is Map<String, dynamic>) {
|
||||
_versionController.text = data['version_code']?.toString() ?? '';
|
||||
_minController.text = data['min_version_required']?.toString() ?? '';
|
||||
_notesController.text = data['release_notes'] ?? '';
|
||||
final rows = await client.from('app_versions').select().maybeSingle();
|
||||
// when using text versions we can't rely on server-side ordering; instead
|
||||
// parse locally and choose the greatest semantic version.
|
||||
if (rows is List) {
|
||||
final rowList = rows as List?;
|
||||
Version? best;
|
||||
Map<String, dynamic>? bestRow;
|
||||
if (rowList != null) {
|
||||
for (final r in rowList) {
|
||||
if (r is Map<String, dynamic>) {
|
||||
final v = r['version_code']?.toString() ?? '';
|
||||
Version parsed;
|
||||
try {
|
||||
parsed = Version.parse(v);
|
||||
} catch (_) {
|
||||
continue;
|
||||
}
|
||||
if (best == null || parsed > best) {
|
||||
best = parsed;
|
||||
bestRow = r;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bestRow != null) {
|
||||
_versionController.text = bestRow['version_code']?.toString() ?? '';
|
||||
_minController.text =
|
||||
bestRow['min_version_required']?.toString() ?? '';
|
||||
_notesController.text = bestRow['release_notes'] ?? '';
|
||||
}
|
||||
} else if (rows is Map<String, dynamic>) {
|
||||
_versionController.text = rows['version_code']?.toString() ?? '';
|
||||
_minController.text = rows['min_version_required']?.toString() ?? '';
|
||||
_notesController.text = rows['release_notes'] ?? '';
|
||||
}
|
||||
} catch (_) {}
|
||||
}
|
||||
@@ -169,10 +194,11 @@ class _AppUpdateScreenState extends ConsumerState<AppUpdateScreen> {
|
||||
} else {
|
||||
url = '';
|
||||
}
|
||||
if (url.isEmpty)
|
||||
if (url.isEmpty) {
|
||||
throw Exception(
|
||||
'could not obtain public url, check bucket CORS and policies',
|
||||
);
|
||||
}
|
||||
_logs.add('Public URL: $url');
|
||||
// upsert new version in a single statement
|
||||
await client.from('app_versions').upsert({
|
||||
|
||||
Reference in New Issue
Block a user