Skip to content

Commit 38d39e0

Browse files
vanshikaaroradomdomegg
authored andcommitted
Work on resolving #2311 for viewing failed uploads (#2617)
1 parent 3511094 commit 38d39e0

File tree

5 files changed

+40
-16
lines changed

5 files changed

+40
-16
lines changed

app/src/main/java/fr/free/nrw/commons/contributions/ContributionViewHolder.java

+8
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,12 @@ public void deleteUpload() {
9292
actions.deleteUpload();
9393
}
9494
}
95+
96+
@OnClick(R.id.contributionImage)
97+
public void imageClicked(){
98+
DisplayableContribution.ContributionActions actions = contribution.getContributionActions();
99+
if (actions != null) {
100+
actions.onClick();
101+
}
102+
}
95103
}

app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java

+12-13
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import android.view.View;
2626
import android.view.ViewGroup;
2727
import android.widget.Adapter;
28-
import android.widget.AdapterView;
2928
import android.widget.CheckBox;
3029
import android.widget.Toast;
3130

@@ -75,12 +74,12 @@
7574
public class ContributionsFragment
7675
extends CommonsDaggerSupportFragment
7776
implements LoaderManager.LoaderCallbacks<Cursor>,
78-
AdapterView.OnItemClickListener,
7977
MediaDetailPagerFragment.MediaDetailProvider,
8078
FragmentManager.OnBackStackChangedListener,
8179
ContributionsListFragment.SourceRefresher,
8280
LocationUpdateListener,
83-
ICampaignsView {
81+
ICampaignsView,
82+
ContributionsListAdapter.EventListener{
8483
@Inject @Named("default_preferences") JsonKvStore store;
8584
@Inject ContributionDao contributionDao;
8685
@Inject MediaWikiApi mediaWikiApi;
@@ -302,7 +301,7 @@ public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
302301

303302
if (contributionsListFragment.getAdapter() == null) {
304303
contributionsListFragment.setAdapter(new ContributionsListAdapter(getActivity().getApplicationContext(),
305-
cursor, 0, contributionDao));
304+
cursor, 0, contributionDao, this));
306305
} else {
307306
((CursorAdapter) contributionsListFragment.getAdapter()).swapCursor(cursor);
308307
}
@@ -383,20 +382,12 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis
383382
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
384383
}
385384
}
386-
387-
@Override
388-
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
389-
// show detail at a position
390-
showDetail(i);
391-
}
392-
393-
394385
/**
395386
* Replace whatever is in the current contributionsFragmentContainer view with
396387
* mediaDetailPagerFragment, and preserve previous state in back stack.
397388
* Called when user selects a contribution.
398389
*/
399-
private void showDetail(int i) {
390+
public void showDetail(int i) {
400391
if (mediaDetailPagerFragment == null || !mediaDetailPagerFragment.isVisible()) {
401392
mediaDetailPagerFragment = new MediaDetailPagerFragment();
402393
setMediaDetailPagerFragment();
@@ -706,5 +697,13 @@ private void fetchCampaigns() {
706697
super.onDestroyView();
707698
presenter.onDetachView();
708699
}
700+
701+
@Override
702+
public void onEvent(String filename) {
703+
for (int i=0;i<getTotalMediaCount();i++){
704+
if (getMediaAtPosition(i).getFilename().equals(filename))
705+
showDetail(i);
706+
}
707+
}
709708
}
710709

app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListAdapter.java

+18-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import android.view.LayoutInflater;
99
import android.view.View;
1010
import android.view.ViewGroup;
11+
import android.widget.Toast;
1112

1213
import fr.free.nrw.commons.R;
1314
import fr.free.nrw.commons.contributions.model.DisplayableContribution;
@@ -26,9 +27,10 @@ class ContributionsListAdapter extends CursorAdapter {
2627
public ContributionsListAdapter(Context context,
2728
Cursor c,
2829
int flags,
29-
ContributionDao contributionDao) {
30+
ContributionDao contributionDao, EventListener listener) {
3031
super(context, c, flags);
3132
this.contributionDao = contributionDao;
33+
this.listener=listener;
3234
}
3335

3436
public void setUploadService(UploadService uploadService) {
@@ -60,6 +62,11 @@ public void retryUpload() {
6062
public void deleteUpload() {
6163
ContributionsListAdapter.this.deleteUpload(view.getContext(), contribution);
6264
}
65+
66+
@Override
67+
public void onClick() {
68+
ContributionsListAdapter.this.openMediaDetail(contribution);
69+
}
6370
});
6471
views.bindModel(context, displayableContribution);
6572
}
@@ -100,4 +107,14 @@ private void deleteUpload(@NonNull Context context, Contribution contribution) {
100107
}
101108

102109
}
110+
111+
private void openMediaDetail(Contribution contribution){
112+
listener.onEvent(contribution.getFilename());
113+
114+
}
115+
EventListener listener;
116+
117+
public interface EventListener {
118+
void onEvent(String filename);
119+
}
103120
}

app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java

-2
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,6 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
6666
View view = inflater.inflate(R.layout.fragment_contributions_list, container, false);
6767
ButterKnife.bind(this, view);
6868

69-
contributionsList.setOnItemClickListener((AdapterView.OnItemClickListener) getParentFragment());
70-
7169
changeProgressBarVisibility(true);
7270
return view;
7371
}

app/src/main/java/fr/free/nrw/commons/contributions/model/DisplayableContribution.java

+2
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,7 @@ public interface ContributionActions {
5050
void retryUpload();
5151

5252
void deleteUpload();
53+
54+
void onClick();
5355
}
5456
}

0 commit comments

Comments
 (0)