// Path: android/src/main/java/com/xda/one/parser/TextDataStructure.java
// public class TextDataStructure {
// 
//     private final ArrayList<Section> mSections;
// 
//     public TextDataStructure(final Spanned spanned) {
//         mSections = new ArrayList<>();
// 
//         if (TextUtils.isEmpty(spanned)) {
//             return;
//         }
//         setupAllSections(spanned);
//     }
// 
//     private void setupAllSections(final Spanned spanned) {
//         final XDATagHandlers.QuoteTagHandler.QuoteSpan[] quoteSpans = spanned.getSpans(0,
//                 spanned.length(), XDATagHandlers.QuoteTagHandler.QuoteSpan.class);
//         int position = 0;
//         for (XDATagHandlers.QuoteTagHandler.QuoteSpan span : quoteSpans) {
//             int start = spanned.getSpanStart(span);
//             if (position < start) {
//                 setupNormalSection(new SpannableStringBuilder(spanned, position, start));
//             } else if (position > start) {
//                 // In this case this item is the parent of the previous quote span
//                 final Section previous = mSections.get(mSections.size() - 1);
//                 previous.setEmbedded(true);
//                 start = position;
//             }
//             position = spanned.getSpanEnd(span);
//             setupQuoteSection(new SpannableStringBuilder(spanned, start, position),
//                     span.getUserId());
//         }
//         if (position < spanned.length()) {
//             setupNormalSection(new SpannableStringBuilder(spanned, position, spanned.length()));
//         }
//     }
// 
//     private void setupNormalSection(final Spanned spanned) {
//         final Section section = new Section(SectionType.NORMAL);
//         setupImageSections(section, spanned, new Callback() {
//             @Override
//             public void setupOther(int start, int end) {
//                 final Text text = new Text(new SpannableStringBuilder(spanned, start, end));
//                 section.addItem(text);
//             }
//         });
//         mSections.add(section);
//     }
// 
//     private void setupQuoteSection(final Spanned spanned, final String userId) {
//         final Section section = new Section(SectionType.QUOTE);
//         section.setUserId(userId);
//         setupImageSections(section, spanned, new Callback() {
//             @Override
//             public void setupOther(int start, int end) {
//                 final Text text = new Text(new SpannableStringBuilder(spanned, start, end));
//                 section.addItem(text);
//             }
//         });
//         mSections.add(section);
//     }
// 
//     private void setupImageSections(final Section section, final Spanned spanned,
//             final Callback callback) {
//         final XDATagHandlers.ImageHandler.ImageSpan[] imageSpans = spanned.getSpans(0,
//                 spanned.length(), XDATagHandlers.ImageHandler.ImageSpan.class);
//         int position = 0;
//         for (int i = imageSpans.length - 1; i >= 0; i--) {
//             final XDATagHandlers.ImageHandler.ImageSpan span = imageSpans[i];
//             final int start = spanned.getSpanStart(span);
//             if (position < start) {
//                 callback.setupOther(position, start);
//             }
//             final Image image = new Image(span.getSrc());
//             section.addItem(image);
// 
//             position = spanned.getSpanEnd(span);
//         }
//         if (position < spanned.length()) {
//             callback.setupOther(position, spanned.length());
//         }
//     }
// 
//     public List<Section> getSections() {
//         return Collections.unmodifiableList(mSections);
//     }
// 
//     public enum ItemType {
//         TEXT,
//         IMAGE
//     }
// 
//     public enum SectionType {
//         NORMAL,
//         QUOTE
//     }
// 
//     public interface Item {
// 
//         public ItemType getType();
// 
//         public CharSequence getId();
//     }
// 
//     private interface Callback {
// 
//         public void setupOther(int start, int end);
//     }
// 
//     public class Section {
// 
//         private final SectionType mType;
// 
//         private final List<Item> mItems;
// 
//         private boolean mEmbedded;
// 
//         private String mUserId;
// 
//         public Section(final SectionType type) {
//             mType = type;
//             mItems = new ArrayList<>();
//         }
// 
//         public SectionType getType() {
//             return mType;
//         }
// 
//         public List<Item> getItems() {
//             return mItems;
//         }
// 
//         private void addItem(final Item image) {
//             mItems.add(image);
//         }
// 
//         public boolean isEmbedded() {
//             return mEmbedded;
//         }
// 
//         public void setEmbedded(boolean embedded) {
//             mEmbedded = embedded;
//         }
// 
//         public void setUserId(final String userId) {
//             mUserId = userId;
//         }
// 
//         public String getUsernamePostId() {
//             return mUserId;
//         }
//     }
// 
//     public class Text implements Item {
// 
//         private final Spanned mText;
// 
//         public Text(final Spanned text) {
//             mText = text;
//         }
// 
//         @Override
//         public ItemType getType() {
//             return ItemType.TEXT;
//         }
// 
//         @Override
//         public CharSequence getId() {
//             return mText;
//         }
//     }
// 
//     public class Image implements Item {
// 
//         private final String mSource;
// 
//         public Image(final String source) {
//             mSource = source;
//         }
// 
//         @Override
//         public ItemType getType() {
//             return ItemType.IMAGE;
//         }
// 
//         @Override
//         public CharSequence getId() {
//             return mSource;
//         }
//     }
// }


import com.xda.one.parser.TextDataStructure;
import android.os.Parcelable;
package com.xda.one.api.model.interfaces;



public interface Message extends Parcelable {

    public int getPmId();

    public String getFromUserId();

    public String getFromUserName();

    public String getTitle();

    public CharSequence getMessageContent();

    public long getDate();

    public boolean isMessageUnread();

    String getToUserArray();

    boolean isShowSignature();

    boolean isAllowSmilie();

// Path: android/src/main/java/com/xda/one/parser/TextDataStructure.java
// public class TextDataStructure {
// 
//     private final ArrayList<Section> mSections;
// 
//     public TextDataStructure(final Spanned spanned) {
//         mSections = new ArrayList<>();
// 
//         if (TextUtils.isEmpty(spanned)) {
//             return;
//         }
//         setupAllSections(spanned);
//     }
// 
//     private void setupAllSections(final Spanned spanned) {
//         final XDATagHandlers.QuoteTagHandler.QuoteSpan[] quoteSpans = spanned.getSpans(0,
//                 spanned.length(), XDATagHandlers.QuoteTagHandler.QuoteSpan.class);
//         int position = 0;
//         for (XDATagHandlers.QuoteTagHandler.QuoteSpan span : quoteSpans) {
//             int start = spanned.getSpanStart(span);
//             if (position < start) {
//                 setupNormalSection(new SpannableStringBuilder(spanned, position, start));
//             } else if (position > start) {
//                 // In this case this item is the parent of the previous quote span
//                 final Section previous = mSections.get(mSections.size() - 1);
//                 previous.setEmbedded(true);
//                 start = position;
//             }
//             position = spanned.getSpanEnd(span);
//             setupQuoteSection(new SpannableStringBuilder(spanned, start, position),
//                     span.getUserId());
//         }
//         if (position < spanned.length()) {
//             setupNormalSection(new SpannableStringBuilder(spanned, position, spanned.length()));
//         }
//     }
// 
//     private void setupNormalSection(final Spanned spanned) {
//         final Section section = new Section(SectionType.NORMAL);
//         setupImageSections(section, spanned, new Callback() {
//             @Override
//             public void setupOther(int start, int end) {
//                 final Text text = new Text(new SpannableStringBuilder(spanned, start, end));
//                 section.addItem(text);
//             }
//         });
//         mSections.add(section);
//     }
// 
//     private void setupQuoteSection(final Spanned spanned, final String userId) {
//         final Section section = new Section(SectionType.QUOTE);
//         section.setUserId(userId);
//         setupImageSections(section, spanned, new Callback() {
//             @Override
//             public void setupOther(int start, int end) {
//                 final Text text = new Text(new SpannableStringBuilder(spanned, start, end));
//                 section.addItem(text);
//             }
//         });
//         mSections.add(section);
//     }
// 
//     private void setupImageSections(final Section section, final Spanned spanned,
//             final Callback callback) {
//         final XDATagHandlers.ImageHandler.ImageSpan[] imageSpans = spanned.getSpans(0,
//                 spanned.length(), XDATagHandlers.ImageHandler.ImageSpan.class);
//         int position = 0;
//         for (int i = imageSpans.length - 1; i >= 0; i--) {
//             final XDATagHandlers.ImageHandler.ImageSpan span = imageSpans[i];
//             final int start = spanned.getSpanStart(span);
//             if (position < start) {
//                 callback.setupOther(position, start);
//             }
//             final Image image = new Image(span.getSrc());
//             section.addItem(image);
// 
//             position = spanned.getSpanEnd(span);
//         }
//         if (position < spanned.length()) {
//             callback.setupOther(position, spanned.length());
//         }
//     }
// 
//     public List<Section> getSections() {
//         return Collections.unmodifiableList(mSections);
//     }
// 
//     public enum ItemType {
//         TEXT,
//         IMAGE
//     }
// 
//     public enum SectionType {
//         NORMAL,
//         QUOTE
//     }
// 
//     public interface Item {
// 
//         public ItemType getType();
// 
//         public CharSequence getId();
//     }
// 
//     private interface Callback {
// 
//         public void setupOther(int start, int end);
//     }
// 
//     public class Section {
// 
//         private final SectionType mType;
// 
//         private final List<Item> mItems;
// 
//         private boolean mEmbedded;
// 
//         private String mUserId;
// 
//         public Section(final SectionType type) {
//             mType = type;
//             mItems = new ArrayList<>();
//         }
// 
//         public SectionType getType() {
//             return mType;
//         }
// 
//         public List<Item> getItems() {
//             return mItems;
//         }
// 
//         private void addItem(final Item image) {
//             mItems.add(image);
//         }
// 
//         public boolean isEmbedded() {
//             return mEmbedded;
//         }
// 
//         public void setEmbedded(boolean embedded) {
//             mEmbedded = embedded;
//         }
// 
//         public void setUserId(final String userId) {
//             mUserId = userId;
//         }
// 
//         public String getUsernamePostId() {
//             return mUserId;
//         }
//     }
// 
//     public class Text implements Item {
// 
//         private final Spanned mText;
// 
//         public Text(final Spanned text) {
//             mText = text;
//         }
// 
//         @Override
//         public ItemType getType() {
//             return ItemType.TEXT;
//         }
// 
//         @Override
//         public CharSequence getId() {
//             return mText;
//         }
//     }
// 
//     public class Image implements Item {
// 
//         private final String mSource;
// 
//         public Image(final String source) {
//             mSource = source;
//         }
// 
//         @Override
//         public ItemType getType() {
//             return ItemType.IMAGE;
//         }
// 
//         @Override
//         public CharSequence getId() {
//             return mSource;
//         }
//     }
// }


// Path: android/src/main/java/com/xda/one/api/model/interfaces/Message.java
import com.xda.one.parser.TextDataStructure;
import android.os.Parcelable;

package com.xda.one.api.model.interfaces;



public interface Message extends Parcelable {

    public int getPmId();

    public String getFromUserId();

    public String getFromUserName();

    public String getTitle();

    public CharSequence getMessageContent();

    public long getDate();

    public boolean isMessageUnread();

    String getToUserArray();

    boolean isShowSignature();

    boolean isAllowSmilie();

    public String getAvatarUrl();