From 8d82552aaa56e4a046b74e53fe4e34dd99f478cc Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Tue, 9 Oct 2018 15:48:14 +0200 Subject: [PATCH] remove unused classes --- .../mms/ApnUnavailableException.java | 19 -- .../mms/ContactPhotoLocalUriFetcher.java | 33 ---- .../mms/IncomingLollipopMmsConnection.java | 121 ------------- .../securesms/mms/IncomingMmsConnection.java | 13 -- .../securesms/mms/LollipopMmsConnection.java | 86 --------- .../securesms/mms/MediaNotFoundException.java | 36 ---- .../securesms/mms/MediaTooLargeException.java | 40 ----- .../securesms/mms/MmsConfigManager.java | 53 ------ .../securesms/mms/MmsMediaConstraints.java | 36 ++-- .../thoughtcrime/securesms/mms/MmsRadio.java | 165 ------------------ .../securesms/mms/MmsRadioException.java | 11 -- .../securesms/mms/MmsSendResult.java | 20 --- .../mms/OutgoingLollipopMmsConnection.java | 114 ------------ .../securesms/mms/OutgoingMmsConnection.java | 14 -- 14 files changed, 18 insertions(+), 743 deletions(-) delete mode 100644 src/org/thoughtcrime/securesms/mms/ApnUnavailableException.java delete mode 100644 src/org/thoughtcrime/securesms/mms/ContactPhotoLocalUriFetcher.java delete mode 100644 src/org/thoughtcrime/securesms/mms/IncomingLollipopMmsConnection.java delete mode 100644 src/org/thoughtcrime/securesms/mms/IncomingMmsConnection.java delete mode 100644 src/org/thoughtcrime/securesms/mms/LollipopMmsConnection.java delete mode 100644 src/org/thoughtcrime/securesms/mms/MediaNotFoundException.java delete mode 100644 src/org/thoughtcrime/securesms/mms/MediaTooLargeException.java delete mode 100644 src/org/thoughtcrime/securesms/mms/MmsConfigManager.java delete mode 100644 src/org/thoughtcrime/securesms/mms/MmsRadio.java delete mode 100644 src/org/thoughtcrime/securesms/mms/MmsRadioException.java delete mode 100644 src/org/thoughtcrime/securesms/mms/MmsSendResult.java delete mode 100644 src/org/thoughtcrime/securesms/mms/OutgoingLollipopMmsConnection.java delete mode 100644 src/org/thoughtcrime/securesms/mms/OutgoingMmsConnection.java diff --git a/src/org/thoughtcrime/securesms/mms/ApnUnavailableException.java b/src/org/thoughtcrime/securesms/mms/ApnUnavailableException.java deleted file mode 100644 index 7aea170fb..000000000 --- a/src/org/thoughtcrime/securesms/mms/ApnUnavailableException.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.thoughtcrime.securesms.mms; - -public class ApnUnavailableException extends Exception { - - public ApnUnavailableException() { - } - - public ApnUnavailableException(String detailMessage) { - super(detailMessage); - } - - public ApnUnavailableException(Throwable throwable) { - super(throwable); - } - - public ApnUnavailableException(String detailMessage, Throwable throwable) { - super(detailMessage, throwable); - } -} diff --git a/src/org/thoughtcrime/securesms/mms/ContactPhotoLocalUriFetcher.java b/src/org/thoughtcrime/securesms/mms/ContactPhotoLocalUriFetcher.java deleted file mode 100644 index 374800a61..000000000 --- a/src/org/thoughtcrime/securesms/mms/ContactPhotoLocalUriFetcher.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.thoughtcrime.securesms.mms; - -import android.content.ContentResolver; -import android.content.Context; -import android.net.Uri; -import android.os.Build.VERSION; -import android.os.Build.VERSION_CODES; -import android.provider.ContactsContract; - -import com.bumptech.glide.load.data.StreamLocalUriFetcher; - -import java.io.FileNotFoundException; -import java.io.InputStream; - -class ContactPhotoLocalUriFetcher extends StreamLocalUriFetcher { - - private static final String TAG = ContactPhotoLocalUriFetcher.class.getSimpleName(); - - ContactPhotoLocalUriFetcher(Context context, Uri uri) { - super(context.getContentResolver(), uri); - } - - @Override - protected InputStream loadResource(Uri uri, ContentResolver contentResolver) - throws FileNotFoundException - { - if (VERSION.SDK_INT >= VERSION_CODES.ICE_CREAM_SANDWICH) { - return ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, uri, true); - } else { - return ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, uri); - } - } -} diff --git a/src/org/thoughtcrime/securesms/mms/IncomingLollipopMmsConnection.java b/src/org/thoughtcrime/securesms/mms/IncomingLollipopMmsConnection.java deleted file mode 100644 index 8891836ee..000000000 --- a/src/org/thoughtcrime/securesms/mms/IncomingLollipopMmsConnection.java +++ /dev/null @@ -1,121 +0,0 @@ -/** - * Copyright (C) 2015 Open Whisper Systems - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package org.thoughtcrime.securesms.mms; - -import android.annotation.TargetApi; -import android.content.Context; -import android.content.Intent; -import android.os.Build.VERSION; -import android.os.Build.VERSION_CODES; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.telephony.SmsManager; -import android.util.Log; - -import com.google.android.mms.InvalidHeaderValueException; -import com.google.android.mms.pdu_alt.NotifyRespInd; -import com.google.android.mms.pdu_alt.PduComposer; -import com.google.android.mms.pdu_alt.PduHeaders; -import com.google.android.mms.pdu_alt.PduParser; -import com.google.android.mms.pdu_alt.RetrieveConf; - -import org.thoughtcrime.securesms.providers.MmsBodyProvider; -import org.thoughtcrime.securesms.transport.UndeliverableMessageException; -import org.thoughtcrime.securesms.util.Util; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.concurrent.TimeoutException; - -public class IncomingLollipopMmsConnection extends LollipopMmsConnection implements IncomingMmsConnection { - - public static final String ACTION = IncomingLollipopMmsConnection.class.getCanonicalName() + "MMS_DOWNLOADED_ACTION"; - private static final String TAG = IncomingLollipopMmsConnection.class.getSimpleName(); - - public IncomingLollipopMmsConnection(Context context) { - super(context, ACTION); - } - - @TargetApi(VERSION_CODES.LOLLIPOP) - @Override - public synchronized void onResult(Context context, Intent intent) { - if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP_MR1) { - Log.w(TAG, "HTTP status: " + intent.getIntExtra(SmsManager.EXTRA_MMS_HTTP_STATUS, -1)); - } - Log.w(TAG, "code: " + getResultCode() + ", result string: " + getResultData()); - } - - @Override - @TargetApi(VERSION_CODES.LOLLIPOP) - public synchronized @Nullable RetrieveConf retrieve(@NonNull String contentLocation, - byte[] transactionId, - int subscriptionId) throws MmsException - { - beginTransaction(); - - try { - MmsBodyProvider.Pointer pointer = MmsBodyProvider.makeTemporaryPointer(getContext()); - - Log.w(TAG, "downloading multimedia from " + contentLocation + " to " + pointer.getUri()); - - SmsManager smsManager; - - if (VERSION.SDK_INT >= 22 && subscriptionId != -1) { - smsManager = SmsManager.getSmsManagerForSubscriptionId(subscriptionId); - } else { - smsManager = SmsManager.getDefault(); - } - - smsManager.downloadMultimediaMessage(getContext(), - contentLocation, - pointer.getUri(), - null, - getPendingIntent()); - - waitForResult(); - - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - Util.copy(pointer.getInputStream(), baos); - pointer.close(); - - Log.w(TAG, baos.size() + "-byte response: ");// + Hex.dump(baos.toByteArray())); - - RetrieveConf retrieved = (RetrieveConf) new PduParser(baos.toByteArray()).parse(); - - if (retrieved == null) return null; - - sendRetrievedAcknowledgement(transactionId, retrieved.getMmsVersion(), subscriptionId); - return retrieved; - } catch (IOException | TimeoutException e) { - Log.w(TAG, e); - throw new MmsException(e); - } finally { - endTransaction(); - } - } - - private void sendRetrievedAcknowledgement(byte[] transactionId, int mmsVersion, int subscriptionId) { - try { - NotifyRespInd retrieveResponse = new NotifyRespInd(mmsVersion, transactionId, PduHeaders.STATUS_RETRIEVED); - new OutgoingLollipopMmsConnection(getContext()).send(new PduComposer(getContext(), retrieveResponse).make(), subscriptionId); - } catch (UndeliverableMessageException e) { - Log.w(TAG, e); - } catch (InvalidHeaderValueException e) { - Log.w(TAG, e); - } - } -} diff --git a/src/org/thoughtcrime/securesms/mms/IncomingMmsConnection.java b/src/org/thoughtcrime/securesms/mms/IncomingMmsConnection.java deleted file mode 100644 index 96527e516..000000000 --- a/src/org/thoughtcrime/securesms/mms/IncomingMmsConnection.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.thoughtcrime.securesms.mms; - -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; - -import com.google.android.mms.pdu_alt.RetrieveConf; - -import java.io.IOException; - -public interface IncomingMmsConnection { - @Nullable - RetrieveConf retrieve(@NonNull String contentLocation, byte[] transactionId, int subscriptionId) throws MmsException, MmsRadioException, ApnUnavailableException, IOException; -} diff --git a/src/org/thoughtcrime/securesms/mms/LollipopMmsConnection.java b/src/org/thoughtcrime/securesms/mms/LollipopMmsConnection.java deleted file mode 100644 index d38b6ae14..000000000 --- a/src/org/thoughtcrime/securesms/mms/LollipopMmsConnection.java +++ /dev/null @@ -1,86 +0,0 @@ -/** - * Copyright (C) 2015 Open Whisper Systems - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package org.thoughtcrime.securesms.mms; - -import android.app.PendingIntent; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.util.Log; - -import org.thoughtcrime.securesms.util.Util; - -import java.util.concurrent.TimeoutException; - -public abstract class LollipopMmsConnection extends BroadcastReceiver { - private static final String TAG = LollipopMmsConnection.class.getSimpleName(); - - private final Context context; - private final String action; - - private boolean resultAvailable; - - public abstract void onResult(Context context, Intent intent); - - protected LollipopMmsConnection(Context context, String action) { - super(); - this.context = context; - this.action = action; - } - - @Override - public synchronized void onReceive(Context context, Intent intent) { - Log.w(TAG, "onReceive()"); - if (!action.equals(intent.getAction())) { - Log.w(TAG, "received broadcast with unexpected action " + intent.getAction()); - return; - } - - onResult(context, intent); - - resultAvailable = true; - notifyAll(); - } - - protected void beginTransaction() { - getContext().getApplicationContext().registerReceiver(this, new IntentFilter(action)); - } - - protected void endTransaction() { - getContext().getApplicationContext().unregisterReceiver(this); - resultAvailable = false; - } - - protected void waitForResult() throws TimeoutException { - long timeoutExpiration = System.currentTimeMillis() + 60000; - while (!resultAvailable) { - Util.wait(this, Math.max(1, timeoutExpiration - System.currentTimeMillis())); - if (System.currentTimeMillis() >= timeoutExpiration) { - throw new TimeoutException("timeout when waiting for MMS"); - } - } - } - - protected PendingIntent getPendingIntent() { - return PendingIntent.getBroadcast(getContext(), 1, new Intent(action), PendingIntent.FLAG_ONE_SHOT); - } - - protected Context getContext() { - return context; - } -} diff --git a/src/org/thoughtcrime/securesms/mms/MediaNotFoundException.java b/src/org/thoughtcrime/securesms/mms/MediaNotFoundException.java deleted file mode 100644 index 1215dda94..000000000 --- a/src/org/thoughtcrime/securesms/mms/MediaNotFoundException.java +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Copyright (C) 2014 Open Whisper Systems - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package org.thoughtcrime.securesms.mms; - -public class MediaNotFoundException extends Exception { - - public MediaNotFoundException() { - } - - public MediaNotFoundException(String detailMessage) { - super(detailMessage); - } - - public MediaNotFoundException(Throwable throwable) { - super(throwable); - } - - public MediaNotFoundException(String detailMessage, Throwable throwable) { - super(detailMessage, throwable); - } - -} diff --git a/src/org/thoughtcrime/securesms/mms/MediaTooLargeException.java b/src/org/thoughtcrime/securesms/mms/MediaTooLargeException.java deleted file mode 100644 index 2b07920c9..000000000 --- a/src/org/thoughtcrime/securesms/mms/MediaTooLargeException.java +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Copyright (C) 2011 Whisper Systems - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package org.thoughtcrime.securesms.mms; - -public class MediaTooLargeException extends Exception { - - public MediaTooLargeException() { - // TODO Auto-generated constructor stub - } - - public MediaTooLargeException(String detailMessage) { - super(detailMessage); - // TODO Auto-generated constructor stub - } - - public MediaTooLargeException(Throwable throwable) { - super(throwable); - // TODO Auto-generated constructor stub - } - - public MediaTooLargeException(String detailMessage, Throwable throwable) { - super(detailMessage, throwable); - // TODO Auto-generated constructor stub - } - -} diff --git a/src/org/thoughtcrime/securesms/mms/MmsConfigManager.java b/src/org/thoughtcrime/securesms/mms/MmsConfigManager.java deleted file mode 100644 index 9f607e597..000000000 --- a/src/org/thoughtcrime/securesms/mms/MmsConfigManager.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.thoughtcrime.securesms.mms; - - -import android.content.Context; -import android.content.res.Configuration; -import android.os.Build; -import android.support.annotation.Nullable; -import android.support.annotation.WorkerThread; - -import com.android.mms.service_alt.MmsConfig; - -import org.thoughtcrime.securesms.util.dualsim.SubscriptionInfoCompat; -import org.thoughtcrime.securesms.util.dualsim.SubscriptionManagerCompat; -import org.whispersystems.libsignal.util.guava.Optional; - -import java.util.HashMap; -import java.util.Map; - -public class MmsConfigManager { - - private static Map mmsConfigMap = new HashMap<>(); - - @WorkerThread - public synchronized static @Nullable MmsConfig getMmsConfig(Context context, int subscriptionId) { - if (mmsConfigMap.containsKey(subscriptionId)) { - return mmsConfigMap.get(subscriptionId); - } - - MmsConfig loadedConfig = loadMmsConfig(context, subscriptionId); - - if (loadedConfig != null) mmsConfigMap.put(subscriptionId, loadedConfig); - - return loadedConfig; - } - - private static MmsConfig loadMmsConfig(Context context, int subscriptionId) { - if (subscriptionId != -1 && Build.VERSION.SDK_INT >= 24) { - Optional subscriptionInfo = new SubscriptionManagerCompat(context).getActiveSubscriptionInfo(subscriptionId); - - if (subscriptionInfo.isPresent()) { - Configuration configuration = context.getResources().getConfiguration(); - configuration.mcc = subscriptionInfo.get().getMcc(); - configuration.mnc = subscriptionInfo.get().getMnc(); - - Context subcontext = context.createConfigurationContext(configuration); - return new MmsConfig(subcontext, subscriptionId); - } - } - - return new MmsConfig(context, subscriptionId); - } - -} diff --git a/src/org/thoughtcrime/securesms/mms/MmsMediaConstraints.java b/src/org/thoughtcrime/securesms/mms/MmsMediaConstraints.java index 4a9031390..02ec3c215 100644 --- a/src/org/thoughtcrime/securesms/mms/MmsMediaConstraints.java +++ b/src/org/thoughtcrime/securesms/mms/MmsMediaConstraints.java @@ -18,24 +18,24 @@ class MmsMediaConstraints extends MediaConstraints { @Override public int getImageMaxWidth(Context context) { - MmsConfig mmsConfig = MmsConfigManager.getMmsConfig(context, subscriptionId); - - if (mmsConfig != null) { - MmsConfig.Overridden overridden = new MmsConfig.Overridden(mmsConfig, new Bundle()); - return overridden.getMaxImageWidth(); - } +// MmsConfig mmsConfig = MmsConfigManager.getMmsConfig(context, subscriptionId); +// +// if (mmsConfig != null) { +// MmsConfig.Overridden overridden = new MmsConfig.Overridden(mmsConfig, new Bundle()); +// return overridden.getMaxImageWidth(); +// } return DEFAULT_MAX_IMAGE_DIMEN; } @Override public int getImageMaxHeight(Context context) { - MmsConfig mmsConfig = MmsConfigManager.getMmsConfig(context, subscriptionId); - - if (mmsConfig != null) { - MmsConfig.Overridden overridden = new MmsConfig.Overridden(mmsConfig, new Bundle()); - return overridden.getMaxImageHeight(); - } +// MmsConfig mmsConfig = MmsConfigManager.getMmsConfig(context, subscriptionId); +// +// if (mmsConfig != null) { +// MmsConfig.Overridden overridden = new MmsConfig.Overridden(mmsConfig, new Bundle()); +// return overridden.getMaxImageHeight(); +// } return DEFAULT_MAX_IMAGE_DIMEN; } @@ -66,12 +66,12 @@ class MmsMediaConstraints extends MediaConstraints { } private int getMaxMessageSize(Context context) { - MmsConfig mmsConfig = MmsConfigManager.getMmsConfig(context, subscriptionId); - - if (mmsConfig != null) { - MmsConfig.Overridden overridden = new MmsConfig.Overridden(mmsConfig, new Bundle()); - return overridden.getMaxMessageSize(); - } +// MmsConfig mmsConfig = MmsConfigManager.getMmsConfig(context, subscriptionId); +// +// if (mmsConfig != null) { +// MmsConfig.Overridden overridden = new MmsConfig.Overridden(mmsConfig, new Bundle()); +// return overridden.getMaxMessageSize(); +// } return DEFAULT_MAX_MESSAGE_SIZE; } diff --git a/src/org/thoughtcrime/securesms/mms/MmsRadio.java b/src/org/thoughtcrime/securesms/mms/MmsRadio.java deleted file mode 100644 index 5f61ad822..000000000 --- a/src/org/thoughtcrime/securesms/mms/MmsRadio.java +++ /dev/null @@ -1,165 +0,0 @@ -package org.thoughtcrime.securesms.mms; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; -import android.os.PowerManager; -import android.util.Log; - -import org.thoughtcrime.securesms.util.Util; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -public class MmsRadio { - - private static final String TAG = MmsRadio.class.getSimpleName(); - - private static MmsRadio instance; - - public static synchronized MmsRadio getInstance(Context context) { - if (instance == null) - instance = new MmsRadio(context.getApplicationContext()); - - return instance; - } - - /// - - private static final String FEATURE_ENABLE_MMS = "enableMMS"; - private static final int APN_ALREADY_ACTIVE = 0; - public static final int TYPE_MOBILE_MMS = 2; - - private final Context context; - - private ConnectivityManager connectivityManager; - private ConnectivityListener connectivityListener; - private PowerManager.WakeLock wakeLock; - private int connectedCounter = 0; - - private MmsRadio(Context context) { - PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); - this.context = context; - this.connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - this.wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MMS Connection"); - this.wakeLock.setReferenceCounted(true); - } - - public synchronized void disconnect() { - Log.w("MmsRadio", "MMS Radio Disconnect Called..."); - wakeLock.release(); - connectedCounter--; - - Log.w("MmsRadio", "Reference count: " + connectedCounter); - - if (connectedCounter == 0) { - Log.w("MmsRadio", "Turning off MMS radio..."); - try { - final Method stopUsingNetworkFeatureMethod = connectivityManager.getClass().getMethod("stopUsingNetworkFeature", Integer.TYPE, String.class); - stopUsingNetworkFeatureMethod.invoke(connectivityManager, ConnectivityManager.TYPE_MOBILE, FEATURE_ENABLE_MMS); - } catch (NoSuchMethodException nsme) { - Log.w(TAG, nsme); - } catch (IllegalAccessException iae) { - Log.w(TAG, iae); - } catch (InvocationTargetException ite) { - Log.w(TAG, ite); - } - - if (connectivityListener != null) { - Log.w("MmsRadio", "Unregistering receiver..."); - context.unregisterReceiver(connectivityListener); - connectivityListener = null; - } - } - } - - public synchronized void connect() throws MmsRadioException { - int status; - - try { - final Method startUsingNetworkFeatureMethod = connectivityManager.getClass().getMethod("startUsingNetworkFeature", Integer.TYPE, String.class); - status = (int)startUsingNetworkFeatureMethod.invoke(connectivityManager, ConnectivityManager.TYPE_MOBILE, FEATURE_ENABLE_MMS); - } catch (NoSuchMethodException nsme) { - throw new MmsRadioException(nsme); - } catch (IllegalAccessException iae) { - throw new MmsRadioException(iae); - } catch (InvocationTargetException ite) { - throw new MmsRadioException(ite); - } - - Log.w("MmsRadio", "startUsingNetworkFeature status: " + status); - - if (status == APN_ALREADY_ACTIVE) { - wakeLock.acquire(); - connectedCounter++; - return; - } else { - wakeLock.acquire(); - connectedCounter++; - - if (connectivityListener == null) { - IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); - connectivityListener = new ConnectivityListener(); - context.registerReceiver(connectivityListener, filter); - } - - Util.wait(this, 30000); - - if (!isConnected()) { - Log.w("MmsRadio", "Got back from connectivity wait, and not connected..."); - disconnect(); - throw new MmsRadioException("Unable to successfully enable MMS radio."); - } - } - } - - private boolean isConnected() { - NetworkInfo info = connectivityManager.getNetworkInfo(TYPE_MOBILE_MMS); - - Log.w("MmsRadio", "Connected: " + info); - - if ((info == null) || (info.getType() != TYPE_MOBILE_MMS) || !info.isConnected()) - return false; - - return true; - } - - private boolean isConnectivityPossible() { - NetworkInfo networkInfo = connectivityManager.getNetworkInfo(TYPE_MOBILE_MMS); - - return networkInfo != null && networkInfo.isAvailable(); - } - - private boolean isConnectivityFailure() { - NetworkInfo networkInfo = connectivityManager.getNetworkInfo(TYPE_MOBILE_MMS); - - return networkInfo == null || networkInfo.getDetailedState() == NetworkInfo.DetailedState.FAILED; - } - - private synchronized void issueConnectivityChange() { - if (isConnected()) { - Log.w("MmsRadio", "Notifying connected..."); - notifyAll(); - return; - } - - if (!isConnected() && (isConnectivityFailure() || !isConnectivityPossible())) { - Log.w("MmsRadio", "Notifying not connected..."); - notifyAll(); - return; - } - } - - private class ConnectivityListener extends BroadcastReceiver { - @Override - public void onReceive(Context context, Intent intent) { - Log.w("MmsRadio", "Got connectivity change..."); - issueConnectivityChange(); - } - } - - -} diff --git a/src/org/thoughtcrime/securesms/mms/MmsRadioException.java b/src/org/thoughtcrime/securesms/mms/MmsRadioException.java deleted file mode 100644 index dfac78dee..000000000 --- a/src/org/thoughtcrime/securesms/mms/MmsRadioException.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.thoughtcrime.securesms.mms; - -public class MmsRadioException extends Throwable { - public MmsRadioException(String s) { - super(s); - } - - public MmsRadioException(Exception e) { - super(e); - } -} diff --git a/src/org/thoughtcrime/securesms/mms/MmsSendResult.java b/src/org/thoughtcrime/securesms/mms/MmsSendResult.java deleted file mode 100644 index bd9ce36f1..000000000 --- a/src/org/thoughtcrime/securesms/mms/MmsSendResult.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.thoughtcrime.securesms.mms; - -public class MmsSendResult { - - private final byte[] messageId; - private final int responseStatus; - - public MmsSendResult(byte[] messageId, int responseStatus) { - this.messageId = messageId; - this.responseStatus = responseStatus; - } - - public int getResponseStatus() { - return responseStatus; - } - - public byte[] getMessageId() { - return messageId; - } -} diff --git a/src/org/thoughtcrime/securesms/mms/OutgoingLollipopMmsConnection.java b/src/org/thoughtcrime/securesms/mms/OutgoingLollipopMmsConnection.java deleted file mode 100644 index 7876962d5..000000000 --- a/src/org/thoughtcrime/securesms/mms/OutgoingLollipopMmsConnection.java +++ /dev/null @@ -1,114 +0,0 @@ -/** - * Copyright (C) 2015 Open Whisper Systems - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package org.thoughtcrime.securesms.mms; - -import android.annotation.TargetApi; -import android.content.Context; -import android.content.Intent; -import android.os.Build.VERSION; -import android.os.Build.VERSION_CODES; -import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.telephony.SmsManager; -import android.util.Log; - -import com.android.mms.service_alt.MmsConfig; -import com.google.android.mms.pdu_alt.PduParser; -import com.google.android.mms.pdu_alt.SendConf; - -import org.thoughtcrime.securesms.providers.MmsBodyProvider; -import org.thoughtcrime.securesms.transport.UndeliverableMessageException; -import org.thoughtcrime.securesms.util.Util; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.util.concurrent.TimeoutException; - -public class OutgoingLollipopMmsConnection extends LollipopMmsConnection implements OutgoingMmsConnection { - private static final String TAG = OutgoingLollipopMmsConnection.class.getSimpleName(); - private static final String ACTION = OutgoingLollipopMmsConnection.class.getCanonicalName() + "MMS_SENT_ACTION"; - - private byte[] response; - - public OutgoingLollipopMmsConnection(Context context) { - super(context, ACTION); - } - - @TargetApi(VERSION_CODES.LOLLIPOP_MR1) - @Override - public synchronized void onResult(Context context, Intent intent) { - if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP_MR1) { - Log.w(TAG, "HTTP status: " + intent.getIntExtra(SmsManager.EXTRA_MMS_HTTP_STATUS, -1)); - } - - response = intent.getByteArrayExtra(SmsManager.EXTRA_MMS_DATA); - } - - @Override - @TargetApi(VERSION_CODES.LOLLIPOP) - public @Nullable synchronized SendConf send(@NonNull byte[] pduBytes, int subscriptionId) - throws UndeliverableMessageException - { - beginTransaction(); - try { - MmsBodyProvider.Pointer pointer = MmsBodyProvider.makeTemporaryPointer(getContext()); - Util.copy(new ByteArrayInputStream(pduBytes), pointer.getOutputStream()); - - SmsManager smsManager; - - if (VERSION.SDK_INT >= 22 && subscriptionId != -1) { - smsManager = SmsManager.getSmsManagerForSubscriptionId(subscriptionId); - } else { - smsManager = SmsManager.getDefault(); - } - - Bundle configOverrides = new Bundle(); - configOverrides.putBoolean(SmsManager.MMS_CONFIG_GROUP_MMS_ENABLED, true); - - MmsConfig mmsConfig = MmsConfigManager.getMmsConfig(getContext(), subscriptionId); - - if (mmsConfig != null) { - MmsConfig.Overridden overridden = new MmsConfig.Overridden(mmsConfig, new Bundle()); - configOverrides.putString(SmsManager.MMS_CONFIG_HTTP_PARAMS, overridden.getHttpParams()); - configOverrides.putInt(SmsManager.MMS_CONFIG_MAX_MESSAGE_SIZE, overridden.getMaxMessageSize()); - } - - smsManager.sendMultimediaMessage(getContext(), - pointer.getUri(), - null, - configOverrides, - getPendingIntent()); - - waitForResult(); - - Log.w(TAG, "MMS broadcast received and processed."); - pointer.close(); - - if (response == null) { - throw new UndeliverableMessageException("Null response."); - } - - return (SendConf) new PduParser(response).parse(); - } catch (IOException | TimeoutException e) { - throw new UndeliverableMessageException(e); - } finally { - endTransaction(); - } - } -} - diff --git a/src/org/thoughtcrime/securesms/mms/OutgoingMmsConnection.java b/src/org/thoughtcrime/securesms/mms/OutgoingMmsConnection.java deleted file mode 100644 index 4e1fce4ac..000000000 --- a/src/org/thoughtcrime/securesms/mms/OutgoingMmsConnection.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.thoughtcrime.securesms.mms; - -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; - -import com.google.android.mms.pdu_alt.SendConf; - -import org.thoughtcrime.securesms.transport.UndeliverableMessageException; - - -public interface OutgoingMmsConnection { - @Nullable - SendConf send(@NonNull byte[] pduBytes, int subscriptionId) throws UndeliverableMessageException; -}