Initial version -- added millennium read funcionality

This commit is contained in:
Pablo
2026-03-09 22:05:28 +01:00
commit 77c2ded482
2770 changed files with 141927 additions and 0 deletions
@@ -0,0 +1,173 @@
package com.google.maps.android.data.kml;
import java.io.IOException;
import java.util.HashMap;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
/* JADX INFO: loaded from: classes2.dex */
class KmlStyleParser {
private static final String COLOR_STYLE_COLOR = "color";
private static final String COLOR_STYLE_MODE = "colorMode";
private static final String ICON_STYLE_HEADING = "heading";
private static final String ICON_STYLE_HOTSPOT = "hotSpot";
private static final String ICON_STYLE_SCALE = "scale";
private static final String ICON_STYLE_URL = "Icon";
private static final String LINE_STYLE_WIDTH = "width";
private static final String POLY_STYLE_FILL = "fill";
private static final String POLY_STYLE_OUTLINE = "outline";
private static final String STYLE_MAP_KEY = "key";
private static final String STYLE_MAP_NORMAL_STYLE = "normal";
private static final String STYLE_TAG = "styleUrl";
KmlStyleParser() {
}
static KmlStyle createStyle(XmlPullParser xmlPullParser) throws XmlPullParserException, IOException {
KmlStyle kmlStyle = new KmlStyle();
setStyleId(xmlPullParser.getAttributeValue(null, "id"), kmlStyle);
int eventType = xmlPullParser.getEventType();
while (true) {
if (eventType == 3 && xmlPullParser.getName().equals("Style")) {
return kmlStyle;
}
if (eventType == 2) {
if (xmlPullParser.getName().equals("IconStyle")) {
createIconStyle(xmlPullParser, kmlStyle);
} else if (xmlPullParser.getName().equals("LineStyle")) {
createLineStyle(xmlPullParser, kmlStyle);
} else if (xmlPullParser.getName().equals("PolyStyle")) {
createPolyStyle(xmlPullParser, kmlStyle);
} else if (xmlPullParser.getName().equals("BalloonStyle")) {
createBalloonStyle(xmlPullParser, kmlStyle);
}
}
eventType = xmlPullParser.next();
}
}
private static void setStyleId(String str, KmlStyle kmlStyle) {
if (str != null) {
kmlStyle.setStyleId("#" + str);
}
}
private static void createIconStyle(XmlPullParser xmlPullParser, KmlStyle kmlStyle) throws XmlPullParserException, IOException {
int eventType = xmlPullParser.getEventType();
while (true) {
if (eventType == 3 && xmlPullParser.getName().equals("IconStyle")) {
return;
}
if (eventType == 2) {
if (xmlPullParser.getName().equals(ICON_STYLE_HEADING)) {
kmlStyle.setHeading(Float.parseFloat(xmlPullParser.nextText()));
} else if (xmlPullParser.getName().equals(ICON_STYLE_URL)) {
setIconUrl(xmlPullParser, kmlStyle);
} else if (xmlPullParser.getName().equals(ICON_STYLE_HOTSPOT)) {
setIconHotSpot(xmlPullParser, kmlStyle);
} else if (xmlPullParser.getName().equals(ICON_STYLE_SCALE)) {
kmlStyle.setIconScale(Double.parseDouble(xmlPullParser.nextText()));
} else if (xmlPullParser.getName().equals(COLOR_STYLE_COLOR)) {
kmlStyle.setMarkerColor(xmlPullParser.nextText());
} else if (xmlPullParser.getName().equals(COLOR_STYLE_MODE)) {
kmlStyle.setIconColorMode(xmlPullParser.nextText());
}
}
eventType = xmlPullParser.next();
}
}
static HashMap<String, String> createStyleMap(XmlPullParser xmlPullParser) throws XmlPullParserException, IOException {
HashMap<String, String> map = new HashMap<>();
String str = "#" + xmlPullParser.getAttributeValue(null, "id");
int eventType = xmlPullParser.getEventType();
boolean z = false;
while (true) {
if (eventType == 3 && xmlPullParser.getName().equals("StyleMap")) {
return map;
}
if (eventType == 2) {
if (xmlPullParser.getName().equals(STYLE_MAP_KEY) && xmlPullParser.nextText().equals(STYLE_MAP_NORMAL_STYLE)) {
z = true;
} else if (xmlPullParser.getName().equals(STYLE_TAG) && z) {
map.put(str, xmlPullParser.nextText());
z = false;
}
}
eventType = xmlPullParser.next();
}
}
private static void createBalloonStyle(XmlPullParser xmlPullParser, KmlStyle kmlStyle) throws XmlPullParserException, IOException {
int eventType = xmlPullParser.getEventType();
while (true) {
if (eventType == 3 && xmlPullParser.getName().equals("BalloonStyle")) {
return;
}
if (eventType == 2 && xmlPullParser.getName().equals("text")) {
kmlStyle.setInfoWindowText(xmlPullParser.nextText());
}
eventType = xmlPullParser.next();
}
}
private static void setIconUrl(XmlPullParser xmlPullParser, KmlStyle kmlStyle) throws XmlPullParserException, IOException {
int eventType = xmlPullParser.getEventType();
while (true) {
if (eventType == 3 && xmlPullParser.getName().equals(ICON_STYLE_URL)) {
return;
}
if (eventType == 2 && xmlPullParser.getName().equals("href")) {
kmlStyle.setIconUrl(xmlPullParser.nextText());
}
eventType = xmlPullParser.next();
}
}
private static void setIconHotSpot(XmlPullParser xmlPullParser, KmlStyle kmlStyle) throws XmlPullParserException {
if (xmlPullParser.isEmptyElementTag()) {
return;
}
kmlStyle.setHotSpot(Float.parseFloat(xmlPullParser.getAttributeValue(null, "x")), Float.parseFloat(xmlPullParser.getAttributeValue(null, "y")), xmlPullParser.getAttributeValue(null, "xunits"), xmlPullParser.getAttributeValue(null, "yunits"));
}
private static void createLineStyle(XmlPullParser xmlPullParser, KmlStyle kmlStyle) throws XmlPullParserException, IOException {
int eventType = xmlPullParser.getEventType();
while (true) {
if (eventType == 3 && xmlPullParser.getName().equals("LineStyle")) {
return;
}
if (eventType == 2) {
if (xmlPullParser.getName().equals(COLOR_STYLE_COLOR)) {
kmlStyle.setOutlineColor(xmlPullParser.nextText());
} else if (xmlPullParser.getName().equals(LINE_STYLE_WIDTH)) {
kmlStyle.setWidth(Float.valueOf(xmlPullParser.nextText()));
} else if (xmlPullParser.getName().equals(COLOR_STYLE_MODE)) {
kmlStyle.setLineColorMode(xmlPullParser.nextText());
}
}
eventType = xmlPullParser.next();
}
}
private static void createPolyStyle(XmlPullParser xmlPullParser, KmlStyle kmlStyle) throws XmlPullParserException, IOException {
int eventType = xmlPullParser.getEventType();
while (true) {
if (eventType == 3 && xmlPullParser.getName().equals("PolyStyle")) {
return;
}
if (eventType == 2) {
if (xmlPullParser.getName().equals(COLOR_STYLE_COLOR)) {
kmlStyle.setFillColor(xmlPullParser.nextText());
} else if (xmlPullParser.getName().equals(POLY_STYLE_OUTLINE)) {
kmlStyle.setOutline(KmlBoolean.parseBoolean(xmlPullParser.nextText()));
} else if (xmlPullParser.getName().equals(POLY_STYLE_FILL)) {
kmlStyle.setFill(KmlBoolean.parseBoolean(xmlPullParser.nextText()));
} else if (xmlPullParser.getName().equals(COLOR_STYLE_MODE)) {
kmlStyle.setPolyColorMode(xmlPullParser.nextText());
}
}
eventType = xmlPullParser.next();
}
}
}