From 192ecce74b697466cb6cb7d28d5018200943b1ee Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 13 Jul 2020 01:59:19 -0400 Subject: [PATCH] v0.8.2: added a settings menu tab for connectivity options --- core/src/main/assets/interfaces/icons.png | Bin 10474 -> 10549 bytes .../messages/windows/windows.properties | 3 + .../shatteredpixeldungeon/SPDSettings.java | 30 ++++++ .../scenes/TitleScene.java | 3 +- .../services/news/News.java | 7 +- .../services/updates/Updates.java | 9 +- .../shatteredpixeldungeon/ui/Icons.java | 10 +- .../shatteredpixeldungeon/ui/Window.java | 3 +- .../windows/WndSettings.java | 101 +++++++++++++++++- .../services/news/DebugNews.java | 9 +- .../services/news/ShatteredNews.java | 4 +- .../services/news/NewsService.java | 2 +- .../services/updates/UpdateService.java | 2 +- .../services/updates/DebugUpdates.java | 7 +- .../services/updates/GitHubUpdates.java | 5 +- 15 files changed, 173 insertions(+), 22 deletions(-) diff --git a/core/src/main/assets/interfaces/icons.png b/core/src/main/assets/interfaces/icons.png index 23990dd6c6ea985f35cd2c32ad95d8b6cce38c5d..c0f143dbfaafd8b90fa52e4bb709baaac6c352f2 100644 GIT binary patch literal 10549 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 D>Jy3{ literal 10474 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 g|KrC70+osQze

75$<$n*aa+07*qoM6N<$f+k=SumAu6 diff --git a/core/src/main/assets/messages/windows/windows.properties b/core/src/main/assets/messages/windows/windows.properties index 1fa9f8320..c32843c52 100644 --- a/core/src/main/assets/messages/windows/windows.properties +++ b/core/src/main/assets/messages/windows/windows.properties @@ -171,6 +171,9 @@ windows.wndsettings$langstab.transifex=All translation provided by volunteers th windows.wndsettings$langstab.credits=credits windows.wndsettings$langstab.reviewers=reviewers windows.wndsettings$langstab.translators=translators +windows.wndsettings$datatab.news=Check for news +windows.wndsettings$datatab.updates=Check for updates +windows.wndsettings$datatab.wifi=Only check on WiFi windows.wndstartgame.title=Choose Your Hero windows.wndstartgame.huntress_unlock=Defeat the boss on floor 15 to unlock this character diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/SPDSettings.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/SPDSettings.java index f1caa85dd..cf53e154a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/SPDSettings.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/SPDSettings.java @@ -253,6 +253,36 @@ public class SPDSettings extends GameSettings { return getBoolean(KEY_SYSTEMFONT, (language() == Languages.KOREAN || language() == Languages.CHINESE || language() == Languages.JAPANESE)); } + + //Connectivity + + public static final String KEY_NEWS = "news"; + public static final String KEY_UPDATES = "updates"; + public static final String KEY_WIFI = "wifi"; + + public static void news(boolean value){ + put(KEY_NEWS, value); + } + + public static boolean news(){ + return getBoolean(KEY_NEWS, true); + } + + public static void updates(boolean value){ + put(KEY_UPDATES, value); + } + + public static boolean updates(){ + return getBoolean(KEY_UPDATES, true); + } + + public static void WiFi(boolean value){ + put(KEY_WIFI, value); + } + + public static boolean WiFi(){ + return getBoolean(KEY_WIFI, true); + } //Window management (desktop only atm) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java index 87b64e714..cb551d68b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java @@ -24,6 +24,7 @@ package com.shatteredpixel.shatteredpixeldungeon.scenes; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Chrome; import com.shatteredpixel.shatteredpixeldungeon.GamesInProgress; +import com.shatteredpixel.shatteredpixeldungeon.SPDSettings; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.effects.BannerSprites; import com.shatteredpixel.shatteredpixeldungeon.effects.Fireball; @@ -241,7 +242,7 @@ public class TitleScene extends PixelScene { public ChangesButton( Chrome.Type type, String label ){ super(type, label); - Updates.checkForUpdate(); + if (SPDSettings.updates()) Updates.checkForUpdate(); } boolean updateShown = false; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/News.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/News.java index 748cbd6b9..7f632ac30 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/News.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/News.java @@ -39,7 +39,7 @@ public class News { if (!supportsNews()) return; if (lastCheck != null && (new Date().getTime() - lastCheck.getTime()) < CHECK_DELAY) return; - service.checkForArticles(new NewsService.NewsResultCallback() { + service.checkForArticles(false, new NewsService.NewsResultCallback() { @Override public void onArticlesFound(ArrayList articles) { lastCheck = new Date(); @@ -73,6 +73,9 @@ public class News { return unread; } - + public static void clearArticles(){ + articles = null; + lastCheck = null; + } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/Updates.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/Updates.java index 4eca65071..8fbc85f58 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/Updates.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/Updates.java @@ -21,6 +21,8 @@ package com.shatteredpixel.shatteredpixeldungeon.services.updates; +import com.shatteredpixel.shatteredpixeldungeon.SPDSettings; + import java.util.Date; public class Updates { @@ -38,7 +40,7 @@ public class Updates { if (!supportsUpdates()) return; if (lastCheck != null && (new Date().getTime() - lastCheck.getTime()) < CHECK_DELAY) return; - service.checkForUpdate(new UpdateService.UpdateResultCallback() { + service.checkForUpdate(!SPDSettings.WiFi(), new UpdateService.UpdateResultCallback() { @Override public void onUpdateAvailable(AvailableUpdateData update) { lastCheck = new Date(); @@ -71,4 +73,9 @@ public class Updates { return updateData; } + public static void clearUpdate(){ + updateData = null; + lastCheck = null; + } + } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java index b03e4aeef..2d20d2d55 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java @@ -40,7 +40,7 @@ public enum Icons { CLOSE, ARROW, DISPLAY, - //TODO UI, + DATA, AUDIO, //ingame UI icons @@ -125,10 +125,12 @@ public enum Icons { icon.frame( icon.texture.uvRect( 32, 16, 45, 32 ) ); break; //TODO UI icon? - case AUDIO: - icon.frame( icon.texture.uvRect( 64, 16, 77, 28 ) ); + case DATA: + icon.frame( icon.texture.uvRect( 48, 16, 64, 31 ) ); + break; + case AUDIO: + icon.frame( icon.texture.uvRect( 64, 16, 78, 30 ) ); break; - case SKULL: icon.frame( icon.texture.uvRect( 0, 32, 8, 40 ) ); break; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Window.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Window.java index 8ac53b344..ec3b6bc1d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Window.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Window.java @@ -45,7 +45,8 @@ public class Window extends Group implements Signal.Listener { protected PointerArea blocker; protected ShadowBox shadow; protected NinePatch chrome; - + + public static final int WHITE = 0xFFFFFF; public static final int TITLE_COLOR = 0xFFFF44; public static final int SHPX_COLOR = 0x33BB33; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndSettings.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndSettings.java index ea6389762..1703b0413 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndSettings.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndSettings.java @@ -29,6 +29,8 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Languages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.shatteredpixel.shatteredpixeldungeon.services.news.News; +import com.shatteredpixel.shatteredpixeldungeon.services.updates.Updates; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.CheckBox; import com.shatteredpixel.shatteredpixeldungeon.ui.GameLog; @@ -64,6 +66,7 @@ public class WndSettings extends WndTabbed { private UITab ui; private AudioTab audio; private LangsTab langs; + private DataTab data; public static int last_index = 0; @@ -145,6 +148,20 @@ public class WndSettings extends WndTabbed { }); + data = new DataTab(); + data.setSize(width, 0); + height = Math.max(height, data.height()); + add( data ); + + add( new IconTab(Icons.get(Icons.DATA)){ + @Override + protected void select(boolean value) { + super.select(value); + data.visible = data.active = value; + if (value) last_index = 4; + } + }); + resize(width, (int)Math.ceil(height)); layoutTabs(); @@ -169,7 +186,7 @@ public class WndSettings extends WndTabbed { }); } - private class DisplayTab extends Component { + private static class DisplayTab extends Component { OptionSlider optScale; CheckBox chkSaver; @@ -300,7 +317,7 @@ public class WndSettings extends WndTabbed { } - private class UITab extends Component { + private static class UITab extends Component { RenderedTextBlock barDesc; RedButton btnSplit; RedButton btnGrouped; RedButton btnCentered; @@ -320,28 +337,40 @@ public class WndSettings extends WndTabbed { btnSplit = new RedButton(Messages.get(this, "split")){ @Override protected void onClick() { + textColor(TITLE_COLOR); + btnGrouped.textColor(WHITE); + btnCentered.textColor(WHITE); SPDSettings.toolbarMode(Toolbar.Mode.SPLIT.name()); Toolbar.updateLayout(); } }; + if (SPDSettings.toolbarMode().equals(Toolbar.Mode.SPLIT.name())) btnSplit.textColor(TITLE_COLOR); add(btnSplit); btnGrouped = new RedButton(Messages.get(this, "group")){ @Override protected void onClick() { + btnSplit.textColor(WHITE); + textColor(TITLE_COLOR); + btnCentered.textColor(WHITE); SPDSettings.toolbarMode(Toolbar.Mode.GROUP.name()); Toolbar.updateLayout(); } }; + if (SPDSettings.toolbarMode().equals(Toolbar.Mode.GROUP.name())) btnGrouped.textColor(TITLE_COLOR); add(btnGrouped); btnCentered = new RedButton(Messages.get(this, "center")){ @Override protected void onClick() { + btnSplit.textColor(WHITE); + btnGrouped.textColor(WHITE); + textColor(TITLE_COLOR); SPDSettings.toolbarMode(Toolbar.Mode.CENTER.name()); Toolbar.updateLayout(); } }; + if (SPDSettings.toolbarMode().equals(Toolbar.Mode.CENTER.name())) btnCentered.textColor(TITLE_COLOR); add(btnCentered); chkFlipToolbar = new CheckBox(Messages.get(this, "flip_toolbar")){ @@ -445,7 +474,7 @@ public class WndSettings extends WndTabbed { } - private class AudioTab extends Component { + private static class AudioTab extends Component { OptionSlider optMusic; CheckBox chkMusicMute; @@ -518,7 +547,7 @@ public class WndSettings extends WndTabbed { } - private class LangsTab extends Component{ + private static class LangsTab extends Component{ final static int COLS_P = 3; final static int COLS_L = 4; @@ -735,4 +764,68 @@ public class WndSettings extends WndTabbed { } } + + private static class DataTab extends Component{ + + CheckBox chkNews; + CheckBox chkUpdates; + CheckBox chkWifi; + + @Override + protected void createChildren() { + chkNews = new CheckBox(Messages.get(this, "news")){ + @Override + protected void onClick() { + super.onClick(); + SPDSettings.news(checked()); + News.clearArticles(); + } + }; + chkNews.checked(SPDSettings.news()); + add(chkNews); + + chkUpdates = new CheckBox(Messages.get(this, "updates")){ + @Override + protected void onClick() { + super.onClick(); + SPDSettings.updates(checked()); + Updates.clearUpdate(); + } + }; + chkUpdates.checked(SPDSettings.updates()); + add(chkUpdates); + + if (!DeviceCompat.isDesktop()){ + chkWifi = new CheckBox(Messages.get(this, "wifi")){ + @Override + protected void onClick() { + super.onClick(); + SPDSettings.WiFi(checked()); + } + }; + chkWifi.checked(SPDSettings.WiFi()); + add(chkWifi); + } + } + + @Override + protected void layout() { + if (width > 200){ + chkNews.setRect(0, 0, width/2-1, BTN_HEIGHT); + chkUpdates.setRect(chkNews.right() + GAP_TINY, chkNews.top(), width/2-1, BTN_HEIGHT); + } else { + chkNews.setRect(0, 0, width, BTN_HEIGHT); + chkUpdates.setRect(0, chkNews.bottom()+GAP_TINY, width, BTN_HEIGHT); + } + + float pos = chkUpdates.bottom(); + if (chkWifi != null){ + chkWifi.setRect(0, pos + GAP_TINY, width, BTN_HEIGHT); + pos = chkWifi.bottom(); + } + + height = pos; + + } + } } diff --git a/services/news/debugNews/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/DebugNews.java b/services/news/debugNews/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/DebugNews.java index 3b6dcd3ac..a0a3964ee 100644 --- a/services/news/debugNews/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/DebugNews.java +++ b/services/news/debugNews/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/DebugNews.java @@ -21,14 +21,19 @@ package com.shatteredpixel.shatteredpixeldungeon.services.news; +import com.watabou.noosa.Game; + import java.util.ArrayList; -import java.util.Calendar; import java.util.Date; public class DebugNews extends NewsService { @Override - public void checkForArticles(NewsResultCallback callback) { + public void checkForArticles(boolean useMetered, NewsResultCallback callback) { + + if (!useMetered && !Game.platform.connectedToUnmeteredNetwork()){ + callback.onConnectionFailed(); + } //turn on to test connection failure if (false){ 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 69fa86470..4fc00dd6a 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 @@ -34,9 +34,9 @@ import java.util.Locale; public class ShatteredNews extends NewsService { @Override - public void checkForArticles(NewsResultCallback callback) { + public void checkForArticles(boolean useMetered, NewsResultCallback callback) { - if (!Game.platform.connectedToUnmeteredNetwork()){ + if (!useMetered && !Game.platform.connectedToUnmeteredNetwork()){ callback.onConnectionFailed(); } diff --git a/services/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/NewsService.java b/services/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/NewsService.java index e950e40ae..a2df6060c 100644 --- a/services/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/NewsService.java +++ b/services/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/news/NewsService.java @@ -30,6 +30,6 @@ public abstract class NewsService { public abstract void onConnectionFailed(); } - public abstract void checkForArticles( NewsResultCallback callback ); + public abstract void checkForArticles(boolean useMetered, NewsResultCallback callback); } diff --git a/services/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/UpdateService.java b/services/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/UpdateService.java index a7f01d2c8..d6afd7a97 100644 --- a/services/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/UpdateService.java +++ b/services/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/UpdateService.java @@ -29,7 +29,7 @@ public abstract class UpdateService { public abstract void onConnectionFailed(); } - public abstract void checkForUpdate( UpdateResultCallback callback ); + public abstract void checkForUpdate( boolean useMetered, UpdateResultCallback callback ); public abstract void initializeUpdate( AvailableUpdateData update ); diff --git a/services/updates/debugUpdates/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/DebugUpdates.java b/services/updates/debugUpdates/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/DebugUpdates.java index 0c0c5889c..2937453ae 100644 --- a/services/updates/debugUpdates/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/DebugUpdates.java +++ b/services/updates/debugUpdates/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/DebugUpdates.java @@ -30,7 +30,12 @@ public class DebugUpdates extends UpdateService { private static AvailableUpdateData debugUpdateInfo; @Override - public void checkForUpdate(UpdateResultCallback callback) { + public void checkForUpdate(boolean useMetered, UpdateResultCallback callback) { + + if (!useMetered && !Game.platform.connectedToUnmeteredNetwork()){ + callback.onConnectionFailed(); + return; + } //turn on to test update UI if (false){ diff --git a/services/updates/githubUpdates/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/GitHubUpdates.java b/services/updates/githubUpdates/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/GitHubUpdates.java index c601fc01d..64a4d4498 100644 --- a/services/updates/githubUpdates/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/GitHubUpdates.java +++ b/services/updates/githubUpdates/src/main/java/com/shatteredpixel/shatteredpixeldungeon/services/updates/GitHubUpdates.java @@ -27,6 +27,7 @@ import com.badlogic.gdx.Net; import com.watabou.noosa.Game; import com.watabou.utils.Bundle; import com.watabou.utils.DeviceCompat; +import com.watabou.utils.GameSettings; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -39,9 +40,9 @@ public class GitHubUpdates extends UpdateService { private static Pattern versionCodePattern = Pattern.compile("internal version number: ([0-9]*)", Pattern.CASE_INSENSITIVE); @Override - public void checkForUpdate(UpdateResultCallback callback) { + public void checkForUpdate(boolean useMetered, UpdateResultCallback callback) { - if (!Game.platform.connectedToUnmeteredNetwork()){ + if (!useMetered && !Game.platform.connectedToUnmeteredNetwork()){ callback.onConnectionFailed(); return; }