package com.maxiee.heartbeat.provider;
import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import com.maxiee.heartbeat.database.tables.EventThoughtRelationTable;
import com.maxiee.heartbeat.database.tables.ThoughtResTable;
import com.maxiee.heartbeat.database.tables.ThoughtsTable;
import com.maxiee.heartbeat.database.utils.DatabaseUtils;
/**
* Created by maxiee on 16/1/31.
*/
public class ProviderThoughtDelegete implements IProviderThoughtDelegate{
@Override
public Cursor dispatchQuery(int code, Context context, Uri uri) {
switch (code) {
case Constant.API_THOUGHT_EVENT_ID_CODE: {
long id = ContentUris.parseId(uri);
return getThought(context, id);
}
case Constant.API_THOUGHT_RES_THOUGHT_ID_CODE: {
long id = ContentUris.parseId(uri);
return getThoughtRes(context, id);
}
default: {
return null;
}
}
}
@Override
public Cursor getThought(Context context, long eventId) {
final String rawSQL =
"SELECT " + ThoughtsTable.NAME + "." + ThoughtsTable.ID + ", " + ThoughtsTable.THOUGHT + ", " + ThoughtsTable.TIMESTAMP + ", "
+ EventThoughtRelationTable.EVENT_ID + " FROM " + ThoughtsTable.NAME + " JOIN " + EventThoughtRelationTable.NAME
+ " ON " + ThoughtsTable.NAME + "." + ThoughtsTable.ID + "=" + EventThoughtRelationTable.NAME + "." + EventThoughtRelationTable.THOUGHT_ID
+ " WHERE " + EventThoughtRelationTable.EVENT_ID + "=?"
+ " ORDER BY " + ThoughtsTable.TIMESTAMP + " ASC;";
return DatabaseUtils.getReadableDatabase(context).rawQuery(
rawSQL,
new String[] { String.valueOf(eventId)});
}
@Override
public Cursor getThoughtRes(Context context, long thoughtId) {
return DatabaseUtils.query(
context, ThoughtResTable.NAME,
new String[] {ThoughtResTable.ID, ThoughtResTable.THOUGHT_ID, ThoughtResTable.TYPE, ThoughtResTable.PATH},
ThoughtResTable.THOUGHT_ID + "=?",
new String[] {String.valueOf(thoughtId)});
}
}