From 018e46a1fe6198eaffe2f1c83cd2251647c167ec Mon Sep 17 00:00:00 2001 From: Eilionoir Tunnicliff Date: Mon, 23 May 2022 14:52:53 -0400 Subject: [PATCH] Fix version toggles in LauncherPreferences --- Natives/LauncherPreferencesViewController.m | 8 ++--- Natives/LauncherViewController.h | 2 +- Natives/LauncherViewController.m | 35 ++++++++++++++++++++ Natives/resources/Assets.car | Bin 419504 -> 419504 bytes 4 files changed, 40 insertions(+), 5 deletions(-) diff --git a/Natives/LauncherPreferencesViewController.m b/Natives/LauncherPreferencesViewController.m index 5f923954..e0b3cbf0 100644 --- a/Natives/LauncherPreferencesViewController.m +++ b/Natives/LauncherPreferencesViewController.m @@ -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)); diff --git a/Natives/LauncherViewController.h b/Natives/LauncherViewController.h index b039a632..412f653e 100644 --- a/Natives/LauncherViewController.h +++ b/Natives/LauncherViewController.h @@ -8,7 +8,7 @@ NSArray* versionList; @property UILabel* progressText; @property UIButton* buttonInstall; -+ (void)fetchVersionList; ++ (void)reloadVersionList; + (void)fetchLocalVersionList:(NSMutableArray *)finalVersionList withPreviousIndex:(int)index; @end diff --git a/Natives/LauncherViewController.m b/Natives/LauncherViewController.m index 59110907..73bacf8a 100644 --- a/Natives/LauncherViewController.m +++ b/Natives/LauncherViewController.m @@ -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, *)) { diff --git a/Natives/resources/Assets.car b/Natives/resources/Assets.car index 0526275ccb86d184ec7711885fbbbca2ab640948..bd4d351581bef875abeecba1dec284f5fb588fc5 100644 GIT binary patch delta 152 zcmdmRR&oOn{nr%bWME+60AgMs<^f`EAm-Yrc%N~j!38|nmvOR!mCocpmIlo}R_#7k xj6lo;#LPg<0>rG_eXQ90Wd!*d7_5LMGB5#Y0U#~7eN7mfJ_i=@H*su7*a3l^C1wBs delta 156 zcmdmRR&oOn{nr%XW?*380%Beu<^f_(AfE2X!z#Ja-~uCl?7}!%z{+OwA4`R1AFFmB yD@Gt@0%B$$W&vW>?LJm){xX7s3=CERKx3JJv;vUk-@Yb{O`ijc_?tMkBkTYV{U(M0