Skip to content

Commit 0f906b2

Browse files
macgillsVitalyVPinchukashishkumar468vanshikaaroramaskaravivek
authored
#3222 Merge Structured Data branch into master (#3553)
* #3222 Merge master into Structured Data branch, fix conflicts (#3447) * [WIP] Fixes #2942. Set 'depicts' automatically for images uploaded via 'Nearby' * Feature/refractor uploads [WIP] (#2887) * Fix duplicate param information (#2515) * Bug fix issue #2476 (#2526) * Added wikidataEntityID in all db versions, handled db.execSql via method runQuery * Versioning and changelog for v2.10.2 (#2531) * Update changelog.md * Versioning for v2.10.2 * Update changelog.md * Bugfix/issue 2580 (#2584) * Corrected string placedholders in certain string files * Corrected string placedholders in certain string files[Bug fix #2580] * Bug Fix #2585 (#2647) * Bug Fix #2585 * Added null checks on view in SearchImageFragment when updating views from external sources * Disposed the disposables in SearchActivity and SearchImageFragment when no longer in active lifecycle * use FragmentUtils to verify fragment active state * Bug Fix issue #2648 (#2678) * Bug Fix issue #2648 * Handled external storage permission before file download * * Removed redudant check for permission in MediaDetailPagerFragment (Dexter already does that) * Removed duplicate code in PermissionUtil$checkPermissionsAndPerformAction, used the existing function with conditional extra parameters * string name typo correction * BugFix issue #2652 (#2706) * Addded null check on bookmark before operating on it * BugFix issue #2711 (#2712) * Added null checks in OkHttpJsonApiClient$searchImages MwQueryResponse * BugFix #2718 (#2719) * Handled null auth cookies * Fix #2791: NPE when nominating for deletion and leaving screen (#2792) * Bug Fix issue #2789 (#2790) * Handled Illegal State Exception for non existent appropriate view parents in ViewUtils$showShortSnackbar * BugFix #2720 (#2831) BugFix deprecated licenes #2720 * ui fixes, wip, upload * *Issue #2886, BugFix #2832[wip] * updated UploadActivity code * modified ui * Updated UploadPresenterTest * * updated interfaces names to follow names suffixed with Contract * added test cases * card view elevation * view pager disabled swipe * bug fix, duplicate image * used existing non-swipable view pager * Avoid image view resize with keyboard, added adjustPan and stateVisible as softinputMode for UploadActivity * retain UploadBaseFragment instances on orientation changes * * Added test cases for UploadMediaPresenter * Injected io and main thread schedulers * categories presenter test cased wip * Added CategoriesPresenter test * * Added the logic to show open map (with to be uploaded image's coordinates while uploading image) * codacy suggested changes * added java docs * Added travis_wait fot android-wait-for-emulator * ranamed interface onResponseCallback to Callback * * Added api to delete picture in UploadModel * cleanUp in UploadModel. once upload has been initiated * Removed unused methods from UploadModel and the corresponding test class * * Added tests for UploadPresenter * Travis suggested changes * Addded copy previous title and description * * Made the upload add descriptions visible when keyboard visible * add description request focus only when user manually requests it * Added JavaDocs, review suggested changes * Fix dagger injection * use DialogUtil to show info in descriptions * use activity context for DialogUtil * Minor changes * refactored title * ui for depicts * bug fix * basic architecture for depicts * adde architecture components for depicts * [WIP] ApacheHttpClientMediaWikiApi.wikidataEditEntity: JSON param creation uses object instead of string * resolved dagger errors * multilingual captions and next button error resolved * fixed next button issues in depicts fragment * captions and depicts * resolved previous button click issues * fixed bindview error and added multi-captions * replaced description and caption with uploadmediadetail * refactored few classes * modified ui of depicts * minor fixes * Bug fix, reduced the add description edit text clickable bound (#2973) * moved depicts before categories * replaced previous filename with captions * removed time from filename * added depicts suggestions * [WIP] Wikidata Sandbox (Q4115189) test * changes layout of layout_upload_depicts * changed layout of upload_depicts * code stuck at IO_SCHEDULER * labels and description for depicts activity * Bugfix/uploads (#3000) * merged with master * BugFix IllegalStateException * setRetainState(true), not required with FragmentStatePagerAdapter * Increase the ViewPager's Offscreen Limit, we want all the fragments to be active * BugFix, clear selected categoris for previous upload session * Clear Selected Categories * Addded JavaDocs for CategoriesModel * Code Formatting in app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java * Added class level JavaDoc UploadRemoteDataSource * Added class level JavaDoc for UploadRepository * Added JavaDocs for ThumbnailsAdapter * Added JavaDocs for MediaLicensePresenter, CategoriesPresenter * Removed null check on category query * Show default catgeories based on image title and gps location when category text empty * Allow search for empty category search * Attached image scale listener to upload media image * Bug fix, reduced the add description edit text clickable bound * Fix memory leak (#3001) * Bugfix/uploads (#3002) * merged with master * BugFix IllegalStateException * setRetainState(true), not required with FragmentStatePagerAdapter * Increase the ViewPager's Offscreen Limit, we want all the fragments to be active * BugFix, clear selected categoris for previous upload session * Clear Selected Categories * Addded JavaDocs for CategoriesModel * Code Formatting in app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java * Added class level JavaDoc UploadRemoteDataSource * Added class level JavaDoc for UploadRepository * Added JavaDocs for ThumbnailsAdapter * Added JavaDocs for MediaLicensePresenter, CategoriesPresenter * Removed null check on category query * Show default catgeories based on image title and gps location when category text empty * Allow search for empty category search * Attached image scale listener to upload media image * Bug fix, reduced the add description edit text clickable bound * Added tooltip in Title in UploadMediaFragment * BugFix recent categories * Updated test methods * Bugfix/uploads (#3011) * merged with master * BugFix IllegalStateException * setRetainState(true), not required with FragmentStatePagerAdapter * Increase the ViewPager's Offscreen Limit, we want all the fragments to be active * BugFix, clear selected categoris for previous upload session * Clear Selected Categories * Addded JavaDocs for CategoriesModel * Code Formatting in app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java * Added class level JavaDoc UploadRemoteDataSource * Added class level JavaDoc for UploadRepository * Added JavaDocs for ThumbnailsAdapter * Added JavaDocs for MediaLicensePresenter, CategoriesPresenter * Removed null check on category query * Show default catgeories based on image title and gps location when category text empty * Allow search for empty category search * Attached image scale listener to upload media image * Bug fix, reduced the add description edit text clickable bound * Added tooltip in Title in UploadMediaFragment * BugFix recent categories * Updated test methods * Avoid memory leak, free the adpater in MediaLicenseFragment.onDestroyView * bugfix/uploads (#3012) * merged with master * BugFix IllegalStateException * setRetainState(true), not required with FragmentStatePagerAdapter * Increase the ViewPager's Offscreen Limit, we want all the fragments to be active * BugFix, clear selected categoris for previous upload session * Clear Selected Categories * Addded JavaDocs for CategoriesModel * Code Formatting in app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java * Added class level JavaDoc UploadRemoteDataSource * Added class level JavaDoc for UploadRepository * Added JavaDocs for ThumbnailsAdapter * Added JavaDocs for MediaLicensePresenter, CategoriesPresenter * Removed null check on category query * Show default catgeories based on image title and gps location when category text empty * Allow search for empty category search * Attached image scale listener to upload media image * Bug fix, reduced the add description edit text clickable bound * Added tooltip in Title in UploadMediaFragment * BugFix recent categories * Updated test methods * Avoid memory leak, free the adpater in MediaLicenseFragment.onDestroyView * BugFix Illegal State Exception in ViewpPagerAdapter * Remove irrelevant comment * merge conflict with strings (#3016) * [WIP] Fixed duplicated subscriprion for 'addPropertyP180' * added documentation * fixed issue #3006 * resolved issue #3004 * fixed issue with categoryPresenterTest.kt * send captions as labels * fixed issue with the captions * optimised imports * added upload for captions * minor changes * resolved issue with uploading captions * resolved issue with api call * uploading captions to wikibase * added some tests and documentation * undo formatting changes * uploaded captions as labels to wikibase * minor changes * resolved error with spinner adpater * adding captions to local database * Fixed issue #3035 * fixed issue #3033 * fixed issue #3005 * fixed issue #3005 * added search for depicts * fixed issue with compile time * fixe issue with project build * fixed issue #3044 * merged uploading depicts into branch * uploading depicts * rebased branch * fixed crash due to depicts * modified depicts interface * Resolve merge conflicts * Fix issues with API calls * Use wikidata token * searching depictions from depicts activity * added some documentation and other changes * fixed crash on selecting depictions * sending wikidataentity id to upload depictions * added changes after review * Fixed issue with next button diabling in media detail activity * added tests for depictions * added all the unit tests and fixed few more issues * showing captions in media details * show captions in media details * added documentations and worked upon review comments * parsing response for depictions * displaying captions and depiction QID in media detail * added documentation * fetching labels from QIDs * captions working perfectly * added documentations and code cleaning * minor changes * minor changes * Showing items in explore * added search via depicts in explore * Added setOffscreenPageLimit in ViewPager * show captions in explore * show captions in home * showing depict images under items * added documentation and code refactoring * enabled pagination in depiction search * added some tests and media deatils in depiction detail activity * fixed bug with back button in media * fixed issue #3100 * fixed issue #3098 * fixed issue #3099 * fixed issue #3104 and #3098 * showing captions in place of title in home and explore:media * show captions in explore:depiction image list activity * showing depictions in media details * showing depictions in media details in production flavor * fixed issue #3108 and #3107 * fix isse #3108 * fixed issue #3110 and #3112 * fixed issue #3113 * added documentations * fixed issue #3076 and #3109 * added depiction search test * fixed issue #3113 * fixed issue #3111 * fixed issue #3106 * Showing items in explore * minor change * fixed issue #3118 and some other changes * added MVP in searchdepictionsfragment * added mvp architecture * added MVP architecture to DepictedImagesDetailsActivity * added documentation and some minor changes * added image to depicted item in search depictions * * Use callbacks from renderer to fetch thumbnails * adding fresco to load image in depictions * adding thumbnail image for depictions in upload and explore * pagination issues * fixed issue --(showing previous depiction thumbnail in explore) * Fixed the logic for pagination * hide progress on success of last page * adding sub-items and parent items to search in explore * minor changes for review comments * fixed issue #3119 * fixed issue #3130 * changes after review comments * showing child classes for depictions * Showing child items * showing parent classes for depicted items * adding localised search for parent and child items * clicking on any child class or parent class should call the corresponding class items * fixed issue of showing wrong thumbnail for P18 item * fixed issue #3132 * added test for DepictedImagesPresenter.java * added unit tests for depicted items parent and child classes * removed unused imports and code formatting * fixed issue in search test * deleting unnecessary .attach_pid9313 file * deleting unnecessary .attach_pid9655 file * added SearchDepictionsPresenterTest * changes after review comments * updates for review comments * added more documentations * removed unused code and classes and addressed spacing changes * changes after review * fixed build issues in the app * worked on some review comments * fixed issue:wrong thumbnail appears on wikidata item * minor change * worked on some review changes * worked on review comments * minor change * addressed remaining review comments * replaced hardcoded jpgs with pageIds to fetch captions * added documentation * removed hardcoded extensions and worked on review comments * review comments * [WIP] Added Depicts values for flavors * [WIP] Minor fix * [WIP] Minor fixes * [WIP] Fixed URL * [WIP] Fixed URLs and tokens * Fixed MediaClient: added check for null in continuation store * Fixed Media::from, changed return from null to new Media() * [WIP] Merged with master * Fix #3254 Displays a proper message in explore section when no result for caption * Updated Mockito to org.mockito:mockito-inline:2.13.0 * [WIP] Fixed tests after merging * [WIP] Fixed some JUnit tests * Fixed 'accessing from wrong thread' error * #3222 Delete manifest declaration of activity as fragment - stop casting MainActivity to CatgoryImagesCallback - fix tests * Remove unit test not associated with any class - make CategoryPresenterTest more idiomatic * fix compilation errors Co-authored-by: Vitaly V. Pinchuk <vetal.978@gmail.com> Co-authored-by: Ashish Kumar <ashishkumar468@gmail.com> Co-authored-by: vanshikaarora <vanshikaa937@gmail.com> Co-authored-by: Vivek Maskara <maskaravivek@gmail.com> Co-authored-by: Vanshika Arora <34261945+vanshikaarora@users.noreply.github.com> Co-authored-by: Somanshu and Himanshu <somanshS14@gmail.com> * #3482 Use Room in Structured Data branch - remove unused code (#3483) * #3482 Use Room in Structured Data branch - remove unused code * #3482 Use Room in Structured Data branch - fix unit test compilation * #3482 Use Room in Structured Data branch - add kdoc * #3490 Depiction Search in upload shows No Results before it gets results (#3491) * #3482 Use Room in Structured Data branch - remove unused code * #3482 Use Room in Structured Data branch - fix unit test compilation * #3490 Depiction Search in upload shows No Results before it gets results - stop showing error on subscription * #3490 Depiction Search in upload shows No Results before it gets results - update test cases * make labels nullable too * fix unit test compilation * #3222 remove lingering reference to depiction content provider * Fix Crash * #3222 Merge master into Structured Data branch, fix conflicts - review fixes * Fix method invocations * #3529 Captions/depictions are not saved to Commons (#3574) * #3529 Captions/depictions are not saved to Commons - make copy of list of depictionEntityIds - uncomment editBaseDepictsProperty - refactor upload related classes * #3529 Captions/depictions are not saved to Commons - fix wrong ArrayList usage * #3529 Captions/depictions are not saved to Commons - fix test * #3503 Remove Title/Caption From MediaUploadDetail and only use Caption/Description pairs (#3578) * #3529 Captions/depictions are not saved to Commons - make copy of list of depictionEntityIds - uncomment editBaseDepictsProperty - refactor upload related classes * #3529 Captions/depictions are not saved to Commons - fix wrong ArrayList usage * #3529 Captions/depictions are not saved to Commons - fix test * #3503 Remove Title/Caption From MediaUploadDetail and only use Caption/Description pairs - replace title with the first MediaDetail * #3503 Remove Title/Caption From MediaUploadDetail and only use Caption/Description pairs - restore button disabling * #3503 Remove Title/Caption From MediaUploadDetail and only use Caption/Description pairs - fix nearby place * fix thumbnail issue 3526 (#3617) * #3222 Merge master into Structured Data branch, fix conflicts - fix bad merge * #3529 Captions/depictions are not saved to Commons (#3588) * #3529 Captions/depictions are not saved to Commons - update flow to update appropriate data * #3529 Captions/depictions are not saved to Commons - fix invoking of setlabel * #3529 Captions/depictions are not saved to Commons - fix unit tests * #3529 Captions/depictions are not saved to Commons - use constant for @nAmed * #3529 Captions/depictions are not saved to Commons - remove captions interface * #3529 Captions/depictions are not saved to Commons - delete unused Contribution fields - enforce Single Responsibility by using PageContentsCreator * #3529 Captions/depictions are not saved to Commons - prefix id with M - remove language from url and only add from Field * #3529 Captions/depictions are not saved to Commons - make edits of depictions and captions sequential * #3529 Captions/depictions are not saved to Commons - remove unused model fields * #3529 Captions/depictions are not saved to Commons - weaken type of categories - copy list on Contribution creation * #3529 Captions/depictions are not saved to Commons - mark Media fields private - weaken types - remove partly implemented fields * #3529 Captions/depictions are not saved to Commons - add semi colon * #3529 Captions/depictions are not saved to Commons - fix test * Fix issue 3526 Unlike "Items" tab, "child classes" tab does not display description nor image thumbnail (#3619) * fix thumbnail issue 3526 * Fix Description issue 3526 * revert changes on this file, not finished with it yet * Fix Description for Child and Parent classes - issue 3526 * Remove conflict text in file * Remove retrofit.HEAD import * Incorporated review comments * Fix issue 3137 (#3637) * Fix issue 3137 * Remove import Timber * Remove unnecessary space * #3222 Merge master into Structured Data branch, fix conflicts - revert logging * Fix build * #3661 No Depictions Selected Dialog has reversed buttons - fix button order * Revert "#3661 No Depictions Selected Dialog has reversed buttons - fix button order" This reverts commit d8f9809. * #3222 Merge master into Structured Data branch, fix conflicts - remove unused methods/fields * #3661 No Depictions Selected Dialog has reversed buttons - fix button order (#3662) * #3653 Many Mnull requests - stop requesting captions for null ids (#3657) * #3653 Many Mnull requests - stop requesting captions for null ids * #3653 Many Mnull requests - move log line * #3633 [structured-data branch] In depictions selection screen, suggest nearby items (#3650) * #3633 [structured-data branch] In depictions selection screen, suggest nearby items - for empty search terms show nearby items for depictions * #3633 [structured-data branch] In depictions selection screen, suggest nearby items - use linear radii progression to search for places * #3666 Crash when uploading on structured-data branch - revert cleanup of UploadController (#3670) * #3222 Merge Structured Data branch into master - fix caption rendering in new UI * #3222 Merge Structured Data branch into master - upgrade retrofit + okhttp * #3664 Stop using JsonObject on StructuredData (#3672) * #3664 Stop using JsonObject on StructuredData - remove usage in Media classes - remove from depicts client - create partial network models * #3664 Stop using JsonObject on StructuredData - allow partial mapping of polymorphic models by returning null in typeadapter * #3664 Stop using JsonObject on StructuredData - use models for editing depicts property * #3664 Stop using JsonObject on StructuredData - use models for sparql parent query * #3664 Stop using JsonObject on StructuredData - fix unit test compilation * #3664 Stop using JsonObject on StructuredData - unify sparql responses * #3664 Stop using JsonObject on StructuredData - minor cleanup of misnamed/unused/too broad visibility * #3664 Stop using JsonObject on StructuredData - share variable names and logic for the Sarql queries * #3664 Stop using JsonObject on StructuredData - add error logging Co-authored-by: Vitaly V. Pinchuk <vetal.978@gmail.com> Co-authored-by: Ashish Kumar <ashishkumar468@gmail.com> Co-authored-by: vanshikaarora <vanshikaa937@gmail.com> Co-authored-by: Vivek Maskara <maskaravivek@gmail.com> Co-authored-by: Vanshika Arora <34261945+vanshikaarora@users.noreply.github.com> Co-authored-by: Somanshu and Himanshu <somanshS14@gmail.com> Co-authored-by: vvijayalakshmi21 <34595292+vvijayalakshmi21@users.noreply.github.com>
1 parent 22c2068 commit 0f906b2

File tree

168 files changed

+7406
-2066
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

168 files changed

+7406
-2066
lines changed

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,9 @@ dependencies {
1919

2020
implementation project(':wikimedia-data-client')
2121
// Utils
22-
implementation 'com.github.nicolas-raoul:Quadtree:ac16ea8035bf07'
2322
implementation 'in.yuvi:http.fluent:1.3'
2423
implementation 'com.google.code.gson:gson:2.8.5'
25-
implementation 'com.squareup.okhttp3:okhttp:4.2.0'
24+
implementation 'com.squareup.okhttp3:okhttp:4.5.0'
2625
implementation 'com.squareup.okio:okio:2.2.2'
2726
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
2827
implementation 'io.reactivex.rxjava2:rxjava:2.2.3'
@@ -44,6 +43,7 @@ dependencies {
4443
implementation 'com.dinuscxj:circleprogressbar:1.1.1'
4544
implementation 'com.karumi:dexter:5.0.0'
4645
implementation "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION"
46+
4747
kapt "com.jakewharton:butterknife-compiler:$BUTTERKNIFE_VERSION"
4848

4949
// Logging
@@ -53,7 +53,7 @@ dependencies {
5353
api('com.github.tony19:logback-android-classic:1.1.1-6') {
5454
exclude group: 'com.google.android', module: 'android'
5555
}
56-
implementation "com.squareup.okhttp3:logging-interceptor:4.2.0"
56+
implementation "com.squareup.okhttp3:logging-interceptor:4.5.0"
5757

5858
// Dependency injector
5959
implementation "com.google.dagger:dagger-android-support:$DAGGER_VERSION"
@@ -65,7 +65,7 @@ dependencies {
6565

6666
//Mocking
6767
testImplementation 'com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0'
68-
testImplementation 'org.mockito:mockito-inline:2.8.47'
68+
testImplementation 'org.mockito:mockito-inline:2.13.0'
6969
testImplementation 'org.mockito:mockito-core:2.23.0'
7070
testImplementation "org.powermock:powermock-module-junit4:2.0.0-beta.5"
7171
testImplementation "org.powermock:powermock-api-mockito2:2.0.0-beta.5"
@@ -108,9 +108,10 @@ dependencies {
108108

109109
//Room
110110
implementation "androidx.room:room-runtime:$ROOM_VERSION"
111-
kapt "androidx.room:room-compiler:$ROOM_VERSION" // For Kotlin use kapt instead of annotationProcessor
112-
implementation 'com.squareup.retrofit2:retrofit:2.7.1'
111+
implementation "androidx.room:room-ktx:$ROOM_VERSION"
113112
implementation "androidx.room:room-rxjava2:$ROOM_VERSION"
113+
kapt "androidx.room:room-compiler:$ROOM_VERSION" // For Kotlin use kapt instead of annotationProcessor
114+
implementation 'com.squareup.retrofit2:retrofit:2.8.1'
114115
testImplementation "androidx.arch.core:core-testing:2.1.0"
115116

116117
// Pref
@@ -208,6 +209,7 @@ android {
208209
buildConfigField "String", "WIKIMEDIA_API_POTD", "\"https://commons.wikimedia.org/w/api.php?action=featuredfeed&feed=potd&feedformat=rss&language=en\""
209210
buildConfigField "String", "WIKIMEDIA_API_HOST", "\"https://commons.wikimedia.org/w/api.php\""
210211
buildConfigField "String", "WIKIDATA_API_HOST", "\"https://www.wikidata.org/w/api.php\""
212+
buildConfigField "String", "WIKIDATA_URL", "\"https://www.wikidata.org\""
211213
buildConfigField "String", "WIKIMEDIA_FORGE_API_HOST", "\"https://tools.wmflabs.org/\""
212214
buildConfigField "String", "WIKIMEDIA_CAMPAIGNS_URL", "\"https://raw.githubusercontent.com/commons-app/campaigns/master/campaigns.json\""
213215
buildConfigField "String", "IMAGE_URL_BASE", "\"https://upload.wikimedia.org/wikipedia/commons\""
@@ -229,6 +231,7 @@ android {
229231
buildConfigField "String", "COMMIT_SHA", "\"" + getBuildVersion().toString() + "\""
230232
buildConfigField "String", "TEST_USERNAME", "\"" + System.getenv("test_user_name") + "\""
231233
buildConfigField "String", "TEST_PASSWORD", "\"" + System.getenv("test_user_password") + "\""
234+
buildConfigField "String", "DEPICTS_PROPERTY", "\"P180\""
232235

233236
dimension 'tier'
234237
}
@@ -240,6 +243,7 @@ android {
240243
buildConfigField "String", "WIKIMEDIA_API_POTD", "\"https://commons.wikimedia.org/w/api.php?action=featuredfeed&feed=potd&feedformat=rss&language=en\""
241244
buildConfigField "String", "WIKIMEDIA_API_HOST", "\"https://commons.wikimedia.beta.wmflabs.org/w/api.php\""
242245
buildConfigField "String", "WIKIDATA_API_HOST", "\"https://www.wikidata.org/w/api.php\""
246+
buildConfigField "String", "WIKIDATA_URL", "\"https://www.wikidata.org\""
243247
buildConfigField "String", "WIKIMEDIA_FORGE_API_HOST", "\"https://tools.wmflabs.org/\""
244248
buildConfigField "String", "WIKIMEDIA_CAMPAIGNS_URL", "\"https://raw.githubusercontent.com/commons-app/campaigns/master/campaigns_beta_active.json\""
245249
buildConfigField "String", "IMAGE_URL_BASE", "\"https://upload.beta.wmflabs.org/wikipedia/commons\""
@@ -261,6 +265,7 @@ android {
261265
buildConfigField "String", "COMMIT_SHA", "\"" + getBuildVersion().toString() + "\""
262266
buildConfigField "String", "TEST_USERNAME", "\"" + System.getenv("test_user_name") + "\""
263267
buildConfigField "String", "TEST_PASSWORD", "\"" + System.getenv("test_user_password") + "\""
268+
buildConfigField "String", "DEPICTS_PROPERTY", "\"P245962\""
264269

265270
dimension 'tier'
266271
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package fr.free.nrw.commons
2+
3+
import androidx.test.runner.AndroidJUnit4
4+
import org.junit.Rule
5+
import org.junit.runner.RunWith
6+
import android.net.Uri
7+
import androidx.test.espresso.Espresso
8+
import androidx.test.espresso.action.ViewActions
9+
import androidx.test.espresso.matcher.ViewMatchers
10+
import androidx.test.rule.ActivityTestRule
11+
import fr.free.nrw.commons.upload.UploadActivity
12+
import org.hamcrest.Matchers
13+
import org.hamcrest.core.AllOf
14+
import org.junit.Test
15+
16+
@RunWith(AndroidJUnit4::class)
17+
class DepictionSearchTest {
18+
@get:Rule
19+
var activityRule = ActivityTestRule(UploadActivity::class.java)
20+
21+
@Test
22+
fun TestForCaptionsAndDepictions() {
23+
val imageUri = Uri.parse("file://mnt/sdcard/image.jpg")
24+
25+
// Build a result to return from the Camera app
26+
27+
28+
// Stub out the File picker. When an intent is sent to the File picker, this tells
29+
// Espresso to respond with the ActivityResult we just created
30+
31+
Espresso.onView(ViewMatchers.withId(R.id.caption_item_edit_text))
32+
.perform(ViewActions.typeText("caption in english"))
33+
Espresso.onView(ViewMatchers.withId(R.id.description_item_edit_text))
34+
.perform(ViewActions.typeText("description in english"))
35+
Espresso.onView(ViewMatchers.withId(R.id.spinner_description_languages))
36+
.perform(ViewActions.click())
37+
Espresso.onView(ViewMatchers.withId(R.id.spinner_description_languages)).perform(ViewActions.click());
38+
Espresso.onData(AllOf.allOf(Matchers.anything("spinner text"))).atPosition(1).perform(ViewActions.click());
39+
Espresso.onView(ViewMatchers.withId(R.id.caption_item_edit_text))
40+
.perform(ViewActions.typeText("caption in some other language"))
41+
Espresso.onView(ViewMatchers.withId(R.id.description_item_edit_text))
42+
.perform(ViewActions.typeText("description in some other language"))
43+
Espresso.onView(ViewMatchers.withId(R.id.btn_next))
44+
.perform(ViewActions.click())
45+
}
46+
}

app/src/androidTest/java/fr/free/nrw/commons/UploadActivityTest.kt

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
11
package fr.free.nrw.commons
22

3+
import android.net.Uri
4+
import androidx.test.espresso.Espresso
5+
import androidx.test.espresso.action.ViewActions
6+
import androidx.test.espresso.intent.Intents
7+
import androidx.test.espresso.intent.matcher.IntentMatchers
8+
import androidx.test.espresso.matcher.ViewMatchers
39
import androidx.test.rule.ActivityTestRule
410
import androidx.test.runner.AndroidJUnit4
511
import fr.free.nrw.commons.upload.UploadActivity
12+
import fr.free.nrw.commons.upload.depicts.DepictsFragment
13+
import org.hamcrest.Matchers
14+
import org.hamcrest.core.AllOf
615
import org.junit.Rule
716
import org.junit.Test
817
import org.junit.runner.RunWith
@@ -16,4 +25,25 @@ class UploadActivityTest {
1625
fun orientationChange() {
1726
UITestHelper.changeOrientation(activityRule)
1827
}
19-
}
28+
29+
@Test
30+
fun TestForCaptionsAndDepictions() {
31+
val imageUri = Uri.parse("file://mnt/sdcard/image.jpg")
32+
33+
Espresso.onView(ViewMatchers.withId(R.id.caption_item_edit_text))
34+
.perform(ViewActions.typeText("caption in english"))
35+
Espresso.onView(ViewMatchers.withId(R.id.description_item_edit_text))
36+
.perform(ViewActions.typeText("description in english"))
37+
Espresso.onView(ViewMatchers.withId(R.id.spinner_description_languages))
38+
.perform(ViewActions.click())
39+
Espresso.onView(ViewMatchers.withId(R.id.spinner_description_languages)).perform(ViewActions.click());
40+
Espresso.onData(AllOf.allOf(Matchers.anything("spinner text"))).atPosition(1).perform(ViewActions.click());
41+
Espresso.onView(ViewMatchers.withId(R.id.caption_item_edit_text))
42+
.perform(ViewActions.typeText("caption in some other language"))
43+
Espresso.onView(ViewMatchers.withId(R.id.description_item_edit_text))
44+
.perform(ViewActions.typeText("description in some other language"))
45+
Espresso.onView(ViewMatchers.withId(R.id.btn_next))
46+
.perform(ViewActions.click())
47+
Intents.intended(IntentMatchers.hasComponent(DepictsFragment::class.java.name))
48+
}
49+
}

app/src/main/AndroidManifest.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,11 @@
119119
android:label="@string/title_activity_featured_images"
120120
android:parentActivityName=".contributions.MainActivity" />
121121

122+
<activity
123+
android:name=".depictions.WikidataItemDetailsActivity"
124+
android:label="@string/title_activity_featured_images"
125+
android:parentActivityName=".contributions.MainActivity" />
126+
122127
<activity
123128
android:name=".explore.categories.ExploreActivity"
124129
android:label="@string/title_activity_explore"
@@ -178,7 +183,7 @@
178183
android:authorities="${applicationId}.categories.contentprovider"
179184
android:exported="false"
180185
android:label="@string/provider_categories"
181-
android:syncable="false" />
186+
android:syncable="false" />
182187

183188
<provider
184189
android:name=".explore.recentsearches.RecentSearchesContentProvider"

app/src/main/java/fr/free/nrw/commons/CommonsApplication.java

Lines changed: 24 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,64 @@
11
package fr.free.nrw.commons;
22

3+
import static fr.free.nrw.commons.data.DBOpenHelper.CONTRIBUTIONS_TABLE;
4+
import static org.acra.ReportField.ANDROID_VERSION;
5+
import static org.acra.ReportField.APP_VERSION_CODE;
6+
import static org.acra.ReportField.APP_VERSION_NAME;
7+
import static org.acra.ReportField.PHONE_MODEL;
8+
import static org.acra.ReportField.STACK_TRACE;
9+
import static org.acra.ReportField.USER_COMMENT;
10+
311
import android.annotation.SuppressLint;
412
import android.app.Application;
513
import android.app.NotificationChannel;
614
import android.app.NotificationManager;
715
import android.content.Context;
816
import android.database.sqlite.SQLiteDatabase;
9-
import android.database.sqlite.SQLiteException;
1017
import android.os.Build;
1118
import android.os.Process;
1219
import android.util.Log;
13-
1420
import androidx.annotation.NonNull;
15-
1621
import com.facebook.drawee.backends.pipeline.Fresco;
1722
import com.facebook.imagepipeline.core.ImagePipeline;
1823
import com.facebook.imagepipeline.core.ImagePipelineConfig;
1924
import com.mapbox.mapboxsdk.Mapbox;
2025
import com.squareup.leakcanary.LeakCanary;
2126
import com.squareup.leakcanary.RefWatcher;
2227

23-
import io.reactivex.Completable;
24-
import org.acra.ACRA;
25-
import org.acra.annotation.AcraCore;
26-
import org.acra.annotation.AcraDialog;
27-
import org.acra.annotation.AcraMailSender;
28-
import org.acra.data.StringFormat;
29-
import org.wikipedia.AppAdapter;
30-
import org.wikipedia.language.AppLanguageLookUpTable;
31-
32-
import java.io.File;
33-
import java.util.HashSet;
34-
import java.util.Set;
35-
36-
import javax.inject.Inject;
37-
import javax.inject.Named;
38-
3928
import fr.free.nrw.commons.auth.SessionManager;
4029
import fr.free.nrw.commons.bookmarks.locations.BookmarkLocationsDao;
4130
import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesDao;
4231
import fr.free.nrw.commons.category.CategoryDao;
4332
import fr.free.nrw.commons.concurrency.BackgroundPoolExceptionHandler;
4433
import fr.free.nrw.commons.concurrency.ThreadPoolService;
34+
import fr.free.nrw.commons.contributions.ContributionDao;
4535
import fr.free.nrw.commons.data.DBOpenHelper;
46-
import fr.free.nrw.commons.db.AppDatabase;
4736
import fr.free.nrw.commons.di.ApplicationlessInjection;
4837
import fr.free.nrw.commons.kvstore.JsonKvStore;
4938
import fr.free.nrw.commons.logging.FileLoggingTree;
5039
import fr.free.nrw.commons.logging.LogUtils;
5140
import fr.free.nrw.commons.settings.Prefs;
5241
import fr.free.nrw.commons.upload.FileUtils;
5342
import fr.free.nrw.commons.utils.ConfigUtils;
43+
import io.reactivex.Completable;
5444
import io.reactivex.android.schedulers.AndroidSchedulers;
5545
import io.reactivex.internal.functions.Functions;
5646
import io.reactivex.plugins.RxJavaPlugins;
5747
import io.reactivex.schedulers.Schedulers;
48+
import java.io.File;
49+
import java.util.HashSet;
50+
import java.util.Set;
51+
import javax.inject.Inject;
52+
import javax.inject.Named;
53+
import org.acra.ACRA;
54+
import org.acra.annotation.AcraCore;
55+
import org.acra.annotation.AcraDialog;
56+
import org.acra.annotation.AcraMailSender;
57+
import org.acra.data.StringFormat;
58+
import org.wikipedia.AppAdapter;
59+
import org.wikipedia.language.AppLanguageLookUpTable;
5860
import timber.log.Timber;
5961

60-
import static fr.free.nrw.commons.data.DBOpenHelper.CONTRIBUTIONS_TABLE;
61-
import static org.acra.ReportField.ANDROID_VERSION;
62-
import static org.acra.ReportField.APP_VERSION_CODE;
63-
import static org.acra.ReportField.APP_VERSION_NAME;
64-
import static org.acra.ReportField.PHONE_MODEL;
65-
import static org.acra.ReportField.STACK_TRACE;
66-
import static org.acra.ReportField.USER_COMMENT;
67-
6862
@AcraCore(
6963
buildConfigClass = BuildConfig.class,
7064
resReportSendSuccessToast = R.string.crash_dialog_ok_toast,
@@ -120,8 +114,7 @@ public AppLanguageLookUpTable getLanguageLookUpTable() {
120114
return languageLookUpTable;
121115
}
122116

123-
@Inject
124-
AppDatabase appDatabase;
117+
@Inject ContributionDao contributionDao;
125118

126119
/**
127120
* Used to declare and initialize various components and dependencies
@@ -299,7 +292,7 @@ private void updateAllDatabases() {
299292

300293
CategoryDao.Table.onDelete(db);
301294
dbOpenHelper.deleteTable(db,CONTRIBUTIONS_TABLE);//Delete the contributions table in the existing db on older versions
302-
appDatabase.getContributionDao().deleteAll();
295+
contributionDao.deleteAll();
303296
BookmarkPicturesDao.Table.onDelete(db);
304297
BookmarkLocationsDao.Table.onDelete(db);
305298
}

0 commit comments

Comments
 (0)