-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME.txt
123 lines (90 loc) · 4.64 KB
/
README.txt
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
MANIANA TODO LIST MANAGER
-------------------------
Maniana is an open source todo list app for Android. Its source code and issue tracking system
are is hosted here http://code.google.com/p/maniana and it is available on Google Play at
https://play.google.com/store/apps/details?id=com.zapta.apps.maniana
contact: [email protected]
About This Repository
---------------------
The repository contains two Eclipse projects:
Maniana
an Android App project that is used to build Maniana.
ManianaTest
an Android test project that is used to unit test portion of Maniana
code (in the Maniana above project).
Typically the top of this repo is mapped as an Eclipse workspace directory such that Maniana and
ManianaTest projects are top level directories in that eclipse workspace. Explaining how to
set android SDK and eclipse or how to develope android apps is outside the scope of this
document but feel free to send mean email (address above) if you encounter any problem.
For license information please read LICENSE.txt
Top Level Packages
------------------
Maniana jave source code code is under Maniana/src and it contains these top level packages
com.zapta.apps.maniana
Maniana main package. This is also the package that identifies this android app globaly.
android.support
this is a package that contains android SDK code that was modified
for Maniana purposes (as of March 2012, ViewPager view).
other packages
contains third party source code that was incroperated into Maniana.
Key Maniana Packages
---------------------
Following is a short description of key Maniana packages
com.zapta.apps.maniana.main
Contains the main activity. This is the activity that contains the two pages.
It also contains the AppContext class whose instance contains referenes to all
the parts of the main activity.
com.zapta.apps.maniana.controller
Contains the controller of the main activity (as in MVC). The controller class
recives events in the form of method calls and it controls the model
and the view.
com.zapta.apps.maniana.model
Contains the model portion of the main activity. The model contains the task data. It is
made of three levels, AppMode, PageModel and ItemModel (tasks are called 'items' in the source
code).
com.zapta.apps.maniana.persistence
Contains the persistence logic of the model. The model is persisted as a JASON
file to the android internal storage of the app.
com.zapta.apps.maniana.view
Contains the view portion of the main activity. The view represent the display of the main
activity (pages, tasks, buttons, date, etc). The view reflects data changes made
in the model and reports to the controller UI operations such as item drag and drop,
button press, item menu selection, etc.
com.zapta.apps.maniana.preferences
Contains the settings activity and the preferences logic.
com.zapta.apps.maniana.widget
Contains the logic related to the home screen app widgets
com.zapta.apps.maniana.services
Provides access to various Android services.
com.zapta.apps.maniana.util
Various utility classes.
com.zapta.apps.maniana.backup
Interfaces with the Android backup services.
com.zapta.apps.maniana.editors
Contains the item (task) editing activity
com.zapta.apps.maniana.help
Various logic related to the informative popups (help page, what's new, about page, etc)
com.zapta.apps.maniana.quick_action
Implements the item popup menu.
Data Files
----------
Note: for simplicity we refer below to Manina root directory in the android internal
storate as $DROOT. On my phone, it is at /data/data/com.zapta.apps.maniana
$DRROT/shared_prefs/com.zapta.apps.maniana_preferences.xml
A standard android prefernece file that persists the user preferences. These preferences
corresponds to the keys in Maniana/res/xml/preferences.xml
$DROOT/files/maniana_data.json
A JSON file with the persisted model data. This is the main data file of Maniana.
$DROOT/files/list_widget_image_?x?.png
Bitmap files of list widgets of the corresponding size. They are used becuse android
RemoteViews class does not allow to set custom fonts (e.g. cursive) in android
home screen app widgets. These files are updated when the content of widgets
changes.
$DROOT/databases/...
Maniana does not use database explicitly. All data is store in files. These directory
is manages by Android components used by Maniana (e.g. WebView view which is used
to show help page and other popup informative messages).
User Action Sequence
--------------------
TODO: describe here the handling of a typical user action from start to finish (e.g. setting an item
as completed).