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