// Path: licencesDialog/src/main/java/de/psdev/licensesdialog/model/Notice.java
// public class Notice implements Serializable {
//     private static final long serialVersionUID = -6257913944601445939L;
// 
//     private String mName;
//     private String mUrl;
//     private String mCopyright;
//     private License mLicense;
// 
//     //
// 
//     public Notice() {
//     }
// 
//     public Notice(final String name, final String url, final String copyright, final License license) {
//         mName = name;
//         mUrl = url;
//         mCopyright = copyright;
//         mLicense = license;
//     }
// 
//     // Setter / Getter
// 
//     public void setName(final String name) {
//         mName = name;
//     }
// 
//     public void setUrl(final String url) {
//         mUrl = url;
//     }
// 
//     public void setCopyright(final String copyright) {
//         mCopyright = copyright;
//     }
// 
//     public void setLicense(final License license) {
//         mLicense = license;
//     }
// 
//     public String getName() {
//         return mName;
//     }
// 
//     public String getUrl() {
//         return mUrl;
//     }
// 
//     public String getCopyright() {
//         return mCopyright;
//     }
// 
//     public License getLicense() {
//         return mLicense;
//     }
// }
// 
// Path: licencesDialog/src/main/java/de/psdev/licensesdialog/model/Notices.java
// public class Notices {
// 
//     private final List<Notice> mNotices = new ArrayList<Notice>();
// 
//     // Setter / Getter
// 
//     public void addNotice(final Notice notice) {
//         mNotices.add(notice);
//     }
// 
//     public List<Notice> getNotices() {
//         return mNotices;
//     }
// }


import android.util.Xml;
import de.psdev.licensesdialog.licenses.License;
import de.psdev.licensesdialog.model.Notice;
import de.psdev.licensesdialog.model.Notices;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import java.io.InputStream;
    public static Notices parse(final InputStream inputStream) throws Exception {
        try {
            final XmlPullParser parser = Xml.newPullParser();
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
            parser.setInput(inputStream, null);
            parser.nextTag();
            return parse(parser);
        } finally {
            inputStream.close();
        }
    }

    private static Notices parse(final XmlPullParser parser) throws IOException, XmlPullParserException {
        final Notices notices = new Notices();
        parser.require(XmlPullParser.START_TAG, null, "notices");
        while (parser.next() != XmlPullParser.END_TAG) {
            if (parser.getEventType() != XmlPullParser.START_TAG) {
                continue;
            }
            final String name = parser.getName();
            // Starts by looking for the entry tag
            if ("notice".equals(name)) {
                notices.addNotice(readNotice(parser));
            } else {
                skip(parser);
            }
        }
        return notices;
    }

// Path: licencesDialog/src/main/java/de/psdev/licensesdialog/model/Notice.java
// public class Notice implements Serializable {
//     private static final long serialVersionUID = -6257913944601445939L;
// 
//     private String mName;
//     private String mUrl;
//     private String mCopyright;
//     private License mLicense;
// 
//     //
// 
//     public Notice() {
//     }
// 
//     public Notice(final String name, final String url, final String copyright, final License license) {
//         mName = name;
//         mUrl = url;
//         mCopyright = copyright;
//         mLicense = license;
//     }
// 
//     // Setter / Getter
// 
//     public void setName(final String name) {
//         mName = name;
//     }
// 
//     public void setUrl(final String url) {
//         mUrl = url;
//     }
// 
//     public void setCopyright(final String copyright) {
//         mCopyright = copyright;
//     }
// 
//     public void setLicense(final License license) {
//         mLicense = license;
//     }
// 
//     public String getName() {
//         return mName;
//     }
// 
//     public String getUrl() {
//         return mUrl;
//     }
// 
//     public String getCopyright() {
//         return mCopyright;
//     }
// 
//     public License getLicense() {
//         return mLicense;
//     }
// }
// 
// Path: licencesDialog/src/main/java/de/psdev/licensesdialog/model/Notices.java
// public class Notices {
// 
//     private final List<Notice> mNotices = new ArrayList<Notice>();
// 
//     // Setter / Getter
// 
//     public void addNotice(final Notice notice) {
//         mNotices.add(notice);
//     }
// 
//     public List<Notice> getNotices() {
//         return mNotices;
//     }
// }


// Path: licencesDialog/src/main/java/de/psdev/licensesdialog/NoticesXmlParser.java
import android.util.Xml;
import de.psdev.licensesdialog.licenses.License;
import de.psdev.licensesdialog.model.Notice;
import de.psdev.licensesdialog.model.Notices;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import java.io.InputStream;

    public static Notices parse(final InputStream inputStream) throws Exception {
        try {
            final XmlPullParser parser = Xml.newPullParser();
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
            parser.setInput(inputStream, null);
            parser.nextTag();
            return parse(parser);
        } finally {
            inputStream.close();
        }
    }

    private static Notices parse(final XmlPullParser parser) throws IOException, XmlPullParserException {
        final Notices notices = new Notices();
        parser.require(XmlPullParser.START_TAG, null, "notices");
        while (parser.next() != XmlPullParser.END_TAG) {
            if (parser.getEventType() != XmlPullParser.START_TAG) {
                continue;
            }
            final String name = parser.getName();
            // Starts by looking for the entry tag
            if ("notice".equals(name)) {
                notices.addNotice(readNotice(parser));
            } else {
                skip(parser);
            }
        }
        return notices;
    }

    private static Notice readNotice(final XmlPullParser parser) throws IOException,