teacher.getString("name"),
teacher.isNull("icon_path") ? null : teacher
.getString("icon_path"));
- t1.save(database);
+ t1.save(database, this);
Lecture l = new Lecture(lecture.getInt("id"),
lecture.getString("name"), t1);
JSONArray taskList = lecture.getJSONArray("tasks");
import android.content.ContentValues;
import android.content.Context;
+import android.database.Cursor;
+import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
+import android.util.Log;
public class Teacher {
+ private static final String TAG = Teacher.class.getSimpleName();
+
private int id;
private String name;
private String iconPath;
return iconPath;
}
- public long save(SQLiteDatabase db) {
+ public static Teacher find(SQLiteDatabase db, int id) {
+ try {
+ Cursor c = db.rawQuery("SELECT teachers.name, teachers.icon_path"
+ + " FROM teachers WHERE teachers.id = ? LIMIT 1",
+ new String[] { String.valueOf(id) });
+ if (c.moveToNext()) {
+ Teacher t = new Teacher(id, c.getString(0), c.getString(1));
+ c.close();
+ return t;
+ } else {
+ return null;
+ }
+ } catch (SQLException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ public long save(SQLiteDatabase db, Context context) {
+ Teacher old = Teacher.find(db, getId());
+ if (old != null && old.getIconPath() != null
+ && !old.getIconPath().equals(getIconPath())) {
+ Log.d(TAG,
+ "[" + getId() + "] Delete old cache " + old.getIconPath());
+ old.getIconCacheFile(context).delete();
+ }
+ return replace(db);
+ }
+
+ public long replace(SQLiteDatabase db) {
ContentValues row = new ContentValues();
row.put("id", getId());
row.put("name", getName());
SQLiteDatabase db = new SQLHelper(ctx).getWritableDatabase();
for (Lecture l : NormalHttpAPIClient.dummyLectures) {
l.save(db);
- l.getTeacher().save(db);
+ l.getTeacher().save(db, ctx);
}
NormalHttpAPIClient.dummyLectures.get(0).saveToSelected(db);
NormalHttpAPIClient.dummyLectures.get(2).saveToSelected(db);