mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-29 15:27:14 +00:00
First draft of ping callback
This commit is contained in:
1 parent
41231b1a23
commit
fd7de898a9
4 files changed
+46
-8
No files matched your search
@@ -1,4 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="database_changed" translatable="false">database_changed</string>
|
||||
<string name="ping_reached_server" translatable="false">ping_reached_server</string>
|
||||
</resources>
|
||||
+15
-6
@@ -1,7 +1,5 @@
|
||||
package com.sap.sailing.android.buoy.positioning.app.ui.fragments;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -17,7 +15,6 @@ import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.maps.CameraUpdateFactory;
|
||||
import com.google.android.gms.maps.GoogleMap;
|
||||
import com.google.android.gms.maps.MapFragment;
|
||||
@@ -27,6 +24,7 @@ import com.sap.sailing.android.buoy.positioning.app.R;
|
||||
import com.sap.sailing.android.buoy.positioning.app.ui.activities.PositioningActivity;
|
||||
import com.sap.sailing.android.buoy.positioning.app.util.DatabaseHelper.GeneralDatabaseHelperException;
|
||||
import com.sap.sailing.android.buoy.positioning.app.util.PingHelper;
|
||||
import com.sap.sailing.android.buoy.positioning.app.util.PingServerReplyCallback;
|
||||
import com.sap.sailing.android.buoy.positioning.app.valueobjects.MarkInfo;
|
||||
import com.sap.sailing.android.buoy.positioning.app.valueobjects.MarkPingInfo;
|
||||
import com.sap.sailing.android.shared.data.LeaderboardInfo;
|
||||
@@ -36,7 +34,10 @@ import com.sap.sailing.android.shared.ui.customviews.OpenSansTextView;
|
||||
import com.sap.sailing.android.shared.ui.customviews.SignalQualityIndicatorView;
|
||||
import com.sap.sailing.android.ui.fragments.BaseFragment;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
public class BuoyFragment extends BaseFragment implements LocationListener {
|
||||
private static final String TAG = BuoyFragment.class.getName();
|
||||
private static final int GPS_MIN_DISTANCE = 1;
|
||||
private static final int GPS_MIN_TIME = 1000;
|
||||
private OpenSansTextView markHeaderTextView;
|
||||
@@ -241,6 +242,10 @@ public class BuoyFragment extends BaseFragment implements LocationListener {
|
||||
|
||||
}
|
||||
|
||||
public void handleSuccessfulResponse(){
|
||||
Toast.makeText(getActivity(), getString(R.string.position_set), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
public void setPingListener(pingListener listener) {
|
||||
pingListener = listener;
|
||||
}
|
||||
@@ -274,13 +279,13 @@ public class BuoyFragment extends BaseFragment implements LocationListener {
|
||||
MarkInfo mark = positioningActivity.getMarkInfo();
|
||||
LeaderboardInfo leaderBoard = positioningActivity.getLeaderBoard();
|
||||
helper.storePingInDatabase(getActivity(), lastKnownLocation, mark);
|
||||
helper.sendPingToServer(getActivity(), lastKnownLocation, leaderBoard, mark);
|
||||
helper.sendPingToServer(getActivity(), lastKnownLocation, leaderBoard, mark, PingServerReplyCallback.class);
|
||||
((PositioningActivity) getActivity()).updatePing();
|
||||
savedPosition = new LatLng(lastKnownLocation.getLatitude(), lastKnownLocation.getLongitude());
|
||||
pingListener.updatePing();
|
||||
setUpTextUI(lastKnownLocation);
|
||||
updateMap();
|
||||
Toast.makeText(getActivity(), getString(R.string.position_set), Toast.LENGTH_SHORT).show();
|
||||
//Toast.makeText(getActivity(), getString(R.string.position_set), Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
Toast.makeText(getActivity(), "Location is not available yet", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
@@ -297,13 +302,17 @@ public class BuoyFragment extends BaseFragment implements LocationListener {
|
||||
private class IntentReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
Log.d(this.getClass().getName(), "Ui will be updated");
|
||||
String action = intent.getAction();
|
||||
Log.d(TAG, "Action: " + action);
|
||||
if(action.equals(getString(R.string.database_changed))) {
|
||||
positioningActivity.loadDataFromDatabase();
|
||||
setUpTextUI(lastKnownLocation);
|
||||
updateMap();
|
||||
}
|
||||
if (action.equals(getString(R.string.ping_reached_server))){
|
||||
Log.d(TAG, "Response reached Buoy Fragment");
|
||||
handleSuccessfulResponse();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+4
-2
@@ -8,15 +8,17 @@ import com.sap.sailing.android.buoy.positioning.app.valueobjects.MarkPingInfo;
|
||||
import com.sap.sailing.android.shared.data.LeaderboardInfo;
|
||||
import com.sap.sailing.android.shared.logging.ExLog;
|
||||
import com.sap.sailing.android.shared.services.sending.MessageSendingService;
|
||||
import com.sap.sailing.android.shared.services.sending.ServerReplyCallback;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PingHelper {
|
||||
private static String TAG = PingHelper.class.getName();
|
||||
|
||||
public void sendPingToServer(final Context context, Location location, LeaderboardInfo leaderBoard, MarkInfo mark) {
|
||||
public void sendPingToServer(final Context context, Location location, LeaderboardInfo leaderBoard, MarkInfo mark, Class<? extends ServerReplyCallback> callback) {
|
||||
AppPreferences prefs = new AppPreferences(context);
|
||||
try {
|
||||
JSONObject fixJson = new JSONObject();
|
||||
@@ -29,7 +31,7 @@ public class PingHelper {
|
||||
String postUrlStr = leaderBoard.serverUrl + prefs.getServerMarkPingPath(leaderBoard.name, mark.getId());
|
||||
|
||||
context.startService(MessageSendingService.createMessageIntent(context, postUrlStr, null,
|
||||
UUID.randomUUID(), fixJson.toString(), null));
|
||||
UUID.randomUUID(), fixJson.toString(), callback));
|
||||
|
||||
} catch (JSONException ex) {
|
||||
ExLog.i(context, TAG, "Error while building ping json " + ex.getMessage());
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package com.sap.sailing.android.buoy.positioning.app.util;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.support.v4.content.LocalBroadcastManager;
|
||||
import android.util.Log;
|
||||
import com.sap.sailing.android.buoy.positioning.app.R;
|
||||
import com.sap.sailing.android.shared.services.sending.ServerReplyCallback;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
public class PingServerReplyCallback implements ServerReplyCallback {
|
||||
|
||||
private static final String TAG = PingServerReplyCallback.class.getName();
|
||||
|
||||
// Empty constructor for MessageSendingService
|
||||
public PingServerReplyCallback() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processResponse(Context context, InputStream inputStream, String callbackPayload) {
|
||||
Log.d(TAG, "Context origin:");
|
||||
LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent(context.getString(R.string.ping_reached_server)));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user