summaryrefslogtreecommitdiff
path: root/src/org/fox/ttrss/OnlineActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/fox/ttrss/OnlineActivity.java')
-rw-r--r--src/org/fox/ttrss/OnlineActivity.java35
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;
}