You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/contributing/codebase.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,18 @@
2
2
3
3
This app follows something inspired from Clean Architecture and package-by-feature.
4
4
5
+
## Modules
6
+
7
+
Key Mapper is becoming a very complex application with FOSS and closed source components so it makes sense to modularize it into separate Gradle modules. The modules are described below.
8
+
9
+
-`app`: The main Android application module that depends on all the other modules.
10
+
-`base`: This contains the majority of the Key Mapper code and all the user interface code.
11
+
-`common`: Utility classes used across many modules.
12
+
-`data`: The persistance layer, the Room database and preferences. The data schema is defined here, including for closed source components.
13
+
-`shizuku`: The Key Mapper implementation of Shizuku so that we can present our own user interface for setting up Shizuku without their app.
14
+
-`system`: All the adapters for interacting with the Android framework. All key map actions ultimately call the code here.
15
+
-`systemstubs`: Stubs for hidden system APIs. This contains AIDL files as well as manually written Java stubs if the AIDL file would clash with an SDK file.
16
+
5
17
## Architecture
6
18
7
19
All data structures that are persisted are passed around as one of two objects:
0 commit comments