Commit Graph

19 Commits

Author SHA1 Message Date
LiquidFenrir
fd7e932df3 add warning when not finding files when installing a splash, and dont delete previous one if none are found 2017-12-31 16:57:51 +01:00
LiquidFenrir
45349a4ba3 Dynamic icons loading & other improvements (#119)
* icons are black, but it's a start

* after testing, info_buffer in load_smdh_icon is for some reason all 0

* working! same speed as pre-threading (I think)
but the icons lag behind a bit.
Still, should allow for infinite themes

* not needed anymore

* fix icons not being loaded when switching modes

* stop trying to load icons if there arent enough entries

* swapping logic almost there...

* only need to update when on the main screen

* fix blind spot and typo

* allow optimizations maybe?
maybe will break stuff. just revert if it's the case

* fix blind spot when going up after cycling

* add swapping when changing 1 screen at a time (left/right)

* not needed anymore, since icon ids are fixed

* simpler scrolling

* dont reload everything when cycling

* other method for storing ids, maybe better logic later

* fix crash

* attempt at better and clearer algorithm for swapping

* optimization, swapping still broken but this was needed

* fix cycling/using left resulting in reversed icons

* fix icons scrolling in reverse
and fix the bug that introduced (same as switch-case method): scroll not following the selected entry when using left/right

* don't break when using left/right near the top/end

* correctly return from failed realloc during entries load

* move freeing the entries and killing the icon updating thread to exit_function

* fix icons being shifted the wrong value when cycling

* only exit using the shutdown screen method when needed

* show simple loading screen for themes and splashes

* only have the thread when needed
should consume less battery for people with low amount of splashes and themes

* fix instructions showing over the "no X found" screen

* fix instructions showing over confirm text

* fix overlapping and going out of bounds with few entries

* add quitting preview and qr mode with B

* add touchscreen controls

* cleaner BETWEEN macro

* only allow changing screens with touchscreen when arrows are visible

* tabs vs spaces

* fix selecting an entry that's not there using the touchscreen
and allow holding for selecting individual entries (not using the arrows)

* fix crash when deleting all entries and downloading one with QR

* add indicator for already installed themes/splashes
threaded as not to slow down initial loading too much, and imo cool effect as they load

* optimization for theme installed check

* make icon swapping thread higher priority to prevent problems with searching the installed themes/splashes

* add indicator with number of themes and selected theme

* add X to reload icons if it breaks

* add touchscreen controls:
- toggle shuffle
- toggle preview
- reload icons
- switch modes
- enable QR

* more usable thread args

* fix crash when closing the application too close to launch

* add hack to solve the scrolling problem.
Warning: will cause some lag for about 1-2 seconds, so I recommend using the jump menu
this will be removed once the bug is figured out
2017-12-28 15:30:23 -05:00
LiquidFenrir
d937ae1716 Major rewrite: less repetition (#101)
* first step of rewriting: at least it compiles™

* fix tabs/spaces

* fix dabort on load

* fix preview crash

* sorting isnt done outside of loading

* step one of making remake_file useless

* camera/qr code cleanup

* fix dabort when folder is empty, and bring back preview optimization

* fix button for switching modes and show mode when folder is empty

* fix scanning qrs

* no more splash discrimination

* add debug helpers

* fix theme installing
turns out that wasnt such a good idea

* fix battery icon

* mistake

* themeplaza compatibility

* make use of load_data

* don't drink and copy-paste, kids

* fix user-agent

* remove useless

* cleanup includes

* not even used

* add splash buttons

* upgrade buttons drawing

* fix controls while preview is up

* improve positions
2017-12-02 10:09:38 -05:00
Helloman892
32116aa8ed Added splash qsort, because I forgot to when I added theme qsort (<O_O<) <(O_O)> (>O_O>) 2017-10-28 04:59:30 +01:00
Dylan G
3cfbf3c35b Brought changes over from master/#92
All commits post-this one should be on stable.
2017-10-22 00:59:06 +01:00
26d8c283b3 Add warning about splashes being disabled 2017-09-09 20:19:30 -04:00
Helloman892
d99f1c97a0 fixes splash install
If splash.bin and/or splashbottom.bin didn't already exist, splashes would not install.

Also added a line break to separate splash_delete(), for consistency.
2017-09-09 13:07:31 +01:00
ef456c7e9e Splash previews 2017-09-09 00:12:16 -04:00
1103885baf Splash QR codes 2017-09-08 23:34:16 -04:00
778e1a8331 maybe fix splashes 2017-09-07 13:35:56 -04:00
62f4356a17 Change splashes to support SMDH and zip files 2017-09-07 10:08:52 -04:00
thedax
34ede05b93 Fix potential bugs and two warnings relating to them
Memset doesn't automatically set the entire size of each element, it's necessary to multiply by sizeof(<typename>) if it's larger than 1 byte, which in this case, u16, is (two bytes).
2017-09-06 05:01:42 -04:00
49e6c6f827 Add splash uninstall screen 2017-09-02 12:16:17 -04:00
Nils P
6ea3904682 Adding splash deletion feature (#24)
* Adding splash deletion feature

* Add Mention for deleting splashes
2017-09-02 11:45:56 -04:00
867f4b61ab Fix splash install when /luma/splash.bin or /luma/splashbottom.bin were missing 2017-09-01 12:11:25 -04:00
4ed0ea3c52 Added splash support 2017-09-01 03:18:06 -04:00
de719f9f01 Delete source 2017-08-01 17:15:40 -04:00
ac69ceda51 Major refactor; see details
* Broke the "prepare" methods up into smaller methods

* Removed the usage of linked lists and replaced them with arrays. Given
that themes won't be added/removed throughout the execution of the
program, we don't need to be able to dynamically add or remove elements
to the list. In addition, once you got to ~50 themes, it took about .2
seconds to iterate through the entire list, which, while it may not
sound like much, is a huge time sink when you're going through a list.
Being able to randomly access any element in the list at the same speed
is hugely beneficial. The downside to this is we need to keep track of
the number of themes/splashes at all times, and, for splashes, have to
do some weird type magic in order to properly iterate over it. However,
these negatives are outweighed by the speed improvements.
2017-07-28 17:41:20 -04:00
Alex Taber
37aa9022e1 Added splash support (#2)
Combination of quality of life improvements, bugfixes and splash support:

* unzip_file now works with any file, not just a theme

* Made linked list nodes generic so they work for both splashes and themes

* Fixed bug in previous commit with deleting the zip file once it was unzipped

* All zips in /Splashes/ are now extracted, as with /Themes/

* Splashes are all added to the linked list properly

* Splashes can be installed given a path, but only works on Luma. Undecided as to whether or not I'm going to change this.

TODO:

* Automatically change the luma configuration to enable splash screens

* MAYBE add support for other CFWs (if there's an interest). Maybe set a folder to extract splashes to in some kind of user settings?
2017-07-21 20:49:17 -04:00