Skip to content

Commit 2a51820

Browse files
committed
#3503 Remove Title/Caption From MediaUploadDetail and only use Caption/Description pairs - replace title with the first MediaDetail
1 parent fa490bd commit 2a51820

11 files changed

+27
-152
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import androidx.annotation.NonNull;
44

5+
import okhttp3.logging.HttpLoggingInterceptor.Level;
56
import org.wikipedia.dataclient.SharedPreferenceCookieManager;
67
import org.wikipedia.dataclient.okhttp.HttpStatusException;
78

@@ -40,7 +41,7 @@ private static OkHttpClient createClient() {
4041

4142
private static HttpLoggingInterceptor getLoggingInterceptor() {
4243
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor()
43-
.setLevel(HttpLoggingInterceptor.Level.BASIC);
44+
.setLevel(BuildConfig.DEBUG ? Level.BODY: Level.BASIC);
4445

4546
httpLoggingInterceptor.redactHeader("Authorization");
4647
httpLoggingInterceptor.redactHeader("Cookie");

app/src/main/java/fr/free/nrw/commons/di/NetworkingModule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public HttpLoggingInterceptor provideHttpLoggingInterceptor() {
7171
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(message -> {
7272
Timber.tag("OkHttp").v(message);
7373
});
74-
httpLoggingInterceptor.level(BuildConfig.DEBUG ? Level.BODY: HttpLoggingInterceptor.Level.BASIC);
74+
httpLoggingInterceptor.level(BuildConfig.DEBUG ? Level.BODY: Level.BASIC);
7575
return httpLoggingInterceptor;
7676
}
7777

app/src/main/java/fr/free/nrw/commons/upload/Title.kt

Lines changed: 0 additions & 29 deletions
This file was deleted.

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
6262

6363
@Override
6464
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
65-
holder.init(position);
65+
holder.bind(position);
6666
}
6767

6868
@Override
@@ -102,7 +102,7 @@ public ViewHolder(View itemView) {
102102
Timber.i("descItemEditText:" + descItemEditText);
103103
}
104104

105-
public void init(int position) {
105+
public void bind(int position) {
106106
UploadMediaDetail uploadMediaDetail = uploadMediaDetails.get(position);
107107
Timber.d("UploadMediaDetail is " + uploadMediaDetail);
108108
captionItemEditText.setText(uploadMediaDetail.getCaptionText());

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

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ private UploadItem createAndAddUploadItem(final UploadableFile uploadableFile,
119119
uploadableFile.getMimeType(context), source, imageCoordinates, place, fileCreatedDate,
120120
createdTimestampSource);
121121
if (place != null) {
122-
uploadItem.title.setTitleText(place.name);
123122
uploadItem.getUploadMediaDetails().set(0, new UploadMediaDetail(place));
124123
}
125124
if (!items.contains(uploadItem)) {
@@ -206,7 +205,6 @@ public List<UploadItem> getItems() {
206205
public void updateUploadItem(final int index, final UploadItem uploadItem) {
207206
final UploadItem uploadItem1 = items.get(index);
208207
uploadItem1.setMediaDetails(uploadItem.uploadMediaDetails);
209-
uploadItem1.setTitle(uploadItem.title);
210208
}
211209

212210
public void setSelectedDepictions(final List<String> selectedDepictions) {
@@ -231,7 +229,6 @@ public static class UploadItem {
231229
private final String mimeType;
232230
private final String source;
233231
private ImageCoordinates gpsCoords;
234-
private Title title;
235232
private List<UploadMediaDetail> uploadMediaDetails;
236233
private final Place place;
237234
private final long createdTimestamp;
@@ -245,7 +242,6 @@ public static class UploadItem {
245242
final String createdTimestampSource) {
246243
this.originalContentUri = originalContentUri;
247244
this.createdTimestampSource = createdTimestampSource;
248-
title = new Title();
249245
uploadMediaDetails = Collections.singletonList(new UploadMediaDetail());
250246
uploadMediaDetails = new ArrayList<>(Arrays.asList(new UploadMediaDetail()));
251247
this.place = place;
@@ -277,10 +273,6 @@ public long getCreatedTimestamp() {
277273
return createdTimestamp;
278274
}
279275

280-
public Title getTitle() {
281-
return title;
282-
}
283-
284276
public Uri getMediaUri() {
285277
return mediaUri;
286278
}
@@ -297,11 +289,6 @@ public Place getPlace() {
297289
return place;
298290
}
299291

300-
public void setTitle(final Title title) {
301-
this.title = title;
302-
}
303-
304-
305292
public void setMediaDetails(final List<UploadMediaDetail> uploadMediaDetails) {
306293
this.uploadMediaDetails = uploadMediaDetails;
307294
}

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

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
package fr.free.nrw.commons.upload.categories;
22

3-
import android.text.TextUtils;
4-
5-
import java.lang.reflect.Proxy;
6-
import java.util.ArrayList;
7-
import java.util.List;
8-
9-
import javax.inject.Inject;
10-
import javax.inject.Named;
11-
import javax.inject.Singleton;
3+
import static fr.free.nrw.commons.di.CommonsApplicationModule.IO_THREAD;
4+
import static fr.free.nrw.commons.di.CommonsApplicationModule.MAIN_THREAD;
125

6+
import android.text.TextUtils;
137
import fr.free.nrw.commons.R;
148
import fr.free.nrw.commons.category.CategoryItem;
159
import fr.free.nrw.commons.repository.UploadRepository;
@@ -18,11 +12,14 @@
1812
import io.reactivex.Scheduler;
1913
import io.reactivex.disposables.CompositeDisposable;
2014
import io.reactivex.disposables.Disposable;
15+
import java.lang.reflect.Proxy;
16+
import java.util.ArrayList;
17+
import java.util.List;
18+
import javax.inject.Inject;
19+
import javax.inject.Named;
20+
import javax.inject.Singleton;
2121
import timber.log.Timber;
2222

23-
import static fr.free.nrw.commons.di.CommonsApplicationModule.IO_THREAD;
24-
import static fr.free.nrw.commons.di.CommonsApplicationModule.MAIN_THREAD;
25-
2623
/**
2724
* The presenter class for UploadCategoriesFragment
2825
*/
@@ -86,9 +83,10 @@ public void searchForCategories(String query) {
8683
)
8784
.filter(categoryItem -> !repository.containsYear(categoryItem.getName()))
8885
.distinct();
89-
if(!TextUtils.isEmpty(query)) {
90-
distinctCategoriesObservable=distinctCategoriesObservable.sorted(repository.sortBySimilarity(query));
91-
}
86+
87+
if(!TextUtils.isEmpty(query)) {
88+
distinctCategoriesObservable=distinctCategoriesObservable.sorted(repository.sortBySimilarity(query));
89+
}
9290
Disposable searchCategoriesDisposable = distinctCategoriesObservable
9391
.observeOn(mainThreadScheduler)
9492
.subscribe(
@@ -114,8 +112,9 @@ public void searchForCategories(String query) {
114112
private List<String> getImageTitleList() {
115113
List<String> titleList = new ArrayList<>();
116114
for (UploadItem item : repository.getUploads()) {
117-
if (item.getTitle().isSet()) {
118-
titleList.add(item.getTitle().toString());
115+
final String captionText = item.getUploadMediaDetails().get(0).getCaptionText();
116+
if (!TextUtils.isEmpty(captionText)) {
117+
titleList.add(captionText);
119118
}
120119
}
121120
return titleList;

app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java

Lines changed: 1 addition & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,10 @@
33
import static fr.free.nrw.commons.utils.ImageUtils.getErrorMessageForResult;
44

55
import android.annotation.SuppressLint;
6-
import android.content.Context;
76
import android.os.Bundle;
8-
import android.text.TextUtils;
9-
import android.util.DisplayMetrics;
107
import android.view.LayoutInflater;
11-
import android.view.MotionEvent;
128
import android.view.View;
139
import android.view.ViewGroup;
14-
import android.widget.EditText;
1510
import android.widget.LinearLayout;
1611
import android.widget.TextView;
1712
import androidx.annotation.NonNull;
@@ -24,7 +19,6 @@
2419
import butterknife.ButterKnife;
2520
import butterknife.OnClick;
2621
import com.github.chrisbanes.photoview.PhotoView;
27-
import com.jakewharton.rxbinding2.widget.RxTextView;
2822
import fr.free.nrw.commons.R;
2923
import fr.free.nrw.commons.Utils;
3024
import fr.free.nrw.commons.filepicker.UploadableFile;
@@ -34,7 +28,6 @@
3428
import fr.free.nrw.commons.settings.Prefs;
3529
import fr.free.nrw.commons.upload.ImageCoordinates;
3630
import fr.free.nrw.commons.upload.SimilarImageDialogFragment;
37-
import fr.free.nrw.commons.upload.Title;
3831
import fr.free.nrw.commons.upload.UploadBaseFragment;
3932
import fr.free.nrw.commons.upload.UploadMediaDetail;
4033
import fr.free.nrw.commons.upload.UploadMediaDetailAdapter;
@@ -43,7 +36,6 @@
4336
import fr.free.nrw.commons.utils.DialogUtil;
4437
import fr.free.nrw.commons.utils.ImageUtils;
4538
import fr.free.nrw.commons.utils.ViewUtil;
46-
import io.reactivex.disposables.Disposable;
4739
import java.util.ArrayList;
4840
import java.util.Arrays;
4941
import java.util.List;
@@ -66,8 +58,6 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements
6658
AppCompatImageButton ibExpandCollapse;
6759
@BindView(R.id.ll_container_media_detail)
6860
LinearLayout llContainerMediaDetail;
69-
@BindView(R.id.et_title)
70-
EditText etTitle;
7161
@BindView(R.id.rv_descriptions)
7262
RecyclerView rvDescriptions;
7363
@BindView(R.id.backgroundImage)
@@ -94,7 +84,6 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements
9484
private String source;
9585
private Place place;
9686

97-
private Title title;
9887
private boolean isExpanded = true;
9988

10089
private UploadMediaDetailFragmentCallback callback;
@@ -131,24 +120,8 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
131120
private void init() {
132121
tvTitle.setText(getString(R.string.step_count, callback.getIndexInViewFlipper(this) + 1,
133122
callback.getTotalNumberOfSteps()));
134-
title = new Title();
135123
initRecyclerView();
136124
initPresenter();
137-
Disposable disposable = RxTextView.textChanges(etTitle)
138-
.subscribe(text -> {
139-
if (!TextUtils.isEmpty(text)) {
140-
btnNext.setEnabled(true);
141-
btnNext.setClickable(true);
142-
btnNext.setAlpha(1.0f);
143-
title.setTitleText(text.toString());
144-
uploadItem.setTitle(title);
145-
} else {
146-
btnNext.setAlpha(0.5f);
147-
btnNext.setEnabled(false);
148-
btnNext.setClickable(false);
149-
}
150-
});
151-
compositeDisposable.add(disposable);
152125
presenter.receiveImage(uploadableFile, source, place);
153126

154127
if (callback.getIndexInViewFlipper(this) == 0) {
@@ -168,36 +141,6 @@ private void init() {
168141

169142
attachImageViewScaleChangeListener();
170143

171-
addEtTitleTouchListener();
172-
}
173-
174-
/**
175-
* Handles the drawable click listener for Edit Text
176-
*/
177-
private void addEtTitleTouchListener() {
178-
etTitle.setOnTouchListener((v, event) -> {
179-
//2 is for drawable right
180-
float twelveDpInPixels = convertDpToPixel(12, getContext());
181-
if (event.getAction() == MotionEvent.ACTION_UP && etTitle.getCompoundDrawables() != null
182-
&& etTitle.getCompoundDrawables().length > 2 && etTitle
183-
.getCompoundDrawables()[2].getBounds()
184-
.contains((int) (etTitle.getWidth() - (event.getX() + twelveDpInPixels)),
185-
(int) (event.getY() - twelveDpInPixels))) {
186-
showInfoAlert(R.string.media_detail_title, R.string.title_info);
187-
return true;
188-
}
189-
return false;
190-
});
191-
}
192-
193-
/**
194-
* converts dp to pixel
195-
* @param dp
196-
* @param context
197-
* @return
198-
*/
199-
private float convertDpToPixel(float dp, Context context) {
200-
return dp * ((float) context.getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT);
201144
}
202145

203146
/**
@@ -301,7 +244,6 @@ public void onNearbyPlaceFound(UploadItem uploadItem, Place place) {
301244
getString(R.string.upload_nearby_place_found_description),
302245
place.getName()),
303246
() -> {
304-
etTitle.setText(place.getName());
305247
descriptions = new ArrayList<>(Arrays.asList(new UploadMediaDetail()));
306248
setDescriptionsInAdapter(descriptions);
307249
},
@@ -368,8 +310,7 @@ public void showBadImagePopup(Integer errorCode) {
368310
}
369311

370312
@Override
371-
public void setTitleAndDescription(String title, List<UploadMediaDetail> uploadMediaDetails) {
372-
etTitle.setText(title);
313+
public void setCaptionsAndDescriptions(List<UploadMediaDetail> uploadMediaDetails) {
373314
setDescriptionsInAdapter(uploadMediaDetails);
374315
}
375316

app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailsContract.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ interface View extends SimilarImageInterface {
3636

3737
void showMapWithImageCoordinates(boolean shouldShow);
3838

39-
void setTitleAndDescription(String title, List<UploadMediaDetail> uploadMediaDetails);
39+
void setCaptionsAndDescriptions(List<UploadMediaDetail> uploadMediaDetails);
4040
}
4141

4242
interface UserActionListener extends BasePresenter<View> {

app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaPresenter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ public void setUploadItem(int index, UploadItem uploadItem) {
151151
public void fetchPreviousTitleAndDescription(int indexInViewFlipper) {
152152
UploadItem previousUploadItem = repository.getPreviousUploadItem(indexInViewFlipper);
153153
if (null != previousUploadItem) {
154-
view.setTitleAndDescription(previousUploadItem.getTitle().getTitleText(), previousUploadItem.getUploadMediaDetails());
154+
view.setCaptionsAndDescriptions(previousUploadItem.getUploadMediaDetails());
155155
} else {
156156
view.showMessage(R.string.previous_image_title_description_not_found, R.color.color_error);
157157
}

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

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -82,22 +82,6 @@
8282
android:layout_marginTop="@dimen/standard_gap"
8383
android:orientation="vertical">
8484

85-
<com.google.android.material.textfield.TextInputLayout
86-
android:id="@+id/til_container_title"
87-
android:layout_width="match_parent"
88-
android:layout_height="wrap_content">
89-
90-
<androidx.appcompat.widget.AppCompatEditText
91-
android:id="@+id/et_title"
92-
android:layout_width="match_parent"
93-
android:layout_height="wrap_content"
94-
android:hint="@string/share_title_hint"
95-
android:imeOptions="actionNext"
96-
android:drawableEnd="@drawable/mapbox_info_icon_default"
97-
android:inputType="text"
98-
android:maxLines="1" />
99-
</com.google.android.material.textfield.TextInputLayout>
100-
10185
<fr.free.nrw.commons.widget.HeightLimitedRecyclerView
10286
android:id="@+id/rv_descriptions"
10387
android:layout_width="match_parent"
@@ -136,9 +120,6 @@
136120
android:layout_width="wrap_content"
137121
android:layout_height="wrap_content"
138122
android:layout_alignParentRight="true"
139-
android:enabled="false"
140-
android:clickable="false"
141-
android:alpha="0.5"
142123
android:text="@string/next"
143124
android:textColor="@android:color/white" />
144125

0 commit comments

Comments
 (0)