Update module docs
This commit is contained in:
parent
3d75a6c3d8
commit
582c94b6af
@ -4,13 +4,13 @@ sidebar_position: 3
|
|||||||
|
|
||||||
# Modules
|
# Modules
|
||||||
|
|
||||||
The project contains of multiple Gradle modules. The structure is kinde scuffed because I didn't know shit when I
|
The project contains of multiple Gradle modules. The structure is kinda scuffed because I didn't know shit when I
|
||||||
started this project so future refacorings are to be expected. This is the current structure:
|
started this project so future refactorings are to be expected. This is the current structure:
|
||||||
|
|
||||||
- `:app`:
|
- `:app`:
|
||||||
- `:app`: The app module. Contains almost nothing except for the `Application` class (`de.mm20.launcher2.LauncherApplication`)
|
- `:app`: The app module. Contains almost nothing except the `Application` class (`de.mm20.launcher2.LauncherApplication`)
|
||||||
- `:ui`: Contains almost the entire user interface (except for account sign-in UIs). The only module that uses Jetpack Compose.
|
- `:ui`: Contains almost the entire user interface (except for account sign-in UIs). The only module that uses Jetpack Compose.
|
||||||
- `:services`: Higher level APIs for the app's business logic
|
- `:services`: Higher level APIs for the app's business logic. Each module represents a specific functionality of the launcher
|
||||||
- `:accounts`: Common APIs to manage different account types (Google, Microsoft, Nextcloud, …)
|
- `:accounts`: Common APIs to manage different account types (Google, Microsoft, Nextcloud, …)
|
||||||
- `:backup`: Backup and restore functionality
|
- `:backup`: Backup and restore functionality
|
||||||
- `:badges`: Provide different types of badges that are displayed on app icons
|
- `:badges`: Provide different types of badges that are displayed on app icons
|
||||||
@ -18,7 +18,8 @@ started this project so future refacorings are to be expected. This is the curre
|
|||||||
- `:music`: Manage media sessions and extract metadata
|
- `:music`: Manage media sessions and extract metadata
|
||||||
- `:search`: The search.
|
- `:search`: The search.
|
||||||
- `:tags`: Edit, copy and delete tags
|
- `:tags`: Edit, copy and delete tags
|
||||||
- `:data`: Lower level APIs for CRUD operations for different kinds of data. Most of these should be refactored.
|
- `:widgets`: High-level APIs to manage widgets
|
||||||
|
- `:data`: Lower level APIs. Generally, these modules are more multi-purpose and provide the data that is consumed by the `:services` modules.
|
||||||
- `:applications`: Installed apps and app search
|
- `:applications`: Installed apps and app search
|
||||||
- `:appshortcuts`: Query apps shortcuts for apps and shortcut search
|
- `:appshortcuts`: Query apps shortcuts for apps and shortcut search
|
||||||
- `:calendar`: query calendar events for the calendar widget and calendar search
|
- `:calendar`: query calendar events for the calendar widget and calendar search
|
||||||
@ -32,7 +33,7 @@ started this project so future refacorings are to be expected. This is the curre
|
|||||||
- `:notifications`: APIs to read notifications. Contains the app's `NotificationListenerService`
|
- `:notifications`: APIs to read notifications. Contains the app's `NotificationListenerService`
|
||||||
- `:websites`: Website search
|
- `:websites`: Website search
|
||||||
- `:weather`: APIs to fetch weather data
|
- `:weather`: APIs to fetch weather data
|
||||||
- `:widgets`: Manages configuration of widgets (which widgets and which order). Actual widget implementation (for built-in widgets) is in `:ui`.
|
- `:widgets`: CRUD operations to store and retrieve widgets in/from the database
|
||||||
- `:wikipedia`: APIs to search Wikipedia
|
- `:wikipedia`: APIs to search Wikipedia
|
||||||
- `:core`
|
- `:core`
|
||||||
- `:base`: Commonly used data classes, helper functions and utilities. Also icon resources (if they do not need localization).
|
- `:base`: Commonly used data classes, helper functions and utilities. Also icon resources (if they do not need localization).
|
||||||
@ -52,6 +53,6 @@ started this project so future refacorings are to be expected. This is the curre
|
|||||||
- `:owncloud`: Owncloud APIs and Owncloud sign-in; used by `:accounts` and `:files`
|
- `:owncloud`: Owncloud APIs and Owncloud sign-in; used by `:accounts` and `:files`
|
||||||
|
|
||||||
|
|
||||||
Most of the modules have a `Module.kt` file in their root which contains Koin definitions to make the APIs accessable for other modules.
|
Most of the modules have a `Module.kt` file in their root which contains Koin definitions to make the APIs accessible to other modules.
|
||||||
|
|
||||||
[](/img/dependency-graph.dot.png))
|
[](/img/dependency-graph.dot.png))
|
||||||
|
|||||||
20
docs/static/img/dependency-graph.dot
vendored
20
docs/static/img/dependency-graph.dot
vendored
@ -40,10 +40,12 @@ digraph {
|
|||||||
":services:accounts" [fillcolor="#ff9498"];
|
":services:accounts" [fillcolor="#ff9498"];
|
||||||
":services:backup" [fillcolor="#ff9498"];
|
":services:backup" [fillcolor="#ff9498"];
|
||||||
":services:badges" [fillcolor="#ff9498"];
|
":services:badges" [fillcolor="#ff9498"];
|
||||||
|
":services:global-actions" [fillcolor="#ff9498"];
|
||||||
":services:icons" [fillcolor="#ff9498"];
|
":services:icons" [fillcolor="#ff9498"];
|
||||||
":services:music" [fillcolor="#ff9498"];
|
":services:music" [fillcolor="#ff9498"];
|
||||||
":services:search" [fillcolor="#ff9498"];
|
":services:search" [fillcolor="#ff9498"];
|
||||||
":services:tags" [fillcolor="#ff9498"];
|
":services:tags" [fillcolor="#ff9498"];
|
||||||
|
":services:widgets" [fillcolor="#ff9498"];
|
||||||
|
|
||||||
{rank = same;}
|
{rank = same;}
|
||||||
|
|
||||||
@ -76,6 +78,7 @@ digraph {
|
|||||||
":app:app" -> ":core:permissions" [style=dotted]
|
":app:app" -> ":core:permissions" [style=dotted]
|
||||||
":app:app" -> ":core:preferences" [style=dotted]
|
":app:app" -> ":core:preferences" [style=dotted]
|
||||||
":app:app" -> ":services:search" [style=dotted]
|
":app:app" -> ":services:search" [style=dotted]
|
||||||
|
":app:app" -> ":services:tags" [style=dotted]
|
||||||
":app:app" -> ":data:unitconverter" [style=dotted]
|
":app:app" -> ":data:unitconverter" [style=dotted]
|
||||||
":app:app" -> ":app:ui" [style=dotted]
|
":app:app" -> ":app:ui" [style=dotted]
|
||||||
":app:app" -> ":data:weather" [style=dotted]
|
":app:app" -> ":data:weather" [style=dotted]
|
||||||
@ -84,6 +87,8 @@ digraph {
|
|||||||
":app:app" -> ":data:wikipedia" [style=dotted]
|
":app:app" -> ":data:wikipedia" [style=dotted]
|
||||||
":app:app" -> ":core:database" [style=dotted]
|
":app:app" -> ":core:database" [style=dotted]
|
||||||
":app:app" -> ":data:search-actions" [style=dotted]
|
":app:app" -> ":data:search-actions" [style=dotted]
|
||||||
|
":app:app" -> ":services:global-actions" [style=dotted]
|
||||||
|
":app:app" -> ":services:widgets" [style=dotted]
|
||||||
":app:ui" -> ":app:ui"
|
":app:ui" -> ":app:ui"
|
||||||
":app:ui" -> ":libs:material-color-utilities" [style=dotted]
|
":app:ui" -> ":libs:material-color-utilities" [style=dotted]
|
||||||
":app:ui" -> ":core:base" [style=dotted]
|
":app:ui" -> ":core:base" [style=dotted]
|
||||||
@ -92,6 +97,7 @@ digraph {
|
|||||||
":app:ui" -> ":core:ktx" [style=dotted]
|
":app:ui" -> ":core:ktx" [style=dotted]
|
||||||
":app:ui" -> ":services:icons" [style=dotted]
|
":app:ui" -> ":services:icons" [style=dotted]
|
||||||
":app:ui" -> ":services:music" [style=dotted]
|
":app:ui" -> ":services:music" [style=dotted]
|
||||||
|
":app:ui" -> ":services:tags" [style=dotted]
|
||||||
":app:ui" -> ":data:weather" [style=dotted]
|
":app:ui" -> ":data:weather" [style=dotted]
|
||||||
":app:ui" -> ":data:calendar" [style=dotted]
|
":app:ui" -> ":data:calendar" [style=dotted]
|
||||||
":app:ui" -> ":services:search" [style=dotted]
|
":app:ui" -> ":services:search" [style=dotted]
|
||||||
@ -117,6 +123,8 @@ digraph {
|
|||||||
":app:ui" -> ":services:accounts" [style=dotted]
|
":app:ui" -> ":services:accounts" [style=dotted]
|
||||||
":app:ui" -> ":services:backup" [style=dotted]
|
":app:ui" -> ":services:backup" [style=dotted]
|
||||||
":app:ui" -> ":data:search-actions" [style=dotted]
|
":app:ui" -> ":data:search-actions" [style=dotted]
|
||||||
|
":app:ui" -> ":services:global-actions" [style=dotted]
|
||||||
|
":app:ui" -> ":services:widgets" [style=dotted]
|
||||||
":core:base" -> ":core:base"
|
":core:base" -> ":core:base"
|
||||||
":core:base" -> ":core:ktx" [style=dotted]
|
":core:base" -> ":core:ktx" [style=dotted]
|
||||||
":core:base" -> ":core:i18n" [style=dotted]
|
":core:base" -> ":core:i18n" [style=dotted]
|
||||||
@ -192,6 +200,7 @@ digraph {
|
|||||||
":data:files" -> ":libs:owncloud" [style=dotted]
|
":data:files" -> ":libs:owncloud" [style=dotted]
|
||||||
":data:files" -> ":core:i18n" [style=dotted]
|
":data:files" -> ":core:i18n" [style=dotted]
|
||||||
":data:files" -> ":core:permissions" [style=dotted]
|
":data:files" -> ":core:permissions" [style=dotted]
|
||||||
|
":data:files" -> ":core:crashreporter" [style=dotted]
|
||||||
":data:notifications" -> ":data:notifications"
|
":data:notifications" -> ":data:notifications"
|
||||||
":data:notifications" -> ":core:permissions" [style=dotted]
|
":data:notifications" -> ":core:permissions" [style=dotted]
|
||||||
":data:search-actions" -> ":data:search-actions"
|
":data:search-actions" -> ":data:search-actions"
|
||||||
@ -266,6 +275,11 @@ digraph {
|
|||||||
":services:badges" -> ":core:preferences" [style=dotted]
|
":services:badges" -> ":core:preferences" [style=dotted]
|
||||||
":services:badges" -> ":core:base" [style=dotted]
|
":services:badges" -> ":core:base" [style=dotted]
|
||||||
":services:badges" -> ":data:files" [style=dotted]
|
":services:badges" -> ":data:files" [style=dotted]
|
||||||
|
":services:global-actions" -> ":services:global-actions"
|
||||||
|
":services:global-actions" -> ":core:preferences" [style=dotted]
|
||||||
|
":services:global-actions" -> ":core:base" [style=dotted]
|
||||||
|
":services:global-actions" -> ":core:i18n" [style=dotted]
|
||||||
|
":services:global-actions" -> ":core:permissions" [style=dotted]
|
||||||
":services:icons" -> ":data:customattrs"
|
":services:icons" -> ":data:customattrs"
|
||||||
":services:icons" -> ":services:icons"
|
":services:icons" -> ":services:icons"
|
||||||
":services:icons" -> ":core:database" [style=dotted]
|
":services:icons" -> ":core:database" [style=dotted]
|
||||||
@ -301,4 +315,10 @@ digraph {
|
|||||||
":services:tags" -> ":core:base" [style=dotted]
|
":services:tags" -> ":core:base" [style=dotted]
|
||||||
":services:tags" -> ":core:ktx" [style=dotted]
|
":services:tags" -> ":core:ktx" [style=dotted]
|
||||||
":services:tags" -> ":core:crashreporter" [style=dotted]
|
":services:tags" -> ":core:crashreporter" [style=dotted]
|
||||||
|
":services:tags" -> ":data:customattrs" [style=dotted]
|
||||||
|
":services:tags" -> ":data:favorites" [style=dotted]
|
||||||
|
":services:widgets" -> ":services:widgets"
|
||||||
|
":services:widgets" -> ":core:base" [style=dotted]
|
||||||
|
":services:widgets" -> ":core:i18n" [style=dotted]
|
||||||
|
":services:widgets" -> ":data:widgets" [style=dotted]
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
docs/static/img/dependency-graph.dot.png
vendored
BIN
docs/static/img/dependency-graph.dot.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.9 MiB |
Loading…
x
Reference in New Issue
Block a user