package com.buddy.sdk; import android.content.Intent; import android.location.Location; import com.buddy.sdk.models.NotificationResult; import com.buddy.sdk.models.TimedMetric; import com.buddy.sdk.models.User; import java.util.Date; import java.util.List; import java.util.Map; import java.util.concurrent.Future; public interface BuddyClient{ public void setUserAuthenticationRequiredCallback(UserAuthenticationRequiredCallback callback); public void setConnectivityLevelChangedCallback(ConnectivityLevelChangedCallback callback); public void setLastLocation(Location loc); public Location getLastLocation(); public String getServiceRoot(); public <T> Future<BuddyResult<T>> get(String path, Map<String,Object> parameters, Class<T> clazz); public <T> Future<BuddyResult<T>> get(String path, Map<String,Object> parameters, final BuddyCallback<T> callback); public <T> Future<BuddyResult<T>> post(String path, Map<String,Object> parameters, Class<T> clazz); public <T> Future<BuddyResult<T>> post(String path, Map<String,Object> parameters, final BuddyCallback<T> callback); public <T> Future<BuddyResult<T>> patch(String path, Map<String,Object> parameters, Class<T> clazz); public <T> Future<BuddyResult<T>> patch(String path, Map<String,Object> parameters, final BuddyCallback<T> callback); public <T> Future<BuddyResult<T>> delete(String path, Map<String,Object> parameters, Class<T> clazz); public <T> Future<BuddyResult<T>> delete(String path, Map<String,Object> parameters, final BuddyCallback<T> callback); public <T> Future<BuddyResult<T>> put(String path, Map<String,Object> parameters, Class<T> clazz); public <T> Future<BuddyResult<T>> put(String path, Map<String,Object> parameters, final BuddyCallback<T> callback); public Future<BuddyResult<User>> getCurrentUser(final BuddyCallback<User> callback); public Future<BuddyResult<User>> createUser(String username, String password, String firstName, String lastName, String email, Date dateOfBirth, String gender, String tag, final BuddyCallback<User> callback); public Future<BuddyResult<User>> loginUser(String username, String password, final BuddyCallback<User> callback); public Future<BuddyResult<User>> socialLogin(String identityProviderName, String identityId, String identityAccessToken, final BuddyCallback<User> callback); public Future<BuddyResult<Boolean>> logoutUser(final BuddyCallback<Boolean> callback); public Future<BuddyResult<TimedMetric>> recordMetricEvent(String eventName, Map<String,Object> values, final int timeoutInSeconds, final BuddyCallback<TimedMetric> callback); public Future<BuddyResult<Boolean>> setPushToken(String pushToken, final BuddyCallback<Boolean> callback); public Future<BuddyResult<NotificationResult>> sendPushNotification(List<String> recipientIds, String title, String message, String payload); public Future<BuddyResult<NotificationResult>> sendPushNotification(List<String> recipientIds, String title, String message, String payload, int counterValue); public Future<BuddyResult<NotificationResult>> sendPushNotification(List<String> recipientIds, Map<String,Object> osCustomData); public void recordNotificationReceived(Intent message); public void handleError(BuddyResult result); public void getAccessToken(boolean autoRegister, final AccessTokenCallback callback); }