diff --git a/JavaApp/src/main/java/net/kdt/pojavlaunch/PojavLauncher.java b/JavaApp/src/main/java/net/kdt/pojavlaunch/PojavLauncher.java index 1c289c3b..d0d4c22d 100644 --- a/JavaApp/src/main/java/net/kdt/pojavlaunch/PojavLauncher.java +++ b/JavaApp/src/main/java/net/kdt/pojavlaunch/PojavLauncher.java @@ -60,6 +60,7 @@ public class PojavLauncher { String[] size = args[2].split("x"); MCOptionUtils.load(); + MCOptionUtils.set("fullscreen", "false"); MCOptionUtils.set("overrideWidth", size[0]); MCOptionUtils.set("overrideHeight", size[1]); MCOptionUtils.save(); diff --git a/Natives/Assets.xcassets/MenuJava.imageset/ic_menu_java.png b/Natives/Assets.xcassets/MenuJava.imageset/ic_menu_java.png deleted file mode 100644 index 91f945e6..00000000 Binary files a/Natives/Assets.xcassets/MenuJava.imageset/ic_menu_java.png and /dev/null differ diff --git a/Natives/Assets.xcassets/MenuJava.imageset/Contents.json b/Natives/Assets.xcassets/MenuNews.imageset/Contents.json similarity index 75% rename from Natives/Assets.xcassets/MenuJava.imageset/Contents.json rename to Natives/Assets.xcassets/MenuNews.imageset/Contents.json index f402ae4a..ed90c34a 100644 --- a/Natives/Assets.xcassets/MenuJava.imageset/Contents.json +++ b/Natives/Assets.xcassets/MenuNews.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "ic_menu_java.png", + "filename" : "ic_menu_new.png", "idiom" : "universal" } ], diff --git a/Natives/Assets.xcassets/MenuNews.imageset/ic_menu_news.png b/Natives/Assets.xcassets/MenuNews.imageset/ic_menu_news.png new file mode 100644 index 00000000..5fdcc075 Binary files /dev/null and b/Natives/Assets.xcassets/MenuNews.imageset/ic_menu_news.png differ diff --git a/Natives/Assets.xcassets/MousePointer.imageset/mouse_pointer.png b/Natives/Assets.xcassets/MousePointer.imageset/mouse_pointer.png index df9f2946..9e57a97c 100644 Binary files a/Natives/Assets.xcassets/MousePointer.imageset/mouse_pointer.png and b/Natives/Assets.xcassets/MousePointer.imageset/mouse_pointer.png differ diff --git a/Natives/JavaLauncher.m b/Natives/JavaLauncher.m index 5bbddc33..ea40bb4c 100644 --- a/Natives/JavaLauncher.m +++ b/Natives/JavaLauncher.m @@ -222,12 +222,12 @@ int launchJVM(NSString *username, id launchTarget, int width, int height, int mi sprintf(libjlipath16, "%s/lib/libjli.dylib", javaHome); setenv("INTERNAL_JLI_PATH", libjlipath16, 1); BOOL isJava8; - void* libjli = dlopen(libjlipath16, RTLD_LAZY | RTLD_GLOBAL); + void* libjli = dlopen(libjlipath16, RTLD_GLOBAL); isJava8 = libjli == NULL; if (!libjli) { debugLog("[Init] Can't load %s (%s), trying %s", libjlipath16, dlerror(), libjlipath8); setenv("INTERNAL_JLI_PATH", libjlipath8, 1); - libjli = dlopen(libjlipath8, RTLD_LAZY | RTLD_GLOBAL); + libjli = dlopen(libjlipath8, RTLD_GLOBAL); if (!libjli) { debugLog("[Init] JLI lib = NULL: %s", dlerror()); return -1; diff --git a/Natives/LauncherMenuViewController.h b/Natives/LauncherMenuViewController.h index ff66f69a..4b004130 100644 --- a/Natives/LauncherMenuViewController.h +++ b/Natives/LauncherMenuViewController.h @@ -1,7 +1,14 @@ #import +@interface LauncherMenuCustomItem : NSObject +@property(nonatomic) NSString *title, *imageName; +@property(nonatomic, copy) void (^action)(void); +@end + @interface LauncherMenuViewController : UITableViewController @property NSString* listPath; +- (void)restoreHighlightedSelection; + @end diff --git a/Natives/LauncherMenuViewController.m b/Natives/LauncherMenuViewController.m index c7058f4e..c24fa88f 100644 --- a/Natives/LauncherMenuViewController.m +++ b/Natives/LauncherMenuViewController.m @@ -7,10 +7,22 @@ #import "UIImageView+AFNetworking.h" #import "utils.h" -@interface LauncherMenuViewController () { +@implementation LauncherMenuCustomItem + ++ (LauncherMenuCustomItem *)title:(NSString *)title imageName:(NSString *)imageName action:(id)action { + LauncherMenuCustomItem *item = [[LauncherMenuCustomItem alloc] init]; + item.title = title; + item.imageName = imageName; + item.action = action; + return item; } -@property NSArray *options; +@end + +@interface LauncherMenuViewController() +@property(nonatomic) NSArray *options; +@property(nonatomic) UIButton *accountButton; +@property(nonatomic) UIBarButtonItem *accountBtnItem; @end @implementation LauncherMenuViewController @@ -18,34 +30,59 @@ - (void)viewDidLoad { [super viewDidLoad]; + UIImageView *titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"AppLogo"]]; + [titleView setContentMode:UIViewContentModeScaleAspectFit]; + self.navigationItem.titleView = titleView; + [titleView sizeToFit]; + // View controllers are put into an array to keep its state self.options = @[ [[LauncherNewsViewController alloc] init], - [[LauncherPreferencesViewController alloc] init] - ]; + [[LauncherPreferencesViewController alloc] init], + [LauncherMenuCustomItem + title:localize(@"launcher.menu.custom_controls", nil) + imageName:@"MenuCustomControls" action:^{ + [self restoreHighlightedSelection]; + [self.splitViewController.viewControllers[1] performSelector:@selector(enterCustomControls)]; + }], + [LauncherMenuCustomItem + title:localize(@"launcher.menu.install_jar", nil) + imageName:@"MenuInstallJar" action:^{ + [self restoreHighlightedSelection]; + [self.splitViewController.viewControllers[1] performSelector:@selector(enterModInstaller)]; + }], + [LauncherMenuCustomItem + title:localize(@"login.menu.sendlogs", nil) + imageName:@"MenuSendLog" action:^{ + [self restoreHighlightedSelection]; + NSString *latestlogPath = [NSString stringWithFormat:@"file://%s/latestlog.old.txt", getenv("POJAV_HOME")]; + NSLog(@"Path is %@", latestlogPath); + UIActivityViewController *activityVC = [[UIActivityViewController alloc] + initWithActivityItems:@[@"latestlog.txt", [NSURL URLWithString:latestlogPath]] + applicationActivities:nil]; + activityVC.popoverPresentationController.sourceView = titleView; + activityVC.popoverPresentationController.sourceRect = titleView.bounds; + + [self presentViewController:activityVC animated:YES completion:nil]; + }] + ]; self.options[0].title = localize(@"News", nil); self.options[1].title = localize(@"Settings", nil); - //@[@"News", @"Development Console", @"Crash logs"]; + self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; - UIButton *titleButton = [UIButton buttonWithType:UIButtonTypeCustom]; - [titleButton addTarget:self action:@selector(selectAccount:) forControlEvents:UIControlEventTouchUpInside]; - titleButton.frame = self.navigationController.navigationBar.frame; - titleButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; - if (@available(iOS 14.0, tvOS 14.0, *)) { - // On iOS 14+, a special button is displayed to toggle the visibility of the master view controller. - // It creates a bit more offset while in the process of swipe/animation. Therefore the left inset - // has to be increased a bit for this button. - titleButton.contentEdgeInsets = UIEdgeInsetsMake(4, 4, 4, 8); - } else { - titleButton.contentEdgeInsets = UIEdgeInsetsMake(4, 0, 4, 8); - } - titleButton.titleEdgeInsets = UIEdgeInsetsMake(0, 4, 0, -4); - titleButton.imageView.contentMode = UIViewContentModeScaleAspectFit; - titleButton.titleLabel.lineBreakMode = NSLineBreakByWordWrapping; - self.navigationItem.titleView = titleButton; + // Setup the account button + self.accountButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [self.accountButton addTarget:self action:@selector(selectAccount:) forControlEvents:UIControlEventTouchUpInside]; + self.accountButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; + + self.accountButton.titleEdgeInsets = UIEdgeInsetsMake(0, 4, 0, -4); + self.accountButton.imageView.contentMode = UIViewContentModeScaleAspectFit; + self.accountButton.titleLabel.lineBreakMode = NSLineBreakByWordWrapping; + self.accountBtnItem = [[UIBarButtonItem alloc] initWithCustomView:self.accountButton]; [self updateAccountInfo]; + [self tableView:self.tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]; // Put a close button, as iOS does not have a dedicated back button @@ -54,7 +91,10 @@ - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; + [self restoreHighlightedSelection]; +} +- (void)restoreHighlightedSelection { // workaround while investigating for issue if (self.splitViewController.viewControllers.count < 2) return; @@ -86,13 +126,19 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UIViewController *selected = self.options[indexPath.row]; - [self.splitViewController.viewControllers[1] setViewControllers:@[selected] animated:NO]; //YES? + if ([selected isKindOfClass:UIViewController.class]) { + [self.splitViewController.viewControllers[1] setViewControllers:@[selected] animated:NO]; //YES? - if (@available(iOS 14.0, tvOS 14.0, *)) { - // It is unnecessary to put the toggle button as it is automated on iOS 14+ - } else { - selected.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem; + + if (@available(iOS 14.0, tvOS 14.0, *)) { + selected.navigationItem.leftBarButtonItem = self.accountBtnItem; + // It is unnecessary to put the toggle button as it is automated on iOS 14+ + return; + } + selected.navigationItem.leftBarButtonItems = @[self.splitViewController.displayModeButtonItem, self.accountBtnItem]; selected.navigationItem.leftItemsSupplementBackButton = true; + } else { + ((LauncherMenuCustomItem *)selected).action(); } } @@ -131,12 +177,13 @@ subtitle = [[NSAttributedString alloc] initWithString:subtitle attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:12]}]; [title appendAttributedString:[[NSAttributedString alloc] initWithString:@"\n" attributes:nil]]; [title appendAttributedString:subtitle]; - [(UIButton *)self.navigationItem.titleView setAttributedTitle:title forState:UIControlStateNormal]; + [self.accountButton setAttributedTitle:title forState:UIControlStateNormal]; NSURL *url = [NSURL URLWithString:[selected[@"profilePicURL"] stringByReplacingOccurrencesOfString:@"\\/" withString:@"/"]]; UIImage *placeholder = [UIImage imageNamed:@"DefaultAccount"]; - [(UIButton *)self.navigationItem.titleView setImageForState:UIControlStateNormal withURL:url placeholderImage:placeholder]; - [((UIButton *)self.navigationItem.titleView).imageView setImageWithURL:url placeholderImage:placeholder]; + [self.accountButton setImageForState:UIControlStateNormal withURL:url placeholderImage:placeholder]; + [self.accountButton.imageView setImageWithURL:url placeholderImage:placeholder]; + [self.accountButton sizeToFit]; } @end diff --git a/Natives/LauncherNavigationController.h b/Natives/LauncherNavigationController.h index 1a5605aa..1fc34dc5 100644 --- a/Natives/LauncherNavigationController.h +++ b/Natives/LauncherNavigationController.h @@ -4,9 +4,9 @@ NSArray *remoteVersionList; @interface LauncherNavigationController : UINavigationController -@property UIProgressView *progressViewMain, *progressViewSub; -@property UILabel* progressText; -@property UIButton* buttonInstall; +@property(nonatomic) UIProgressView *progressViewMain, *progressViewSub; +@property(nonatomic) UILabel* progressText; +@property(nonatomic) UIButton* buttonInstall; - (void)reloadVersionList:(int)type; diff --git a/Natives/LauncherNavigationController.m b/Natives/LauncherNavigationController.m index bbf17155..32e2980f 100644 --- a/Natives/LauncherNavigationController.m +++ b/Natives/LauncherNavigationController.m @@ -13,34 +13,33 @@ @interface LauncherNavigationController () { } -@property NSMutableArray* versionList; +@property(nonatomic) NSMutableArray* versionList; + +@property(nonatomic) UIPickerView* versionPickerView; +@property(nonatomic) UITextField* versionTextField; +@property(nonatomic) int versionSelectedAt; @end @implementation LauncherNavigationController -UIPickerView* versionPickerView; -UITextField* versionTextField; -int versionSelectedAt = 0; - - (void)viewDidLoad { [super viewDidLoad]; [self setNeedsUpdateOfScreenEdgesDeferringSystemGestures]; - CGFloat splitWidth = self.toolbar.frame.size.width / 3; - versionTextField = [[UITextField alloc] initWithFrame:CGRectMake(0, 4, splitWidth, self.toolbar.frame.size.height/2 - 4)]; - [versionTextField addTarget:versionTextField action:@selector(resignFirstResponder) forControlEvents:UIControlEventEditingDidEndOnExit]; - versionTextField.autoresizingMask = AUTORESIZE_MASKS; - versionTextField.placeholder = @"Specify version..."; - versionTextField.text = (NSString *) getPreference(@"selected_version"); - versionTextField.textAlignment = NSTextAlignmentCenter; + self.versionTextField = [[UITextField alloc] initWithFrame:CGRectMake(0, 4, self.toolbar.frame.size.width, self.toolbar.frame.size.height/2 - 4)]; + [self.versionTextField addTarget:self.versionTextField action:@selector(resignFirstResponder) forControlEvents:UIControlEventEditingDidEndOnExit]; + self.versionTextField.autoresizingMask = AUTORESIZE_MASKS; + self.versionTextField.placeholder = @"Specify version..."; + self.versionTextField.text = (NSString *) getPreference(@"selected_version"); + self.versionTextField.textAlignment = NSTextAlignmentCenter; self.versionList = [[NSMutableArray alloc] init]; - versionPickerView = [[UIPickerView alloc] init]; - versionPickerView.delegate = self; - versionPickerView.dataSource = self; + self.versionPickerView = [[UIPickerView alloc] init]; + self.versionPickerView.delegate = self; + self.versionPickerView.dataSource = self; UIToolbar *versionPickToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.frame.size.width, 44.0)]; UISegmentedControl *versionTypeControl = [[UISegmentedControl alloc] initWithItems:@[ @@ -58,10 +57,10 @@ int versionSelectedAt = 0; UIBarButtonItem *versionFlexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; UIBarButtonItem *versionDoneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(versionClosePicker)]; versionPickToolbar.items = @[versionTypeItem, versionFlexibleSpace, versionDoneButton]; - versionTextField.inputAccessoryView = versionPickToolbar; - versionTextField.inputView = versionPickerView; + self.versionTextField.inputAccessoryView = versionPickToolbar; + self.versionTextField.inputView = self.versionPickerView; - [self.toolbar addSubview:versionTextField]; + [self.toolbar addSubview:self.versionTextField]; self.progressViewMain = [[UIProgressView alloc] initWithFrame:CGRectMake(0, 0, self.toolbar.frame.size.width, 4.0)]; self.progressViewSub = [[UIProgressView alloc] initWithFrame:CGRectMake(0, self.toolbar.frame.size.height - 4.0, self.toolbar.frame.size.width, 4.0)]; @@ -77,28 +76,12 @@ int versionSelectedAt = 0; self.buttonInstall.autoresizingMask = AUTORESIZE_MASKS; self.buttonInstall.backgroundColor = [UIColor colorWithRed:54/255.0 green:176/255.0 blue:48/255.0 alpha:1.0]; self.buttonInstall.layer.cornerRadius = 5; - self.buttonInstall.frame = CGRectMake(splitWidth, 6.0, splitWidth, self.toolbar.frame.size.height - 12.0); + self.buttonInstall.frame = CGRectMake(6.0, self.toolbar.frame.size.height/2, self.toolbar.frame.size.width - 12.0, (self.toolbar.frame.size.height - 12.0)/2); self.buttonInstall.tintColor = UIColor.whiteColor; [self.buttonInstall addTarget:self action:@selector(launchMinecraft:) forControlEvents:UIControlEventTouchUpInside]; [self.toolbar addSubview:self.buttonInstall]; - UIButton *buttonCustomControls = [UIButton buttonWithType:UIButtonTypeSystem]; - setButtonPointerInteraction(buttonCustomControls); - [buttonCustomControls setTitle:localize(@"launcher.menu.custom_controls", nil) forState:UIControlStateNormal]; - buttonCustomControls.autoresizingMask = AUTORESIZE_MASKS; - buttonCustomControls.frame = CGRectMake(0, self.toolbar.frame.size.height/2, splitWidth, self.toolbar.frame.size.height/2); - [buttonCustomControls addTarget:self action:@selector(enterCustomControls) forControlEvents:UIControlEventTouchUpInside]; - [self.toolbar addSubview:buttonCustomControls]; - - UIButton *buttonInstallJar = [UIButton buttonWithType:UIButtonTypeSystem]; - setButtonPointerInteraction(buttonInstallJar); - [buttonInstallJar setTitle:localize(@"launcher.menu.install_jar", nil) forState:UIControlStateNormal]; - buttonInstallJar.autoresizingMask = AUTORESIZE_MASKS; - buttonInstallJar.frame = CGRectMake(splitWidth*2, self.toolbar.frame.size.height/2, splitWidth, self.toolbar.frame.size.height/2); - [buttonInstallJar addTarget:self action:@selector(enterModInstaller) forControlEvents:UIControlEventTouchUpInside]; - [self.toolbar addSubview:buttonInstallJar]; - - self.progressText = [[UILabel alloc] initWithFrame:CGRectMake(0, 4, self.toolbar.frame.size.width, 20)]; + self.progressText = [[UILabel alloc] initWithFrame:self.buttonInstall.frame]; self.progressText.adjustsFontSizeToFitWidth = YES; self.progressText.autoresizingMask = AUTORESIZE_MASKS; self.progressText.font = [self.progressText.font fontWithSize:16]; @@ -136,8 +119,8 @@ int versionSelectedAt = 0; } if (shouldAdd && [MinecraftResourceUtils findVersion:versionId inList:self.versionList] == nil) { [finalVersionList addObject:versionId]; - if ([versionTextField.text isEqualToString:versionId]) { - versionSelectedAt = finalVersionList.count - 1; + if ([self.versionTextField.text isEqualToString:versionId]) { + self.versionSelectedAt = finalVersionList.count - 1; } } } @@ -153,14 +136,14 @@ int versionSelectedAt = 0; self.progressViewMain.progress = progress.fractionCompleted; } success:^(NSURLSessionTask *task, NSDictionary *responseObject) { NSObject *lastSelected = nil; - if (self.versionList.count > 0 && versionSelectedAt >= 0) { - lastSelected = self.versionList[versionSelectedAt]; + if (self.versionList.count > 0 && self.versionSelectedAt >= 0) { + lastSelected = self.versionList[self.versionSelectedAt]; } - [self.versionList removeAllObjects]; + [self.versionList removeAllObjects]; remoteVersionList = responseObject[@"versions"]; assert(remoteVersionList != nil); - versionSelectedAt = -versionSelectedAt; + self.versionSelectedAt = -self.versionSelectedAt; for (NSDictionary *versionInfo in remoteVersionList) { NSString *versionId = versionInfo[@"id"]; @@ -172,8 +155,8 @@ int versionSelectedAt = 0; ([versionType isEqualToString:@"old_alpha"] && type == TYPE_OLDALPHA)) { [self.versionList addObject:versionInfo]; - if ([versionTextField.text isEqualToString:versionId]) { - versionSelectedAt = self.versionList.count - 1; + if ([self.versionTextField.text isEqualToString:versionId]) { + self.versionSelectedAt = self.versionList.count - 1; } } } @@ -182,19 +165,19 @@ int versionSelectedAt = 0; [self fetchLocalVersionList:self.versionList]; } - [versionPickerView reloadAllComponents]; - if (versionSelectedAt < 0 && lastSelected != nil) { + [self.versionPickerView reloadAllComponents]; + if (self.versionSelectedAt < 0 && lastSelected != nil) { NSObject *nearest = [MinecraftResourceUtils findNearestVersion:lastSelected expectedType:type]; if (nearest != nil) { - versionSelectedAt = [self.versionList indexOfObject:nearest]; + self.versionSelectedAt = [self.versionList indexOfObject:nearest]; } } // Get back the currently selected in case none matching version found - versionSelectedAt = MIN(abs(versionSelectedAt), self.versionList.count - 1); + self.versionSelectedAt = MIN(abs(self.versionSelectedAt), self.versionList.count - 1); - [versionPickerView selectRow:versionSelectedAt inComponent:0 animated:NO]; - [self pickerView:versionPickerView didSelectRow:versionSelectedAt inComponent:0]; + [self.versionPickerView selectRow:self.versionSelectedAt inComponent:0 animated:NO]; + [self pickerView:self.versionPickerView didSelectRow:self.versionSelectedAt inComponent:0]; self.buttonInstall.enabled = YES; self.progressViewMain.progress = 0; @@ -239,16 +222,31 @@ int versionSelectedAt = 0; } } +- (void)setInteractionEnabled:(BOOL)enabled { + // Obtain LauncherMenu's navigation item + UINavigationItem *item = [(UINavigationController *)self.splitViewController.viewControllers[0] + viewControllers][0].navigationItem; + ((UIButton *)item.titleView).enabled = enabled; + item.rightBarButtonItem.enabled = enabled; + + for (UIControl *view in self.toolbar.subviews) { + if ([view isKindOfClass:UIControl.class]) { + view.enabled = enabled; + } + } + + self.progressViewMain.hidden = self.progressViewSub.hidden = enabled; +} + - (void)launchMinecraft:(UIButton *)sender { - if (!versionTextField.hasText) { + if (!self.versionTextField.hasText) { return; } sender.alpha = 0.5; - sender.enabled = NO; - self.progressViewMain.hidden = self.progressViewSub.hidden = NO; + [self setInteractionEnabled:NO]; - NSObject *object = [self.versionList objectAtIndex:[versionPickerView selectedRowInComponent:0]]; + NSObject *object = [self.versionList objectAtIndex:[self.versionPickerView selectedRowInComponent:0]]; [MinecraftResourceUtils downloadVersion:object callback:^(NSString *stage, NSProgress *mainProgress, NSProgress *progress) { if (progress == nil && stage != nil) { @@ -258,9 +256,8 @@ int versionSelectedAt = 0; self.progressViewSub.observedProgress = progress; if (stage == nil) { sender.alpha = 1; - sender.enabled = YES; self.progressText.text = nil; - self.progressViewMain.hidden = self.progressViewSub.hidden = YES; + [self setInteractionEnabled:YES]; if (mainProgress != nil) { [self invokeAfterJITEnabled:^{ UIKit_launchMinecraftSurfaceVC(); @@ -275,6 +272,8 @@ int versionSelectedAt = 0; } - (void)invokeAfterJITEnabled:(void(^)(void))handler { + remoteVersionList = nil; + if (isJITEnabled()) { handler(); return; @@ -284,7 +283,7 @@ int versionSelectedAt = 0; return; } - CADisplayLink *displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(tickJIT)]; + //CADisplayLink *displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(tickJIT)]; UIAlertController* alert = [UIAlertController alertControllerWithTitle:localize(@"launcher.wait_jit.title", nil) message:localize(@"launcher.wait_jit.message", nil) @@ -316,12 +315,12 @@ int versionSelectedAt = 0; #pragma mark - UIPickerView stuff - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { if (self.versionList.count == 0) { - versionTextField.text = @""; + self.versionTextField.text = @""; return; } - versionSelectedAt = row; - versionTextField.text = [self pickerView:pickerView titleForRow:row forComponent:component]; - setPreference(@"selected_version", versionTextField.text); + self.versionSelectedAt = row; + self.versionTextField.text = [self pickerView:pickerView titleForRow:row forComponent:component]; + setPreference(@"selected_version", self.versionTextField.text); } - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView { @@ -342,8 +341,8 @@ int versionSelectedAt = 0; } - (void)versionClosePicker { - [versionTextField endEditing:YES]; - [self pickerView:versionPickerView didSelectRow:[versionPickerView selectedRowInComponent:0] inComponent:0]; + [self.versionTextField endEditing:YES]; + [self pickerView:self.versionPickerView didSelectRow:[self.versionPickerView selectedRowInComponent:0] inComponent:0]; } #pragma mark - View controller UI mode diff --git a/Natives/LauncherNewsViewController.m b/Natives/LauncherNewsViewController.m index 5d2a63bd..468b4120 100644 --- a/Natives/LauncherNewsViewController.m +++ b/Natives/LauncherNewsViewController.m @@ -8,7 +8,7 @@ @implementation LauncherNewsViewController - (NSString *)imageName { - return @"MenuJava"; + return @"MenuNews"; } - (void)viewDidLoad diff --git a/Natives/LoginViewController.m b/Natives/LoginViewController.m index c633f8a4..3717139b 100644 --- a/Natives/LoginViewController.m +++ b/Natives/LoginViewController.m @@ -69,6 +69,9 @@ extern NSMutableDictionary *prefDict; CGFloat widthSplit = width / 4.0; CGFloat widthSplit2 = width / 2.0; + for (int i = 0; i < 5; i++) { + NSLog(@"%@", [UIImage imageNamed:@"AppLogo-Vector"]); + } UIImageView *logoView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"AppLogo-Vector"]]; logoView.frame = CGRectMake(0, (rawHeight / 2) - 125, width, 250); [logoView setContentMode:UIViewContentModeScaleAspectFit]; @@ -84,17 +87,6 @@ extern NSMutableDictionary *prefDict; NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"MM-dd"]; NSString* date = [dateFormatter stringFromDate:[NSDate date]]; - - self.navigationItem.rightBarButtonItems = @[ - [[UIBarButtonItem alloc] - initWithBarButtonSystemItem:UIBarButtonSystemItemAction - target:self action:@selector(latestLogShare)], - // There's no better way to put both title+icon for both iOS 12 and 13+, so do this - [[UIBarButtonItem alloc] - initWithTitle:localize(@"login.menu.sendlogs", nil) - style:UIBarButtonItemStyleDone - target:self action:@selector(latestLogShare)] - ]; CGRect frame = CGRectMake(widthSplit2 - (((width - widthSplit * 2.0) / 2) / 2), (height - 80.0), (width - widthSplit * 2.0) / 2, 40.0); @@ -427,16 +419,6 @@ extern NSMutableDictionary *prefDict; }]; } --(void)latestLogShare -{ - NSString *latestlogPath = [NSString stringWithFormat:@"file://%s/latestlog.old.txt", getenv("POJAV_HOME")]; - NSLog(@"Path is %@", latestlogPath); - 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)setPopoverProperties:(UIPopoverPresentationController *)controller sender:(UIButton *)sender { if (controller != nil) { controller.sourceView = sender;