User:Alive/System Refactor Plan: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 2: Line 2:
== High level goals ==
== High level goals ==
* Modularization
* Modularization
** Concentrated module responsibility
* One system app for multiple devices
* One system app for multiple devices
** Swappable functionality
** One business logic, different UI logic
* Maintenance
* Maintenance
== Key features ==
** Code readability
* Swappable functionality
** Test coverage
* Concentrated module responsibility
* Performance
* Reduce startup time
** Reduce startup time


=== Multiple device support ===
* Hardware feature detector - done in Core
* In the long term, we will have all what we need in the code base
** Package device specific modules in build time
** Load/start modules correspondingly in run time


=== Swappable functionality ===
=== Swappable functionality ===
Line 20: Line 28:
     }
     }
   };
   };
=== Concentrated Module Responsibility ===
* A module is always used to accomplish a specific task
* If an module has too many tasks to do - stop and think about it
** What's the core task of this module?
** Could we use a shared logic between modules?
** Could we have a submodule to help on certain tasks?


=== Special Topics ===
=== Special Topics ===
* Statusbar destruction
* AppWindowManager dismantling
* Statusbar dismantling
* Shared transition controller
* Shared transition controller
* Notification refactor
* Notification refactor
* LockScreen
* LockScreen
=== AppWindowManager dismantling ===
* AppWindowManager is still heavy now.
* Current direction is to look into TV's AWM requirements and see how we could split it.
* Idea: shared WindowManager interface + shared app switch interface.
** We have many WindowManager right now, maybe we should have a baseWindowManager
** Window switch feature is complex and it is phone(Single window device) specific.
=== Statusbar dismantling ===
* Icon operation is already dismantled in bug 1098168
* Todo: Instantiation, take UtilityTray as submodule


==== Notification Refactor ====
==== Notification Refactor ====
Line 32: Line 59:
* The behavior of the NotificationUI is dependent from the NotificationManager
* The behavior of the NotificationUI is dependent from the NotificationManager
* NotificationUI is device specific - it may change due to UX design
* NotificationUI is device specific - it may change due to UX design
==== LockScreen ====
'''Tracking Bug''':
Confirmed users
401

edits

Navigation menu