Move compass to separate class

This commit is contained in:
fkloft
2015-01-22 16:10:56 +01:00
parent 06b64f585b
commit cd8186ffa3
5 changed files with 154 additions and 65 deletions

View File

@@ -0,0 +1,39 @@
package com.cradle.iitc_mobile.compass;
import java.util.ArrayList;
public abstract class Compass
{
private final ArrayList<CompassListener> mListeners = new ArrayList<CompassListener>();
private boolean mStarted = false;
protected void publishOrientation(final float x, final float y, final float z)
{
for (final CompassListener listener : mListeners)
listener.onCompassChanged(x, y, z);
}
protected abstract void onStart();
protected abstract void onStop();
public void registerListener(final CompassListener listener)
{
mListeners.add(listener);
if (!mStarted)
{
onStart();
mStarted = true;
}
}
public void unregisterListener(final CompassListener listener)
{
mListeners.remove(listener);
if (mListeners.size() == 0)
{
onStop();
mStarted = false;
}
}
}