fix MMS part transfer indicator
make it less forever Fixes #3546 Closes #3603 // FREEBIE
This commit is contained in:
parent
282f139ee9
commit
1bdfb5f382
5 changed files with 13 additions and 10 deletions
|
@ -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…
Add table
Reference in a new issue