Commit graph

3525 commits

Author SHA1 Message Date
Ryan Dowling
3be6adcae0
fix: [#865] issue adding a second account 2024-02-02 20:28:36 +11:00
Ryan Dowling
52fabe35ae
fix: issue with file downloads for non third party enabled files on CurseForge not working 2024-02-02 19:48:23 +11:00
Ryan Dowling
859e033503
fix: creating pack not resetting modloader when switched back to none 2024-01-14 14:24:38 +11:00
Ryan Dowling
9c480e95a4
fix: remove old FTB pack installing code 2024-01-07 13:13:20 +11:00
RyanTheAllmighty
b98fe93420 chore: update aur packages 2023-12-15 04:11:55 +00:00
Ryan Dowling
484828fb4a
chore: bump version 2023-12-15 15:05:48 +11:00
Ryan Dowling
cce879d50d
chore: release version 3.4.35.4 2023-12-15 14:55:23 +11:00
Ryan Dowling
fbcc0a6e3a
fix: cloning instances not generating a new UUID and causing the original to dissapear 2023-12-15 14:30:24 +11:00
Doomsdayrs
a461728bcf
fix: Ensure Instance is created with UUID (#861)
Seems that sometimes they are not.
2023-12-15 14:27:33 +11:00
Ryan Dowling
9c7203f91b
fix: NeoForge installer files not being saved with correct name 2023-12-15 14:22:53 +11:00
Ryan Dowling
67de8fb7ab
fix: launch process trying to download or continue with libraries that don't exist and cannot be downloaded 2023-12-15 14:16:39 +11:00
Ryan Dowling
0f1651d0e8
fix: issues installing Forge 1.20.4 2023-12-15 14:02:16 +11:00
Doomsdayrs
e796da4d73
fixes: NPE by NewsTab.reload (#857)
Underlying data process issue will persist.
An overhaul to NewsManager should be done to accommodate for this.
2023-12-11 17:03:11 +11:00
Ryan Dowling
d3f08316cf
fix: issues with AUR publishing being fired too early causing committing issues 2023-11-15 13:13:33 +11:00
RyanTheAllmighty
c3ba0601c2 chore: bump version 2023-11-15 02:07:07 +00:00
Ryan Dowling
d55bc00f83
chore: release version 3.4.35.3 2023-11-15 13:01:10 +11:00
Doomsdayrs
033d8f6ee8
Fix perfomance (#849)
* misc: Defer Image loading for ImagePanel

Speeds up UI render time.

* misc: Use Flowable to ensure UI only works on the latest result

* misc: Attempt to add loading indicator to InstancesTab

Broken, Issue is that because instance building is run on the event
 thread, The "true" is sent async to the loading view.
Which occurs on the next event loop operation.
But "false" is sent after,
 so by the time the next event loop occurs the UI already is reset.
Doing a direct operation is also impossible it seems,
 as Swing requires instance building to finish before updating the UI.

Truly a hell.

* misc: Run gc once launcher is ready

Memory, we need memory.

* misc: Add invokeLater override to HierarchyPanel

To prevent NPEs caused by actions take when UI is destroyed.

* misc: Move loading indicator into navigation panel

Less jumpy UI, and connected loading to sort / filter.

* misc: Log export issue on separate thread

Logging is an IO task, this slows down UI render time.

* misc: Observe instances on a separate thread

* misc: Render UI in chunks

To lower the impact of rendering the UI.

* misc: Move GBC into subscribe sequence

* misc: InstancesTabViewModel: Only sample values every second

* misc: Swap order of sampling after replay

This allows updates to come through, but not overwhelm the UI.

* misc: Simplify class functions

* misc: Add log instance render performance

* misc: Drop sample delay to 100 milliseconds

* misc: Replace sample with throttleLatest

* misc: Drop replay from InstancesTabViewModel

* misc: Replace replay with throttleLatest in ServersTabViewModel
2023-11-15 12:56:12 +11:00
Ryan Dowling
39ff2da73a
chore: bump version 2023-11-12 12:01:18 +11:00
Ryan Dowling
6ebda50011
chore: release version 3.4.35.2 2023-11-12 11:26:11 +11:00
Doomsdayrs
3c09aeb51b
Hierarchy InstancesTab (#841)
* misc: Implement HierarchyPanel in InstancesTab

* fix: Ensure Instances search maintains state through composition

* fix: Ensure Instances sort maintains state through composition

* misc: Simplify empty logic in InstancesListPanel

* fix: Do not revalidate / repaint in InstancesListPanel

Revalidation / Repainting is computationally intensive.

Swing already takes care of this.

* misc: Add functionality to handle disposables in HierarchyPanel

CompositeDisposable is perfect for this task.

* misc: Add PerformanceManager to HierarchyPanel

So we can debug UI creation speeds

* misc: Implement HierarchyPanel to InstancesListPanel

Else getInstancesList.subscribe causes multiple threads

* misc: Remove reference InstancesTab from child components

None of the children need it anymore.

* misc: Swap InstancesTabViewModel.filteredInstances to IO scheduler

It seems to be faster.

* Revert "fix: Do not revalidate / repaint in InstancesListPanel"

This reverts commit 44a2d8dd

* misc: Replay last instances value in InstancesTabViewModel

This can decrease UI render by 25%.

* fix: Ensure Instances scroll maintains state through composition
2023-11-12 11:24:44 +11:00
Doomsdayrs
cb2fdbe686
fix: NPE in Update Managers due to concurrency (#845) 2023-11-12 10:49:01 +11:00
Ryan Dowling
f57a9e9c66
chore: bump version 2023-11-11 17:11:26 +11:00
Ryan Dowling
0e58bfb62a
chore: release version 3.4.35.1 2023-11-11 17:03:35 +11:00
Ryan Dowling
952f8fac91
fix: issue with instance sort not working 2023-11-11 16:59:28 +11:00
RyanTheAllmighty
36ad938a5f chore: bump version 2023-11-11 00:01:05 +00:00
Ryan Dowling
38bfdfaa42
chore: release version 3.4.35.0 2023-11-11 10:56:18 +11:00
Doomsdayrs
d28153770c
fix: Make HierarchyPanel intercept Relocalization (#836)
* fix: Make HierarchyPanel intercept Relocalization

`onRelocalization` can occur when a view is not visible.
This will lead to NPEs.

Instead of the child directly adding itself to RelocalizationManager,
 we can instead have the HierarchyPanel handle that.
So relocalization can occur if the UI is visible.

* update CHANGELOG.md

---------

Co-authored-by: Ryan Dowling <ryan@ryandowling.me>
2023-11-10 22:39:32 +11:00
Ryan Dowling
b4b8d95cfd
chore: update all github actions workflows and allow downloading translations to a branch 2023-11-09 21:03:32 +11:00
Ryan Dowling
78385c3184
fix: issues with non English regions and number formatting to api's/logs 2023-11-08 22:57:22 +11:00
Ryan Dowling
3e5af674e5
fix: modrinth api key setting applying even when empty 2023-11-08 20:18:53 +11:00
Ryan Dowling
10ca913cfa
fix: merge issue and formatting 2023-11-08 20:08:53 +11:00
Doomsdayrs
ae23dd7a74
Rxjava InstanceManager (#795)
* misc: Use InstanceManager rather than direct INSTANCES access

Just adding some separation between the layers.

* misc: Implement RxJava in InstanceManager for IInstancesTabViewModel

Less boilerplate code for more reactive code!

* Update CHANGELOG.md

* misc: Remove deprecated Data.INSTANCES

* misc: Remove Launcher.reloadInstancesPanel

InstancePanel is now reactive, no need for explicit loads.

Numerous UpdateManagers had their process code simplified, cheers!

Note, that InstanceManager.reload had to be added for SettingsTab.
 This is a stop-gap due to settings being currently non-reactive.
 In a future commit I shall remedy this.

* misc: InstancesTabViewModel provide instanceTitleFormat in Observable

InstancesListPanel had no async tie to Settings.instanceTitleFormat.
By having InstancesTabViewModel connect via SettingsListener to
 SettingsManager. That way InstanceManager.reload can be removed.

* fix: Ensure InstancesList is observed on Swing thread

* misc: Document IInstancesTabViewModel

* misc: Document changes to InstanceManager

* misc: Document changes to CollapsiblePanel

* Add UUID to Instance

Currently, there is no way to track an instance specifically.

This commit adds a UUID a given Instance that
 lets it be identified by the launcher.

* fix: Correct instance being deleted during update

* misc: Convert update managers to RxJava

Allows for more reactive coding over the instances.

* misc: Combine update streams in InstancesTabViewModel

* misc: Add license to InstanceUIModel

* misc: Update CHANGELOG.md

* misc: Fix broken rebase

---------

Co-authored-by: Ryan Dowling <ryan@ryandowling.me>
2023-11-08 19:59:46 +11:00
Doomsdayrs
c758f7367f
RxJava ServerManager (#804)
* misc: Implement RxJava in ServerManager for IServersTabViewModel

Less manual listeners, hurray!

* misc: Correct documentation in IServersTabViewModel

* misc: Document changes to ServerManager

* misc: Update CHANGELOG.md

---------

Co-authored-by: Ryan Dowling <ryan@ryandowling.me>
2023-11-08 19:57:02 +11:00
Ryan Dowling
5dbeaca6f8
fix: merge conflict issue and formatting 2023-11-08 19:55:00 +11:00
Doomsdayrs
7be8e411db
Rxjava AccountManager (#805)
* misc: Organize ViewModels

* misc: Implement RxJava in AccountManager

---------

Co-authored-by: Ryan Dowling <ryan@ryandowling.me>
2023-11-08 19:49:00 +11:00
Ryan Dowling
5ead791e50
chore: remove old nil card image in favour of the default image 2023-11-08 19:33:37 +11:00
Ryan Dowling
abf500fb9b
chore: remove unused Console Open/Close classes 2023-11-08 19:22:41 +11:00
Doomsdayrs
d52ca0df30
[Architecture] HierarchyPanel : NewsTab (#625)
* Implement HierarchyPanel to NewsTab

* Update License

* Update descriptions and methods of HierarchyPanel

* Update CHANGELOG.md

* HierarchyPanel / NewsTab: Separate UI & view model lifecycle + cleanups

View models are resource intensive to produce,
 thus they should occur after the panel is made
 but before the UI is shown.

Furthermore,
 I moved all UI code in NewsTab into onShow to adhere to the lifecycle.

* HierarchyPanel: Only destroy if UI has been created.

---------

Co-authored-by: Ryan Dowling <ryan@ryandowling.me>
2023-11-08 19:19:48 +11:00
Doomsdayrs
ca80687652
Add actions to InstancesTab & ServersTab to navigate to PacksTab & CreatePackTab (#807)
* misc: Rename VanillaPacksTab to CreatePackTab

CreatePack is more accurate to what the purpose is.

* new: Add navigation actions to NilCard for ServersTab and InstancesTab

When there is no instances or servers,
 the buttons can help guide the user to the right locations.

* misc: Use new convenience function for navigation

Looks a lot better doesn't it?

* misc: Update CHANGELOG.md

* fix: Fix localization of NilCards

Makes them easier to localize & create the default ones.

---------

Co-authored-by: Ryan Dowling <ryan@ryandowling.me>
2023-11-08 19:17:02 +11:00
Doomsdayrs
50a1a41041
misc: Convert Console Open/Close Manager into ConsoleStateManager (#814) 2023-11-08 19:15:34 +11:00
Ryan Dowling
c775af1463
fix: instance name/description not resetting after a successful install 2023-11-08 19:10:41 +11:00
Ryan Dowling
7366c8e63d
fix: issue installing 1.20.2 versions of NeoForge 2023-11-08 19:00:14 +11:00
Ryan Dowling
2519ad4c51
fix: [#826] importing a CurseForge format pack using NeoForge not working 2023-11-08 18:33:45 +11:00
Ryan Dowling
8472a0b1b8
fix: issues with UI elements sometimes not enabling/disabling correctly on Create Pack tab 2023-11-08 18:16:36 +11:00
Ryan Dowling
c5c912cff5
fix: issue with some CurseForge server packs breaking 2023-10-24 22:49:15 +11:00
Ryan Dowling
91c1c006ea
feat: add api key setting for Modrinth to allow accessing private packs 2023-10-13 22:43:35 +11:00
Ryan Dowling
5dbc7e0bc9
fix: issue with servers button not disabling when cannot create servers on Create Pack tab 2023-10-09 19:04:17 +11:00
atlauncher-bot
4b2a973fbe chore: update aur packages 2023-10-05 23:42:08 +00:00
RyanTheAllmighty
ff5968f181 chore: bump version 2023-10-05 23:38:41 +00:00
Ryan Dowling
eac3df272d
chore: release version 3.4.34.2 2023-10-06 10:33:13 +11:00