Compare commits

...

7 Commits

Author SHA1 Message Date
fbff498ae1 Addresses #139 2022-12-05 20:10:42 -05:00
bb4e470760 Slight tweaks 2022-12-05 20:09:16 -05:00
15183c3a95 Simplified EVD (only xx.yy.zz) 2022-12-05 16:31:43 -05:00
b496a416ff Increment version 2022-12-05 15:56:43 -05:00
6ac7ba204f EVD bugfix 2022-12-05 15:46:47 -05:00
0951c007d1 Bugfix for enhanced version detection 2022-12-05 15:39:36 -05:00
d835beec76 Bugfix for localization error in BG 2022-12-05 14:57:38 -05:00
5 changed files with 30 additions and 17 deletions

View File

@ -17,7 +17,7 @@ import 'package:device_info_plus/device_info_plus.dart';
import 'package:android_alarm_manager_plus/android_alarm_manager_plus.dart';
import 'package:easy_localization/easy_localization.dart';
const String currentVersion = '0.8.2';
const String currentVersion = '0.8.4';
const String currentReleaseTag =
'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES
@ -25,10 +25,11 @@ const int bgUpdateCheckAlarmId = 666;
@pragma('vm:entry-point')
Future<void> bgUpdateCheck(int taskId, Map<String, dynamic>? params) async {
WidgetsFlutterBinding.ensureInitialized();
await EasyLocalization.ensureInitialized();
LogsProvider logs = LogsProvider();
logs.add(tr('startedBgUpdateTask'));
int? ignoreAfterMicroseconds = params?['ignoreAfterMicroseconds'];
WidgetsFlutterBinding.ensureInitialized();
await AndroidAlarmManager.initialize();
DateTime? ignoreAfter = ignoreAfterMicroseconds != null
? DateTime.fromMicrosecondsSinceEpoch(ignoreAfterMicroseconds)

View File

@ -114,7 +114,7 @@ class _AppPageState extends State<AppPage> {
height: 32,
),
Text(
'Last Update Check: ${app?.app.lastUpdateCheck == null ? 'Never' : '\n${app?.app.lastUpdateCheck?.toLocal()}'}',
'Last Update Check: ${app?.app.lastUpdateCheck == null ? 'Never' : '\n${app?.app.lastUpdateCheck?.toLocal()}'}${app?.app.enhancedVersionDetection == true ? '\n\nThis App has enhanced version detection.' : ''}',
textAlign: TextAlign.center,
style: const TextStyle(
fontStyle: FontStyle.italic, fontSize: 12),

View File

@ -416,7 +416,15 @@ class AppsProvider with ChangeNotifier {
app.installedVersion = null;
modded = true;
} else if (installedInfo != null && app.installedVersion == null) {
app.installedVersion = installedInfo.versionName;
if (app.enhancedVersionDetection) {
app.installedVersion = installedInfo.versionName;
} else {
if (app.latestVersion.contains(installedInfo.versionName!)) {
app.installedVersion = app.latestVersion;
} else {
app.installedVersion = installedInfo.versionName;
}
}
modded = true;
} else if (installedInfo?.versionName != app.installedVersion &&
app.enhancedVersionDetection &&

View File

@ -27,13 +27,14 @@ class AppNames {
class APKDetails {
late String version;
late String versionFromSource;
late bool isStandardVersion;
late List<String> apkUrls;
late bool isStandardVersionName;
APKDetails(version, this.apkUrls) {
var standardVersion = extractStandardVersionName(version);
isStandardVersionName = standardVersion != null;
this.version = standardVersion ?? version;
APKDetails(this.versionFromSource, this.apkUrls) {
var temp = extractStandardVersionName(versionFromSource);
isStandardVersion = temp != null;
version = temp ?? versionFromSource;
}
}
@ -200,9 +201,9 @@ ObtainiumError getObtainiumHttpError(Response res) {
}
String? extractStandardVersionName(String version, {bool strict = false}) {
var match = RegExp(
'${strict ? '^' : ''}[0-9]+(\\.[0-9]+)+(-(alpha|beta)\\+?[0-9]+)?${strict ? '\$' : ''}')
.firstMatch(version);
var match =
RegExp('${strict ? '^' : ''}[0-9]+(\\.[0-9]+)+${strict ? '\$' : ''}')
.firstMatch(version);
return match != null ? version.substring(match.start, match.end) : null;
}
@ -284,6 +285,12 @@ class SourceProvider {
if (apk.apkUrls.isEmpty && !trackOnly) {
throw NoAPKError();
}
bool enhancedVersionDetection = apk.isStandardVersion &&
installedVersion != null &&
extractStandardVersionName(installedVersion, strict: true) != null;
if (!enhancedVersionDetection) {
apk.version = apk.versionFromSource;
}
String apkVersion = apk.version.replaceAll('/', '-');
return App(
id ??
@ -302,10 +309,7 @@ class SourceProvider {
DateTime.now(),
pinned,
trackOnly,
apk.isStandardVersionName &&
(installedVersion == null ||
extractStandardVersionName(installedVersion, strict: true) !=
null));
enhancedVersionDetection);
}
// Returns errors in [results, errors] instead of throwing them

View File

@ -17,7 +17,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: 0.8.2+65 # When changing this, update the tag in main() accordingly
version: 0.8.4+67 # When changing this, update the tag in main() accordingly
environment:
sdk: '>=2.18.2 <3.0.0'