From 05f4e9ee08f93b17c3dbaf2b6a1022cc28a226ce Mon Sep 17 00:00:00 2001
From: HybridDog <adresse_test@t-online.de>
Date: Sat, 30 May 2015 16:18:09 +0200
Subject: [PATCH] More reliable serverlist behaviour

-> remember the previously loaded serverlist, and use if new one failed
-> show a "loading" serverlist
---
 builtin/mainmenu/common.lua | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/builtin/mainmenu/common.lua b/builtin/mainmenu/common.lua
index d6e2588fa..6126c61a4 100644
--- a/builtin/mainmenu/common.lua
+++ b/builtin/mainmenu/common.lua
@@ -234,7 +234,13 @@ end
 --------------------------------------------------------------------------------
 function asyncOnlineFavourites()
 
-	menudata.favorites = {}
+	if not menudata.public_known then
+		menudata.public_known = {{
+			name = fgettext("Loading..."),
+			description = fgettext("Try reenabling public serverlist and check your internet connection.")
+		}}
+	end
+	menudata.favorites = menudata.public_known
 	core.handle_async(
 		function(param)
 			return core.get_favorites("online")
@@ -242,11 +248,15 @@ function asyncOnlineFavourites()
 		nil,
 		function(result)
 			if core.setting_getbool("public_serverlist") then
-				menudata.favorites = order_favorite_list(result)
+				local favs = order_favorite_list(result)
+				if favs[1] then
+					menudata.public_known = favs
+					menudata.favorites = menudata.public_known
+				end
 				core.event_handler("Refresh")
 			end
 		end
-		)
+	)
 end
 
 --------------------------------------------------------------------------------
-- 
GitLab