The project is divided into several directories below which are nested gradle projects.
This contains the highest level code such as UI and core logic.
APIs for sending and receiving messages
Low level code for dealing with internet mail protocols
Additional, standalone, libraries used by K-9
To help you understand the design, the following sequence diagrams show typical flows through the classes. Each class is colour-coded by its top-level project.