diff options
| author | Andrew Dolgov <fox@madoka.volgo-balt.ru> | 2014-01-16 16:07:30 +0400 |
|---|---|---|
| committer | Andrew Dolgov <fox@madoka.volgo-balt.ru> | 2014-01-16 16:07:30 +0400 |
| commit | 8f38f2f7a3e95ee824f9f7694dec7f6204ca819e (patch) | |
| tree | 9a9098bfcbbcbb1e95e141d05dab3972d376288c /src/org/fox/ttrss/OnlineActivity.java | |
| parent | 025f6aca5f9ec275c99e618ff0ecd619bb9f5b0e (diff) | |
force login when starting in shortcut mode to prevent blank fragments
Diffstat (limited to 'src/org/fox/ttrss/OnlineActivity.java')
| -rw-r--r-- | src/org/fox/ttrss/OnlineActivity.java | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/src/org/fox/ttrss/OnlineActivity.java b/src/org/fox/ttrss/OnlineActivity.java index d82c92cf..1169c9c9 100644 --- a/src/org/fox/ttrss/OnlineActivity.java +++ b/src/org/fox/ttrss/OnlineActivity.java @@ -74,6 +74,11 @@ public class OnlineActivity extends CommonActivity { protected PullToRefreshAttacher m_pullToRefreshAttacher; + protected abstract class OnLoginFinishedListener { + public abstract void OnLoginSuccess(); + public abstract void OnLoginFailed(); + }; + private BroadcastReceiver m_broadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context content, Intent intent) { @@ -406,10 +411,14 @@ public class OnlineActivity extends CommonActivity { } public void login() { - login(false); + login(false, null); } - + public void login(boolean refresh) { + login(refresh, null); + } + + public void login(boolean refresh, OnLoginFinishedListener listener) { if (m_prefs.getString("ttrss_url", "").trim().length() == 0) { setLoadingStatus(R.string.login_need_configure, false); @@ -437,7 +446,7 @@ public class OnlineActivity extends CommonActivity { } else { setLoadingStatus(R.string.login_in_progress, true); - LoginRequest ar = new LoginRequest(getApplicationContext(), refresh); + LoginRequest ar = new LoginRequest(getApplicationContext(), refresh, listener); HashMap<String, String> map = new HashMap<String, String>() { { @@ -1635,12 +1644,14 @@ public class OnlineActivity extends CommonActivity { refresh(true); } - private class LoginRequest extends ApiRequest { + protected class LoginRequest extends ApiRequest { boolean m_refreshAfterLogin = false; + OnLoginFinishedListener m_listener; - public LoginRequest(Context context, boolean refresh) { + public LoginRequest(Context context, boolean refresh, OnLoginFinishedListener listener) { super(context); m_refreshAfterLogin = refresh; + m_listener = listener; } @SuppressWarnings("unchecked") @@ -1662,7 +1673,11 @@ public class OnlineActivity extends CommonActivity { setApiLevel(apiLevel.getAsInt()); Log.d(TAG, "Received API level: " + getApiLevel()); - loginSuccess(m_refreshAfterLogin); + if (m_listener != null) { + m_listener.OnLoginSuccess(); + } else { + loginSuccess(m_refreshAfterLogin); + } } else { @@ -1680,7 +1695,13 @@ public class OnlineActivity extends CommonActivity { // Unknown method means old tt-rss, in that case we assume API 0 and continue setLoadingStatus(getErrorMessage(), false); - loginFailure(); + + if (m_listener != null) { + m_listener.OnLoginFailed(); + } else { + loginFailure(); + } + return; } |