/** * Notifies an update of GpsStatus change. * */ private void notifyGpsStatus(){ if (enabled){ final int gpsStatus = parser.getGpsStatusChange(); if (gpsStatus != 0){ Log.v(LOG_TAG, "notified GpsStatus: "+gpsStatus); synchronized(gpsStatusListeners) { for(final Listener listener : gpsStatusListeners){ notificationPool.execute(new Runnable(){ @Override public void run() { listener.onGpsStatusChanged(gpsStatus); } }); } } } } }
@Implementation public boolean addGpsStatusListener(Listener listener) { if (!gpsStatusListeners.contains(listener)) { gpsStatusListeners.add(listener); } return true; }
@Test public void shouldNotHaveListenerOnceRemoved() { Listener listener = addGpsListenerToLocationManager(); locationManager.removeGpsStatusListener(listener); assertFalse(shadowLocationManager.hasGpsStatusListener(listener)); }
/** * Adds a GpsStatus Listener. * * @param listener a GpsStatus.Listener object to register * @return true if the listener was successfully added */ public boolean addGpsStatusListener(Listener listener){ if (!gpsStatusListeners.contains(listener)){ Log.d(LOG_TAG, "adding new GpsStatus Listener"); gpsStatusListeners.add(listener); } return true; }
@Implementation public void removeGpsStatusListener(Listener listener) { gpsStatusListeners.remove(listener); }
public boolean hasGpsStatusListener(Listener listener) { return gpsStatusListeners.contains(listener); }
@Test public void shouldHaveListenerOnceAdded() { Listener listener = addGpsListenerToLocationManager(); assertTrue(shadowLocationManager.hasGpsStatusListener(listener)); }
private Listener addGpsListenerToLocationManager() { Listener listener = new TestGpsListener(); locationManager.addGpsStatusListener(listener); return listener; }
/** * Removes a GpsStatus Listener. * * @param listner a GpsStatus.Listener object to remove */ public void removeGpsStatusListener(Listener listener){ Log.d(LOG_TAG, "removing GpsStatus Listener"); gpsStatusListeners.remove(listener); }