From 52ad6edcb217762154a80990c34ca94772393848 Mon Sep 17 00:00:00 2001 From: Kazuki Yamaguchi Date: Thu, 5 Oct 2017 09:43:26 +0900 Subject: remember last used world --- app/src/main/java/net/lacolaco/smileessence/Application.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/net/lacolaco/smileessence/Application.java b/app/src/main/java/net/lacolaco/smileessence/Application.java index 72af2630..adefcae1 100644 --- a/app/src/main/java/net/lacolaco/smileessence/Application.java +++ b/app/src/main/java/net/lacolaco/smileessence/Application.java @@ -45,6 +45,7 @@ import java.util.Map; */ public class Application extends android.app.Application { private static Application instance; + private static WeakReference lastWorld; private static Map> worlds = new HashMap<>(); // XXX @Deprecated @@ -84,8 +85,10 @@ public class Application extends android.app.Application { Logger.debug("onCreate"); } - @Deprecated public static World getCurrentWorld() { + World w0 = lastWorld != null ? lastWorld.get() : null; + if (w0 != null) + return w0; for (WeakReference ww : worlds.values()) { World w = ww.get(); if (w != null) @@ -98,11 +101,13 @@ public class Application extends android.app.Application { WeakReference ww = worlds.get(id); if (ww != null) { World w = ww.get(); - if (w != null) + if (w != null) { + lastWorld = ww; return w; + } } World w = new World(Account.get(id)); - worlds.put(id, new WeakReference<>(w)); + worlds.put(id, lastWorld = new WeakReference<>(w)); return w; } } -- cgit v1.2.3