mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-14 22:43:57 +00:00
Extract checkout logic to checkout helper
This commit is contained in:
1 parent
5674a1538f
commit
a39152b1cd
2 files changed
+69
-45
No files matched your search
+18
-45
@@ -20,7 +20,6 @@ import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
@@ -40,7 +39,6 @@ import com.sap.sailing.android.shared.data.BaseCheckinData;
|
||||
import com.sap.sailing.android.shared.data.CheckinUrlInfo;
|
||||
import com.sap.sailing.android.shared.data.LeaderboardInfo;
|
||||
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.shared.ui.activities.AbstractRegattaActivity;
|
||||
import com.sap.sailing.android.shared.util.BitmapHelper;
|
||||
@@ -48,7 +46,6 @@ import com.sap.sailing.android.shared.util.NetworkHelper;
|
||||
import com.sap.sailing.android.shared.util.NetworkHelper.NetworkHelperError;
|
||||
import com.sap.sailing.android.shared.util.NetworkHelper.NetworkHelperFailureListener;
|
||||
import com.sap.sailing.android.shared.util.NetworkHelper.NetworkHelperSuccessListener;
|
||||
import com.sap.sailing.android.shared.util.UniqueDeviceUuid;
|
||||
import com.sap.sailing.android.tracking.app.BuildConfig;
|
||||
import com.sap.sailing.android.tracking.app.R;
|
||||
import com.sap.sailing.android.tracking.app.ui.fragments.RegattaFragment;
|
||||
@@ -58,6 +55,7 @@ import com.sap.sailing.android.tracking.app.upload.UploadTeamImageTask;
|
||||
import com.sap.sailing.android.tracking.app.utils.AboutHelper;
|
||||
import com.sap.sailing.android.tracking.app.utils.AppPreferences;
|
||||
import com.sap.sailing.android.tracking.app.utils.CheckinManager;
|
||||
import com.sap.sailing.android.tracking.app.utils.CheckoutHelper;
|
||||
import com.sap.sailing.android.tracking.app.utils.DatabaseHelper;
|
||||
import com.sap.sailing.android.tracking.app.valueobjects.CheckinData;
|
||||
import com.sap.sailing.android.tracking.app.valueobjects.CompetitorCheckinData;
|
||||
@@ -469,48 +467,23 @@ public class RegattaActivity extends AbstractRegattaActivity
|
||||
* Check out from regatta;
|
||||
*/
|
||||
public void checkout() {
|
||||
final String checkoutURLStr = event.server
|
||||
+ prefs.getServerCheckoutPath().replace("{leaderboard-name}", Uri.encode(leaderboard.name));
|
||||
|
||||
showProgressDialog(R.string.please_wait, R.string.checking_out);
|
||||
|
||||
JSONObject checkoutData = new JSONObject();
|
||||
try {
|
||||
checkoutData.put("competitorId", competitor.id);
|
||||
checkoutData.put("deviceUuid", UniqueDeviceUuid.getUniqueId(this));
|
||||
checkoutData.put("toMillis", System.currentTimeMillis());
|
||||
} catch (JSONException e) {
|
||||
showErrorPopup(R.string.error, R.string.error_could_not_complete_operation_on_server_try_again);
|
||||
ExLog.e(this, TAG, "Error populating checkout-data: " + e.getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
HttpJsonPostRequest request = new HttpJsonPostRequest(this, new URL(checkoutURLStr), checkoutData.toString());
|
||||
NetworkHelper.getInstance(this).executeHttpJsonRequestAsync(request,
|
||||
new NetworkHelperSuccessListener() {
|
||||
|
||||
@Override
|
||||
public void performAction(JSONObject response) {
|
||||
DatabaseHelper.getInstance().deleteRegattaFromDatabase(RegattaActivity.this,
|
||||
event.checkinDigest);
|
||||
deleteImageFile(getLeaderboardImageFileName(leaderboard.name));
|
||||
dismissProgressDialog();
|
||||
finish();
|
||||
}
|
||||
}, new NetworkHelperFailureListener() {
|
||||
|
||||
@Override
|
||||
public void performAction(NetworkHelperError e) {
|
||||
dismissProgressDialog();
|
||||
showErrorPopup(R.string.error,
|
||||
R.string.error_could_not_complete_operation_on_server_try_again);
|
||||
}
|
||||
});
|
||||
|
||||
} catch (MalformedURLException e) {
|
||||
ExLog.w(this, TAG, "Error, can't check out, MalformedURLException: " + e.getMessage());
|
||||
}
|
||||
CheckoutHelper checkoutHelper = new CheckoutHelper();
|
||||
checkoutHelper.checkoutCompetitor(this, leaderboard.name, event.server, competitor.id, new NetworkHelperSuccessListener() {
|
||||
@Override
|
||||
public void performAction(JSONObject response) {
|
||||
DatabaseHelper.getInstance().deleteRegattaFromDatabase(RegattaActivity.this, event.checkinDigest);
|
||||
deleteImageFile(getLeaderboardImageFileName(leaderboard.name));
|
||||
dismissProgressDialog();
|
||||
finish();
|
||||
}
|
||||
}, new NetworkHelperFailureListener() {
|
||||
@Override
|
||||
public void performAction(NetworkHelperError e) {
|
||||
dismissProgressDialog();
|
||||
showErrorPopup(R.string.error,
|
||||
R.string.error_could_not_complete_operation_on_server_try_again);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
package com.sap.sailing.android.tracking.app.utils;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import android.net.Uri;
|
||||
|
||||
import com.sap.sailing.android.shared.data.http.HttpJsonPostRequest;
|
||||
import com.sap.sailing.android.shared.logging.ExLog;
|
||||
import com.sap.sailing.android.shared.ui.activities.AbstractBaseActivity;
|
||||
import com.sap.sailing.android.shared.util.NetworkHelper;
|
||||
import com.sap.sailing.android.shared.util.UniqueDeviceUuid;
|
||||
import com.sap.sailing.android.tracking.app.R;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.DeviceMappingConstants;
|
||||
|
||||
public class CheckoutHelper {
|
||||
private static String TAG = CheckoutHelper.class.getName();
|
||||
|
||||
public void checkoutCompetitor(AbstractBaseActivity activity, String leaderboardName, String eventServer, String competitorId,
|
||||
NetworkHelper.NetworkHelperSuccessListener successListener, NetworkHelper.NetworkHelperFailureListener failureListener) {
|
||||
AppPreferences prefs = new AppPreferences(activity);
|
||||
final String checkoutURLStr = eventServer
|
||||
+ prefs.getServerCheckoutPath().replace("{leaderboard-name}", Uri.encode(leaderboardName));
|
||||
|
||||
activity.showProgressDialog(R.string.please_wait, R.string.checking_out);
|
||||
|
||||
JSONObject checkoutData = new JSONObject();
|
||||
try {
|
||||
checkoutData.put(DeviceMappingConstants.JSON_COMPETITOR_ID_AS_STRING, competitorId);
|
||||
checkoutData.put(DeviceMappingConstants.JSON_DEVICE_UUID, UniqueDeviceUuid.getUniqueId(activity));
|
||||
checkoutData.put(DeviceMappingConstants.JSON_TO_MILLIS, System.currentTimeMillis());
|
||||
} catch (JSONException e) {
|
||||
activity.dismissProgressDialog();
|
||||
activity.showErrorPopup(R.string.error, R.string.error_could_not_complete_operation_on_server_try_again);
|
||||
ExLog.e(activity, TAG, "Error populating checkout-data: " + e.getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
HttpJsonPostRequest request = new HttpJsonPostRequest(activity, new URL(checkoutURLStr), checkoutData.toString());
|
||||
com.sap.sailing.android.shared.util.NetworkHelper.getInstance(activity).executeHttpJsonRequestAsync(request,
|
||||
successListener, failureListener);
|
||||
|
||||
} catch (MalformedURLException e) {
|
||||
ExLog.w(activity, TAG, "Error, can't check out, MalformedURLException: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user