fix MMS part transfer indicator

make it less forever
Fixes #3546
Closes #3603
// FREEBIE
pull/1/head
Jake McGinty 9 years ago committed by Moxie Marlinspike
parent 282f139ee9
commit 1bdfb5f382

@ -263,7 +263,7 @@ public class ConversationItem extends LinearLayout {
mediaThumbnail.setImageResource(masterSecret, messageRecord.getId(),
messageRecord.getDateReceived(),
((MediaMmsMessageRecord)messageRecord).getSlideDeckFuture());
mediaThumbnail.setShowProgress(!messageRecord.isFailed());
mediaThumbnail.setShowProgress(!messageRecord.isFailed() && messageRecord.isPending());
bodyText.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
} else {
mediaThumbnail.setVisibility(View.GONE);

@ -98,6 +98,7 @@ public class ThumbnailView extends FrameLayout {
String slideId = id + "::" + timestamp;
if (!slideId.equals(this.slideId)) {
progress.setVisibility(GONE);
image.setImageDrawable(null);
this.slide = null;
this.slideId = slideId;

@ -73,6 +73,7 @@ public class MmsSendJob extends SendJob {
final MmsSendResult result = getSendResult(sendConf, message);
database.markAsSent(messageId, result.getMessageId(), result.getResponseStatus());
markPartsUploaded(messageId, message.getBody());
} catch (UndeliverableMessageException | IOException e) {
Log.w(TAG, e);
database.markAsSentFailed(messageId);

@ -71,7 +71,7 @@ public class PushMediaSendJob extends PushSendJob implements InjectableType {
database.markAsPush(messageId);
database.markAsSecure(messageId);
database.markAsSent(messageId, "push".getBytes(), 0);
updatePartsStatus(message.getBody());
markPartsUploaded(messageId, message.getBody());
} catch (InsecureFallbackApprovalException ifae) {
Log.w(TAG, ifae);
database.markAsPendingInsecureSmsFallback(messageId);
@ -100,14 +100,6 @@ public class PushMediaSendJob extends PushSendJob implements InjectableType {
notifyMediaMessageDeliveryFailed(context, messageId);
}
private void updatePartsStatus(PduBody body) {
if (body == null) return;
PartDatabase database = DatabaseFactory.getPartDatabase(context);
for (int i = 0; i < body.getPartsNum(); i++) {
database.markPartUploaded(messageId, body.getPart(i));
}
}
private void deliver(MasterSecret masterSecret, SendReq message)
throws RetryLaterException, InsecureFallbackApprovalException, UntrustedIdentityException,
UndeliverableMessageException

@ -7,6 +7,7 @@ import org.thoughtcrime.securesms.BuildConfig;
import org.thoughtcrime.securesms.TextSecureExpiredException;
import org.thoughtcrime.securesms.crypto.MasterSecret;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.PartDatabase;
import org.thoughtcrime.securesms.mms.MediaConstraints;
import org.thoughtcrime.securesms.transport.UndeliverableMessageException;
import org.thoughtcrime.securesms.util.MediaUtil;
@ -83,6 +84,14 @@ public abstract class SendJob extends MasterSecretJob {
return part;
}
protected void markPartsUploaded(long messageId, PduBody body) {
if (body == null) return;
PartDatabase database = DatabaseFactory.getPartDatabase(context);
for (int i = 0; i < body.getPartsNum(); i++) {
database.markPartUploaded(messageId, body.getPart(i));
}
}
private byte[] getResizedPartData(MasterSecret masterSecret, MediaConstraints constraints,
PduPart part)
throws IOException, MmsException

Loading…
Cancel
Save