package de.westnordost.streetcomplete.oauth;
import android.content.SharedPreferences;
import java.util.Arrays;
import java.util.List;
import de.westnordost.osmapi.user.Permission;
import de.westnordost.streetcomplete.Prefs;
import oauth.signpost.OAuthConsumer;
import oauth.signpost.OAuthProvider;
import oauth.signpost.basic.DefaultOAuthConsumer;
import oauth.signpost.basic.DefaultOAuthProvider;
public class OAuth
{
public static final String TAG = "OAuth";
private static final String CONSUMER_KEY = "L3JyJMjVk6g5atwACVySRWgmnrkBAH7u0U18ALO7";
private static final String CONSUMER_SECRET = "uNjPaXZw15CPHdCSeMzttRm20tyFGaBPO7jHt52c";
private static final String BASE_OAUTH_URL = "https://www.openstreetmap.org/oauth/";
public static final List<String> REQUIRED_PERMISSIONS = Arrays.asList(
Permission.READ_PREFERENCES_AND_USER_DETAILS,
Permission.MODIFY_MAP,
Permission.WRITE_NOTES);
public static OAuthProvider createProvider()
{
return new DefaultOAuthProvider(
BASE_OAUTH_URL + "request_token",
BASE_OAUTH_URL + "access_token",
BASE_OAUTH_URL + "authorize");
}
public static OAuthConsumer createConsumer()
{
return new DefaultOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
}
public static OAuthConsumer loadConsumer(SharedPreferences prefs)
{
OAuthConsumer result = createConsumer();
String accessToken = prefs.getString(Prefs.OAUTH_ACCESS_TOKEN, null);
String accessTokenSecret = prefs.getString(Prefs.OAUTH_ACCESS_TOKEN_SECRET, null);
result.setTokenWithSecret(accessToken, accessTokenSecret);
return result;
}
public static void saveConsumer(SharedPreferences prefs, OAuthConsumer consumer)
{
SharedPreferences.Editor editor = prefs.edit();
editor.putString(Prefs.OAUTH_ACCESS_TOKEN, consumer.getToken());
editor.putString(Prefs.OAUTH_ACCESS_TOKEN_SECRET, consumer.getTokenSecret());
editor.apply();
}
public static void deleteConsumer(SharedPreferences prefs)
{
SharedPreferences.Editor editor = prefs.edit();
editor.remove(Prefs.OAUTH_ACCESS_TOKEN);
editor.remove(Prefs.OAUTH_ACCESS_TOKEN_SECRET);
editor.apply();
}
public static boolean isAuthorized(SharedPreferences prefs)
{
return prefs.getString(Prefs.OAUTH_ACCESS_TOKEN_SECRET, null) != null;
}
}