Revert "Rename everything filcnaplo-related to refilc"
This reverts commit d1a9625d93.
This commit is contained in:
62
filcnaplo/lib/api/providers/update_provider.dart
Normal file
62
filcnaplo/lib/api/providers/update_provider.dart
Normal file
@@ -0,0 +1,62 @@
|
||||
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<Release> _releases;
|
||||
bool _available = false;
|
||||
bool get available => _available && _releases.isNotEmpty;
|
||||
|
||||
// Public
|
||||
List<Release> get releases => _releases;
|
||||
|
||||
UpdateProvider({
|
||||
List<Release> initialReleases = const [],
|
||||
required BuildContext context,
|
||||
}) {
|
||||
_releases = List.castFrom(initialReleases);
|
||||
}
|
||||
|
||||
Future<void> fetch() async {
|
||||
late String currentVersion;
|
||||
PackageInfo packageInfo = await PackageInfo.fromPlatform();
|
||||
currentVersion = packageInfo.version;
|
||||
|
||||
if (!Platform.isAndroid) return;
|
||||
|
||||
_releases = await FilcAPI.getReleases() ?? [];
|
||||
_releases.sort((a, b) => -a.version.compareTo(b.version));
|
||||
|
||||
// Check for new releases
|
||||
if (_releases.isNotEmpty) {
|
||||
_available = _releases.first.version
|
||||
.compareTo(Version.fromString(currentVersion)) ==
|
||||
1;
|
||||
// ignore: avoid_print
|
||||
if (_available) print("INFO: New update: ${releases.first.version}");
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
Future<Map> installedVersion() async {
|
||||
PackageInfo packageInfo = await PackageInfo.fromPlatform();
|
||||
|
||||
String appName = packageInfo.appName;
|
||||
String packageName = packageInfo.packageName;
|
||||
String version = packageInfo.version;
|
||||
String buildNumber = packageInfo.buildNumber;
|
||||
|
||||
Map<String, String> release = {
|
||||
"app_name": appName,
|
||||
"package_name": packageName,
|
||||
"version": version,
|
||||
"build_number": buildNumber,
|
||||
};
|
||||
|
||||
return release;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user