Draft: homescreens: Lay down framework for homescreen types, decrease coupling
Currently, the homescreen is in a QML plugin that is imported by the homescreen containment, with its state being directly accessed by other parts of the shell (tight coupling).
This merge request now removes direct imports of the homescreen in the homescreen containment, and instead loads homescreens as applets/containments.
It moves our existing homescreen into a new containment/homescreen package (org.kde.phone.homescreen.folio
). We can create new types of homescreens in the future. We can also easily have different homescreens for different displays.
TODO:
-
Add UI to switch homescreen applets (find using X-Plasma-Provides?) -
Add migration script so that the default homescreen is "folio" -
Remove directly accessed properties in our existing homescreen to the "homescreen containment" object that new homescreen packages inherit from (reduce coupling) -
Add documentation to wiki -
Create a simple homescreen to showcase homescreen switching? -
Maybe remove the wallpaper plugin from the homescreen containment, instead letting our homescreen packages load it themselves (probably doesn't make sense because of the wallpaper config)
PS: Folio is a word related to pages, which refers to our current homescreen's paginated design.
Edited by Devin Lin