AntHalService - Release Notes
v3.0.1
2013-07-18

Copyright 2011 Dynastream Innovations

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.

=============================================================
1. USAGE

The ANT HAL Service provides a transport from the ANT Radio Service (or 
any application which binds to IAntHal AIDL) through JNI to the native ANT 
stack code (libantradio.so).  It provides the basics of send/recieve Rx 
messages, enable, disable and get the enebaled state.

=============================================================
2. REVISION HISTORY

v3.0.0 : 2013-01-17 : Android_System_ANTHALService_3-0-0

Bug

    [ANTDROID-1383] - Can not build for Android 4.2 [Delete integration with BluetoothService]
    [ANTDROID-1389] - onDestroy() starts new disable thread, when it should be ensuring there are no threads left running

-------------------------------------------------------------

v2.1.0 : 2012-07-20 : Android_System_ANTHALService_2-1-0

Bug

    [ANTDROID-992] - getEnabledState returns disabled while ANT is enabling in BT service
    [ANTDROID-1007] - if enable is called, and already enabled, ENABLED then ENABLING is sent out

Task

    [ANTDROID-1256] - Remove "DSI BlueZ" from name as service is generic
    [ANTDROID-1248] - Remove full path from repository
    [ANTDROID-1286] - Synchronise all updating of state

-------------------------------------------------------------

v2.0.0 : 2012-07-20 : Android_System_ANTHALService_2-0-0

Improvement

    * [ANTDROID-614] - Specify targetSdkVersion to let the system use compatibility behaviours for newer versions

New Feature

    * [ANTDROID-953] - Do ANT enable/disable through BluetoothService ANT methods if they exist

Task

    * [ANTDROID-938] - .classpath needs new entry for ADT Libraries

Sub-task

    * [ANTDROID-786] - Only include LICENCE and NOTICE in system-package_X directories

-------------------------------------------------------------

v1.3.2 : 2012-04-02 : Android_System_ANTHALService_1-3-2

Bug

    [ANTDROID-570] - Unregister callback does not work correctly

New Feature

    [ANTDROID-611] - Define meta-data to notify that this service provides a connection to built-in ANT hardware

-------------------------------------------------------------

v1.3.1 : 2012-03-20 : Android_System_ANTHALService_1-3-1

Bug

    [ANTDROID-533] - Document how to build in to Android with a single HOWTO for each platform type (not seperate steps per component)

-------------------------------------------------------------

v1.3.0 : 2012-02-22 : Android_System_AntHalService_1-3-0

Code Task

    * [ANTDROID-510] - Project has both proguard.cfg and proguard.flags files

Improvement

    * [ANTDROID-511] - Create Hard Reset call from ARS to native

New Feature

    * [ANTDROID-483] - configure ANT in Android build by chip

Sub-task

    * [ANTDROID-481] - create callback for native code so it can do state change intents


-------------------------------------------------------------

v1.2.0 : 2011-12-12 : Android_System_AntHalService_1-2-0

Bug

    * [ANTDROID-314] - An unsuccessful JAntJava.create() doesn't do anything
    * [ANTDROID-380] - Change target API to 7 for onStartCommand() support
    * [ANTDROID-382] - Service will not run for ever once restarted after being destroyed
    * [ANTDROID-384] - Nullpointer in disable thread if onDestroy was called

Code Task

    * [ANTDROID-126] - Ensure header/license is on all possibly released source files
    * [ANTDROID-331] - Update/Sync up documentation of AIDL system service interface
    * [ANTDROID-338] - Update projects for ADT r14 (naming and configuration)

Improvement

    * [ANTDROID-222] - Each component adding to/modifying Android framework should include full path within Android source

New Feature

    * [ANTDROID-7] - Check if "ant" is in Settings.System.AIRPLANE_MODE_RADIOS.

Task

    * [ANTDROID-197] - Individual "how to include in build" file for each component, and Vendors Package HOW TO just says what the components are and where to find HOW TO for each

-------------------------------------------------------------

v1.1.0 : 2011-10-14 : Android_System_AntHalService_1-1-0

Bug

    * [ANTDROID-198] - "Commented out mutex on tx message to test lower level mutex" commit, but change still exists
    * [ANTDROID-215] - Manifest does not point to correct location of BootCompletedReceiver class

Improvement

    * [ANTDROID-170] - ANT HAL Service should start at BOOT_COMPLETED and run forever
    * [ANTDROID-214] - Remove unnecessary Bluetooth and Vibrate permissions
    * [ANTDROID-223] - Put enable and disable on their own threads

Task

    * [ANTDROID-176] - Create ANT HAL Service Release Notes / Revision history / versioning

-------------------------------------------------------------

v1.0.0 : 2011-09-15 : Android_System_AntHalService_1-0-0

Bug

    * [ANTDROID-147] - Dead objects in AntService.java mCallbackList are not cleared
    * [ANTDROID-149] - AntService and JAntJava are able to register multiple callback functions

Improvement

    * [ANTDROID-232] - Use a single JAntJava instance across enable/disables
    * [ANTDROID-233] - Get state (enabled, enabling,...) of ANT chip from lowest layer
    * [ANTDROID-234] - ANT System Service as independent application (not a thread in system_process)

Task

    * [ANTDROID-243] - Treat each component as independent from others (ie stack library, service, command line app, bluedroid rework)

-------------------------------------------------------------

Previous versions were not a stand-alone component.

=============================================================
3. TODO

ANTDROID-685    Update to follow Android Code Style guidelines
ANTDROID-383    Allow multiple clients to register IAntHalCallback
ANTDROID-346    Create AntHalLib
ANTDROID-309    What is Version.java used for for AntHal?
ANTDROID-246    Store platform specific values in system settings
ANTDROID-244    Separate data and command paths

=============================================================
4. KNOWN ISSUES

ANTDROID-961    On a phone with no BluetoothService, ANT HAL will not work
ANTDROID-615    When debugging, registerCallback() doesn't check if callback is null before logging value
