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