From 0e2fa96b9fb08b761a598b672e5f82c36a2ec24d Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Fri, 17 May 2024 16:17:51 -0400 Subject: [PATCH] More accurate error reports for Huawei AppGallery fails --- lib/app_sources/huaweiappgallery.dart | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/app_sources/huaweiappgallery.dart b/lib/app_sources/huaweiappgallery.dart index 8948faf..0f2be00 100644 --- a/lib/app_sources/huaweiappgallery.dart +++ b/lib/app_sources/huaweiappgallery.dart @@ -73,21 +73,23 @@ class HuaweiAppGallery extends AppSource { throw NoReleasesError(); } String appId = appIdFromRedirectDlUrl(res.headers['location']!); + if (appId.isEmpty) { + throw NoReleasesError(); + } var relDateStr = res.headers['location']?.split('?')[0].split('.').reversed.toList()[1]; - var relDateStrAdj = relDateStr?.split(''); - var tempLen = relDateStrAdj?.length ?? 0; - var i = 2; - while (i < tempLen) { - relDateStrAdj?.insert((i + i ~/ 2 - 1), '-'); - i += 2; - } - var relDate = relDateStrAdj == null - ? null - : DateFormat('yy-MM-dd-HH-mm', 'en_US').parse(relDateStrAdj.join('')); - if (relDateStr == null) { + if (relDateStr == null || relDateStr.length != 10) { throw NoVersionError(); } + var relDateStrAdj = relDateStr.split(''); + var tempLen = relDateStrAdj.length; + var i = 2; + while (i < tempLen) { + relDateStrAdj.insert((i + i ~/ 2 - 1), '-'); + i += 2; + } + var relDate = + DateFormat('yy-MM-dd-HH-mm', 'en_US').parse(relDateStrAdj.join('')); return APKDetails( relDateStr, [MapEntry('$appId.apk', dlUrl)], AppNames(name, appId), releaseDate: relDate);