logout added
This commit is contained in:
parent
689ebf5b75
commit
33f933e89d
4 changed files with 61 additions and 26 deletions
|
@ -20,7 +20,7 @@ public class OsmOAuthAuthorizationClient {
|
|||
OAuth1RequestToken requestToken;
|
||||
OAuth1AccessToken accessToken;
|
||||
|
||||
public OsmOAuthAuthorizationClient(String key, String secret){
|
||||
public OsmOAuthAuthorizationClient(String key, String secret) {
|
||||
service = new ServiceBuilder(key)
|
||||
.apiSecret(secret)
|
||||
.callback("osmand-oauth://example.com/oauth")
|
||||
|
@ -53,9 +53,13 @@ public class OsmOAuthAuthorizationClient {
|
|||
return service;
|
||||
}
|
||||
|
||||
public void setAccessToken(OAuth1AccessToken accessToken) { this.accessToken = accessToken; }
|
||||
|
||||
public OAuth1AccessToken getAccessToken() { return this.accessToken; }
|
||||
public void setAccessToken(OAuth1AccessToken accessToken) {
|
||||
this.accessToken = accessToken;
|
||||
}
|
||||
|
||||
public OAuth1AccessToken getAccessToken() {
|
||||
return this.accessToken;
|
||||
}
|
||||
|
||||
public Response performRequestWithoutAuth(String url, String requestMethod, String requestBody)
|
||||
throws InterruptedException, ExecutionException, IOException {
|
||||
|
@ -88,20 +92,6 @@ public class OsmOAuthAuthorizationClient {
|
|||
return service.execute(req);
|
||||
}
|
||||
|
||||
private Verb parseRequestMethod(String method) {
|
||||
Verb m = Verb.GET;
|
||||
if (method.equals("POST")) {
|
||||
m = Verb.POST;
|
||||
}
|
||||
if (method.equals("PUT")) {
|
||||
m = Verb.PUT;
|
||||
}
|
||||
if (method.equals("DELETE")) {
|
||||
m = Verb.DELETE;
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
public OAuth1RequestToken startOAuth() {
|
||||
try {
|
||||
requestToken = service.getRequestToken();
|
||||
|
@ -131,4 +121,18 @@ public class OsmOAuthAuthorizationClient {
|
|||
public boolean isValidToken() {
|
||||
return !(accessToken == null);
|
||||
}
|
||||
|
||||
private Verb parseRequestMethod(String method) {
|
||||
Verb m = Verb.GET;
|
||||
if (method.equals("POST")) {
|
||||
m = Verb.POST;
|
||||
}
|
||||
if (method.equals("PUT")) {
|
||||
m = Verb.PUT;
|
||||
}
|
||||
if (method.equals("DELETE")) {
|
||||
m = Verb.DELETE;
|
||||
}
|
||||
return m;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,12 @@
|
|||
Thx - Hardy
|
||||
|
||||
-->
|
||||
<string name="osm_edit_logout_success">Logout successful</string>
|
||||
<string name="clear_osm_token">Clear OpenStreetMap OAuth token</string>
|
||||
<string name="test_user_request_description">Test user request</string>
|
||||
<string name="test_user_request">Retrieve current user info</string>
|
||||
<string name="perform_oauth_authorization">Log in via OAuth</string>
|
||||
<string name="perform_oauth_authorization_description">Perform an OAuth Login to use osmedit features</string>
|
||||
<string name="sort_name_ascending">Name: A – Z</string>
|
||||
<string name="sort_name_descending">Name: Z – A</string>
|
||||
<string name="sort_last_modified">Last modified</string>
|
||||
|
|
|
@ -81,8 +81,8 @@ public class SettingsOsmEditingActivity extends SettingsBaseActivity {
|
|||
prefOAuth.setKey("local_openstreetmap_token");
|
||||
|
||||
final Preference prefTestUser = new Preference(this);
|
||||
prefTestUser.setTitle("Test user request");
|
||||
prefTestUser.setSummary("Test user request");
|
||||
prefTestUser.setTitle(R.string.test_user_request);
|
||||
prefTestUser.setSummary(R.string.test_user_request_description);
|
||||
prefTestUser.setKey("local_openstreetmap_token");
|
||||
prefTestUser.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||
@Override
|
||||
|
@ -92,8 +92,7 @@ public class SettingsOsmEditingActivity extends SettingsBaseActivity {
|
|||
@Override
|
||||
public void onCompleted(Response response) {
|
||||
try {
|
||||
Toast.makeText(SettingsOsmEditingActivity.this,
|
||||
"DATA RETRIEVED: " + response.getBody().toString(),Toast.LENGTH_SHORT).show();
|
||||
Toast.makeText(SettingsOsmEditingActivity.this,response.getBody(),Toast.LENGTH_SHORT).show();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
@ -108,11 +107,27 @@ public class SettingsOsmEditingActivity extends SettingsBaseActivity {
|
|||
return true;
|
||||
}
|
||||
});
|
||||
grp.addPreference(prefTestUser);
|
||||
final Preference prefClearToken = new Preference(this);
|
||||
prefClearToken.setTitle(R.string.shared_string_logoff);
|
||||
prefClearToken.setSummary(R.string.clear_osm_token);
|
||||
prefClearToken.setKey("local_openstreetmap_token");
|
||||
prefClearToken.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
settings.USER_ACCESS_TOKEN.set("");
|
||||
settings.USER_ACCESS_TOKEN_SECRET.set("");
|
||||
client.resetToken();
|
||||
Toast.makeText(SettingsOsmEditingActivity.this, R.string.osm_edit_logout_success, Toast.LENGTH_SHORT).show();
|
||||
finish();
|
||||
startActivity(getIntent());
|
||||
return true;
|
||||
}
|
||||
});
|
||||
grp.addPreference(prefClearToken);
|
||||
}
|
||||
else {
|
||||
prefOAuth.setTitle(R.string.osb_author_dialog_password);
|
||||
prefOAuth.setSummary(R.string.osb_author_dialog_password);
|
||||
prefOAuth.setTitle(R.string.perform_oauth_authorization);
|
||||
prefOAuth.setSummary(R.string.perform_oauth_authorization_description);
|
||||
prefOAuth.setKey("local_openstreetmap_token");
|
||||
prefOAuth.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||
@Override
|
||||
|
@ -193,6 +208,8 @@ public class SettingsOsmEditingActivity extends SettingsBaseActivity {
|
|||
if (uri != null && uri.toString().startsWith("osmand-oauth")) {
|
||||
String oauthVerifier = uri.getQueryParameter("oauth_verifier");
|
||||
client.authorize(oauthVerifier);
|
||||
finish();
|
||||
startActivity(getIntent());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -34,10 +34,18 @@ public class OsmOAuthAuthorizationAdapter {
|
|||
return client.isValidToken();
|
||||
}
|
||||
|
||||
public void resetToken() {
|
||||
client.setAccessToken(null);
|
||||
}
|
||||
|
||||
public void restoreToken() {
|
||||
String token = application.getSettings().USER_ACCESS_TOKEN.get();
|
||||
String tokenSecret = application.getSettings().USER_ACCESS_TOKEN_SECRET.get();
|
||||
client.setAccessToken(new OAuth1AccessToken(token, tokenSecret));
|
||||
if (!(token.isEmpty() || tokenSecret.isEmpty())) {
|
||||
client.setAccessToken(new OAuth1AccessToken(token, tokenSecret));
|
||||
} else {
|
||||
client.setAccessToken(null);
|
||||
}
|
||||
}
|
||||
|
||||
public void startOAuth(ViewGroup rootLayout) {
|
||||
|
|
Loading…
Reference in a new issue