- Removed FAQ, About Launcher, and Update History buttons
- Moved *.png to Assets.xcassets
- Moved LPVC2 to LPVC
This commit is contained in:
Eilionoir Tunnicliff committed 2022-11-10 00:03:37 -05:00
1 parent e6321546bd
commit ab5bd8469e
26 files changed
+96 -304

No files matched your search

-6
View File
@@ -1,6 +0,0 @@
#import <UIKit/UIKit.h>
@interface AboutLauncherViewController : UIViewController
@end
-85
View File
@@ -1,85 +0,0 @@
#import "AboutLauncherViewController.h"
#import "UpdateHistoryViewController.h"
#include "utils.h"
#import <sys/utsname.h>
@interface AboutLauncherViewController()
@end
@implementation AboutLauncherViewController
- (void)viewDidLoad
{
[super viewDidLoad];
setViewBackgroundColor(self.view);
[self setTitle:NSLocalizedString(@"login.menu.about", nil)];
// TODO: Move this into utils?
struct utsname systemInfo;
uname(&systemInfo);
NSString *deviceModel = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
if(@available (iOS 14.0, *)) {
// UIMenu on the main screen
} else {
self.navigationItem.rightBarButtonItems = @[
[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"login.menu.sendlogs", nil) style:UIBarButtonItemStyleDone target:self action:@selector(latestLogShare)],
[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"login.menu.updates", nil) style:UIBarButtonItemStyleDone target:self action:@selector(updateHistory)]
];
}
UITextView *textView = [[UITextView alloc] initWithFrame:self.view.frame];
textView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
textView.dataDetectorTypes = UIDataDetectorTypeLink;
textView.editable = NO;
[self.view addSubview:textView];
textView.text = [NSString stringWithFormat:@"version 2.1 %s (%s - %s) on %@ with iOS %@\n\n", CONFIG_TYPE, CONFIG_BRANCH, CONFIG_COMMIT, deviceModel, currSysVer];
[textView insertText:
@"Created by PojavLauncherTeam in 2022.\n"
@"Discord: https://discord.gg/x5pxnANzbX\n"
@"Subreddit: https://reddit.com/r/PojavLauncher\n"
@"TikTok: unavailable, we do not make videos on TikTok\n"
@"Wiki: https://pojavlauncherteam.github.io\n"
];
if (getenv("POJAV_DETECTEDJB")) {
[textView insertText:@"Stay safe when jailbroken. "];
}
[textView insertText:@"Make sure to install PojavLauncher from the official repositories to prevent the risk of malware.\n\n"];
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM-dd"];
NSString* date = [dateFormatter stringFromDate:[NSDate date]];
if([date isEqualToString:@"06-29"] || [date isEqualToString:@"06-30"] || [date isEqualToString:@"07-01"]) {
[textView insertText:@"May you rest in peace, Technoblade. The Minecraft community will always remember you."];
}
NSMutableAttributedString *newString = [[NSMutableAttributedString alloc] initWithString:textView.text];
[newString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16] range:NSMakeRange(0, newString.length)];
[newString addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:20] range:NSMakeRange(0, [textView.text rangeOfString:@"\n"].location)];
textView.attributedText = newString;
if (@available(iOS 13.0, *)) {
textView.textColor = UIColor.labelColor;
}
}
-(void)latestLogShare
{
NSString *latestlogPath = [NSString stringWithFormat:@"file://%s/latestlog.old.txt", getenv("HOME")];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[@"latestlog.txt", [NSURL URLWithString:latestlogPath]] applicationActivities:nil];
activityViewController.popoverPresentationController.barButtonItem = self.navigationItem.rightBarButtonItems[0];
[self presentViewController:activityViewController animated:YES completion:nil];
}
- (void)updateHistory {
UpdateHistoryViewController *vc = [[UpdateHistoryViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
}
@end
+1 -1
View File
@@ -72,7 +72,7 @@
}
cell.imageView.contentMode = UIViewContentModeCenter;
[cell.imageView setImageWithURL:[NSURL URLWithString:[selected[@"profilePicURL"] stringByReplacingOccurrencesOfString:@"\\/" withString:@"/"]] placeholderImage:[UIImage imageNamed:@"default_account_pfp"]];
[cell.imageView setImageWithURL:[NSURL URLWithString:[selected[@"profilePicURL"] stringByReplacingOccurrencesOfString:@"\\/" withString:@"/"]] placeholderImage:[UIImage imageNamed:@"DefaultAccount"]];
return cell;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 526 KiB

@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "2021-05-07-10-41-54-2.png",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "default_account_pfp.png",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
+12
View File
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "ic_menu_java.png",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "ic_menu_settings.png",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "mouse_pointer.png",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
+1 -3
View File
@@ -109,7 +109,6 @@ add_executable(PojavLauncher
input/ControllerInput.m
input/KeyboardInput.m
AboutLauncherViewController.m
AccountListViewController.m
AppDelegate.m
CustomControlsViewController.m
@@ -122,7 +121,7 @@ add_executable(PojavLauncher
LauncherNavigationController.m
LauncherNewsViewController.m
LauncherPreferences.m
LauncherPreferencesViewController2.m
LauncherPreferencesViewController.m
LauncherPrefGameDirViewController.m
LauncherSplitViewController.m
LoginViewController.m
@@ -132,7 +131,6 @@ add_executable(PojavLauncher
SurfaceViewController+LogView.m
SurfaceViewController+Navigation.m
TrackedTextField.m
UpdateHistoryViewController.m
egl_bridge.m
input_bridge_v3.m
ios_uikit_bridge.m
+1 -1
View File
@@ -105,7 +105,7 @@ const void * _CGDataProviderGetBytePointerCallbackAWT(void *info) {
self.virtualMouseFrame = CGRectMake(screenBounds.size.width / 2, screenBounds.size.height / 2, 18, 27);
self.mousePointerView = [[UIImageView alloc] initWithFrame:self.virtualMouseFrame];
self.mousePointerView.hidden = !self.virtualMouseEnabled;
self.mousePointerView.image = [UIImage imageNamed:@"mouse_pointer.png"];
self.mousePointerView.image = [UIImage imageNamed:@"MousePointer"];
self.mousePointerView.userInteractionEnabled = NO;
[self.view addSubview:self.mousePointerView];
*/
+3 -3
View File
@@ -2,7 +2,7 @@
#import "AccountListViewController.h"
#import "LauncherMenuViewController.h"
#import "LauncherNewsViewController.h"
#import "LauncherPreferencesViewController2.h"
#import "LauncherPreferencesViewController.h"
#import "UIButton+AFNetworking.h"
#import "UIImageView+AFNetworking.h"
@@ -20,7 +20,7 @@
// View controllers are put into an array to keep its state
self.options = @[
[[LauncherNewsViewController alloc] init],
[[LauncherPreferencesViewController2 alloc] init]
[[LauncherPreferencesViewController alloc] init]
];
self.options[0].title = NSLocalizedString(@"News", nil);
self.options[1].title = NSLocalizedString(@"Settings", nil);
@@ -133,7 +133,7 @@
[(UIButton *)self.navigationItem.titleView setAttributedTitle:title forState:UIControlStateNormal];
NSURL *url = [NSURL URLWithString:[selected[@"profilePicURL"] stringByReplacingOccurrencesOfString:@"\\/" withString:@"/"]];
UIImage *placeholder = [UIImage imageNamed:@"default_account_pfp"];
UIImage *placeholder = [UIImage imageNamed:@"DefaultAccount"];
[(UIButton *)self.navigationItem.titleView setImageForState:UIControlStateNormal withURL:url placeholderImage:placeholder];
[((UIButton *)self.navigationItem.titleView).imageView setImageWithURL:url placeholderImage:placeholder];
}
+1 -1
View File
@@ -8,7 +8,7 @@
@implementation LauncherNewsViewController
- (NSString *)imageName {
return @"ic_menu_java";
return @"MenuJava";
}
- (void)viewDidLoad
@@ -0,0 +1,5 @@
#import <UIKit/UIKit.h>
@interface LauncherPreferencesViewController : UITableViewController<UITextFieldDelegate>
@end
@@ -3,7 +3,7 @@
#import "DBNumberedSlider.h"
#import "LauncherPreferences.h"
#import "LauncherPreferencesViewController2.h"
#import "LauncherPreferencesViewController.h"
#import "LauncherPrefGameDirViewController.h"
#import "TOInsetGroupedTableView.h"
@@ -11,7 +11,7 @@
typedef void(^CreateView)(UITableViewCell *, NSString *, NSDictionary *);
@interface LauncherPreferencesViewController2()<UIPickerViewDataSource, UIPickerViewDelegate> {}
@interface LauncherPreferencesViewController()<UIPickerViewDataSource, UIPickerViewDelegate> {}
@property(nonatomic) NSArray<NSString*>* prefSections;
@property(nonatomic) NSArray<NSArray<NSDictionary*>*>* prefContents;
@property(nonatomic) BOOL prefDetailVisible;
@@ -19,10 +19,10 @@ typedef void(^CreateView)(UITableViewCell *, NSString *, NSDictionary *);
@property CreateView typeButton, typeChildPane, typePickField, typeTextField, typeSlider, typeSwitch;
@end
@implementation LauncherPreferencesViewController2
@implementation LauncherPreferencesViewController
- (NSString *)imageName {
return @"ic_menu_settings";
return @"Menu";
}
- (void)viewDidLoad
@@ -347,7 +347,7 @@ typedef void(^CreateView)(UITableViewCell *, NSString *, NSDictionary *);
#pragma mark initViewCreation, showAlert, checkWarn
- (void)initViewCreation {
__weak LauncherPreferencesViewController2 *weakSelf = self;
__weak LauncherPreferencesViewController *weakSelf = self;
self.typeButton = ^void(UITableViewCell *cell, NSString *key, NSDictionary *item) {
BOOL destructive = [item[@"destructive"] boolValue];
@@ -1,5 +0,0 @@
#import <UIKit/UIKit.h>
@interface LauncherPreferencesViewController2 : UITableViewController<UITextFieldDelegate>
@end
+16 -58
View File
@@ -6,12 +6,10 @@
#import "authenticator/BaseAuthenticator.h"
#import "AppDelegate.h"
#import "AboutLauncherViewController.h"
#import "AccountListViewController.h"
#import "LauncherFAQViewController.h"
#import "LauncherSplitViewController.h"
#import "LoginViewController.h"
#import "UpdateHistoryViewController.h"
#import "LauncherPreferences.h"
#import "ios_uikit_bridge.h"
@@ -69,59 +67,36 @@ extern NSMutableDictionary *prefDict;
CGFloat widthSplit = width / 4.0;
CGFloat widthSplit2 = width / 2.0;
UIImageView *logoView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"AppLogo"]];
logoView.frame = CGRectMake(0, (rawHeight / 2) - 35, width, 70);
UIImageView *logoView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"AppLogo-Vector"]];
logoView.frame = CGRectMake(0, (rawHeight / 2) - 125, width, 250);
[logoView setContentMode:UIViewContentModeScaleAspectFit];
logoView.autoresizingMask = AUTORESIZE;
[self.view addSubview:logoView];
UIImageView *workMarkView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"AppLogo"]];
workMarkView.frame = CGRectMake(0, (rawHeight / 2) - 35, width, 70);
[workMarkView setContentMode:UIViewContentModeScaleAspectFit];
workMarkView.autoresizingMask = AUTORESIZE;
[self.view addSubview:workMarkView];
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM-dd"];
NSString* date = [dateFormatter stringFromDate:[NSDate date]];
if(@available(iOS 14.0, *)) {
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[[UIImage systemImageNamed:@"info.circle"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] style:UIBarButtonItemStyleDone target:self action:@selector(aboutLauncher)];
UIAction *option1 = [UIAction actionWithTitle:NSLocalizedString(@"login.menu.about", nil) image:[[UIImage systemImageNamed:@"eyes.inverse"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] identifier:nil
handler:^(__kindof UIAction * _Nonnull action) {[self aboutLauncher];}];
UIAction *option2 = [UIAction actionWithTitle:NSLocalizedString(@"login.menu.sendlogs", nil) image:[[UIImage systemImageNamed:@"square.and.arrow.up"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] identifier:nil
handler:^(__kindof UIAction * _Nonnull action) {[self latestLogShare];}];
UIAction *option3 = [UIAction actionWithTitle:NSLocalizedString(@"login.menu.updates", nil) image:[[UIImage systemImageNamed:@"arrow.triangle.2.circlepath.circle"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] identifier:nil
handler:^(__kindof UIAction * _Nonnull action) {[self updateHistory];}];
UIMenu *menu = [UIMenu menuWithTitle:@"" image:nil identifier:nil
options:UIMenuOptionsDisplayInline children:@[option1, option2, option3]];
self.navigationItem.rightBarButtonItem.action = nil;
self.navigationItem.rightBarButtonItem.primaryAction = nil;
self.navigationItem.rightBarButtonItem.menu = menu;
if(@available(iOS 13.0, *)) {
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[[UIImage systemImageNamed:@"square.and.arrow.up"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] style:UIBarButtonItemStyleDone target:self action:@selector(latestLogShare)];
} else {
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"login.menu.about", nil) style:UIBarButtonItemStyleDone target:self action:@selector(aboutLauncher)];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"login.menu.sendlogs", nil) style:UIBarButtonItemStyleDone target:self action:@selector(aboutLauncher)];
}
UIButton *button_faq = [UIButton buttonWithType:UIButtonTypeSystem];
setButtonPointerInteraction(button_faq);
[button_faq setTitle:NSLocalizedString(@"FAQ", @"Frequently asked questions") forState:UIControlStateNormal];
button_faq.autoresizingMask = AUTORESIZE_BTN;
button_faq.frame = CGRectMake(widthSplit2 - (((width - widthSplit * 2.0) / 2) / 2), (height - 80.0), (width - widthSplit * 2.0) / 2, 40.0);
if([date isEqualToString:@"06-29"] || [date isEqualToString:@"06-30"] || [date isEqualToString:@"07-01"]) {
button_faq.backgroundColor = [UIColor colorWithRed:67/255.0 green:0/255.0 blue:8/255.0 alpha:1.0];
} else {
button_faq.backgroundColor = [UIColor colorWithRed:54/255.0 green:176/255.0 blue:48/255.0 alpha:1.0];
}
button_faq.layer.cornerRadius = 5;
[button_faq setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[button_faq addTarget:self action:@selector(showFAQ) forControlEvents:UIControlEventTouchUpInside];
if(@available (iOS 13.0, *)) {
button_faq.imageView.image = [[UIImage systemImageNamed:@"doc.text"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[button_faq setTintColor:UIColor.whiteColor];
[button_faq setImage:button_faq.imageView.image forState:UIControlStateNormal];
}
[self.view addSubview:button_faq];
CGRect frame = CGRectMake(widthSplit2 - (((width - widthSplit * 2.0) / 2) / 2), (height - 80.0), (width - widthSplit * 2.0) / 2, 40.0);
UIButton *button_login = [UIButton buttonWithType:UIButtonTypeSystem];
setButtonPointerInteraction(button_login);
[button_login setTitle:NSLocalizedString(@"Sign in", nil) forState:UIControlStateNormal];
button_login.autoresizingMask = AUTORESIZE_BTN;
button_login.frame = CGRectMake(button_faq.frame.origin.x - button_faq.frame.size.width - 20, (height - 80.0), (width - widthSplit * 2.0) / 2, 40.0);
button_login.frame = CGRectMake(frame.origin.x - frame.size.width - 20, (height - 80.0), (width - widthSplit * 2.0) / 2, 40.0);
if([date isEqualToString:@"06-29"] || [date isEqualToString:@"06-30"] || [date isEqualToString:@"07-01"]) {
button_login.backgroundColor = [UIColor colorWithRed:67/255.0 green:0/255.0 blue:8/255.0 alpha:1.0];
} else {
@@ -153,7 +128,7 @@ extern NSMutableDictionary *prefDict;
setButtonPointerInteraction(button_accounts);
[button_accounts setTitle:NSLocalizedString(@"Accounts", nil) forState:UIControlStateNormal];
button_accounts.autoresizingMask = AUTORESIZE_BTN;
button_accounts.frame = CGRectMake(button_faq.frame.origin.x + button_faq.frame.size.width + 20, (height - 80.0), (width - widthSplit * 2.0) / 2, 40.0);
button_accounts.frame = CGRectMake(frame.origin.x + frame.size.width + 20, (height - 80.0), (width - widthSplit * 2.0) / 2, 40.0);
if([date isEqualToString:@"06-29"] || [date isEqualToString:@"06-30"] || [date isEqualToString:@"07-01"]) {
button_accounts.backgroundColor = [UIColor colorWithRed:67/255.0 green:0/255.0 blue:8/255.0 alpha:1.0];
} else {
@@ -418,18 +393,6 @@ extern NSMutableDictionary *prefDict;
}];
}
- (void)aboutLauncher
{
AboutLauncherViewController *vc = [[AboutLauncherViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
}
- (void)showFAQ
{
LauncherFAQViewController *vc = [[LauncherFAQViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
}
-(void)latestLogShare
{
NSString *latestlogPath = [NSString stringWithFormat:@"file://%s/latestlog.old.txt", getenv("POJAV_HOME")];
@@ -440,11 +403,6 @@ extern NSMutableDictionary *prefDict;
[self presentViewController:activityViewController animated:YES completion:nil];
}
- (void)updateHistory {
UpdateHistoryViewController *vc = [[UpdateHistoryViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
}
- (void)setPopoverProperties:(UIPopoverPresentationController *)controller sender:(UIButton *)sender {
if (controller != nil) {
controller.sourceView = sender;
+2 -2
View File
@@ -1,4 +1,4 @@
#import "LauncherPreferencesViewController2.h"
#import "LauncherPreferencesViewController.h"
#import "SurfaceViewController.h"
@implementation SurfaceViewController(Navigation)
@@ -115,7 +115,7 @@ static CGPoint lastCenterPoint;
}
- (void)actionOpenPreferences {
LauncherPreferencesViewController2 *vc = [[LauncherPreferencesViewController2 alloc] init];
LauncherPreferencesViewController *vc = [[LauncherPreferencesViewController alloc] init];
[self presentViewController:vc animated:YES completion:nil];
}
+1 -1
View File
@@ -157,7 +157,7 @@ BOOL slideableHotbar;
self.mousePointerView = [[UIImageView alloc] initWithFrame:virtualMouseFrame];
self.mousePointerView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleRightMargin |UIViewAutoresizingFlexibleBottomMargin;
self.mousePointerView.hidden = !virtualMouseEnabled;
self.mousePointerView.image = [UIImage imageNamed:@"mouse_pointer.png"];
self.mousePointerView.image = [UIImage imageNamed:@"MousePointer"];
self.mousePointerView.userInteractionEnabled = NO;
[self.rootView addSubview:self.mousePointerView];
-6
View File
@@ -1,6 +0,0 @@
#import <UIKit/UIKit.h>
@interface UpdateHistoryViewController : UIViewController
@end
-127
View File
@@ -1,127 +0,0 @@
#import "UpdateHistoryViewController.h"
#include "utils.h"
@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];
setViewBackgroundColor(self.view);
[self setTitle:NSLocalizedString(@"login.menu.updates", nil)];
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;
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"
"- Account list now displays profile picture and account type\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"
"- Custom controls UI completed\n"
"- Arc custom capes integration!\n"
"- Removed Mojang account login" 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;
}
@end
Binary file not shown.