1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-08-13 17:03:48 -04:00
k-9/src/com/fsck/k9/mail/Multipart.java

102 lines
2.1 KiB
Java
Raw Normal View History

package com.fsck.k9.mail;
import java.util.ArrayList;
import com.fsck.k9.mail.internet.MimeHeader;
import com.fsck.k9.mail.internet.MimeUtility;
import com.fsck.k9.mail.internet.TextBody;
public abstract class Multipart implements Body
{
protected Part mParent;
protected ArrayList<BodyPart> mParts = new ArrayList<BodyPart>();
protected String mContentType;
2010-12-01 01:32:29 -05:00
public void addBodyPart(BodyPart part)
{
mParts.add(part);
part.setParent(this);
}
2010-12-01 01:32:29 -05:00
public void addBodyPart(BodyPart part, int index)
{
mParts.add(index, part);
part.setParent(this);
}
2010-12-01 01:32:29 -05:00
public BodyPart getBodyPart(int index)
{
return mParts.get(index);
}
2010-12-01 01:32:29 -05:00
public String getContentType()
{
return mContentType;
}
2010-12-01 01:32:29 -05:00
public int getCount()
{
return mParts.size();
}
2010-12-01 01:32:29 -05:00
public boolean removeBodyPart(BodyPart part)
{
part.setParent(null);
return mParts.remove(part);
}
2010-12-01 01:32:29 -05:00
public void removeBodyPart(int index)
{
mParts.get(index).setParent(null);
mParts.remove(index);
}
2010-12-01 01:32:29 -05:00
public Part getParent()
{
return mParent;
}
2010-12-01 01:32:29 -05:00
public void setParent(Part parent)
{
this.mParent = parent;
}
public void setEncoding(String encoding)
{
for (BodyPart part : mParts)
{
try
{
Body body = part.getBody();
if (body instanceof TextBody)
{
part.setHeader(MimeHeader.HEADER_CONTENT_TRANSFER_ENCODING, encoding);
((TextBody)body).setEncoding(encoding);
}
}
catch (MessagingException e)
{
// Ignore
}
}
}
public void setCharset(String charset) throws MessagingException
{
if (mParts.isEmpty())
return;
BodyPart part = mParts.get(0);
Body body = part.getBody();
if (body instanceof TextBody)
{
MimeUtility.setCharset(charset, part);
((TextBody)body).setCharset(charset);
}
}
}