mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-21 21:25:38 +00:00
Merge branch 'master' into permission-vertical
Change-Id: I414d5a1500b920fdc2626a52edeb9f4ff1a49398
This commit is contained in:
+28
-21
@@ -1,25 +1,5 @@
|
||||
package com.sap.sailing.android.buoy.positioning.app.ui.fragments;
|
||||
|
||||
import com.google.android.gms.maps.CameraUpdateFactory;
|
||||
import com.google.android.gms.maps.GoogleMap;
|
||||
import com.google.android.gms.maps.OnMapReadyCallback;
|
||||
import com.google.android.gms.maps.SupportMapFragment;
|
||||
import com.google.android.gms.maps.model.LatLng;
|
||||
import com.google.android.gms.maps.model.MarkerOptions;
|
||||
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.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;
|
||||
import com.sap.sailing.android.shared.logging.ExLog;
|
||||
import com.sap.sailing.android.shared.ui.customviews.GPSQuality;
|
||||
import com.sap.sailing.android.shared.ui.customviews.SignalQualityIndicatorView;
|
||||
import com.sap.sailing.android.shared.ui.fragments.BaseFragment;
|
||||
import com.sap.sailing.android.shared.util.LocationHelper;
|
||||
import com.sap.sailing.android.shared.util.ViewHelper;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
@@ -28,6 +8,7 @@ import android.content.IntentFilter;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.location.Location;
|
||||
import android.location.LocationManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
@@ -41,6 +22,30 @@ import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.maps.CameraUpdateFactory;
|
||||
import com.google.android.gms.maps.GoogleMap;
|
||||
import com.google.android.gms.maps.OnMapReadyCallback;
|
||||
import com.google.android.gms.maps.SupportMapFragment;
|
||||
import com.google.android.gms.maps.model.LatLng;
|
||||
import com.google.android.gms.maps.model.MarkerOptions;
|
||||
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;
|
||||
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.CheckinUrlInfo;
|
||||
import com.sap.sailing.android.shared.data.LeaderboardInfo;
|
||||
import com.sap.sailing.android.shared.logging.ExLog;
|
||||
import com.sap.sailing.android.shared.ui.customviews.GPSQuality;
|
||||
import com.sap.sailing.android.shared.ui.customviews.SignalQualityIndicatorView;
|
||||
import com.sap.sailing.android.shared.ui.fragments.BaseFragment;
|
||||
import com.sap.sailing.android.shared.util.LocationHelper;
|
||||
import com.sap.sailing.android.shared.util.ViewHelper;
|
||||
|
||||
import static com.sap.sailing.domain.common.racelog.tracking.DeviceMappingConstants.URL_SECRET;
|
||||
|
||||
public class BuoyFragment extends BaseFragment implements android.location.LocationListener, OnMapReadyCallback {
|
||||
|
||||
private static final String TAG = BuoyFragment.class.getName();
|
||||
@@ -309,9 +314,11 @@ public class BuoyFragment extends BaseFragment implements android.location.Locat
|
||||
if (lastKnownLocation != null) {
|
||||
MarkInfo mark = positioningActivity.getMarkInfo();
|
||||
LeaderboardInfo leaderBoard = positioningActivity.getLeaderBoard();
|
||||
CheckinUrlInfo checkinUrl = DatabaseHelper.getInstance().getCheckinUrl(requireContext(), leaderBoard.checkinDigest);
|
||||
String secret = Uri.parse(checkinUrl.urlString).getQueryParameter(URL_SECRET);
|
||||
helper.storePingInDatabase(getActivity(), lastKnownLocation, mark);
|
||||
helper.sendPingToServer(getActivity(), lastKnownLocation, leaderBoard, mark,
|
||||
PingServerReplyCallback.class);
|
||||
secret, PingServerReplyCallback.class);
|
||||
((PositioningActivity) getActivity()).updatePing();
|
||||
savedPosition = new LatLng(lastKnownLocation.getLatitude(), lastKnownLocation.getLongitude());
|
||||
pingListener.updatePing();
|
||||
|
||||
+20
-9
@@ -1,9 +1,8 @@
|
||||
package com.sap.sailing.android.buoy.positioning.app.util;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import android.content.Context;
|
||||
import android.location.Location;
|
||||
import android.net.Uri;
|
||||
|
||||
import com.sap.sailing.android.buoy.positioning.app.util.DatabaseHelper.GeneralDatabaseHelperException;
|
||||
import com.sap.sailing.android.buoy.positioning.app.valueobjects.MarkInfo;
|
||||
@@ -15,22 +14,34 @@ import com.sap.sailing.android.shared.services.sending.ServerReplyCallback;
|
||||
import com.sap.sailing.domain.common.tracking.impl.FlatSmartphoneUuidAndGPSFixMovingJsonSerializer;
|
||||
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
|
||||
|
||||
import android.content.Context;
|
||||
import android.location.Location;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import static com.sap.sailing.domain.common.racelog.tracking.DeviceMappingConstants.URL_SECRET;
|
||||
|
||||
public class PingHelper {
|
||||
private static String TAG = PingHelper.class.getName();
|
||||
|
||||
public void sendPingToServer(final Context context, Location location, LeaderboardInfo leaderBoard, MarkInfo mark,
|
||||
Class<? extends ServerReplyCallback> callback) {
|
||||
String secret, Class<? extends ServerReplyCallback> callback) {
|
||||
AppPreferences prefs = new AppPreferences(context);
|
||||
try {
|
||||
JSONObject fixJson = new JSONObject();
|
||||
fixJson.put(FlatSmartphoneUuidAndGPSFixMovingJsonSerializer.TIME_MILLIS, location.getTime());
|
||||
fixJson.put(FlatSmartphoneUuidAndGPSFixMovingJsonSerializer.LON_DEG, location.getLongitude());
|
||||
fixJson.put(FlatSmartphoneUuidAndGPSFixMovingJsonSerializer.LAT_DEG, location.getLatitude());
|
||||
String postUrlStr = leaderBoard.serverUrl
|
||||
+ prefs.getServerMarkPingPath(leaderBoard.name, mark.getId().toString());
|
||||
|
||||
Uri uri = Uri.parse(leaderBoard.serverUrl);
|
||||
Uri.Builder builder = new Uri.Builder()
|
||||
.scheme(uri.getScheme())
|
||||
.authority(uri.getAuthority())
|
||||
.appendEncodedPath(prefs.getServerMarkPingPath(leaderBoard.name, mark.getId().toString()));
|
||||
if (secret != null) {
|
||||
builder.appendQueryParameter(URL_SECRET, secret);
|
||||
}
|
||||
String postUrlStr = builder.build().toString();
|
||||
context.startService(MessageSendingService.createMessageIntent(context, postUrlStr, null, UUID.randomUUID(),
|
||||
fixJson.toString(), callback));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user