forked from upstream-mirrors/OpenTracks
Removed usage of Broadcast (were used by Widget).
This commit is contained in:
@@ -9,4 +9,5 @@ Bugfix:
|
|||||||
Developer:
|
Developer:
|
||||||
- Fixed (some) test cases
|
- Fixed (some) test cases
|
||||||
- Removed unused parcelable functionality
|
- Removed unused parcelable functionality
|
||||||
- Major cleanup and reformatting
|
- Major cleanup and reformatting
|
||||||
|
- Do not use broadcast for app to widget communication
|
||||||
@@ -19,7 +19,6 @@ import android.content.BroadcastReceiver;
|
|||||||
import android.content.ContentProvider;
|
import android.content.ContentProvider;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.location.Location;
|
import android.location.Location;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
@@ -272,43 +271,6 @@ public class TrackRecordingServiceTest {
|
|||||||
Assert.assertEquals(PreferencesUtils.RECORDING_TRACK_ID_DEFAULT, service.getRecordingTrackId());
|
Assert.assertEquals(PreferencesUtils.RECORDING_TRACK_ID_DEFAULT, service.getRecordingTrackId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@MediumTest
|
|
||||||
@Test
|
|
||||||
public void testStartNewTrack_noRecording() throws Exception {
|
|
||||||
// NOTICE: due to the way Android permissions work, if this fails, uninstall the test apk then retry.
|
|
||||||
// The test must be installed *after* the app (go figure).
|
|
||||||
// Reference: http://code.google.com/p/android/issues/detail?id=5521
|
|
||||||
BlockingBroadcastReceiver startReceiver = new BlockingBroadcastReceiver();
|
|
||||||
String startAction = context.getString(R.string.track_started_broadcast_action);
|
|
||||||
context.registerReceiver(startReceiver, new IntentFilter(startAction));
|
|
||||||
|
|
||||||
List<Track> tracks = providerUtils.getAllTracks();
|
|
||||||
Assert.assertTrue(tracks.isEmpty());
|
|
||||||
|
|
||||||
ITrackRecordingService service = ((ITrackRecordingService) mServiceRule.bindService(createStartIntent(context)));
|
|
||||||
Assert.assertFalse(service.isRecording());
|
|
||||||
|
|
||||||
long newTrackId = service.startNewTrack();
|
|
||||||
Assert.assertTrue(newTrackId >= 0);
|
|
||||||
Assert.assertTrue(service.isRecording());
|
|
||||||
Track track = providerUtils.getTrack(newTrackId);
|
|
||||||
Assert.assertNotNull(track);
|
|
||||||
Assert.assertEquals(newTrackId, track.getId());
|
|
||||||
Assert.assertEquals(PreferencesUtils.getString(context, R.string.default_activity_key, PreferencesUtils.DEFAULT_ACTIVITY_DEFAULT), track.getCategory());
|
|
||||||
Assert.assertEquals(newTrackId, PreferencesUtils.getLong(context, R.string.recording_track_id_key));
|
|
||||||
Assert.assertEquals(newTrackId, service.getRecordingTrackId());
|
|
||||||
|
|
||||||
// Verify that the start broadcast was received.
|
|
||||||
Assert.assertTrue(startReceiver.waitUntilReceived(1));
|
|
||||||
List<Intent> receivedIntents = startReceiver.getReceivedIntents();
|
|
||||||
Assert.assertEquals(1, receivedIntents.size());
|
|
||||||
Intent broadcastIntent = receivedIntents.get(0);
|
|
||||||
Assert.assertEquals(startAction, broadcastIntent.getAction());
|
|
||||||
Assert.assertEquals(newTrackId, broadcastIntent.getLongExtra(context.getString(R.string.track_id_broadcast_extra), -1L));
|
|
||||||
|
|
||||||
context.unregisterReceiver(startReceiver);
|
|
||||||
}
|
|
||||||
|
|
||||||
@MediumTest
|
@MediumTest
|
||||||
@Test
|
@Test
|
||||||
public void testStartNewTrack_alreadyRecording() throws Exception {
|
public void testStartNewTrack_alreadyRecording() throws Exception {
|
||||||
@@ -324,36 +286,6 @@ public class TrackRecordingServiceTest {
|
|||||||
Assert.assertEquals(trackId, service.getRecordingTrackId());
|
Assert.assertEquals(trackId, service.getRecordingTrackId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@MediumTest
|
|
||||||
@Test
|
|
||||||
public void testEndCurrentTrack_alreadyRecording() throws Exception {
|
|
||||||
// See comment above if this fails randomly.
|
|
||||||
BlockingBroadcastReceiver stopReceiver = new BlockingBroadcastReceiver();
|
|
||||||
String stopAction = context.getString(R.string.track_stopped_broadcast_action);
|
|
||||||
context.registerReceiver(stopReceiver, new IntentFilter(stopAction));
|
|
||||||
|
|
||||||
createDummyTrack(trackId, -1L, true);
|
|
||||||
|
|
||||||
ITrackRecordingService service = ((ITrackRecordingService) mServiceRule.bindService(createStartIntent(context)));
|
|
||||||
Assert.assertTrue(service.isRecording());
|
|
||||||
|
|
||||||
// End the current track.
|
|
||||||
service.endCurrentTrack();
|
|
||||||
Assert.assertFalse(service.isRecording());
|
|
||||||
Assert.assertEquals(PreferencesUtils.RECORDING_TRACK_ID_DEFAULT, PreferencesUtils.getLong(context, R.string.recording_track_id_key));
|
|
||||||
Assert.assertEquals(PreferencesUtils.RECORDING_TRACK_ID_DEFAULT, service.getRecordingTrackId());
|
|
||||||
|
|
||||||
// Verify that the stop broadcast was received.
|
|
||||||
Assert.assertTrue(stopReceiver.waitUntilReceived(1));
|
|
||||||
List<Intent> receivedIntents = stopReceiver.getReceivedIntents();
|
|
||||||
Assert.assertEquals(1, receivedIntents.size());
|
|
||||||
Intent broadcastIntent = receivedIntents.get(0);
|
|
||||||
Assert.assertEquals(stopAction, broadcastIntent.getAction());
|
|
||||||
Assert.assertEquals(trackId, broadcastIntent.getLongExtra(context.getString(R.string.track_id_broadcast_extra), -1L));
|
|
||||||
|
|
||||||
context.unregisterReceiver(stopReceiver);
|
|
||||||
}
|
|
||||||
|
|
||||||
@MediumTest
|
@MediumTest
|
||||||
@Test
|
@Test
|
||||||
public void testEndCurrentTrack_noRecording() throws Exception {
|
public void testEndCurrentTrack_noRecording() throws Exception {
|
||||||
|
|||||||
@@ -602,7 +602,6 @@ public class TrackRecordingService extends Service {
|
|||||||
isIdle = false;
|
isIdle = false;
|
||||||
|
|
||||||
startGps();
|
startGps();
|
||||||
sendTrackBroadcast(trackStarted ? R.string.track_started_broadcast_action : R.string.track_resumed_broadcast_action, recordingTrackId);
|
|
||||||
|
|
||||||
// Restore periodic tasks
|
// Restore periodic tasks
|
||||||
voiceExecutor.restore();
|
voiceExecutor.restore();
|
||||||
@@ -700,7 +699,6 @@ public class TrackRecordingService extends Service {
|
|||||||
}
|
}
|
||||||
lastLocation = null;
|
lastLocation = null;
|
||||||
|
|
||||||
sendTrackBroadcast(trackStopped ? R.string.track_stopped_broadcast_action : R.string.track_paused_broadcast_action, trackId);
|
|
||||||
stopGps(trackStopped);
|
stopGps(trackStopped);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -881,7 +879,6 @@ public class TrackRecordingService extends Service {
|
|||||||
}
|
}
|
||||||
voiceExecutor.update();
|
voiceExecutor.update();
|
||||||
splitExecutor.update();
|
splitExecutor.update();
|
||||||
sendTrackBroadcast(R.string.track_update_broadcast_action, track.getId());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -983,17 +980,6 @@ public class TrackRecordingService extends Service {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sends track broadcast.
|
|
||||||
*
|
|
||||||
* @param actionId the intent action id
|
|
||||||
* @param trackId the track id
|
|
||||||
*/
|
|
||||||
private void sendTrackBroadcast(int actionId, long trackId) {
|
|
||||||
Intent intent = new Intent().setAction(getString(actionId)).putExtra(getString(R.string.track_id_broadcast_extra), trackId);
|
|
||||||
sendBroadcast(intent, getString(R.string.permission_notification_value));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: There is a bug in Android that leaks Binder instances. This bug is
|
* TODO: There is a bug in Android that leaks Binder instances. This bug is
|
||||||
* especially visible if we have a non-static class, as there is no way to
|
* especially visible if we have a non-static class, as there is no way to
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?><!--
|
|
||||||
Copyright 2010 Google Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
-->
|
|
||||||
<resources>
|
|
||||||
<!-- Do not translate -->
|
|
||||||
<!-- Broadcast -->
|
|
||||||
<string name="track_id_broadcast_extra" translatable="false">TRACK_ID</string>
|
|
||||||
<string name="track_paused_broadcast_action" translatable="false">TRACK_PAUSED</string>
|
|
||||||
<string name="track_resumed_broadcast_action" translatable="false">TRACK_RESUMED</string>
|
|
||||||
<string name="track_started_broadcast_action" translatable="false">TRACK_STARTED</string>
|
|
||||||
<string name="track_stopped_broadcast_action" translatable="false">TRACK_STOPPED</string>
|
|
||||||
<string name="track_update_broadcast_action" translatable="false">TRACK_UPDATE</string>
|
|
||||||
</resources>
|
|
||||||
@@ -21,7 +21,6 @@ limitations under the License.
|
|||||||
<string name="third_party_libraries" translatable="false"><a href="https://developer.android.com/topic/libraries/support-library/">Google\'s androidX support</a> (Apache License, Version 2.0)</string>
|
<string name="third_party_libraries" translatable="false"><a href="https://developer.android.com/topic/libraries/support-library/">Google\'s androidX support</a> (Apache License, Version 2.0)</string>
|
||||||
<string name="marker_statistics_icon_url" translatable="false">http://maps.google.com/mapfiles/ms/micons/ylw-pushpin.png</string>
|
<string name="marker_statistics_icon_url" translatable="false">http://maps.google.com/mapfiles/ms/micons/ylw-pushpin.png</string>
|
||||||
<string name="marker_waypoint_icon_url" translatable="false">http://maps.google.com/mapfiles/ms/micons/blue-pushpin.png</string>
|
<string name="marker_waypoint_icon_url" translatable="false">http://maps.google.com/mapfiles/ms/micons/blue-pushpin.png</string>
|
||||||
<string name="permission_notification_value" translatable="false">de.dennisguse.opentracks.MYTRACKS_NOTIFICATIONS</string>
|
|
||||||
<string name="sensor_type_value_none" translatable="false">NONE</string>
|
<string name="sensor_type_value_none" translatable="false">NONE</string>
|
||||||
<string name="sensor_unit_beats_per_minute" translatable="false">BPM</string>
|
<string name="sensor_unit_beats_per_minute" translatable="false">BPM</string>
|
||||||
<string name="settings_recording_track_name_date_iso_8601_value" translatable="false">DATE_ISO_8601</string>
|
<string name="settings_recording_track_name_date_iso_8601_value" translatable="false">DATE_ISO_8601</string>
|
||||||
@@ -31,9 +30,5 @@ limitations under the License.
|
|||||||
<string name="stats_rate_speed" translatable="false">SPEED</string>
|
<string name="stats_rate_speed" translatable="false">SPEED</string>
|
||||||
<string name="stats_units_imperial" translatable="false">IMPERIAL</string>
|
<string name="stats_units_imperial" translatable="false">IMPERIAL</string>
|
||||||
<string name="stats_units_metric" translatable="false">METRIC</string>
|
<string name="stats_units_metric" translatable="false">METRIC</string>
|
||||||
<string name="track_action_end" translatable="false">de.dennisguse.opentracks.END_CURRENT_TRACK</string>
|
|
||||||
<string name="track_action_pause" translatable="false">de.dennisguse.opentracks.PAUSE_CURRENT_TRACK</string>
|
|
||||||
<string name="track_action_resume" translatable="false">de.dennisguse.opentracks.RESUME_CURRENT_TRACK</string>
|
|
||||||
<string name="track_action_start" translatable="false">de.dennisguse.opentracks.START_NEW_TRACK</string>
|
|
||||||
<string name="value_unknown" translatable="false">-</string>
|
<string name="value_unknown" translatable="false">-</string>
|
||||||
</resources>
|
</resources>
|
||||||
Reference in New Issue
Block a user