Couldn't test locally due to issues with the iOS 16 SDK included with Xcode 14. Pushing
this now so I can build and test with GitHub Actions as I await the download of an
older version of macOS to put on my MacBook again
- Rewrite UIMenu in LauncherPreferencesViewController.m to support disabling some options
- Disable Allocated RAM slider until the option is specifically toggled by the user
- Requires restart to show the slider due to the importance it presents
- raw_unjb_warn and ram_unjb_enable preferences
* Pull JRE Zero when compiling IPA
Also move dsym above ipa to make sure it's made
* Depend on dsym
* Disable certain preferences when unjailbroken
- Allocated RAM
- Java home (to be readded)
- Disable home symlink
* Add launch warning
* bruh
* bruh 2
* bruh 3
The version picker view now only display the selected type in one of
(Installed, Releases, Snapshot, Old-beta, Old-alpha). Toggling between
Releases and Snapshots allows jumping to the corresponding release or
the latest snapshot of the version.
Added UIRequiresFullScreen for iPad
Only force full navigation bar height on iPhone
The Virtual mouse preference can now be set by the toggle button
Use UIColor.whiteColor instead of RGB 255/255
Use arm64e-supported fishhook fork
This does not require a compatibility layer (Darling) nor a toolchain
(Theos). Instead, clang and lld from Linux distribution is used with
iOS SDK to compile the natives part (C/Objective-C). Of course, this
also allows compiling on Android with Termux or Windows with WSL.
The old IPA creation process: wrap every dylib files into framework;
this appears to be unnecessary, dylib files can be put outside without
breaking codesigning and validation (only tested with AltStore: it
scans and signs every Mach-O files).
Therefore, IPA builds now allow putting Java Runtimes to
`PojavLauncher.app/jvm`.
Makefile is yet tweaked to adapt this change, will be done later.
Other tweaks
- Disabled autocorrection for text fields in preferences
- The preferences now searches for installed JRE versions instead of
hardcoding them
- Bug fix: "accounts" folder was not created initially, leading to
"username.json does not exist" error
Text input is now far more stable with keyboard autocompletion and
typing extra stuff (marks).
Improved cursor movement: allows dragging farther.
Additionally, the text field is now made visible on the side menu.
Known issue that still persists: if the trackpad's cursor (by 3D
Touch/spacebar) is moved too fast, it will not synchronize with game
In other side, a bug fix: symlink fails, because the `Application
Support` folder was not created.
The root cause is that the JVM has taken away the main thread, caused the UIKit’s queue to stop. This env var exists in my dev environment but has never been added here.
UISplitViewController is being used to create split menu.
Currently, autolayout is not yet done.
Added account switcher to the split view.
Fixes:
- auth_session parameter for legacy Minecraft versions
- Updating self.view background color is now automated by
UIColor.systemBackgroundColor
Before launching game, SurfaceViewController is set to UIWindow.rootViewController, making it similar to "Restart before launching" in order to *attempt* to find out why touchscreen input does not work on certain devices. The restart option is still kept for debugging purpose.
Some other tiny code tweaks