public ColumnIndexHolder(Cursor cursor) {
      cursorHash = cursor.hashCode();

      ID = cursor.getColumnIndexOrThrow(FuelingTable.ID);
      FILLDATE = cursor.getColumnIndexOrThrow(FuelingTable.FILLDATE);
      DISTANCE = cursor.getColumnIndexOrThrow(FuelingTable.DISTANCE);
      QUANTITY = cursor.getColumnIndexOrThrow(FuelingTable.QUANTITY);
      COST = cursor.getColumnIndexOrThrow(FuelingTable.COST);
      ODOMETER = cursor.getColumnIndexOrThrow(FuelingTable.ODOMETER);
      FILLUP = cursor.getColumnIndexOrThrow(FuelingTable.FILLUP);
    }
  private void setCursor(Cursor cursor) {
    Log.d(
        TAG,
        "setCursor cursor "
            + ((cursor != null) ? cursor.hashCode() : "null")
            + " count = "
            + ((cursor != null) ? cursor.getCount() : "null")
            + " isNewCursor = "
            + (cursor != mCursor));
    if (cursor == mCursor) return;

    mCursor = cursor;
    if (mCursor != null) {
      mDirectionCursorWrapper = new DirectionCursorWrapper(mCursor);
    } else {
      mDirectionCursorWrapper = null;
    }
    mAdapter.swapCursor(mDirectionCursorWrapper);
    markItemClear();
    refreshListPosition();
  }
 boolean matches(Cursor cursor) {
   return this.cursorHash == cursor.hashCode();
 }