Skip to content

Commit 67faa40

Browse files
macgillsVitalyVPinchukashishkumar468vanshikaaroramaskaravivek
authored
Structured data (#3695)
* #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 * #228 Overwrite happens - fix extension of filename (#3689) * #3675 Rename buttons of the dialog box shown when no depiction is selected - remove "yes, submit" and "no, go back" (#3688) * #3680 Tip appears even when not tapping the (i) icon - use TextInputLayout EndIcons (#3683) * #3680 Tip appears even when not tapping the (i) icon - use TextInputLayout EndIcons * #3680 Tip appears even when not tapping the (i) icon - reaorder endIcon mode call so tinting is applied * structured data - fix compilation 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 840e126 commit 67faa40

File tree

6 files changed

+35
-76
lines changed

6 files changed

+35
-76
lines changed

app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.java

+18-52
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
package fr.free.nrw.commons.upload;
22

3-
import android.content.Context;
4-
import android.graphics.drawable.Drawable;
53
import android.text.TextUtils;
6-
import android.util.DisplayMetrics;
74
import android.view.LayoutInflater;
8-
import android.view.MotionEvent;
95
import android.view.View;
106
import android.view.ViewGroup;
117
import android.widget.AdapterView;
@@ -17,6 +13,7 @@
1713
import androidx.recyclerview.widget.RecyclerView;
1814
import butterknife.BindView;
1915
import butterknife.ButterKnife;
16+
import com.google.android.material.textfield.TextInputLayout;
2017
import fr.free.nrw.commons.R;
2118
import fr.free.nrw.commons.utils.AbstractTextWatcher;
2219
import java.util.ArrayList;
@@ -93,9 +90,15 @@ public class ViewHolder extends RecyclerView.ViewHolder {
9390
@BindView(R.id.description_item_edit_text)
9491
AppCompatEditText descItemEditText;
9592

93+
@BindView(R.id.description_item_edit_text_input_layout)
94+
TextInputLayout descInputLayout;
95+
9696
@BindView(R.id.caption_item_edit_text)
9797
AppCompatEditText captionItemEditText;
9898

99+
@BindView(R.id.caption_item_edit_text_input_layout)
100+
TextInputLayout captionInputLayout;
101+
99102
public ViewHolder(View itemView) {
100103
super(itemView);
101104
ButterKnife.bind(this, itemView);
@@ -116,38 +119,19 @@ public void bind(int position) {
116119
}));
117120

118121
if (position == 0) {
119-
captionItemEditText.setCompoundDrawablesWithIntrinsicBounds(null, null, getInfoIcon(),
120-
null);
121-
captionItemEditText.setOnTouchListener((v, event) -> {
122-
//2 is for drawable right
123-
if (event.getAction() == MotionEvent.ACTION_UP && (event.getRawX() >= (captionItemEditText.getRight() - captionItemEditText.getCompoundDrawables()[2].getBounds().width()))) {
124-
if (getAdapterPosition() == 0) {
125-
callback.showAlert(R.string.media_detail_caption,
126-
R.string.caption_info);
127-
}
128-
return true;
129-
}
130-
return false;
131-
});
132-
133-
descItemEditText.setCompoundDrawablesWithIntrinsicBounds(null, null, getInfoIcon(),
134-
null);
135-
descItemEditText.setOnTouchListener((v, event) -> {
136-
//2 is for drawable right
137-
float twelveDpInPixels = convertDpToPixel(12, descItemEditText.getContext());
138-
if (event.getAction() == MotionEvent.ACTION_UP && descItemEditText.getCompoundDrawables()[2].getBounds().contains((int)(descItemEditText.getWidth()-(event.getX()+twelveDpInPixels)),(int)(event.getY()-twelveDpInPixels))){
139-
if (getAdapterPosition() == 0) {
140-
callback.showAlert(R.string.media_detail_description,
141-
R.string.description_info);
142-
}
143-
return true;
144-
}
145-
return false;
146-
});
122+
captionInputLayout.setEndIconMode(TextInputLayout.END_ICON_CUSTOM);
123+
captionInputLayout.setEndIconDrawable(R.drawable.mapbox_info_icon_default);
124+
captionInputLayout.setEndIconOnClickListener(v ->
125+
callback.showAlert(R.string.media_detail_caption, R.string.caption_info));
126+
127+
descInputLayout.setEndIconMode(TextInputLayout.END_ICON_CUSTOM);
128+
descInputLayout.setEndIconDrawable(R.drawable.mapbox_info_icon_default);
129+
descInputLayout.setEndIconOnClickListener(v ->
130+
callback.showAlert(R.string.media_detail_description, R.string.description_info));
147131

148132
} else {
149-
captionItemEditText.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
150-
descItemEditText.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
133+
captionInputLayout.setEndIconDrawable(null);
134+
descInputLayout.setEndIconDrawable(null);
151135
}
152136

153137
captionItemEditText.addTextChangedListener(new AbstractTextWatcher(
@@ -218,15 +202,6 @@ public void onNothingSelected(AdapterView<?> adapterView) {
218202
selectedLanguages.put(spinnerDescriptionLanguages, description.getLanguageCode());
219203
}
220204
}
221-
222-
/**
223-
* Extracted out the method to get the icon drawable
224-
*/
225-
private Drawable getInfoIcon() {
226-
return descItemEditText.getContext()
227-
.getResources()
228-
.getDrawable(R.drawable.mapbox_info_icon_default);
229-
}
230205
}
231206

232207
public interface Callback {
@@ -238,13 +213,4 @@ public interface EventListener {
238213
void onPrimaryCaptionTextChange(boolean isNotEmpty);
239214
}
240215

241-
/**
242-
* converts dp to pixel
243-
* @param dp
244-
* @param context
245-
* @return
246-
*/
247-
private float convertDpToPixel(float dp, Context context) {
248-
return dp * ((float) context.getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT);
249-
}
250216
}

app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java

+8-14
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
import android.content.Context;
55
import android.net.Uri;
66
import androidx.annotation.Nullable;
7+
import fr.free.nrw.commons.Utils;
78
import fr.free.nrw.commons.auth.SessionManager;
89
import fr.free.nrw.commons.contributions.Contribution;
10+
import fr.free.nrw.commons.filepicker.MimeTypeMapWrapper;
911
import fr.free.nrw.commons.filepicker.UploadableFile;
1012
import fr.free.nrw.commons.kvstore.JsonKvStore;
1113
import fr.free.nrw.commons.nearby.Place;
@@ -106,8 +108,8 @@ private UploadItem createAndAddUploadItem(final UploadableFile uploadableFile,
106108
Timber.d("File created date is %d", fileCreatedDate);
107109
final ImageCoordinates imageCoordinates = fileProcessor
108110
.processFileCoordinates(similarImageInterface, uploadableFile.getFilePath());
109-
final UploadItem uploadItem = new UploadItem(uploadableFile.getContentUri(),
110-
Uri.parse(uploadableFile.getFilePath()),
111+
final UploadItem uploadItem = new UploadItem(
112+
Uri.parse(uploadableFile.getFilePath()),
111113
uploadableFile.getMimeType(context), imageCoordinates, place, fileCreatedDate,
112114
createdTimestampSource);
113115
if (place != null) {
@@ -204,7 +206,6 @@ public List<DepictedItem> getSelectedDepictions() {
204206
@SuppressWarnings("WeakerAccess")
205207
public static class UploadItem {
206208

207-
private final Uri originalContentUri;
208209
private final Uri mediaUri;
209210
private final String mimeType;
210211
private ImageCoordinates gpsCoords;
@@ -214,13 +215,12 @@ public static class UploadItem {
214215
private final String createdTimestampSource;
215216
private final BehaviorSubject<Integer> imageQuality;
216217
@SuppressLint("CheckResult")
217-
UploadItem(final Uri originalContentUri,
218-
final Uri mediaUri, final String mimeType,
218+
UploadItem(final Uri mediaUri,
219+
final String mimeType,
219220
final ImageCoordinates gpsCoords,
220221
final Place place,
221222
final long createdTimestamp,
222223
final String createdTimestampSource) {
223-
this.originalContentUri = originalContentUri;
224224
this.createdTimestampSource = createdTimestampSource;
225225
uploadMediaDetails = new ArrayList<>(Arrays.asList(new UploadMediaDetail()));
226226
this.place = place;
@@ -267,10 +267,6 @@ public void setMediaDetails(final List<UploadMediaDetail> uploadMediaDetails) {
267267
this.uploadMediaDetails = uploadMediaDetails;
268268
}
269269

270-
public Uri getContentUri() {
271-
return originalContentUri;
272-
}
273-
274270
@Override
275271
public boolean equals(@Nullable final Object obj) {
276272
if (!(obj instanceof UploadItem)) {
@@ -290,15 +286,13 @@ public int hashCode() {
290286
* Currently, the caption is used as a filename. If several languages have been entered, the first language is used.
291287
*/
292288
public String getFileName() {
293-
return uploadMediaDetails.get(0).getCaptionText();
289+
return Utils.fixExtension(uploadMediaDetails.get(0).getCaptionText(),
290+
MimeTypeMapWrapper.getExtensionFromMimeType(mimeType));
294291
}
295292

296293
public void setGpsCoords(final ImageCoordinates gpsCoords) {
297294
this.gpsCoords = gpsCoords;
298295
}
299296

300-
public String getMimeType() {
301-
return mimeType;
302-
}
303297
}
304298
}

app/src/main/java/fr/free/nrw/commons/upload/categories/UploadCategoriesFragment.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ public void showNoCategorySelected() {
151151
DialogUtil.showAlertDialog(getActivity(),
152152
getString(R.string.no_categories_selected),
153153
getString(R.string.no_categories_selected_warning_desc),
154-
getString(R.string.yes_submit),
155-
getString(R.string.no_go_back),
154+
getString(R.string.continue_message),
155+
getString(R.string.cancel),
156156
() -> goToNextScreen(),
157157
null);
158158

app/src/main/java/fr/free/nrw/commons/upload/depicts/DepictsFragment.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ public void noDepictionSelected() {
104104
DialogUtil.showAlertDialog(getActivity(),
105105
getString(R.string.no_depictions_selected),
106106
getString(R.string.no_depictions_selected_warning_desc),
107-
getString(R.string.yes_submit),
108-
getString(R.string.no_go_back),
107+
getString(R.string.continue_message),
108+
getString(R.string.cancel),
109109
this::goToNextScreen,
110110
null
111111
);

app/src/main/res/layout/row_item_description.xml

+3-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
android:orientation="vertical"
2020
android:layout_weight="8">
2121
<com.google.android.material.textfield.TextInputLayout
22+
android:id="@+id/caption_item_edit_text_input_layout"
2223
android:layout_width="match_parent"
2324
android:layout_height="wrap_content"
2425
>
@@ -33,6 +34,7 @@
3334
</com.google.android.material.textfield.TextInputLayout>
3435

3536
<com.google.android.material.textfield.TextInputLayout
37+
android:id="@+id/description_item_edit_text_input_layout"
3638
android:layout_width="match_parent"
3739
android:layout_height="wrap_content"
3840
>
@@ -47,4 +49,4 @@
4749
</com.google.android.material.textfield.TextInputLayout>
4850

4951
</LinearLayout>
50-
</LinearLayout>
52+
</LinearLayout>

app/src/main/res/values/strings.xml

+2-5
Original file line numberDiff line numberDiff line change
@@ -460,13 +460,10 @@ Upload your first media by tapping on the add button.</string>
460460
<string name="desc_language_Pacific">Pacific</string>
461461

462462
<string name="no_categories_selected">No Categories Selected</string>
463-
<string name="no_categories_selected_warning_desc">Images without categories are rarely usable. Are you sure you want to submit without selecting categories?</string>
463+
<string name="no_categories_selected_warning_desc">Images without categories are rarely usable. Are you sure you want to continue without selecting categories?</string>
464464

465465
<string name="no_depictions_selected">No Depictions Selected</string>
466-
<string name="no_depictions_selected_warning_desc">Depictions help when searching for images. Are you sure you want to submit without selecting depictions?</string>
467-
468-
<string name="yes_submit">Yes, Submit</string>
469-
<string name="no_go_back">No, Go Back</string>
466+
<string name="no_depictions_selected_warning_desc">Images with depictions are more easily found and more likely to be used. Are you sure you want to continue without selecting depictions?</string>
470467

471468
<string name="upload_flow_all_images_in_set">(For all images in set)</string>
472469
<string name="search_this_area">Search this area</string>

0 commit comments

Comments
 (0)