mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-18 20:38:30 +00:00
fix MMS part transfer indicator
make it less forever Fixes #3546 Closes #3603 // FREEBIE
This commit is contained in:
parent
282f139ee9
commit
1bdfb5f382
@ -263,7 +263,7 @@ public class ConversationItem extends LinearLayout {
|
|||||||
mediaThumbnail.setImageResource(masterSecret, messageRecord.getId(),
|
mediaThumbnail.setImageResource(masterSecret, messageRecord.getId(),
|
||||||
messageRecord.getDateReceived(),
|
messageRecord.getDateReceived(),
|
||||||
((MediaMmsMessageRecord)messageRecord).getSlideDeckFuture());
|
((MediaMmsMessageRecord)messageRecord).getSlideDeckFuture());
|
||||||
mediaThumbnail.setShowProgress(!messageRecord.isFailed());
|
mediaThumbnail.setShowProgress(!messageRecord.isFailed() && messageRecord.isPending());
|
||||||
bodyText.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
|
bodyText.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
|
||||||
} else {
|
} else {
|
||||||
mediaThumbnail.setVisibility(View.GONE);
|
mediaThumbnail.setVisibility(View.GONE);
|
||||||
|
@ -98,6 +98,7 @@ public class ThumbnailView extends FrameLayout {
|
|||||||
String slideId = id + "::" + timestamp;
|
String slideId = id + "::" + timestamp;
|
||||||
|
|
||||||
if (!slideId.equals(this.slideId)) {
|
if (!slideId.equals(this.slideId)) {
|
||||||
|
progress.setVisibility(GONE);
|
||||||
image.setImageDrawable(null);
|
image.setImageDrawable(null);
|
||||||
this.slide = null;
|
this.slide = null;
|
||||||
this.slideId = slideId;
|
this.slideId = slideId;
|
||||||
|
@ -73,6 +73,7 @@ public class MmsSendJob extends SendJob {
|
|||||||
final MmsSendResult result = getSendResult(sendConf, message);
|
final MmsSendResult result = getSendResult(sendConf, message);
|
||||||
|
|
||||||
database.markAsSent(messageId, result.getMessageId(), result.getResponseStatus());
|
database.markAsSent(messageId, result.getMessageId(), result.getResponseStatus());
|
||||||
|
markPartsUploaded(messageId, message.getBody());
|
||||||
} catch (UndeliverableMessageException | IOException e) {
|
} catch (UndeliverableMessageException | IOException e) {
|
||||||
Log.w(TAG, e);
|
Log.w(TAG, e);
|
||||||
database.markAsSentFailed(messageId);
|
database.markAsSentFailed(messageId);
|
||||||
|
@ -71,7 +71,7 @@ public class PushMediaSendJob extends PushSendJob implements InjectableType {
|
|||||||
database.markAsPush(messageId);
|
database.markAsPush(messageId);
|
||||||
database.markAsSecure(messageId);
|
database.markAsSecure(messageId);
|
||||||
database.markAsSent(messageId, "push".getBytes(), 0);
|
database.markAsSent(messageId, "push".getBytes(), 0);
|
||||||
updatePartsStatus(message.getBody());
|
markPartsUploaded(messageId, message.getBody());
|
||||||
} catch (InsecureFallbackApprovalException ifae) {
|
} catch (InsecureFallbackApprovalException ifae) {
|
||||||
Log.w(TAG, ifae);
|
Log.w(TAG, ifae);
|
||||||
database.markAsPendingInsecureSmsFallback(messageId);
|
database.markAsPendingInsecureSmsFallback(messageId);
|
||||||
@ -100,14 +100,6 @@ public class PushMediaSendJob extends PushSendJob implements InjectableType {
|
|||||||
notifyMediaMessageDeliveryFailed(context, messageId);
|
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)
|
private void deliver(MasterSecret masterSecret, SendReq message)
|
||||||
throws RetryLaterException, InsecureFallbackApprovalException, UntrustedIdentityException,
|
throws RetryLaterException, InsecureFallbackApprovalException, UntrustedIdentityException,
|
||||||
UndeliverableMessageException
|
UndeliverableMessageException
|
||||||
|
@ -7,6 +7,7 @@ import org.thoughtcrime.securesms.BuildConfig;
|
|||||||
import org.thoughtcrime.securesms.TextSecureExpiredException;
|
import org.thoughtcrime.securesms.TextSecureExpiredException;
|
||||||
import org.thoughtcrime.securesms.crypto.MasterSecret;
|
import org.thoughtcrime.securesms.crypto.MasterSecret;
|
||||||
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
||||||
|
import org.thoughtcrime.securesms.database.PartDatabase;
|
||||||
import org.thoughtcrime.securesms.mms.MediaConstraints;
|
import org.thoughtcrime.securesms.mms.MediaConstraints;
|
||||||
import org.thoughtcrime.securesms.transport.UndeliverableMessageException;
|
import org.thoughtcrime.securesms.transport.UndeliverableMessageException;
|
||||||
import org.thoughtcrime.securesms.util.MediaUtil;
|
import org.thoughtcrime.securesms.util.MediaUtil;
|
||||||
@ -83,6 +84,14 @@ public abstract class SendJob extends MasterSecretJob {
|
|||||||
return part;
|
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,
|
private byte[] getResizedPartData(MasterSecret masterSecret, MediaConstraints constraints,
|
||||||
PduPart part)
|
PduPart part)
|
||||||
throws IOException, MmsException
|
throws IOException, MmsException
|
||||||
|
Loading…
x
Reference in New Issue
Block a user