fix: Update dialog shows dev version & loading gets stuck in certain circumstances (#1792)

Signed-off-by: validcube <pun.butrach@gmail.com>
Co-authored-by: validcube <pun.butrach@gmail.com>
This commit is contained in:
kitadai31
2024-06-19 16:44:09 +09:00
committed by GitHub
parent 46f6a49a7a
commit fc52560244
3 changed files with 114 additions and 121 deletions

View File

@ -49,36 +49,27 @@ class GithubAPI {
}
}
Future<Map<String, dynamic>?> getLatestManagerRelease(
String repoName,
) async {
Future<String?> getManagerChangelogs() async {
try {
final response = await _dioGetSynchronously(
'/repos/$repoName/releases',
'/repos/${_managerAPI.defaultManagerRepo}/releases?per_page=50',
);
final Map<String, dynamic> releases = response.data[0];
int updates = 0;
final buffer = StringBuffer();
final String currentVersion =
await _managerAPI.getCurrentManagerVersion();
while (response.data[updates]['tag_name'] != currentVersion) {
updates++;
}
for (int i = 1; i < updates; i++) {
if (response.data[i]['prerelease']) {
for (final release in response.data) {
if (release['tag_name'] == currentVersion) {
if (buffer.isEmpty) {
buffer.writeln(release['body']);
}
break;
}
if (release['prerelease']) {
continue;
}
releases.update(
'body',
(value) =>
value +
'\n' +
'# ' +
response.data[i]['tag_name'] +
'\n' +
response.data[i]['body'],
);
buffer.writeln(release['body']);
}
return releases;
return buffer.toString();
} on Exception catch (e) {
if (kDebugMode) {
print(e);