Brion VIBBER has submitted this change and it was merged.

Change subject: Re-login if session cookies have expired
......................................................................


Re-login if session cookies have expired

Change-Id: I45649e5a0af172d4aa9f7187044d92b3f706a9cb
---
M wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java
1 file changed, 20 insertions(+), 0 deletions(-)

Approvals:
  Brion VIBBER: Verified; Looks good to me, approved



diff --git 
a/wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java 
b/wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java
index aaa42c3..a1779fb 100644
--- a/wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java
+++ b/wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java
@@ -23,6 +23,9 @@
 import org.mediawiki.api.json.Api;
 import org.mediawiki.api.json.RequestBuilder;
 import org.wikipedia.*;
+import org.wikipedia.login.LoginTask;
+import org.wikipedia.login.LogoutTask;
+import org.wikipedia.login.User;
 import org.wikipedia.page.Section;
 
 public class EditSectionActivity extends ActionBarActivity {
@@ -172,6 +175,23 @@
 
                     @Override
                     public void onCatch(Throwable caught) {
+                        if (caught instanceof EditingException) {
+                            EditingException ee = (EditingException) caught;
+                            if (app.getUserInfoStorage().isLoggedIn() && 
ee.getCode() == "badtoken") {
+                                // looks like our session expired.
+                                app.getEditTokenStorage().clearAllTokens();
+                                app.getCookieManager().clearAllCookies();
+
+                                User user = app.getUserInfoStorage().getUser();
+                                new LoginTask(app, app.getPrimarySite(), 
user.getUsername(), user.getPassword()) {
+                                    @Override
+                                    public void onFinish(String result) {
+                                        doSave();
+                                    }
+                                }.execute();
+                                return;
+                            }
+                        }
                         if (!(caught instanceof 
HttpRequest.HttpRequestException)) {
                             throw new RuntimeException(caught);
                         }

-- 
To view, visit https://gerrit.wikimedia.org/r/113368
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I45649e5a0af172d4aa9f7187044d92b3f706a9cb
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <yuvipa...@gmail.com>
Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to