mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 04:43:54 +01:00
Make sure your retry logic works
This commit is contained in:
parent
c7f6849cef
commit
bfd30e9435
4 changed files with 56 additions and 13 deletions
|
|
@ -17,6 +17,7 @@ class ContributionViewHolder {
|
||||||
final ProgressBar progressView;
|
final ProgressBar progressView;
|
||||||
final ImageButton retryButton;
|
final ImageButton retryButton;
|
||||||
final ImageButton cancelButton;
|
final ImageButton cancelButton;
|
||||||
|
int position;
|
||||||
|
|
||||||
ContributionViewHolder(View parent) {
|
ContributionViewHolder(View parent) {
|
||||||
imageView = parent.findViewById(R.id.contributionImage);
|
imageView = parent.findViewById(R.id.contributionImage);
|
||||||
|
|
@ -26,5 +27,6 @@ class ContributionViewHolder {
|
||||||
progressView = parent.findViewById(R.id.contributionProgress);
|
progressView = parent.findViewById(R.id.contributionProgress);
|
||||||
retryButton = parent.findViewById(R.id.retryButton);
|
retryButton = parent.findViewById(R.id.retryButton);
|
||||||
cancelButton = parent.findViewById(R.id.cancelButton);
|
cancelButton = parent.findViewById(R.id.cancelButton);
|
||||||
|
position = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -291,6 +291,8 @@ public class ContributionsFragment
|
||||||
|
|
||||||
contributionsListFragment.clearSyncMessage();
|
contributionsListFragment.clearSyncMessage();
|
||||||
notifyAndMigrateDataSetObservers();
|
notifyAndMigrateDataSetObservers();
|
||||||
|
|
||||||
|
((ContributionsListAdapter)contributionsListFragment.getAdapter()).setUploadService(allContributions, uploadService);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,16 +9,27 @@ import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import fr.free.nrw.commons.R;
|
import fr.free.nrw.commons.R;
|
||||||
|
import fr.free.nrw.commons.upload.UploadService;
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
|
import static fr.free.nrw.commons.contributions.Contribution.STATE_FAILED;
|
||||||
|
|
||||||
class ContributionsListAdapter extends CursorAdapter {
|
class ContributionsListAdapter extends CursorAdapter {
|
||||||
|
|
||||||
private final ContributionDao contributionDao;
|
private final ContributionDao contributionDao;
|
||||||
|
private Cursor allContributions;
|
||||||
|
private UploadService uploadService;
|
||||||
|
|
||||||
public ContributionsListAdapter(Context context, Cursor c, int flags, ContributionDao contributionDao) {
|
public ContributionsListAdapter(Context context, Cursor c, int flags, ContributionDao contributionDao) {
|
||||||
super(context, c, flags);
|
super(context, c, flags);
|
||||||
this.contributionDao = contributionDao;
|
this.contributionDao = contributionDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setUploadService(Cursor allContributions, UploadService uploadService) {
|
||||||
|
this.allContributions = allContributions;
|
||||||
|
this.uploadService = uploadService;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View newView(Context context, Cursor cursor, ViewGroup viewGroup) {
|
public View newView(Context context, Cursor cursor, ViewGroup viewGroup) {
|
||||||
View parent = LayoutInflater.from(context)
|
View parent = LayoutInflater.from(context)
|
||||||
|
|
@ -37,20 +48,8 @@ class ContributionsListAdapter extends CursorAdapter {
|
||||||
|
|
||||||
views.seqNumView.setText(String.valueOf(cursor.getPosition() + 1));
|
views.seqNumView.setText(String.valueOf(cursor.getPosition() + 1));
|
||||||
views.seqNumView.setVisibility(View.VISIBLE);
|
views.seqNumView.setVisibility(View.VISIBLE);
|
||||||
|
views.position = cursor.getPosition();
|
||||||
|
|
||||||
views.retryButton.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Log.d("deneme","Retry button is clicked");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
views.cancelButton.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Log.d("deneme","Cancel button is clicked");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
switch (contribution.getState()) {
|
switch (contribution.getState()) {
|
||||||
case Contribution.STATE_COMPLETED:
|
case Contribution.STATE_COMPLETED:
|
||||||
|
|
@ -86,7 +85,45 @@ class ContributionsListAdapter extends CursorAdapter {
|
||||||
views.progressView.setVisibility(View.GONE);
|
views.progressView.setVisibility(View.GONE);
|
||||||
views.retryButton.setVisibility(View.VISIBLE);
|
views.retryButton.setVisibility(View.VISIBLE);
|
||||||
views.cancelButton.setVisibility(View.VISIBLE);
|
views.cancelButton.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
views.retryButton.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
Log.d("deneme","contex:"+context);
|
||||||
|
Log.d("deneme","Retry button is clicked");
|
||||||
|
retryUpload(cursor);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
views.cancelButton.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
Log.d("deneme","Cancel button is clicked");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retry upload when it is failed
|
||||||
|
* @param cursor position of upload which will be retried
|
||||||
|
*/
|
||||||
|
public void retryUpload(Cursor cursor) {
|
||||||
|
// TODO: first check for internet connection, if not display a message and do nothing.
|
||||||
|
Log.d("deneme","Retrying i:"+cursor.getColumnName(1));
|
||||||
|
Contribution c = contributionDao.fromCursor(cursor);
|
||||||
|
if (c.getState() == STATE_FAILED) {
|
||||||
|
uploadService.queue(UploadService.ACTION_UPLOAD_FILE, c);
|
||||||
|
Timber.d("Restarting for %s", c.toString());
|
||||||
|
Log.d("deneme","Restarting for %s"+ c.getFilename());
|
||||||
|
|
||||||
|
} else {
|
||||||
|
Timber.d("Skipping re-upload for non-failed %s", c.toString());
|
||||||
|
Log.d("deneme","Skipping re-upload for non-failed %s"+ c.getFilename());
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import android.content.Intent;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.NotificationCompat;
|
import android.support.v4.app.NotificationCompat;
|
||||||
|
import android.util.Log;
|
||||||
import android.webkit.MimeTypeMap;
|
import android.webkit.MimeTypeMap;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
|
@ -330,6 +331,7 @@ public class UploadService extends HandlerService<Contribution> {
|
||||||
|
|
||||||
contribution.setState(Contribution.STATE_FAILED);
|
contribution.setState(Contribution.STATE_FAILED);
|
||||||
contributionDao.save(contribution);
|
contributionDao.save(contribution);
|
||||||
|
Log.d("deneme","failed and contrib saved, contribution name is"+contribution.getFilename());
|
||||||
}
|
}
|
||||||
|
|
||||||
private String findUniqueFilename(String fileName) throws IOException {
|
private String findUniqueFilename(String fileName) throws IOException {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue