Brion VIBBER has submitted this change and it was merged.

Change subject: Make log out log out user only from this device
......................................................................


Make log out log out user only from this device

API calls to action=logout logs you out from *all* your sessions,
including ones on Desktop. This is rather painful. Now it just
clears the local cookies and tokens, and hence logs the user out
only on this particular device.

Bug: 64177

Change-Id: I7ac07e4d7aaac1e5a10d44667e0c6064c08e0847
---
M wikipedia/res/values-qq/strings.xml
M wikipedia/res/values/strings.xml
M wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java
D wikipedia/src/main/java/org/wikipedia/login/LogoutTask.java
4 files changed, 8 insertions(+), 59 deletions(-)

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



diff --git a/wikipedia/res/values-qq/strings.xml 
b/wikipedia/res/values-qq/strings.xml
index 0049f35..3dc50b1 100644
--- a/wikipedia/res/values-qq/strings.xml
+++ b/wikipedia/res/values-qq/strings.xml
@@ -81,4 +81,5 @@
 {{Identical|Save anonymously}}</string>
   <string name="edit_save_action_login_description">Description for action 
that lets the user save the current edit anonymously</string>
   <string name="edit_save_action_ip_description">Description for action that 
takes user to login screen so they can login before saving an edit</string>
+  <string name="toast_logout_complete">Toast popup message notifying the user 
that they have been logged out</string>
 </resources>
diff --git a/wikipedia/res/values/strings.xml b/wikipedia/res/values/strings.xml
index eb069a5..5683411 100644
--- a/wikipedia/res/values/strings.xml
+++ b/wikipedia/res/values/strings.xml
@@ -73,7 +73,7 @@
     <string name="login_error_unknown">Login failed :(</string>
     <string name="login_error_no_network">No network connection</string>
     <string name="nav_item_logout">Log out</string>
-    <string name="logging_out_progress">Logging out...</string>
+    <string name="toast_logout_complete">Logged out</string>
     <string name="saved_pages_empty_message">No saved pages.</string>
     <string name="history_empty_message">Your history is empty.</string>
     <string name="create_account_username_hint">Username</string>
@@ -118,7 +118,6 @@
     <string name="nav_item_random">Random</string>
     <string name="random_progress">Fetching random page...</string>
     <string name="nav_item_login_benefits">If you Log in, your edits will be 
associated with your username and your IP address will not be publicly 
visible.</string>
-    <string name="nav_item_tap_to_logout">Tap to log out</string>
     <string name="create_account_account_created_toast">Account 
created!</string>
     <string name="user_contribs_more_action">Load more</string>
     <string name="activity_my_contributions_title">My Contributions</string>
diff --git a/wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java 
b/wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java
index fda980a..94875ab 100644
--- a/wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java
+++ b/wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java
@@ -1,10 +1,9 @@
 package org.wikipedia;
 
-import android.app.*;
 import android.content.*;
 import android.net.*;
 import android.os.*;
-import android.support.v4.app.Fragment;
+import android.support.v4.app.*;
 import android.view.*;
 import android.widget.*;
 import org.wikipedia.analytics.*;
@@ -108,22 +107,11 @@
     }
 
     private void doLogout() {
-        final ProgressDialog progressDialog = new 
ProgressDialog(getActivity());
-        progressDialog.setMessage(getString(R.string.logging_out_progress));
-        progressDialog.setIndeterminate(true);
-
-        new LogoutTask(app, app.getPrimarySite()) {
-            @Override
-            public void onBeforeExecute() {
-                progressDialog.show();
-            }
-
-            @Override
-            public void onFinish(Boolean result) {
-                progressDialog.dismiss();
-                setupDynamicItems();
-            }
-        }.execute();
+        app.getEditTokenStorage().clearAllTokens();
+        app.getCookieManager().clearAllCookies();
+        app.getUserInfoStorage().clearUser();
+        Toast.makeText(getActivity(), R.string.toast_logout_complete, 
Toast.LENGTH_LONG).show();
+        setupDynamicItems();
     }
 
     @Override
diff --git a/wikipedia/src/main/java/org/wikipedia/login/LogoutTask.java 
b/wikipedia/src/main/java/org/wikipedia/login/LogoutTask.java
deleted file mode 100644
index 0b5ed90..0000000
--- a/wikipedia/src/main/java/org/wikipedia/login/LogoutTask.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.wikipedia.login;
-
-import android.content.*;
-import org.mediawiki.api.json.*;
-import org.wikipedia.*;
-
-public class LogoutTask extends ApiTask<Boolean> {
-    private final WikipediaApp app;
-
-    public LogoutTask(Context context, Site site) {
-        super(
-                SINGLE_THREAD,
-                
((WikipediaApp)context.getApplicationContext()).getAPIForSite(site)
-        );
-        app = (WikipediaApp)context.getApplicationContext();
-
-    }
-
-    @Override
-    public RequestBuilder buildRequest(Api api) {
-        return api.action("logout");
-    }
-
-    @Override
-    protected ApiResult makeRequest(RequestBuilder builder) {
-        return builder.post();
-    }
-
-    @Override
-    public Boolean processResult(ApiResult result) throws Throwable {
-        // Doesn't actually trigger the request until I call this
-        // Stupid API design on Yuvi's part
-        result.asArray();
-        app.getEditTokenStorage().clearAllTokens();
-        app.getCookieManager().clearAllCookies();
-        app.getUserInfoStorage().clearUser();
-        return true;
-    }
-}

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I7ac07e4d7aaac1e5a10d44667e0c6064c08e0847
Gerrit-PatchSet: 2
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <yuvipa...@gmail.com>
Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org>
Gerrit-Reviewer: Siebrand <siebr...@kitano.nl>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to