package org.thoughtcrime.securesms.database; import android.util.Log; import android.util.Xml; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlSerializer; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; public class XmlBackup { private static final String PROTOCOL = "protocol"; private static final String ADDRESS = "address"; private static final String DATE = "date"; private static final String TYPE = "type"; private static final String SUBJECT = "subject"; private static final String BODY = "body"; private static final String SERVICE_CENTER = "service_center"; private static final String READ = "read"; private static final String STATUS = "status"; private final XmlPullParser parser; public XmlBackup(String path) throws XmlPullParserException, FileNotFoundException { this.parser = Xml.newPullParser(); parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false); parser.setInput(new FileInputStream(path), null); } public XmlBackupItem getNext() throws IOException, XmlPullParserException { while (parser.next() != XmlPullParser.END_DOCUMENT) { if (parser.getEventType() != XmlPullParser.START_TAG) { continue; } String name = parser.getName(); if (!name.equals("sms")) { continue; } int attributeCount = parser.getAttributeCount(); if (attributeCount <= 0) { continue; } XmlBackupItem item = new XmlBackupItem(); for (int i=0;i