From a227f8e48b7f14b08f1fcdbeed827ea4c68a91d5 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Fri, 30 Oct 2015 17:24:28 -0700 Subject: Fix issue of current user not being refreshed when server details changed --- .../github/daneren2005/dsub/activity/SubsonicFragmentActivity.java | 2 +- app/src/main/java/github/daneren2005/dsub/util/UserUtil.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'app/src/main/java/github') diff --git a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java index 72b63e69..632b4c55 100644 --- a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java +++ b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java @@ -138,7 +138,6 @@ public class SubsonicFragmentActivity extends SubsonicActivity implements Downlo } setContentView(R.layout.abstract_fragment_activity); - UserUtil.seedCurrentUser(this); if (findViewById(R.id.fragment_container) != null && savedInstanceState == null) { String fragmentType = getIntent().getStringExtra(Constants.INTENT_EXTRA_FRAGMENT_TYPE); if(fragmentType == null) { @@ -380,6 +379,7 @@ public class SubsonicFragmentActivity extends SubsonicActivity implements Downlo getIntent().removeExtra(Constants.INTENT_EXTRA_VIEW_ALBUM); } + UserUtil.seedCurrentUser(this); createAccount(); runWhenServiceAvailable(new Runnable() { @Override diff --git a/app/src/main/java/github/daneren2005/dsub/util/UserUtil.java b/app/src/main/java/github/daneren2005/dsub/util/UserUtil.java index b9a3a3cf..6417dc81 100644 --- a/app/src/main/java/github/daneren2005/dsub/util/UserUtil.java +++ b/app/src/main/java/github/daneren2005/dsub/util/UserUtil.java @@ -50,10 +50,10 @@ public final class UserUtil { private static final long MIN_VERIFY_DURATION = 1000L * 60L * 60L; private static int instance = -1; + private static int instanceHash = -1; private static User currentUser; private static long lastVerifiedTime = 0; - public static void refreshCurrentUser(Context context, boolean forceRefresh) { refreshCurrentUser(context, forceRefresh, false); } @@ -76,10 +76,12 @@ public final class UserUtil { } final int instance = Util.getActiveServer(context); - if(UserUtil.instance == instance && currentUser != null) { + final int instanceHash = (instance == 0) ? 0 : Util.getRestUrl(context, null).hashCode(); + if(UserUtil.instance == instance && UserUtil.instanceHash == instanceHash && currentUser != null) { return; } else { UserUtil.instance = instance; + UserUtil.instanceHash = instanceHash; } new SilentBackgroundTask(context) { -- cgit v1.2.3