From 77bcde9ed69868525600071bb15f54abe78aa2fe Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sat, 3 Oct 2020 00:16:19 -0400 Subject: [PATCH] v0.9.0: adjusted display feed logic for news articles --- .../scenes/NewsScene.java | 4 ++-- .../services/news/ShatteredNews.java | 22 ++++++++++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewsScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewsScene.java index 4161ccfa9..dc8bffca7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewsScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewsScene.java @@ -83,7 +83,7 @@ public class NewsScene extends PixelScene { align(title); add(title); - float top = 20; + float top = 18; displayingNoArticles = !News.articlesAvailable(); if (displayingNoArticles || Messages.lang() != Languages.ENGLISH) { @@ -106,7 +106,7 @@ public class NewsScene extends PixelScene { } rows++; - while ((articleSpace) / (BTN_HEIGHT+1) < rows) { + while ((articleSpace) / (BTN_HEIGHT+0.5f) < rows) { articles.remove(articles.size() - 1); if (PixelScene.landscape()) { articles.remove(articles.size() - 1); diff --git a/services/news/shatteredNews/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/ShatteredNews.java b/services/news/shatteredNews/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/ShatteredNews.java index 8da5e09bc..70a515ffb 100644 --- a/services/news/shatteredNews/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/ShatteredNews.java +++ b/services/news/shatteredNews/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/ShatteredNews.java @@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.services.news; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Net; +import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.XmlReader; import com.watabou.noosa.Game; @@ -30,6 +31,8 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class ShatteredNews extends NewsService { @@ -43,9 +46,9 @@ public class ShatteredNews extends NewsService { Net.HttpRequest httpGet = new Net.HttpRequest(Net.HttpMethods.GET); if (preferHTTPS) { - httpGet.setUrl("https://shatteredpixel.com/feed"); + httpGet.setUrl("https://shatteredpixel.com/feed_by_tag/SHPD_INGAME.xml"); } else { - httpGet.setUrl("http://shatteredpixel.com/feed"); + httpGet.setUrl("http://shatteredpixel.com/feed_by_tag/SHPD_INGAME.xml"); } Gdx.net.sendHttpRequest(httpGet, new Net.HttpResponseListener() { @@ -71,8 +74,21 @@ public class ShatteredNews extends NewsService { article.URL = article.URL.replace("https://", "http://"); } + Pattern versionCodeMatcher = Pattern.compile("v[0-9]+"); try { - article.icon = xmlArticle.getChildByName("category").getAttribute("term"); + Array properties = xmlArticle.getChildrenByName("category"); + for (XmlReader.Element prop : properties){ + String propVal = prop.getAttribute("term"); + if (propVal.startsWith("SHPD_ICON")){ + Matcher m = versionCodeMatcher.matcher(propVal); + if (m.find()) { + int iconGameVer = Integer.parseInt(m.group().substring(1)); + if (iconGameVer <= Game.versionCode) { + article.icon = propVal.substring(propVal.indexOf(": ") + 2); + } + } + } + } } catch (Exception e){ article.icon = null; }