summaryrefslogtreecommitdiff
path: root/docs/DESIGN.md
blob: f5445dc2677eda97ad0e882f06be5f2f439a995b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Repository structure

The project is divided into several directories below which are nested gradle projects.

## app

This contains the highest level code such as UI and core logic.

## backend

APIs for sending and receiving messages

## mail

Low level code for dealing with internet mail protocols

## plugins

Additional, standalone, libraries used by K-9

![modules](Modules.png)

# Walkthrough

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.

## Reading email

![read email sequence](ReadEmail.png)

![read email classes](ReadEmailClasses.png)

## Sending email

![send email sequence](SendEmail.png)