Work on resolving #2311 for viewing failed uploads (#2617)

This commit is contained in:
Vanshika Arora 2019-03-20 02:32:01 +05:30 committed by Adam Jones
parent 351109440f
commit 38d39e08ac
5 changed files with 40 additions and 16 deletions

View file

@ -92,4 +92,12 @@ class ContributionViewHolder implements ViewHolder<DisplayableContribution> {
actions.deleteUpload(); actions.deleteUpload();
} }
} }
@OnClick(R.id.contributionImage)
public void imageClicked(){
DisplayableContribution.ContributionActions actions = contribution.getContributionActions();
if (actions != null) {
actions.onClick();
}
}
} }

View file

@ -25,7 +25,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Adapter; import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.Toast; import android.widget.Toast;
@ -75,12 +74,12 @@ import static fr.free.nrw.commons.utils.LengthUtils.formatDistanceBetween;
public class ContributionsFragment public class ContributionsFragment
extends CommonsDaggerSupportFragment extends CommonsDaggerSupportFragment
implements LoaderManager.LoaderCallbacks<Cursor>, implements LoaderManager.LoaderCallbacks<Cursor>,
AdapterView.OnItemClickListener,
MediaDetailPagerFragment.MediaDetailProvider, MediaDetailPagerFragment.MediaDetailProvider,
FragmentManager.OnBackStackChangedListener, FragmentManager.OnBackStackChangedListener,
ContributionsListFragment.SourceRefresher, ContributionsListFragment.SourceRefresher,
LocationUpdateListener, LocationUpdateListener,
ICampaignsView { ICampaignsView,
ContributionsListAdapter.EventListener{
@Inject @Named("default_preferences") JsonKvStore store; @Inject @Named("default_preferences") JsonKvStore store;
@Inject ContributionDao contributionDao; @Inject ContributionDao contributionDao;
@Inject MediaWikiApi mediaWikiApi; @Inject MediaWikiApi mediaWikiApi;
@ -302,7 +301,7 @@ public class ContributionsFragment
if (contributionsListFragment.getAdapter() == null) { if (contributionsListFragment.getAdapter() == null) {
contributionsListFragment.setAdapter(new ContributionsListAdapter(getActivity().getApplicationContext(), contributionsListFragment.setAdapter(new ContributionsListAdapter(getActivity().getApplicationContext(),
cursor, 0, contributionDao)); cursor, 0, contributionDao, this));
} else { } else {
((CursorAdapter) contributionsListFragment.getAdapter()).swapCursor(cursor); ((CursorAdapter) contributionsListFragment.getAdapter()).swapCursor(cursor);
} }
@ -383,20 +382,12 @@ public class ContributionsFragment
super.onRequestPermissionsResult(requestCode, permissions, grantResults); super.onRequestPermissionsResult(requestCode, permissions, grantResults);
} }
} }
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
// show detail at a position
showDetail(i);
}
/** /**
* Replace whatever is in the current contributionsFragmentContainer view with * Replace whatever is in the current contributionsFragmentContainer view with
* mediaDetailPagerFragment, and preserve previous state in back stack. * mediaDetailPagerFragment, and preserve previous state in back stack.
* Called when user selects a contribution. * Called when user selects a contribution.
*/ */
private void showDetail(int i) { public void showDetail(int i) {
if (mediaDetailPagerFragment == null || !mediaDetailPagerFragment.isVisible()) { if (mediaDetailPagerFragment == null || !mediaDetailPagerFragment.isVisible()) {
mediaDetailPagerFragment = new MediaDetailPagerFragment(); mediaDetailPagerFragment = new MediaDetailPagerFragment();
setMediaDetailPagerFragment(); setMediaDetailPagerFragment();
@ -706,5 +697,13 @@ public class ContributionsFragment
super.onDestroyView(); super.onDestroyView();
presenter.onDetachView(); presenter.onDetachView();
} }
@Override
public void onEvent(String filename) {
for (int i=0;i<getTotalMediaCount();i++){
if (getMediaAtPosition(i).getFilename().equals(filename))
showDetail(i);
}
}
} }

View file

@ -8,6 +8,7 @@ import androidx.cursoradapter.widget.CursorAdapter;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Toast;
import fr.free.nrw.commons.R; import fr.free.nrw.commons.R;
import fr.free.nrw.commons.contributions.model.DisplayableContribution; import fr.free.nrw.commons.contributions.model.DisplayableContribution;
@ -26,9 +27,10 @@ class ContributionsListAdapter extends CursorAdapter {
public ContributionsListAdapter(Context context, public ContributionsListAdapter(Context context,
Cursor c, Cursor c,
int flags, int flags,
ContributionDao contributionDao) { ContributionDao contributionDao, EventListener listener) {
super(context, c, flags); super(context, c, flags);
this.contributionDao = contributionDao; this.contributionDao = contributionDao;
this.listener=listener;
} }
public void setUploadService(UploadService uploadService) { public void setUploadService(UploadService uploadService) {
@ -60,6 +62,11 @@ class ContributionsListAdapter extends CursorAdapter {
public void deleteUpload() { public void deleteUpload() {
ContributionsListAdapter.this.deleteUpload(view.getContext(), contribution); ContributionsListAdapter.this.deleteUpload(view.getContext(), contribution);
} }
@Override
public void onClick() {
ContributionsListAdapter.this.openMediaDetail(contribution);
}
}); });
views.bindModel(context, displayableContribution); views.bindModel(context, displayableContribution);
} }
@ -100,4 +107,14 @@ class ContributionsListAdapter extends CursorAdapter {
} }
} }
private void openMediaDetail(Contribution contribution){
listener.onEvent(contribution.getFilename());
}
EventListener listener;
public interface EventListener {
void onEvent(String filename);
}
} }

View file

@ -66,8 +66,6 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment {
View view = inflater.inflate(R.layout.fragment_contributions_list, container, false); View view = inflater.inflate(R.layout.fragment_contributions_list, container, false);
ButterKnife.bind(this, view); ButterKnife.bind(this, view);
contributionsList.setOnItemClickListener((AdapterView.OnItemClickListener) getParentFragment());
changeProgressBarVisibility(true); changeProgressBarVisibility(true);
return view; return view;
} }

View file

@ -50,5 +50,7 @@ public class DisplayableContribution extends Contribution {
void retryUpload(); void retryUpload();
void deleteUpload(); void deleteUpload();
void onClick();
} }
} }