Fix version toggles in LauncherPreferences

This commit is contained in:
Eilionoir Tunnicliff committed 2022-05-23 14:52:53 -04:00
1 parent 4aa66fdd4b
commit 018e46a1fe
4 files changed
+40 -5

No files matched your search

+4 -4
View File
@@ -982,19 +982,19 @@ int tempIndex;
break;
case TAG_SWITCH_VRELEASE:
setPreference(@"vertype_release", @(sender.isOn));
[LauncherViewController fetchVersionList];
[LauncherViewController reloadVersionList];
break;
case TAG_SWITCH_VSNAPSHOT:
setPreference(@"vertype_snapshot", @(sender.isOn));
[LauncherViewController fetchVersionList];
[LauncherViewController reloadVersionList];
break;
case TAG_SWITCH_VOLDBETA:
setPreference(@"vertype_oldbeta", @(sender.isOn));
[LauncherViewController fetchVersionList];
[LauncherViewController reloadVersionList];
break;
case TAG_SWITCH_VOLDALPHA:
setPreference(@"vertype_oldalpha", @(sender.isOn));
[LauncherViewController fetchVersionList];
[LauncherViewController reloadVersionList];
break;
case TAG_CHECKSHA:
setPreference(@"check_sha", @(sender.isOn));
+1 -1
View File
@@ -8,7 +8,7 @@ NSArray* versionList;
@property UILabel* progressText;
@property UIButton* buttonInstall;
+ (void)fetchVersionList;
+ (void)reloadVersionList;
+ (void)fetchLocalVersionList:(NSMutableArray *)finalVersionList withPreviousIndex:(int)index;
@end
+35
View File
@@ -192,6 +192,41 @@ int versionSelectedAt = 0;
}];
}
+ (void)reloadVersionList
{
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:@"https://launchermeta.mojang.com/mc/game/version_manifest.json" parameters:nil headers:nil progress:^(NSProgress * _Nonnull progress) {
} success:^(NSURLSessionTask *task, id responseObject) {
NSDictionary *jsonArray = responseObject;
NSArray *remoteVersionList = [jsonArray valueForKey:@"versions"];
assert(remoteVersionList != nil);
NSMutableArray *finalVersionList = [[NSMutableArray alloc] init];
int i = 0;
for (NSDictionary *versionInfo in remoteVersionList) {
NSString *versionId = [versionInfo valueForKey:@"id"];
NSString *versionType = [versionInfo valueForKey:@"type"];
if (([versionType containsString:@"release"] && [getPreference(@"vertype_release") boolValue]) ||
([versionType containsString:@"snapshot"] && [getPreference(@"vertype_snapshot") boolValue]) ||
([versionType containsString:@"old_beta"] && [getPreference(@"vertype_oldbeta") boolValue]) ||
([versionType containsString:@"old_alpha"] && [getPreference(@"vertype_oldalpha") boolValue]) ||
[versionType containsString:@"modified"] ||
[self isVersionInstalled:versionId]) {
[finalVersionList addObject:versionInfo];
if ([versionTextField.text isEqualToString:versionId]) {
versionSelectedAt = i;
}
i++;
}
}
[self fetchLocalVersionList:finalVersionList withPreviousIndex:i];
versionList = [finalVersionList copy];
[versionPickerView reloadAllComponents];
[versionPickerView selectRow:versionSelectedAt inComponent:0 animated:NO];
} failure:^(NSURLSessionTask *operation, NSError *error) {
NSLog(@"Warning: Error fetching version list: %@", error);
}];
}
#pragma mark - Button click events
- (void)displayOptions:(UIBarButtonItem*)sender {
if (@available(iOS 14.0, *)) {
Binary file not shown.