@@ -335,35 +335,63 @@ abstract class ServiceUtils {
335
335
) async {
336
336
if (! Env .enableUpdateChecker) return ;
337
337
if (! ref.read (userPreferencesProvider.select ((s) => s.checkUpdate))) return ;
338
-
339
338
final packageInfo = await PackageInfo .fromPlatform ();
340
339
341
- final value = await http.get (
342
- Uri .parse (
343
- "https://api.github.com/repos/KRTirtho/spotube/releases/latest" ,
344
- ),
345
- );
346
- final tagName =
347
- (jsonDecode (value.body)["tag_name" ] as String ).replaceAll ("v" , "" );
348
- final currentVersion = packageInfo.version == "Unknown"
349
- ? null
350
- : Version .parse (packageInfo.version);
351
- final latestVersion = tagName == "nightly" ? null : Version .parse (tagName);
352
-
353
- if (currentVersion == null ||
354
- latestVersion == null ||
355
- (latestVersion.isPreRelease && ! currentVersion.isPreRelease) ||
356
- (! latestVersion.isPreRelease && currentVersion.isPreRelease)) return ;
357
-
358
- if (latestVersion <= currentVersion || ! context.mounted) return ;
359
-
360
- showDialog (
361
- context: context,
362
- barrierDismissible: true ,
363
- barrierColor: Colors .black26,
364
- builder: (context) {
365
- return RootAppUpdateDialog (version: latestVersion);
366
- },
367
- );
340
+ if (Env .releaseChannel == ReleaseChannel .nightly) {
341
+ final value = await http.get (
342
+ Uri .parse (
343
+ "https://api.github.com/repos/KRTirtho/spotube/releases/tags/nightly" ,
344
+ ),
345
+ );
346
+
347
+ final body = jsonDecode (value.body)["body" ] as String ;
348
+
349
+ final buildNum = int .tryParse (
350
+ RegExp (r'Build Number: (\d+)' ).firstMatch (body)? .group (1 ) ?? '0' ,
351
+ ) ??
352
+ 0 ;
353
+
354
+ if (buildNum <= int .parse (packageInfo.buildNumber) || ! context.mounted) {
355
+ return ;
356
+ }
357
+
358
+ await showDialog (
359
+ context: context,
360
+ barrierDismissible: true ,
361
+ barrierColor: Colors .black26,
362
+ builder: (context) {
363
+ return RootAppUpdateDialog .nightly (nightlyBuildNum: buildNum);
364
+ },
365
+ );
366
+ } else {
367
+ final value = await http.get (
368
+ Uri .parse (
369
+ "https://api.github.com/repos/KRTirtho/spotube/releases/latest" ,
370
+ ),
371
+ );
372
+ final tagName =
373
+ (jsonDecode (value.body)["tag_name" ] as String ).replaceAll ("v" , "" );
374
+ final currentVersion = packageInfo.version == "Unknown"
375
+ ? null
376
+ : Version .parse (packageInfo.version);
377
+ final latestVersion =
378
+ tagName == "nightly" ? null : Version .parse (tagName);
379
+
380
+ if (currentVersion == null ||
381
+ latestVersion == null ||
382
+ (latestVersion.isPreRelease && ! currentVersion.isPreRelease) ||
383
+ (! latestVersion.isPreRelease && currentVersion.isPreRelease)) return ;
384
+
385
+ if (latestVersion <= currentVersion || ! context.mounted) return ;
386
+
387
+ showDialog (
388
+ context: context,
389
+ barrierDismissible: true ,
390
+ barrierColor: Colors .black26,
391
+ builder: (context) {
392
+ return RootAppUpdateDialog (version: latestVersion);
393
+ },
394
+ );
395
+ }
368
396
}
369
397
}
0 commit comments