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 ImageButton retryButton;
|
||||
final ImageButton cancelButton;
|
||||
int position;
|
||||
|
||||
ContributionViewHolder(View parent) {
|
||||
imageView = parent.findViewById(R.id.contributionImage);
|
||||
|
|
@ -26,5 +27,6 @@ class ContributionViewHolder {
|
|||
progressView = parent.findViewById(R.id.contributionProgress);
|
||||
retryButton = parent.findViewById(R.id.retryButton);
|
||||
cancelButton = parent.findViewById(R.id.cancelButton);
|
||||
position = 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -291,6 +291,8 @@ public class ContributionsFragment
|
|||
|
||||
contributionsListFragment.clearSyncMessage();
|
||||
notifyAndMigrateDataSetObservers();
|
||||
|
||||
((ContributionsListAdapter)contributionsListFragment.getAdapter()).setUploadService(allContributions, uploadService);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,16 +9,27 @@ import android.view.View;
|
|||
import android.view.ViewGroup;
|
||||
|
||||
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 {
|
||||
|
||||
private final ContributionDao contributionDao;
|
||||
private Cursor allContributions;
|
||||
private UploadService uploadService;
|
||||
|
||||
public ContributionsListAdapter(Context context, Cursor c, int flags, ContributionDao contributionDao) {
|
||||
super(context, c, flags);
|
||||
this.contributionDao = contributionDao;
|
||||
}
|
||||
|
||||
public void setUploadService(Cursor allContributions, UploadService uploadService) {
|
||||
this.allContributions = allContributions;
|
||||
this.uploadService = uploadService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View newView(Context context, Cursor cursor, ViewGroup viewGroup) {
|
||||
View parent = LayoutInflater.from(context)
|
||||
|
|
@ -37,20 +48,8 @@ class ContributionsListAdapter extends CursorAdapter {
|
|||
|
||||
views.seqNumView.setText(String.valueOf(cursor.getPosition() + 1));
|
||||
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()) {
|
||||
case Contribution.STATE_COMPLETED:
|
||||
|
|
@ -86,7 +85,45 @@ class ContributionsListAdapter extends CursorAdapter {
|
|||
views.progressView.setVisibility(View.GONE);
|
||||
views.retryButton.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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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.os.Bundle;
|
||||
import android.support.v4.app.NotificationCompat;
|
||||
import android.util.Log;
|
||||
import android.webkit.MimeTypeMap;
|
||||
import android.widget.Toast;
|
||||
|
||||
|
|
@ -330,6 +331,7 @@ public class UploadService extends HandlerService<Contribution> {
|
|||
|
||||
contribution.setState(Contribution.STATE_FAILED);
|
||||
contributionDao.save(contribution);
|
||||
Log.d("deneme","failed and contrib saved, contribution name is"+contribution.getFilename());
|
||||
}
|
||||
|
||||
private String findUniqueFilename(String fileName) throws IOException {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue