151 lines
8.8 KiB
Objective-C
151 lines
8.8 KiB
Objective-C
#import "UpdateHistoryViewController.h"
|
||
|
||
#include "utils.h"
|
||
|
||
#if CONFIG_RELEASE == 1
|
||
# define CONFIG_TYPE "release"
|
||
#else
|
||
# define CONFIG_TYPE "debug"
|
||
#endif
|
||
|
||
@interface UpdateHistoryViewController () {
|
||
}
|
||
-(UILabel *)uhContent:(bool)isHeading size:(int)size text:(NSString *)text width:(int)width;
|
||
@end
|
||
|
||
@implementation UpdateHistoryViewController
|
||
CGFloat uhcurrY = 4.0;
|
||
- (void)viewDidLoad
|
||
{
|
||
[super viewDidLoad];
|
||
viewController = self;
|
||
|
||
[self setTitle:@"Update History"];
|
||
|
||
CGRect screenBounds = [[UIScreen mainScreen] bounds];
|
||
CGFloat screenScale = [[UIScreen mainScreen] scale];
|
||
|
||
int width = (int) roundf(screenBounds.size.width);
|
||
int height = (int) roundf(screenBounds.size.height) - self.navigationController.navigationBar.frame.size.height;
|
||
int rawHeight = (int) roundf(screenBounds.size.height);
|
||
|
||
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, width, rawHeight)];
|
||
[self.view addSubview:scrollView];
|
||
scrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
|
||
|
||
// Update color mode once
|
||
if(@available(iOS 13.0, *)) {
|
||
[self traitCollectionDidChange:nil];
|
||
} else {
|
||
self.view.backgroundColor = [UIColor whiteColor];
|
||
}
|
||
|
||
uhcurrY = 4.0;
|
||
|
||
[scrollView addSubview:[self uhContent:true size:25 text:@"Current version" width:width]];
|
||
[scrollView addSubview:[self uhContent:true size:20 text:[NSString stringWithFormat:@"2.1 (%s)", CONFIG_TYPE] width:width]];
|
||
[scrollView addSubview:[self uhContent:true size:17 text:@"Changes" width:width]];
|
||
[scrollView addSubview:[self uhContent:false size:0 text:@"- Now shows when currently logging in\n"
|
||
"- Play button is greyed out when launching\n"
|
||
"- Back button is hidden when launching\n"
|
||
"- New toggle to allow restarting JVM before launching\n"
|
||
"- Added WIP Demo mode support!\n"
|
||
"- Patch log4shell exploit in client\n"
|
||
"- Keyboard and mouse support deepened\n"
|
||
"- New \"vgpu\" renderer, exports OpenGL 3.0\n"
|
||
"- Custom controls UI completed\n"
|
||
"- Arc custom capes integration!" width:width]];
|
||
[scrollView addSubview:[self uhContent:true size:17 text:@"Fixes" width:width]];
|
||
[scrollView addSubview:[self uhContent:false size:0 text:@"- Slight changes to error messages\n"
|
||
"- Fix Makefile errors in `deploy` and `ipa`\n"
|
||
"- Fix some instances of Mojang login failing\n"
|
||
"- Fix NullPointerException when launching ≤1.6.4\n"
|
||
"- Fix NullPointerException when setting inherited fields\n"
|
||
"- Fix \"Share your logs\" not working\n"
|
||
"- Fix Fabric 1.17+ not launching\n"
|
||
"- Fix postinst issue on Procursus" width:width]];
|
||
[scrollView addSubview:[self uhContent:true size:17 text:@"Issues" width:width]];
|
||
[scrollView addSubview:[self uhContent:false size:0 text:@"- Mouse support requires iOS 14.0 or later, keyboards require iOS 13.4 or later\n"
|
||
"- Old custom control .json files no longer work, remove to fix" width:width]];
|
||
[scrollView addSubview:[self uhContent:true size:25 text:@"Previous versions" width:width]];
|
||
[scrollView addSubview:[self uhContent:true size:20 text:@"2.0 - Raw Iron" width:width]];
|
||
[scrollView addSubview:[self uhContent:true size:17 text:@"Changes" width:width]];
|
||
[scrollView addSubview:[self uhContent:false size:0 text:@"- The Login view has been simplified to three easy buttons\n"
|
||
"- The Offline Account has been replaced with Local Account. Installing Minecraft now requires a Mojang or Microsoft account logged in.\n"
|
||
"- New FAQ page to show quick answers to questions\n"
|
||
"- New About view to show quick details, links, and update history\n"
|
||
"- Ability to send logs from within the launcher\n"
|
||
"- The Select Account screen is now a pop-up window\n"
|
||
"- New picker view to switch versions without typing them manually\n"
|
||
"- Support to show your locally installed clients\n"
|
||
"- New settings page to manage preferences\n"
|
||
"- OpenJDK 8 support, to allow older versions of modded Minecraft\n"
|
||
"- New mod installer, built into the launcher\n"
|
||
"- Unfinished in-launcher custom controls\n"
|
||
"- Move to /usr/share, for better rootFS compatibility\n"
|
||
"- New packaging format\n"
|
||
" - release, for iOS 14 and lower (full root access jailbreaks)\n"
|
||
" - release-rootless, for iOS 15 (Procursus rootless jailbreak)" width:width]];
|
||
[scrollView addSubview:[self uhContent:true size:17 text:@"Fixes" width:width]];
|
||
[scrollView addSubview:[self uhContent:false size:0 text:@"- WIP fix for typing on 1.12.2 and older\n"
|
||
"- The hotbar now works across GUI scales\n"
|
||
"- (With JDK 8) Forge 1.8.9 - 1.15.2 now work\n"
|
||
"- (With JDK 8) Vanilla 1.5.2 and under now work\n"
|
||
"- Buttons now scale correctly according to screen size" width:width]];
|
||
[scrollView addSubview:[self uhContent:true size:17 text:@"Issues" width:width]];
|
||
[scrollView addSubview:[self uhContent:false size:0 text:@"- Crash if login to Microsoft fails\n"
|
||
"- Old custom control .json files no longer work, remove to fix\n"
|
||
"- Custom controls settings page is not complete, there may be some issues!\n"
|
||
"- An unknown issue might cause Taurine, 14.3, and A12+ to crash on launch." width:width]];
|
||
[scrollView addSubview:[self uhContent:true size:20 text:@"1.2" width:width]];
|
||
[scrollView addSubview:[self uhContent:true size:17 text:@"Changes" width:width]];
|
||
[scrollView addSubview:[self uhContent:false size:0 text:@"- Use new method for Microsoft login\n"
|
||
"- Added gl4es 1.1.5 as an option\n"
|
||
"- WIP custom controls (can be changed by placing at /var/mobile/Documents/.pojavlauncher/controlmap/default.json). Note that some functions may not work properly.\n"
|
||
"- WIP external mouse support\n"
|
||
"- Custom environment variables, in /var/mobile/Documents/.pojavlauncher/custom_env.txt\n"
|
||
"- Reduction of file size with removal of unused binaries\n"
|
||
"- Moved latestlog.txt and overrideargs.txt to /var/mobile/Documents/.pojavlauncher" width:width]];
|
||
[scrollView addSubview:[self uhContent:true size:17 text:@"Fixes" width:width]];
|
||
[scrollView addSubview:[self uhContent:false size:0 text:@"- Fix file permission issues during install of package\n"
|
||
"- Hide home bar like Bedrock Edition\n"
|
||
"- Properly hide iPad status bar" width:width]];
|
||
[scrollView addSubview:[self uhContent:true size:17 text:@"Issues" width:width]];
|
||
[scrollView addSubview:[self uhContent:false size:0 text:@"- Crash if login to Microsoft fails\n"
|
||
"- Several Forge versions won’t work due to removed deprecated classes (see #67 and #68)\n"
|
||
"- Control buttons notch offset seems doubled\n"
|
||
"- Text input will not work on 1.12.2 and below" width:width]];
|
||
[scrollView addSubview:[self uhContent:true size:20 text:@"See the GitHub for even earlier releases" width:width]];
|
||
|
||
|
||
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width, uhcurrY);
|
||
|
||
}
|
||
|
||
-(UILabel *)uhContent:(bool)isHeading size:(int)size text:(NSString *)text width:(int)width {
|
||
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(4.0, uhcurrY, width - 40, 30.0)];
|
||
label.text = text;
|
||
label.lineBreakMode = NSLineBreakByWordWrapping;
|
||
label.numberOfLines = 0;
|
||
if(isHeading) {
|
||
[label setFont:[UIFont boldSystemFontOfSize:size]];
|
||
} else {
|
||
[label sizeToFit];
|
||
}
|
||
uhcurrY+=label.frame.size.height;
|
||
return label;
|
||
}
|
||
|
||
|
||
-(void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
|
||
if(@available(iOS 13.0, *)) {
|
||
if (UITraitCollection.currentTraitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
|
||
self.view.backgroundColor = [UIColor blackColor];
|
||
} else {
|
||
self.view.backgroundColor = [UIColor whiteColor];
|
||
}
|
||
}
|
||
}
|
||
|
||
@end
|