package com.aptoide.amethyst.webservices; import android.content.Context; import android.os.Build; import android.provider.Settings; import com.aptoide.amethyst.LoginActivity; import com.aptoide.amethyst.model.json.CheckUserCredentialsJson; import com.aptoide.amethyst.utils.AptoideUtils; import com.aptoide.amethyst.utils.Filters; import com.aptoide.dataprovider.webservices.models.WebserviceOptions; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.octo.android.robospice.request.retrofit.RetrofitSpiceRequest; import java.util.HashMap; import java.util.Locale; import retrofit.converter.Converter; import retrofit.converter.JacksonConverter; import retrofit.http.FieldMap; import retrofit.http.FormUrlEncoded; import retrofit.http.POST; /** * Created by brutus on 09-12-2013. */ public class CheckUserCredentialsRequest extends RetrofitSpiceRequest<CheckUserCredentialsJson, CheckUserCredentialsRequest.Webservice> { String baseUrl = WebserviceOptions.WebServicesLink+"3/getUserInfo"; public interface Webservice{ @FormUrlEncoded @POST("/webservices.aptoide.com/webservices/3/getUserInfo") CheckUserCredentialsJson getUserInfo(@FieldMap HashMap<String, String> args); } //"http://www.aptoide.com/webservices/checkUserCredentials/"; private String user; private String password; private String repo; private String avatar; private boolean registerDevice; private String deviceId; private String model; private String sdk; private String density; private String cpu; private String screenSize; private String openGl; private String nameForGoogle; private LoginActivity.Mode mode; private String token; public CheckUserCredentialsRequest() { super(CheckUserCredentialsJson.class, CheckUserCredentialsRequest.Webservice.class); } protected Converter createConverter() { ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); return new JacksonConverter(objectMapper); } @Override public CheckUserCredentialsJson loadDataFromNetwork() throws Exception { // GenericUrl url = new GenericUrl(baseUrl); HashMap<String, String > parameters = new HashMap<String, String>(); //token = SecurePreferences.getInstance().getString("access_token", null); parameters.put("access_token", token); if(registerDevice) { parameters.put("device_id", deviceId); parameters.put("model", model); parameters.put("maxSdk", sdk); parameters.put("myDensity", density); parameters.put("myCpu", cpu); parameters.put("maxScreen", screenSize); parameters.put("maxGles", openGl); } parameters.put("mode", "json"); //RestAdapter adapter = new RestAdapter.Builder().setEndpoint("http://").setConverter(createConverter()).build(); //setService(adapter.create(getRetrofitedInterfaceClass())); return getService().getUserInfo(parameters); // HttpContent content = new UrlEncodedContent(parameters); // // HttpRequest request = getHttpRequestFactory().buildPostRequest(url, content); // // request.setParser(new JacksonFactory().createJsonObjectParser()); // // return request.execute().parseAs( getResultType() ); } public String getUser() { return user; } public CheckUserCredentialsRequest setUser(String user) { this.user = user; return this; } public String getPassword() { return password; } public CheckUserCredentialsRequest setPassword(String password) { this.password = password; return this; } public String getRepo() { return repo; } public void setRepo(String repo) { this.repo = repo; } public void setRegisterDevice(boolean registerDevice) { this.registerDevice = registerDevice; } public CheckUserCredentialsRequest setDeviceId(String deviceId) { this.deviceId = deviceId; return this; } public CheckUserCredentialsRequest setModel(String model) { this.model = model; return this; } public CheckUserCredentialsRequest setSdk(String sdk) { this.sdk = sdk; return this; } public CheckUserCredentialsRequest setDensity(String density) { this.density = density; return this; } public CheckUserCredentialsRequest setCpu(String cpu) { this.cpu = cpu; return this; } public CheckUserCredentialsRequest setScreenSize(String screenSize) { this.screenSize = screenSize; return this; } public CheckUserCredentialsRequest setOpenGl(String openGl) { this.openGl = openGl; return this; } public void setNameForGoogle(String nameForGoogle) { this.nameForGoogle = nameForGoogle; } public String getNameForGoogle() { return nameForGoogle; } public void setMode(LoginActivity.Mode mode) { this.mode = mode; } public LoginActivity.Mode getMode() { return mode; } public void setAvatar(String avatar) { this.avatar = avatar; } public void setToken(String token) { this.token = token; } public static CheckUserCredentialsRequest buildDefaultRequest(Context c, String token){ CheckUserCredentialsRequest request = new CheckUserCredentialsRequest(); String deviceId = Settings.Secure.getString(c.getContentResolver(), Settings.Secure.ANDROID_ID); request.setSdk(String.valueOf(AptoideUtils.HWSpecifications.getSdkVer())); request.setDeviceId(deviceId); request.setCpu(AptoideUtils.HWSpecifications.getAbis()); request.setDensity(String.valueOf(AptoideUtils.HWSpecifications.getNumericScreenSize(c))); request.setOpenGl(String.valueOf(AptoideUtils.HWSpecifications.getGlEsVer(c))); request.setModel(Build.MODEL); request.setScreenSize(Filters.Screen.values()[AptoideUtils.HWSpecifications.getScreenSize(c)].name().toLowerCase(Locale.ENGLISH)); request.setToken(token); return request; } }