Fix issue #99 - Add retry when media failed to load and if 3 retries fail the message is kept in drafts but not send
This commit is contained in:
parent
8aad0fd264
commit
79c38746e2
|
@ -66,9 +66,7 @@ import androidx.navigation.ui.NavigationUI;
|
|||
import androidx.preference.PreferenceManager;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
|
||||
import com.bumptech.glide.load.resource.gif.GifDrawable;
|
||||
import com.bumptech.glide.request.RequestOptions;
|
||||
import com.bumptech.glide.request.target.CustomTarget;
|
||||
import com.bumptech.glide.request.transition.Transition;
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
|
|
|
@ -170,21 +170,16 @@ public class PostMessageService extends IntentService {
|
|||
} else {
|
||||
fileMultipartBody = Helper.getMultipartBody("file", attachment);
|
||||
}
|
||||
Call<Attachment> attachmentCall = mastodonStatusesService.postMedia(dataPost.token, fileMultipartBody, null, attachment.description, null);
|
||||
|
||||
if (attachmentCall != null) {
|
||||
try {
|
||||
Response<Attachment> attachmentResponse = attachmentCall.execute();
|
||||
if (attachmentResponse.isSuccessful()) {
|
||||
Attachment attachmentReply = attachmentResponse.body();
|
||||
if (attachmentReply != null) {
|
||||
attachmentIds.add(attachmentReply.id);
|
||||
String replyId = null;
|
||||
int retry = 0;
|
||||
while (replyId == null && retry < 3) {
|
||||
replyId = postAttachment(mastodonStatusesService, dataPost, fileMultipartBody, attachment);
|
||||
retry++;
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
if (replyId == null) {
|
||||
error = true;
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
attachmentIds.add(replyId);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -296,6 +291,25 @@ public class PostMessageService extends IntentService {
|
|||
}
|
||||
}
|
||||
|
||||
private static String postAttachment(MastodonStatusesService mastodonStatusesService, DataPost dataPost, MultipartBody.Part fileMultipartBody, Attachment attachment) {
|
||||
Call<Attachment> attachmentCall = mastodonStatusesService.postMedia(dataPost.token, fileMultipartBody, null, attachment.description, null);
|
||||
|
||||
if (attachmentCall != null) {
|
||||
try {
|
||||
Response<Attachment> attachmentResponse = attachmentCall.execute();
|
||||
if (attachmentResponse.isSuccessful()) {
|
||||
Attachment attachmentReply = attachmentResponse.body();
|
||||
if (attachmentReply != null) {
|
||||
return attachmentReply.id;
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
|
|
Loading…
Reference in New Issue