public void updateGraphics() {
        final float newAzimuthShown = initialDisplay ? northMeasured : smoothUpdate(northMeasured, azimuthShown);
        final float newCacheHeadingShown = initialDisplay ? cacheHeadingMeasured : smoothUpdate(cacheHeadingMeasured, cacheHeadingShown);
        initialDisplay = false;
        if (Math.abs(AngleUtils.difference(azimuthShown, newAzimuthShown)) >= 2 ||
                Math.abs(AngleUtils.difference(cacheHeadingShown, newCacheHeadingShown)) >= 2) {
            azimuthShown = newAzimuthShown;
            cacheHeadingShown = newCacheHeadingShown;
            invalidate();
        }
    }
North direction measured from device, or 0.0
main/src/main/java/cgeo/geocaching/ui/CompassView.java