package org.wheelmap.android.model;
import android.database.Cursor;
import android.database.CursorWrapper;
public class DirectionCursorWrapper extends CursorWrapper {
public final static String SHOW_DIRECTION_COLUMN_NAME = "show_direction_column";
public final int SHOW_DIRECTION_COLUMN_INDEX;
private float mDeviceDirection;
private final int DIRECTION_COLUMN_INDEX;
public DirectionCursorWrapper(Cursor cursor) {
super(cursor);
mDeviceDirection = 0;
SHOW_DIRECTION_COLUMN_INDEX = cursor.getColumnCount();
DIRECTION_COLUMN_INDEX = cursor
.getColumnIndex(POIsCursorWrapper.DIRECTION_COLUMN_NAME);
}
public int getColumnCount() {
return super.getColumnCount() + 1;
}
@Override
public int getColumnIndex(String columnName) {
if (columnName.equals(SHOW_DIRECTION_COLUMN_NAME)) {
return SHOW_DIRECTION_COLUMN_INDEX;
} else {
return super.getColumnIndex(columnName);
}
}
public void setDeviceDirection(float direction) {
mDeviceDirection = direction;
}
@Override
public float getFloat(int columnIndex) {
if (columnIndex == SHOW_DIRECTION_COLUMN_INDEX) {
float direction = super.getFloat(DIRECTION_COLUMN_INDEX);
return direction - mDeviceDirection;
} else {
return super.getFloat(columnIndex);
}
}
}