How commons-app/apps-android-commons works
Wikimedia Commons Android is a mobile client for discovering Commons/Wikidata media and uploading pictures from a device. A primary workflow selects local media, validates and enriches it, queues contributions, then uploads them; users can also browse/search media, explore nearby places, review files, manage bookmarks, and sign in. The graph reflects documented product capabilities and sampled call/import evidence. Several feature implementations were not excerpted, so those connections are omitted or marked unverified rather than asserted as inspected.
Main entry points: ContributionController.kt Contribution flow · UploadWorker.kt Upload execution · ReviewActivity.kt Review workflow · SearchActivity.kt Search experience
Components 21
Contributions and upload
- Contribution flow
app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.kt - File selection
app/src/main/java/fr/free/nrw/commons/filepicker/FilePicker.kt - Image validation
app/src/main/java/fr/free/nrw/commons/upload/ImageProcessingService.kt - Upload execution
app/src/main/java/fr/free/nrw/commons/upload/worker/UploadWorker.kt - Contribution repository
app/src/main/java/fr/free/nrw/commons/repository/UploadRepository.kt
Explore and discover
- Search experience
app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.kt - Recent searches
app/src/main/java/fr/free/nrw/commons/explore/recentsearches/RecentSearchesDao.kt - Category browsing
app/src/main/java/fr/free/nrw/commons/explore/categories/parent/ParentCategoriesFragment.kt - Map exploration
app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapController.kt - Nearby places
app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java
Media actions
- Media details
app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.kt - Review workflow
app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.kt - Review actions
app/src/main/java/fr/free/nrw/commons/review/ReviewController.kt - Wikidata edits
app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.kt
Identity and persistence
- Bookmarks
app/src/main/java/fr/free/nrw/commons/bookmarks/items/BookmarkItemsController.kt - Account and login
app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt - Session management
app/src/main/java/fr/free/nrw/commons/auth/SessionManager.kt - App database
app/src/main/java/fr/free/nrw/commons/db/AppDatabase.kt
App platform
- Application entry
app/src/main/java/fr/free/nrw/commons/CommonsApplication.kt
Other components
- Mobile user
- Wikimedia Commons
Connections 19
- Mobile user → Contribution flow: selects photos
README.md - Contribution flow → File selection: opens picker
app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.kt - Contribution flow → Contribution repository: loads contributions
app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.kt - Contribution flow → Upload execution: queues upload
- Upload execution → Image validation: validates media
- Upload execution → Wikimedia Commons: uploads files
- Search experience → Recent searches: shows history
app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.kt - Mobile user → Search experience: searches media
- Mobile user → Category browsing: browses categories
- Mobile user → Map exploration: explores map
- Map exploration → Nearby places: uses place data
app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapController.kt - Mobile user → Review workflow: reviews media
- Review workflow → Review actions: creates controller
app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.kt - Review workflow → Media details: opens details
app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.kt - Review actions → Wikidata edits: edits metadata
- Mobile user → Bookmarks: manages bookmarks
- Mobile user → Account and login: signs in
- Account and login → Session management: uses session
- Application entry → App database: initializes storage