package com.abominableshrine.taptounlock;

import android.hardware.SensorEventListener;

public interface ITapDetector extends SensorEventListener {
    /**
     * Notify the detector about sensor changes.
     * <p/>
     * This API gets the data from {@link #onSensorChanged(android.hardware.SensorEvent)} and has
     * been added for testing because it is not possible to feed specific data to a
     * {@link android.hardware.SensorEventListener} because it is not possible to create a
     * {@link android.hardware.SensorEvent} in user code.
     *
     * @param timestamp The timestamp of the event
     * @param senorType The type of sensor with new readings
     * @param accuracy  The accuracy of the reading
     * @param values    The readings from the sensor
     */
    public void onSensorChanged(long timestamp, int senorType, int accuracy, float values[]);

    public void onAccuracyChanged(int sensorType, int i);

    /**
     * Register an observer to be notified on each detected tap
     *
     * @param o The observer
     */
    public void registerTapObserver(TapDetector.TapObserver o);

    /**
     * Remove a previously registered observer
     *
     * @param o The observer to remove
     */
    public void removeTapObserver(TapDetector.TapObserver o);

    /**
     * A simple interface to be implemented by observers if they require Tap notifications
     */
    public interface TapObserver {
        /**
         * Callback when a Tap has been detected
         *
         * @param timestamp When the tap occured
         * @param now       The current time
         */
        public void onTap(long timestamp, long now, DeviceSide side);
    }
}

@@ -82,16 +82,155 @@
 tener;%0A%0A
+/**%0A * Interface tap detectors must implement to be plug-able to%0A * %7B@link com.abominableshrine.taptounlock.TapPatternDetectorService%7D%0A */%0A
 public i
@@ -905,16 +905,111 @@
  sensor%0A
+     * @see android.hardware.SensorEventListener#onSensorChanged(android.hardware.SensorEvent)%0A
      */%0A
@@ -1099,24 +1099,384 @@
 values%5B%5D);%0A%0A
+    /**%0A     * Notify the detector about accuracy changes%0A     *%0A     * @param sensorType The type of sensor with new readings%0A     * @param accuracy   The new accuracy of this sensor, one of%0A     *                   %7B@code SensorManager.SENSOR_STATUS_*%7D%0A     * @see android.hardware.SensorEventListener#onAccuracyChanged(android.hardware.Sensor, int)%0A     */%0A
     public v
@@ -1517,17 +1517,24 @@
 pe, int 
-i
+accuracy
 );%0A%0A    
@@ -2145,16 +2145,16 @@
 occured%0A
-
         
@@ -2190,16 +2190,80 @@
 nt time%0A
+         * @param side      The side the device has been tapped%0A
         

Complete missing documentation