/** @hide */
 @Override
 protected void unregisterListenerImpl(SensorEventListener listener, Sensor sensor) {
   synchronized (sListeners) {
     final int size = sListeners.size();
     for (int i = 0; i < size; i++) {
       ListenerDelegate l = sListeners.get(i);
       if (l.getListener() == listener) {
         if (sensor == null) {
           sListeners.remove(i);
           // disable all sensors for this listener
           for (Sensor s : l.getSensors()) {
             disableSensorLocked(s);
           }
         } else if (l.removeSensor(sensor) == 0) {
           // if we have no more sensors enabled on this listener,
           // take it off the list.
           sListeners.remove(i);
           disableSensorLocked(sensor);
         }
         break;
       }
     }
   }
 }