mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-23 12:33:53 +00:00
Merged ubilabs--tracking_app--bugfix--bug_2993
This commit is contained in:
commit
3da91c38cb
12 files changed
+141
-93
No files matched your search
@@ -1,28 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.sap.sailing.android.buoy.positioning.app"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0" >
|
||||
<manifest package="com.sap.sailing.android.buoy.positioning.app"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0">
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="14"
|
||||
android:targetSdkVersion="22" />
|
||||
android:targetSdkVersion="22"/>
|
||||
|
||||
<!-- <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> -->
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
|
||||
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
|
||||
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
|
||||
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
|
||||
<uses-feature
|
||||
android:glEsVersion="0x00020000"
|
||||
android:required="true" />
|
||||
|
||||
android:required="true"/>
|
||||
|
||||
|
||||
<application
|
||||
@@ -31,69 +30,70 @@
|
||||
android:hardwareAccelerated="true"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/AppTheme" >
|
||||
android:theme="@style/AppTheme">
|
||||
<meta-data
|
||||
android:name="com.google.android.gms.version"
|
||||
android:value="@integer/google_play_services_version" />
|
||||
android:value="@integer/google_play_services_version"/>
|
||||
<meta-data
|
||||
android:name="com.google.android.maps.v2.API_KEY"
|
||||
android:value="AIzaSyDH-Dwy5yFlyBa2-VUgiZ3qGGUO8M_0MPY" />
|
||||
android:value="AIzaSyDH-Dwy5yFlyBa2-VUgiZ3qGGUO8M_0MPY"/>
|
||||
|
||||
<activity
|
||||
android:name=".ui.activities.StartActivity"
|
||||
android:label="@string/app_name"
|
||||
android:screenOrientation="portrait" >
|
||||
android:screenOrientation="portrait">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<action android:name="android.intent.action.VIEW"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
<category android:name="android.intent.category.BROWSABLE"/>
|
||||
|
||||
<data
|
||||
android:host="*"
|
||||
android:pathPattern=".*buoy-tender/checkin.*"
|
||||
android:scheme="http" />
|
||||
android:scheme="http"/>
|
||||
<data
|
||||
android:host="*"
|
||||
android:pathPattern=".*buoy-tender/checkin.*"
|
||||
android:scheme="http" />
|
||||
android:scheme="http"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.activities.RegattaActivity"
|
||||
android:screenOrientation="portrait" >
|
||||
</activity>
|
||||
android:screenOrientation="portrait"/>
|
||||
<activity
|
||||
android:name=".ui.activities.PositioningActivity"
|
||||
android:screenOrientation="portrait" >
|
||||
</activity>
|
||||
android:screenOrientation="portrait"/>
|
||||
<activity
|
||||
android:name=".ui.activities.SettingActivity"/>
|
||||
|
||||
<service
|
||||
android:name="com.sap.sailing.android.shared.services.sending.MessageSendingService"
|
||||
android:exported="false" >
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="com.sap.sailing.android.tracking.app.action.sendSavedIntents" />
|
||||
<action android:name="com.sap.sailing.android.tracking.app.action.sendMessage" />
|
||||
<action android:name="com.sap.sailing.android.tracking.app.action.sendSavedIntents"/>
|
||||
<action android:name="com.sap.sailing.android.tracking.app.action.sendMessage"/>
|
||||
</intent-filter>
|
||||
</service>
|
||||
<service
|
||||
android:name=".service.MarkerService"
|
||||
android:exported="false" />
|
||||
android:exported="false"/>
|
||||
|
||||
<receiver android:name="com.sap.sailing.android.shared.services.sending.ConnectivityChangedReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<provider
|
||||
android:name=".provider.AnalyticsProvider"
|
||||
android:authorities="com.sap.sailing.android.buoy.positioning.app.provider.db"
|
||||
android:exported="false" />
|
||||
|
||||
<activity
|
||||
android:name=".ui.activities.SettingActivity" >
|
||||
</activity>
|
||||
android:exported="false"/>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -82,6 +82,7 @@ dependencies {
|
||||
testCompile "org.mockito:mockito-core:${rootProject.ext.mockito}"
|
||||
|
||||
/* UI testing with espresso */
|
||||
|
||||
androidTestCompile "com.android.support:support-annotations:${rootProject.ext.support}"
|
||||
androidTestCompile "com.android.support.test:runner:${rootProject.ext.test}"
|
||||
androidTestCompile "com.android.support.test:rules:${rootProject.ext.test}"
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<string name="action_settings">Einstellungen</string>
|
||||
<string name="settings">Einstellungen</string>
|
||||
|
||||
<string name="server">Server</string>
|
||||
<string name="server_sync_settings">Server Synchronisations Intervall in Sekunden</string>
|
||||
<string name="server">Polling Einstellungen</string>
|
||||
<string name="server_sync_settings">Abfrage Intervall (Sekunden)</string>
|
||||
|
||||
</resources>
|
||||
@@ -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>
|
||||
@@ -21,7 +21,7 @@
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="settings">Settings</string>
|
||||
|
||||
<string name="server">Server</string>
|
||||
<string name="server_sync_settings">Interval of server synchronisation in seconds</string>
|
||||
<string name="server">Polling</string>
|
||||
<string name="server_sync_settings">Polling Interval (seconds)</string>
|
||||
|
||||
</resources>
|
||||
+1
-8
@@ -19,13 +19,6 @@ public class BaseActivity extends AbstractBaseActivity {
|
||||
prefs = new AppPreferences(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
MenuInflater inflater = getMenuInflater();
|
||||
inflater.inflate(R.menu.about_menu, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
@@ -36,6 +29,6 @@ public class BaseActivity extends AbstractBaseActivity {
|
||||
|
||||
@Override
|
||||
protected int getOptionsMenuResId() {
|
||||
return R.menu.about_menu;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
+6
-2
@@ -74,7 +74,7 @@ public class PositioningActivity extends BaseActivity implements pingListener {
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
MenuInflater inflater = getMenuInflater();
|
||||
inflater.inflate(R.menu.about_menu, menu);
|
||||
return true;
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -84,6 +84,9 @@ public class PositioningActivity extends BaseActivity implements pingListener {
|
||||
AboutDialog aboutDialog = new AboutDialog(this);
|
||||
aboutDialog.show();
|
||||
return true;
|
||||
case R.id.settings:
|
||||
startActivity(new Intent(this, SettingActivity.class));
|
||||
return true;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
@@ -91,7 +94,8 @@ public class PositioningActivity extends BaseActivity implements pingListener {
|
||||
|
||||
@Override
|
||||
protected int getOptionsMenuResId() {
|
||||
return R.menu.about_menu;
|
||||
// Set to 0 to avoid redundant menu inflation
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void setPingFromDatabase(String markerID) {
|
||||
|
||||
+3
-1
@@ -117,6 +117,7 @@ public class RegattaActivity extends AbstractRegattaActivity {
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
super.onCreateOptionsMenu(menu);
|
||||
MenuInflater inflater = getMenuInflater();
|
||||
inflater.inflate(R.menu.regatta_menu, menu);
|
||||
return true;
|
||||
@@ -144,7 +145,8 @@ public class RegattaActivity extends AbstractRegattaActivity {
|
||||
|
||||
@Override
|
||||
protected int getOptionsMenuResId() {
|
||||
return R.menu.regatta_menu;
|
||||
// Set to 0 to avoid redundant menu inflation
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+21
-16
@@ -2,12 +2,14 @@ package com.sap.sailing.android.buoy.positioning.app.ui.activities;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.View;
|
||||
import com.sap.sailing.android.buoy.positioning.app.R;
|
||||
import com.sap.sailing.android.buoy.positioning.app.ui.fragments.GeneralPreferenceFragment;
|
||||
import com.sap.sailing.android.shared.ui.customviews.OpenSansToolbar;
|
||||
|
||||
public class SettingActivity extends BaseActivity {
|
||||
public class SettingActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
@@ -20,23 +22,26 @@ public class SettingActivity extends BaseActivity {
|
||||
}
|
||||
|
||||
private void setupToolbar() {
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
toolbar.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
|
||||
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
|
||||
ActionBar supportActionBar = getSupportActionBar();
|
||||
if (supportActionBar != null) {
|
||||
supportActionBar.setDisplayHomeAsUpEnabled(true);
|
||||
supportActionBar.setHomeButtonEnabled(true);
|
||||
supportActionBar.setTitle(R.string.settings);
|
||||
OpenSansToolbar toolbar = (OpenSansToolbar) findViewById(R.id.toolbar);
|
||||
if (toolbar != null) {
|
||||
toolbar.hideSubtitle();
|
||||
toolbar.setTitleSize(20);
|
||||
toolbar.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
|
||||
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
setSupportActionBar(toolbar);
|
||||
toolbar.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
|
||||
}
|
||||
if (getSupportActionBar() != null) {
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
getSupportActionBar().setHomeButtonEnabled(true);
|
||||
toolbar.setNavigationIcon(R.drawable.sap_logo_64_sq);
|
||||
toolbar.setPadding(20, 0, 0, 0);
|
||||
getSupportActionBar().setTitle(getString(R.string.settings));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+32
-18
@@ -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;
|
||||
@@ -34,9 +32,13 @@ import com.sap.sailing.android.shared.logging.ExLog;
|
||||
import com.sap.sailing.android.shared.ui.customviews.OpenSansButton;
|
||||
import com.sap.sailing.android.shared.ui.customviews.OpenSansTextView;
|
||||
import com.sap.sailing.android.shared.ui.customviews.SignalQualityIndicatorView;
|
||||
import com.sap.sailing.android.shared.util.ViewHolder;
|
||||
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;
|
||||
@@ -54,29 +56,33 @@ public class BuoyFragment extends BaseFragment implements LocationListener {
|
||||
private boolean initialLocationUpdate;
|
||||
private IntentReceiver mReceiver;
|
||||
private PositioningActivity positioningActivity;
|
||||
private LocalBroadcastManager mBroadcastManager;
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
super.onCreateView(inflater, container, savedInstanceState);
|
||||
View view = inflater.inflate(R.layout.fragment_buoy_postion_detail, container, false);
|
||||
View layout = inflater.inflate(R.layout.fragment_buoy_postion_detail, container, false);
|
||||
|
||||
markHeaderTextView = (OpenSansTextView) view.findViewById(R.id.mark_header);
|
||||
latitudeTextView = (OpenSansTextView) view.findViewById(R.id.marker_gps_latitude);
|
||||
longitudeTextView = (OpenSansTextView) view.findViewById(R.id.marker_gps_longitude);
|
||||
accuracyTextView = (OpenSansTextView) view.findViewById(R.id.marker_gps_accuracy);
|
||||
markHeaderTextView = ViewHolder.get(layout, R.id.mark_header);
|
||||
latitudeTextView = ViewHolder.get(layout, R.id.marker_gps_latitude);
|
||||
longitudeTextView = ViewHolder.get(layout, R.id.marker_gps_longitude);
|
||||
accuracyTextView = ViewHolder.get(layout, R.id.marker_gps_accuracy);
|
||||
ClickListener clickListener = new ClickListener();
|
||||
|
||||
setPositionButton = (OpenSansButton) view.findViewById(R.id.marker_set_position_button);
|
||||
setPositionButton = ViewHolder.get(layout, R.id.marker_set_position_button);
|
||||
setPositionButton.setVisibility(View.GONE);
|
||||
setPositionButton.setOnClickListener(clickListener);
|
||||
|
||||
resetPositionButton = (OpenSansButton) view.findViewById(R.id.marker_reset_position_button);
|
||||
resetPositionButton = ViewHolder.get(layout, R.id.marker_reset_position_button);
|
||||
resetPositionButton.setOnClickListener(clickListener);
|
||||
resetPositionButton.setVisibility(View.GONE);
|
||||
|
||||
signalQualityIndicatorView = (SignalQualityIndicatorView) view.findViewById(R.id.signal_quality_indicator);
|
||||
signalQualityIndicatorView = ViewHolder.get(layout, R.id.signal_quality_indicator);
|
||||
signalQualityIndicatorView.setSignalQuality(GPSQuality.noSignal.toInt());
|
||||
return view;
|
||||
|
||||
mReceiver = new IntentReceiver();
|
||||
mBroadcastManager = LocalBroadcastManager.getInstance(inflater.getContext());
|
||||
return layout;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -103,10 +109,10 @@ public class BuoyFragment extends BaseFragment implements LocationListener {
|
||||
}
|
||||
|
||||
private void initMarkerReceiver() {
|
||||
mReceiver = new IntentReceiver();
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction(getString(R.string.database_changed));
|
||||
LocalBroadcastManager.getInstance(positioningActivity.getApplicationContext()).registerReceiver(mReceiver, filter);
|
||||
filter.addAction(getString(R.string.ping_reached_server));
|
||||
mBroadcastManager.registerReceiver(mReceiver, filter);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -114,7 +120,7 @@ public class BuoyFragment extends BaseFragment implements LocationListener {
|
||||
super.onPause();
|
||||
// Unsubscribe location updates for power saving
|
||||
locationManager.removeUpdates(this);
|
||||
LocalBroadcastManager.getInstance(positioningActivity.getApplicationContext()).unregisterReceiver(mReceiver);
|
||||
mBroadcastManager.unregisterReceiver(mReceiver);
|
||||
}
|
||||
|
||||
public void setUpTextUI(Location location) {
|
||||
@@ -241,6 +247,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 +284,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);
|
||||
//Toast.makeText(getActivity(), getString(R.string.position_set), Toast.LENGTH_SHORT).show();
|
||||
((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();
|
||||
} else {
|
||||
Toast.makeText(getActivity(), "Location is not available yet", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
@@ -297,13 +307,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