Trim recipient addresses that are unreasonably long. am: e37bb58fbb

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Messaging/+/23181897

Change-Id: I7d829d57ec9a8c9681a4cbb9548255f0f19b4e99
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Jake Klinker
2023-05-15 21:49:28 +00:00
committed by Automerger Merge Worker

View File

@@ -37,6 +37,8 @@ import com.android.messaging.util.UriUtil;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List;
/** /**
* Launches ConversationActivity for sending a message to, or viewing messages from, a specific * Launches ConversationActivity for sending a message to, or viewing messages from, a specific
@@ -46,6 +48,7 @@ import java.net.URLDecoder;
*/ */
public class LaunchConversationActivity extends Activity implements public class LaunchConversationActivity extends Activity implements
LaunchConversationData.LaunchConversationDataListener { LaunchConversationData.LaunchConversationDataListener {
private static final int MAX_RECIPIENT_LENGTH = 100;
static final String SMS_BODY = "sms_body"; static final String SMS_BODY = "sms_body";
static final String ADDRESS = "address"; static final String ADDRESS = "address";
final Binding<LaunchConversationData> mBinding = BindingBase.createBinding(this); final Binding<LaunchConversationData> mBinding = BindingBase.createBinding(this);
@@ -76,6 +79,9 @@ public class LaunchConversationActivity extends Activity implements
recipients = new String[] { intent.getStringExtra(Intent.EXTRA_EMAIL) }; recipients = new String[] { intent.getStringExtra(Intent.EXTRA_EMAIL) };
} }
} }
if (recipients != null) {
recipients = trimInvalidRecipients(recipients);
}
mSmsBody = intent.getStringExtra(SMS_BODY); mSmsBody = intent.getStringExtra(SMS_BODY);
if (TextUtils.isEmpty(mSmsBody)) { if (TextUtils.isEmpty(mSmsBody)) {
// Used by intents sent from the web YouTube (and perhaps others). // Used by intents sent from the web YouTube (and perhaps others).
@@ -103,6 +109,20 @@ public class LaunchConversationActivity extends Activity implements
finish(); finish();
} }
private String[] trimInvalidRecipients(String[] recipients) {
List<String> trimmedRecipients = new ArrayList<>();
for (String recipient : recipients) {
if (recipient.length() < MAX_RECIPIENT_LENGTH) {
trimmedRecipients.add(recipient);
}
}
if (trimmedRecipients.size() > 0) {
return trimmedRecipients.toArray(new String[0]);
} else {
return null;
}
}
private String getBody(final Uri uri) { private String getBody(final Uri uri) {
if (uri == null) { if (uri == null) {
return null; return null;