Potential MMS download fix for some users.

Special thanks to @mdaniel

Fixes #8571
This commit is contained in:
Greyson Parrelli 2019-09-26 18:31:39 -04:00
parent ee9acf2687
commit 1e375ec494

View File

@ -23,6 +23,8 @@ import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.os.Bundle;
import android.telephony.SmsManager;
import org.thoughtcrime.securesms.logging.Log;
@ -39,6 +41,7 @@ import org.thoughtcrime.securesms.util.Util;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Locale;
import java.util.concurrent.TimeoutException;
public class IncomingLollipopMmsConnection extends LollipopMmsConnection implements IncomingMmsConnection {
@ -70,7 +73,12 @@ public class IncomingLollipopMmsConnection extends LollipopMmsConnection impleme
try {
MmsBodyProvider.Pointer pointer = MmsBodyProvider.makeTemporaryPointer(getContext());
Log.i(TAG, "downloading multimedia from " + contentLocation + " to " + pointer.getUri());
final String transactionIdString = Util.toIsoString(transactionId);
Log.i(TAG, String.format(Locale.ENGLISH, "Downloading subscriptionId=%s multimedia from '%s' [transactionId='%s'] to '%s'",
subscriptionId,
contentLocation,
transactionIdString,
pointer.getUri()));
SmsManager smsManager;
@ -80,10 +88,17 @@ public class IncomingLollipopMmsConnection extends LollipopMmsConnection impleme
smsManager = SmsManager.getDefault();
}
final Bundle configOverrides = smsManager.getCarrierConfigValues();
if (configOverrides.getBoolean(SmsManager.MMS_CONFIG_APPEND_TRANSACTION_ID)) {
contentLocation += transactionIdString;
Log.i(TAG, "Appending transactionId to contentLocation at the direction of CarrierConfigValues. New location: " + contentLocation);
}
smsManager.downloadMultimediaMessage(getContext(),
contentLocation,
pointer.getUri(),
null,
configOverrides,
getPendingIntent());
waitForResult();