mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-29 05:43:55 +01:00
Fetch and use thumbnail across the app (#2906)
This commit is contained in:
parent
17d69cde02
commit
37e9eae314
18 changed files with 161 additions and 260 deletions
|
|
@ -6,23 +6,37 @@ import android.widget.LinearLayout;
|
|||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.facebook.drawee.view.SimpleDraweeView;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
import fr.free.nrw.commons.MediaWikiImageView;
|
||||
import fr.free.nrw.commons.MediaDataExtractor;
|
||||
import fr.free.nrw.commons.R;
|
||||
import fr.free.nrw.commons.ViewHolder;
|
||||
import fr.free.nrw.commons.contributions.model.DisplayableContribution;
|
||||
import fr.free.nrw.commons.di.ApplicationlessInjection;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import timber.log.Timber;
|
||||
|
||||
class ContributionViewHolder implements ViewHolder<DisplayableContribution> {
|
||||
@BindView(R.id.contributionImage) MediaWikiImageView imageView;
|
||||
public class ContributionViewHolder implements ViewHolder<DisplayableContribution> {
|
||||
@BindView(R.id.contributionImage)
|
||||
SimpleDraweeView imageView;
|
||||
@BindView(R.id.contributionTitle) TextView titleView;
|
||||
@BindView(R.id.contributionState) TextView stateView;
|
||||
@BindView(R.id.contributionSequenceNumber) TextView seqNumView;
|
||||
@BindView(R.id.contributionProgress) ProgressBar progressView;
|
||||
@BindView(R.id.failed_image_options) LinearLayout failedImageOptions;
|
||||
|
||||
@Inject
|
||||
MediaDataExtractor mediaDataExtractor;
|
||||
|
||||
private DisplayableContribution contribution;
|
||||
private CompositeDisposable compositeDisposable = new CompositeDisposable();
|
||||
|
||||
ContributionViewHolder(View parent) {
|
||||
ButterKnife.bind(this, parent);
|
||||
|
|
@ -30,8 +44,10 @@ class ContributionViewHolder implements ViewHolder<DisplayableContribution> {
|
|||
|
||||
@Override
|
||||
public void bindModel(Context context, DisplayableContribution contribution) {
|
||||
ApplicationlessInjection.getInstance(context)
|
||||
.getCommonsApplicationComponent().inject(this);
|
||||
this.contribution = contribution;
|
||||
imageView.setMedia(contribution);
|
||||
fetchAndDisplayThumbnail(contribution);
|
||||
titleView.setText(contribution.getDisplayTitle());
|
||||
|
||||
seqNumView.setText(String.valueOf(contribution.getPosition() + 1));
|
||||
|
|
@ -71,6 +87,26 @@ class ContributionViewHolder implements ViewHolder<DisplayableContribution> {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This method fetches the thumbnail url from file name
|
||||
* This can be removed once #2904 is in place and contribution contains all metadata beforehand
|
||||
* @param contribution
|
||||
*/
|
||||
private void fetchAndDisplayThumbnail(DisplayableContribution contribution) {
|
||||
Timber.d("Fetching thumbnail for %s", contribution.getFilename());
|
||||
Disposable disposable = mediaDataExtractor.getMediaFromFileName(contribution.getFilename())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(Schedulers.io())
|
||||
.subscribe(media -> {
|
||||
imageView.setImageURI(media.getThumbUrl());
|
||||
});
|
||||
compositeDisposable.add(disposable);
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
compositeDisposable.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Retry upload when it is failed
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ class ContributionsListAdapter extends CursorAdapter {
|
|||
final ContributionViewHolder views = (ContributionViewHolder)view.getTag();
|
||||
final Contribution contribution = contributionDao.fromCursor(cursor);
|
||||
|
||||
Timber.d("Cursor position is %d", cursor.getPosition());
|
||||
DisplayableContribution displayableContribution = new DisplayableContribution(contribution,
|
||||
cursor.getPosition(),
|
||||
new DisplayableContribution.ContributionActions() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue