Add some code & storage info to readme

This commit is contained in:
Brion Vibber 2013-05-19 10:56:32 -07:00
parent 0f495b8e77
commit bc077f2c9f

View file

@ -46,6 +46,51 @@ This software is licensed under the [Apache License][5].
This software has no bugs. You can dispute this statement at [bugzilla][3] This software has no bugs. You can dispute this statement at [bugzilla][3]
## Code Structure ##
Key breakdowns:
Activities started within the UI:
* ContributionsActivity (ContributionsListFragment, MediaDetailPagerFragment, MediaDetailFragment) - main "my uploads" list and detail view
* LoginActivity - login screen when setting up an account
* SettingsActivity - settings screen
* AboutActivity - about screen
Activities receiving intents:
* ShareActivity (SingleUploadFragment, CategorizationFragment) - handles receiving a file from another app, accepting a title/desc, and slating it for upload
* MultipleShareActivity (MultipleUploadListFragment, CategorizationFragment) - handles receiving a batch of multiple files from another app, accepting a title/desc, and slating them for upload
Services:
* WikiAccountAuthenticatorService - authentication service
* UploadService - performs actual file uploads in background
* ContributionsSyncService - polls for updated contributions list from server
* ModificationsSyncService - pushes category additions up to server
Content providers:
* ContributionsContentProvider - private storage for local copy of user's contribution list
* ModificationsContentProvider - private storage for pending category and template modifications
* CategoryContentProvider - private storage for recently used categories
## On-Device Storage ##
Account credentials are encapsulated in an account provider. Currently only one Wikimedia Commons account is supported at a time. (Question: what is the actual storage for credentials?)
Preferences are stored in Android's SharedPreferences.
Information about past and pending uploads is stored in the Contributions content provider, which uses an SQLite database on the backend.
A list of recently-used categories is stored in the Categories content provider, which uses an SQLite database on the backend.
Captured files are not currently stored within the app, but are passed by content: or file: URI from other apps.
Thumbnail images are not currently cached. (?)
[1]: https://developer.android.com/sdk/index.html [1]: https://developer.android.com/sdk/index.html
[2]: https://maven.apache.org/ [2]: https://maven.apache.org/
[3]: https://bugzilla.wikimedia.org/enter_bug.cgi?product=Commons%20App [3]: https://bugzilla.wikimedia.org/enter_bug.cgi?product=Commons%20App