/*
* Copyright (C) 2010 Daniel Jacobi
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package de.questmaster.tudmensa;
import android.content.ContentResolver;
import android.content.Context;
import android.database.CharArrayBuffer;
import android.database.ContentObserver;
import android.database.Cursor;
import android.database.DataSetObserver;
import android.net.Uri;
import android.os.Bundle;
/**
* This Wrapper replaces the picture type with its picture resource id.
*
* @author Daniel
*/
public class MealsDbCursorWrapper implements Cursor {
private Cursor mCursor;
private MensaMealsSettings.Settings mSettings = new MensaMealsSettings.Settings();
/**
*
*/
public MealsDbCursorWrapper(Cursor c, Context ct) {
mCursor = c;
// Read settings
mSettings.ReadSettings(ct);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#close()
*/
public void close() {
mCursor.close();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#copyStringToBuffer(int,
* android.database.CharArrayBuffer)
*/
public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) {
mCursor.copyStringToBuffer(columnIndex, buffer);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#deactivate()
*/
public void deactivate() {
mCursor.deactivate();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getBlob(int)
*/
public byte[] getBlob(int columnIndex) {
return mCursor.getBlob(columnIndex);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getColumnCount()
*/
public int getColumnCount() {
return mCursor.getColumnCount();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getColumnIndex(java.lang.String)
*/
public int getColumnIndex(String columnName) {
return mCursor.getColumnIndex(columnName);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getColumnIndexOrThrow(java.lang.String)
*/
public int getColumnIndexOrThrow(String columnName) throws IllegalArgumentException {
return mCursor.getColumnIndexOrThrow(columnName);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getColumnName(int)
*/
public String getColumnName(int columnIndex) {
return mCursor.getColumnName(columnIndex);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getColumnNames()
*/
public String[] getColumnNames() {
return mCursor.getColumnNames();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getCount()
*/
public int getCount() {
return mCursor.getCount();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getDouble(int)
*/
public double getDouble(int columnIndex) {
return mCursor.getDouble(columnIndex);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getExtras()
*/
public Bundle getExtras() {
return mCursor.getExtras();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getFloat(int)
*/
public float getFloat(int columnIndex) {
return mCursor.getFloat(columnIndex);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getInt(int)
*/
public int getInt(int columnIndex) {
return mCursor.getInt(columnIndex);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getLong(int)
*/
public long getLong(int columnIndex) {
return mCursor.getLong(columnIndex);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getPosition()
*/
public int getPosition() {
return mCursor.getPosition();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getShort(int)
*/
public short getShort(int columnIndex) {
return mCursor.getShort(columnIndex);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getString(int)
*/
public String getString(int columnIndex) {
String result = mCursor.getString(columnIndex);
if (columnIndex == this.getColumnIndex(MealsDbAdapter.KEY_TYPE)) {
// Theme support
if (mSettings.m_sThemes.equals("dark")) {
// create type drawable
if (result.equals("F")) {
result = String.valueOf(R.drawable.meal_f_d);
} else if (result.equals("G")) {
result = String.valueOf(R.drawable.meal_g_d);
} else if (result.equals("K")) {
result = String.valueOf(R.drawable.meal_k_d);
} else if (result.equals("R")) {
result = String.valueOf(R.drawable.meal_r_d);
} else if (result.equals("RS")) {
result = String.valueOf(R.drawable.meal_rs_d);
} else if (result.equals("S")) {
result = String.valueOf(R.drawable.meal_s_d);
} else if (result.equals("V")) {
result = String.valueOf(R.drawable.meal_v_d);
} else {
result = String.valueOf(R.drawable.essen_d);
}
} else if (mSettings.m_sThemes.equals("light")) {
// create type drawable
if (result.equals("F")) {
result = String.valueOf(R.drawable.meal_f);
} else if (result.equals("G")) {
result = String.valueOf(R.drawable.meal_g);
} else if (result.equals("K")) {
result = String.valueOf(R.drawable.meal_k);
} else if (result.equals("R")) {
result = String.valueOf(R.drawable.meal_r);
} else if (result.equals("RS")) {
result = String.valueOf(R.drawable.meal_rs);
} else if (result.equals("S")) {
result = String.valueOf(R.drawable.meal_s);
} else if (result.equals("V")) {
result = String.valueOf(R.drawable.meal_v);
} else {
result = String.valueOf(R.drawable.essen);
}
}
}
return result;
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#getWantsAllOnMoveCalls()
*/
public boolean getWantsAllOnMoveCalls() {
return mCursor.getWantsAllOnMoveCalls();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#isAfterLast()
*/
public boolean isAfterLast() {
return mCursor.isAfterLast();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#isBeforeFirst()
*/
public boolean isBeforeFirst() {
return mCursor.isBeforeFirst();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#isClosed()
*/
public boolean isClosed() {
return mCursor.isClosed();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#isFirst()
*/
public boolean isFirst() {
return mCursor.isFirst();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#isLast()
*/
public boolean isLast() {
return mCursor.isLast();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#isNull(int)
*/
public boolean isNull(int columnIndex) {
return mCursor.isNull(columnIndex);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#move(int)
*/
public boolean move(int offset) {
return mCursor.move(offset);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#moveToFirst()
*/
public boolean moveToFirst() {
return mCursor.moveToFirst();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#moveToLast()
*/
public boolean moveToLast() {
return mCursor.moveToLast();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#moveToNext()
*/
public boolean moveToNext() {
return mCursor.moveToNext();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#moveToPosition(int)
*/
public boolean moveToPosition(int position) {
return mCursor.moveToPosition(position);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#moveToPrevious()
*/
public boolean moveToPrevious() {
return mCursor.moveToPrevious();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#registerContentObserver(android.database.
* ContentObserver)
*/
public void registerContentObserver(ContentObserver observer) {
mCursor.registerContentObserver(observer);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#registerDataSetObserver(android.database.
* DataSetObserver)
*/
public void registerDataSetObserver(DataSetObserver observer) {
mCursor.registerDataSetObserver(observer);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#requery()
*/
public boolean requery() {
return mCursor.requery();
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#respond(android.os.Bundle)
*/
public Bundle respond(Bundle extras) {
return mCursor.respond(extras);
}
/*
* (non-Javadoc)
*
* @see
* android.database.Cursor#setNotificationUri(android.content.ContentResolver
* , android.net.Uri)
*/
public void setNotificationUri(ContentResolver cr, Uri uri) {
mCursor.setNotificationUri(cr, uri);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#unregisterContentObserver(android.database.
* ContentObserver)
*/
public void unregisterContentObserver(ContentObserver observer) {
mCursor.unregisterContentObserver(observer);
}
/*
* (non-Javadoc)
*
* @see android.database.Cursor#unregisterDataSetObserver(android.database.
* DataSetObserver)
*/
public void unregisterDataSetObserver(DataSetObserver observer) {
mCursor.unregisterDataSetObserver(observer);
}
}