package com.android.example.leanback.search;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringReader;
public class MockData {
private MockData() { }
private static Reader getMockDataReader(final Context context) throws IOException {
Reader reader;
try {
reader = new InputStreamReader(context.getAssets().open("movies.csv"), "UTF-8");
} catch (UnsupportedOperationException e) {
reader = new StringReader(
//title,year,duration,rent,buy,image,description
"The Terminator,1984,6420000,0.0,0.0,x,I'll be back\n" +
"Maleficent,2014,5820000,1.0,1.99,y,Magic\n" +
"How to Train Your Dragon 2,2014,6300000,2.0,1.11,z,Dragon Fly!\n" +
"Transformers: Age of Extinction,2014,9900000,3.0,3.33,z,Get them all\n" +
"Transformers: Dark of the Moon,2011,9240000,0.99,1.44,v,A mysterious event from Earth's past...\n" +
"Star Wars,1977,7260000,0.55,0.88,b,A long time ago in a galaxy far far away...\n" +
"Cortana,2001,6420000,0.0,0.0,n,Fake Entry\n"
);
}
return reader;
}
public static void insert(final Context context, final SQLiteDatabase db) {
BufferedReader reader = null;
try {
Log.d("MockData", "Inserting into " + db);
reader = new BufferedReader(getMockDataReader(context));
String tmp;
ContentValues values = new ContentValues();
int count = 0;
while (null != (tmp = reader.readLine())) {
//title,year,duration,rent,buy,image,description
final String[] fields = tmp.split(",");
Log.i("MockData", fields.length + tmp);
if (fields.length < 7) continue;
values.clear();
count++;
values.put(UniversalSearchContract.VideoFts.ID, count);
values.put(UniversalSearchContract.VideoFts.FTS_TITLE, fields[0]);
values.put(UniversalSearchContract.VideoFts.FTS_DESCRIPTION, fields[6]);
db.insert(UniversalSearchContract.VideoFts.TABLE_NAME, null, values);
values.clear();
values.put(UniversalSearchContract.Video.ID, count);
values.put(UniversalSearchContract.Video.TITLE, fields[0]);
values.put(UniversalSearchContract.Video.YEAR, fields[1]);
values.put(UniversalSearchContract.Video.DURATION, fields[2]);
values.put(UniversalSearchContract.Video.PRICE_RENT, fields[3]);
values.put(UniversalSearchContract.Video.PRICE_BUY, fields[4]);
values.put(UniversalSearchContract.Video.IMAGE, fields[5]);
values.put(UniversalSearchContract.Video.DESCRIPTION, fields[6]);
db.insert(UniversalSearchContract.Video.TABLE_NAME, null, values);
}
} catch (IOException e) {
Log.e(MockData.class.getSimpleName(),
"Cannot insert mock data", e);
} finally {
if (null != reader) {
try { reader.close(); } catch (Exception ignore) { }
}
}
}
}
// EOF