package com.battlelancer.seriesguide.settings;
import android.content.Context;
import android.content.SharedPreferences;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.format.DateUtils;
public class TraktOAuthSettings {
private static final String KEY_REFRESH_TOKEN = "trakt.refresh_token";
private static final String KEY_ACCESS_TOKEN_EXPIRY_DATE = "trakt.access_token_expiry";
private static final String SETTINGS_FILE = "trakt-oauth-settings";
/**
* Returns the refresh token or {@code null} if there is none.
*/
@Nullable
public static String getRefreshToken(Context context) {
return getSettings(context).getString(KEY_REFRESH_TOKEN, null);
}
/**
* @param refreshToken The trakt refresh token.
* @param expiresIn The trakt access token expires duration in seconds.
* @return Returns true if the new values were successfully written to persistent storage.
*/
public static boolean storeRefreshData(Context context, @NonNull String refreshToken,
long expiresIn) {
return getSettings(context).edit()
.putString(KEY_REFRESH_TOKEN, refreshToken)
.putLong(KEY_ACCESS_TOKEN_EXPIRY_DATE,
System.currentTimeMillis() + expiresIn * DateUtils.SECOND_IN_MILLIS)
.commit();
}
private static SharedPreferences getSettings(Context context) {
return context.getSharedPreferences(SETTINGS_FILE, Context.MODE_PRIVATE);
}
}