mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-30 15:57:11 +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"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="database_changed" translatable="false">database_changed</string>
|
<string name="database_changed" translatable="false">database_changed</string>
|
||||||
|
<string name="ping_reached_server" translatable="false">ping_reached_server</string>
|
||||||
</resources>
|
</resources>
|
||||||
+15
-6
@@ -1,7 +1,5 @@
|
|||||||
package com.sap.sailing.android.buoy.positioning.app.ui.fragments;
|
package com.sap.sailing.android.buoy.positioning.app.ui.fragments;
|
||||||
|
|
||||||
import java.text.DecimalFormat;
|
|
||||||
|
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -17,7 +15,6 @@ import android.view.View;
|
|||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.google.android.gms.maps.CameraUpdateFactory;
|
import com.google.android.gms.maps.CameraUpdateFactory;
|
||||||
import com.google.android.gms.maps.GoogleMap;
|
import com.google.android.gms.maps.GoogleMap;
|
||||||
import com.google.android.gms.maps.MapFragment;
|
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.ui.activities.PositioningActivity;
|
||||||
import com.sap.sailing.android.buoy.positioning.app.util.DatabaseHelper.GeneralDatabaseHelperException;
|
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.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.MarkInfo;
|
||||||
import com.sap.sailing.android.buoy.positioning.app.valueobjects.MarkPingInfo;
|
import com.sap.sailing.android.buoy.positioning.app.valueobjects.MarkPingInfo;
|
||||||
import com.sap.sailing.android.shared.data.LeaderboardInfo;
|
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.shared.ui.customviews.SignalQualityIndicatorView;
|
||||||
import com.sap.sailing.android.ui.fragments.BaseFragment;
|
import com.sap.sailing.android.ui.fragments.BaseFragment;
|
||||||
|
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
|
||||||
public class BuoyFragment extends BaseFragment implements LocationListener {
|
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_DISTANCE = 1;
|
||||||
private static final int GPS_MIN_TIME = 1000;
|
private static final int GPS_MIN_TIME = 1000;
|
||||||
private OpenSansTextView markHeaderTextView;
|
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) {
|
public void setPingListener(pingListener listener) {
|
||||||
pingListener = listener;
|
pingListener = listener;
|
||||||
}
|
}
|
||||||
@@ -274,13 +279,13 @@ public class BuoyFragment extends BaseFragment implements LocationListener {
|
|||||||
MarkInfo mark = positioningActivity.getMarkInfo();
|
MarkInfo mark = positioningActivity.getMarkInfo();
|
||||||
LeaderboardInfo leaderBoard = positioningActivity.getLeaderBoard();
|
LeaderboardInfo leaderBoard = positioningActivity.getLeaderBoard();
|
||||||
helper.storePingInDatabase(getActivity(), lastKnownLocation, mark);
|
helper.storePingInDatabase(getActivity(), lastKnownLocation, mark);
|
||||||
helper.sendPingToServer(getActivity(), lastKnownLocation, leaderBoard, mark);
|
helper.sendPingToServer(getActivity(), lastKnownLocation, leaderBoard, mark, PingServerReplyCallback.class);
|
||||||
((PositioningActivity) getActivity()).updatePing();
|
((PositioningActivity) getActivity()).updatePing();
|
||||||
savedPosition = new LatLng(lastKnownLocation.getLatitude(), lastKnownLocation.getLongitude());
|
savedPosition = new LatLng(lastKnownLocation.getLatitude(), lastKnownLocation.getLongitude());
|
||||||
pingListener.updatePing();
|
pingListener.updatePing();
|
||||||
setUpTextUI(lastKnownLocation);
|
setUpTextUI(lastKnownLocation);
|
||||||
updateMap();
|
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 {
|
} else {
|
||||||
Toast.makeText(getActivity(), "Location is not available yet", Toast.LENGTH_LONG).show();
|
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 {
|
private class IntentReceiver extends BroadcastReceiver {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
Log.d(this.getClass().getName(), "Ui will be updated");
|
|
||||||
String action = intent.getAction();
|
String action = intent.getAction();
|
||||||
|
Log.d(TAG, "Action: " + action);
|
||||||
if(action.equals(getString(R.string.database_changed))) {
|
if(action.equals(getString(R.string.database_changed))) {
|
||||||
positioningActivity.loadDataFromDatabase();
|
positioningActivity.loadDataFromDatabase();
|
||||||
setUpTextUI(lastKnownLocation);
|
setUpTextUI(lastKnownLocation);
|
||||||
updateMap();
|
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.data.LeaderboardInfo;
|
||||||
import com.sap.sailing.android.shared.logging.ExLog;
|
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.MessageSendingService;
|
||||||
|
import com.sap.sailing.android.shared.services.sending.ServerReplyCallback;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class PingHelper {
|
public class PingHelper {
|
||||||
private static String TAG = PingHelper.class.getName();
|
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);
|
AppPreferences prefs = new AppPreferences(context);
|
||||||
try {
|
try {
|
||||||
JSONObject fixJson = new JSONObject();
|
JSONObject fixJson = new JSONObject();
|
||||||
@@ -29,7 +31,7 @@ public class PingHelper {
|
|||||||
String postUrlStr = leaderBoard.serverUrl + prefs.getServerMarkPingPath(leaderBoard.name, mark.getId());
|
String postUrlStr = leaderBoard.serverUrl + prefs.getServerMarkPingPath(leaderBoard.name, mark.getId());
|
||||||
|
|
||||||
context.startService(MessageSendingService.createMessageIntent(context, postUrlStr, null,
|
context.startService(MessageSendingService.createMessageIntent(context, postUrlStr, null,
|
||||||
UUID.randomUUID(), fixJson.toString(), null));
|
UUID.randomUUID(), fixJson.toString(), callback));
|
||||||
|
|
||||||
} catch (JSONException ex) {
|
} catch (JSONException ex) {
|
||||||
ExLog.i(context, TAG, "Error while building ping json " + ex.getMessage());
|
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