TRACKING APP: wip changing network code

This commit is contained in:
Lukas Zielinski committed 2014-12-19 16:16:08 +01:00
1 parent 80ec60fe1a
commit e5dd7a258f
2 files changed
+20 -91

No files matched your search

@@ -35,10 +35,8 @@ import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.VolleyError;
import com.sap.sailing.android.shared.data.http.HttpGetRequest;
import com.sap.sailing.android.shared.data.http.HttpJsonPostRequest;
import com.sap.sailing.android.shared.logging.ExLog;
import com.sap.sailing.android.tracking.app.BuildConfig;
import com.sap.sailing.android.tracking.app.R;
@@ -51,13 +49,11 @@ import com.sap.sailing.android.tracking.app.utils.AppPreferences;
import com.sap.sailing.android.tracking.app.utils.CheckinHelper;
import com.sap.sailing.android.tracking.app.utils.DatabaseHelper;
import com.sap.sailing.android.tracking.app.utils.DatabaseHelper.GeneralDatabaseHelperException;
import com.sap.sailing.android.tracking.app.utils.JsonObjectOrStatusOnlyRequest;
import com.sap.sailing.android.tracking.app.utils.NetworkHelper;
import com.sap.sailing.android.tracking.app.utils.NetworkHelper.NetworkHelperError;
import com.sap.sailing.android.tracking.app.utils.NetworkHelper.NetworkHelperFailureListener;
import com.sap.sailing.android.tracking.app.utils.NetworkHelper.NetworkHelperSuccessListener;
import com.sap.sailing.android.tracking.app.utils.UniqueDeviceUuid;
import com.sap.sailing.android.tracking.app.utils.VolleyHelper;
import com.sap.sailing.android.tracking.app.valueobjects.CheckinData;
import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier;
import com.sap.sailing.domain.racelog.tracking.impl.SmartphoneUUIDIdentifierImpl;
@@ -415,12 +411,6 @@ public class HomeFragment extends BaseFragment implements
}
@Override
public void onDetach() {
super.onDetach();
VolleyHelper.getInstance(getActivity()).cancelRequest(REQUEST_TAG);
}
/**
* Display a confirmation-dialog in which the user confirms his full name
* and sail-id.
@@ -505,21 +495,25 @@ public class HomeFragment extends BaseFragment implements
startActivity.showProgressDialog(R.string.please_wait, R.string.checking_in);
try {
JSONObject requestObject = CheckinHelper.getCheckinJson(
checkinData.competitorId, checkinData.deviceUid, "TODO!!",
date.getTime());
JSONObject requestObject = CheckinHelper.getCheckinJson(checkinData.competitorId,
checkinData.deviceUid, "TODO!!", date.getTime());
JsonObjectOrStatusOnlyRequest checkinRequest = new JsonObjectOrStatusOnlyRequest(checkinData.checkinURL,
requestObject, new CheckinListener(checkinData.leaderboardName,
checkinData.eventId, checkinData.competitorId),
HttpJsonPostRequest request = new HttpJsonPostRequest(new URL(checkinData.checkinURL),
requestObject.toString(), getActivity());
NetworkHelper.getInstance(getActivity()).executeHttpJsonRequestAsnchronously(
request,
new CheckinListener(checkinData.leaderboardName, checkinData.eventId,
checkinData.competitorId),
new CheckinErrorListener(checkinData.leaderboardName, checkinData.eventId,
checkinData.competitorId));
VolleyHelper.getInstance(getActivity()).addRequest(checkinRequest);
} catch (JSONException e) {
ExLog.e(getActivity(), TAG, "Failed to generate checkin JSON: " + e.getMessage());
displayAPIErrorRecommendRetry();
} catch (MalformedURLException e) {
ExLog.e(getActivity(), TAG,
"Failed to generate checkin JSON: " + e.getMessage());
"Failed to perform checkin, MalformedURLException: " + e.getMessage());
displayAPIErrorRecommendRetry();
}
}
@@ -670,7 +664,7 @@ public class HomeFragment extends BaseFragment implements
}
}
private class CheckinListener implements Listener<JSONObject> {
private class CheckinListener implements NetworkHelperSuccessListener {
public String leaderboardName;
public String eventId;
@@ -683,7 +677,7 @@ public class HomeFragment extends BaseFragment implements
}
@Override
public void onResponse(JSONObject response) {
public void performAction(JSONObject response) {
StartActivity startActivity = (StartActivity)getActivity();
startActivity.dismissProgressDialog();
@@ -691,7 +685,7 @@ public class HomeFragment extends BaseFragment implements
}
}
private class CheckinErrorListener implements ErrorListener {
private class CheckinErrorListener implements NetworkHelperFailureListener {
public String leaderboardName;
public String eventId;
@@ -704,10 +698,10 @@ public class HomeFragment extends BaseFragment implements
}
@Override
public void onErrorResponse(VolleyError error) {
if (error.getMessage() != null)
public void performAction(NetworkHelperError e) {
if (e.getMessage() != null)
{
ExLog.e(getActivity(), TAG, error.getMessage().toString());
ExLog.e(getActivity(), TAG, e.getMessage().toString());
}
else
{
@@ -1,65 +0,0 @@
package com.sap.sailing.android.tracking.app.utils;
import org.json.JSONObject;
import android.app.Application;
import android.content.Context;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
public class VolleyHelper extends Application {
private static final String TAG = VolleyHelper.class.getName();
private RequestQueue mRequestQueue;
private Context mContext;
protected static VolleyHelper mInstance;
protected VolleyHelper(Context context){
super();
mContext = context;
}
public static synchronized VolleyHelper getInstance(Context context) {
if (mInstance == null) {
mInstance = new VolleyHelper(context);
}
return mInstance;
}
public RequestQueue getRequestQueue() {
if (mRequestQueue == null) {
mRequestQueue = Volley.newRequestQueue(mContext);
}
return mRequestQueue;
}
public <T> void enqueueRequest(String urlStr, JSONObject requestJsonObject,
Listener<JSONObject> listener, ErrorListener errorListener) {
addRequest(new JsonObjectOrStatusOnlyRequest(urlStr, requestJsonObject, listener,
errorListener));
}
public <T> void addRequest(Request<T> request) {
addRequest(request, TAG);
}
public <T> void addRequest(Request<T> request, Object tag) {
request.setTag((tag == null) ? TAG : tag);
getRequestQueue().add(request);
}
public void cancelRequest(Object tag) {
if (mRequestQueue != null) {
mRequestQueue.cancelAll((tag == null) ? TAG : tag);
}
}
}