- MyTrack app should export google-common.jar, common-logging-1.1.1.jar,
protobuf-java-2.3.0-lite.jar and the MyTracksLib library.
- A test should only depend on its app. E.g., it should not need to
reference the MyTracksLib library again.
Clean up menu items.
- change "Record track" to "Record Track"
- change "Stop recording" to "Stop Recording"
- remove "Delete all tracks", "Please select the track to view",
"Current track", and "Last segment".
- move "Elevation" to the stat label section.
- Fix AntSensorManager.onDestroy, check antReceiver is not null.
- In AntSensorManager.onDestroy, log info rather than log error
for AntServiceNotConnectedException.
- ApiFeatures.isAudioFocusSupported
- ApiFeatures.hasBackup
- ApiFeatures.useNetHttpTransport
into the appropriate ApiLevelAdapter.
Do not plan to move
- ApiFeatures.hasBluetoothDeviceCreateInsecureRfcommSocketToServiceRecord
- ApiFeatures.canReuseSQLiteQueryBuilder
- ApiFeatures.hasTextToSpeech
Rename CupcakePlatformAdapter to ApiLevel3Adapter.
Rename EclairPlatformAdapter to ApiLevel5Adapter.
Rename GingerbreadPlatformAdapter to ApiLevel9Adapter.
Rename ApiPlatformAdapter to ApiLevelAdapter.
- Use DecimalFormatSymbols getInstance for API level 9 or above.
- Use Arrays copyOfRange for API level 9 or above.
- Remove ApiFeatures hasStrictMode.
- Fix comment on MapOverlay to indicate that the two methods should only be
used during testing.
- Use android.text.format.DateFormat to format date and time in DocsHelper.
This DateFormat uses the same locale format as the phone configuration.
Fix DecimalFormat
In MapOverlay, for testing, expose a getter and a setter
for TrackPathDescriptor instead of newPath and getLastPath.
In SingleColorTrackPathPainter, refactor "new Path" to a
newPath method so that tests can override the newPath method
to provide a mockPath.
- in ControlRecordingService, unbind right after handling an intent
to prevent leaking ServiceConnection before handling the next intent.
- update comment in TrackRecordingService
Only sends broadcast notifications if allowed by the settings bit.
Introduces a permission for internal MyTracks communication.
Thus the MyTracks app widget can use this permission to
always receive broadcast notifications when a track starts
and stops.
Move MyTracksProvider to DatabaseProvider and protect the DatabaseProvider
using the AndroidManifest.xml.
Create a MyTracksProviderUtilFactory to create an instance of
MyTracksProviderUtils that accesses the DatabaseProvider.
Recreate MyTracksProvider by extending DatabaseProvider.
The recreated provider checks access, changes the authority,
and invokes the DatabaseProvider methods.
external applications access based on the
sharing settings.
Protect all RPCs calls using the caller's
process id.
When the service is started, we cannot
tell whether the caller is MyTracks or
another app. Thus when the service
is started, we cannot access MyTracks
database or start/stop a recording.
Previsouly, only the MyTracks app
widget is using the service's start method
to start and stop a recording. Thus
create a private service, ControlRecordingService,
that only the MyTracks app widget can access and delegate
starting/stopping a recording to
TrackRecordingService.