DrewNaylor / Retiled

An attempt at creating a "desktop" environment mainly for Linux phones and tablets that's similar in function to some parts of Microsoft's Windows Phone 8.x, primarily the Start screen, Search app, navigation bar, Action Center, and the status bar. Development is mainly being done using the PinePhone, so that'll be the main supported device.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

To improve performance, hide tile contents or even tiles themselves when they're far enough away from the visible area.

DrewNaylor opened this issue · comments

I got this idea from a video on 2D Minecraft in the part where it described how chunks work and that they clip the view. It reminded me of how my phones would tend to have tiles pop-in when I scroll really fast on one of my phones because I had a lot of tiles, and how adding a lot of tiles makes scrolling a little slow on the PineTab 2.

I should also only check for tile data updates from the cache and start flip timers once the tile is close enough to be in view plus a little to the top and bottom like the main comment. Only thing is I should probably pause tile flip timers if they haven't been close enough to be visible for probably 30 seconds (this is to ensure tiles will be flipping around as you scroll; we'll also stop tiles from flipping 30 seconds after the last interaction on the UI [I think the Action Center was included in this for WP, but it might be a bit much to deal with so I might not take it into account]). The tile data also gets unloaded once tiles are too far away from view, so that's fine, it'll just not grab new data from the cache until it's back in view.

These ideas in this comment might not be ideal, but we'll need something. Maybe I won't even implement it like this, maybe the timers could keep running but only have tiles actually flip when they're close enough to be visible or just out of view? That sounds good, then things are still synchronized unless that's too much. All things considered, we'll have to roll the dice for tiles at some point. Oh, I think a way to do that is to give each tile a random time to start flipping from when it's in view and have that stored in the Tile.qml file as a property. That way we can just have their times use that if the canFlipOnTimer boolean is active (timers are stopped by default and only started with something I don't know; sometimes an app won't want tiles to flip, possibly if it's for like recent favorite pictures in a photo gallery app; tile folders will inherit from tiles and will use the timer to determine when to shift internal tiles around, but tiles inside the folder will flip if they're large enough). I already wrote down the random time to start flipping idea, just didn't have the idea to put it in the file.