package com.ad.cow.library;
import java.util.Date;
import java.util.HashMap;
import java.util.Map.Entry;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "android_api";
private static final String TABLE_LOGIN = "login";
private static final String TABLE_DATA = "data";
private static final String KEY_LOGIN_ID = "id";
private static final String KEY_LOGIN_NAME = "name";
private static final String KEY_LOGIN_EMAIL = "email";
private static final String KEY_LOGIN_UID = "uid";
private static final String KEY_LOGIN_CREATED_AT = "created_at";
private static final String KEY_DATA_ID = "id";
private static final String KEY_DATA_LEVEL = "level";
private static final String KEY_DATA_PERCENT = "percent";
private static final String KEY_DATA_FEEDTIME = "feed_time";
private static final String KEY_DATA_EXPTIME = "exp_time";
private static final String KEY_DATA_EXP = "exp";
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_LOGIN + "("
+ KEY_LOGIN_ID + " INTEGER PRIMARY KEY,"
+ KEY_LOGIN_NAME + " TEXT,"
+ KEY_LOGIN_EMAIL + " TEXT UNIQUE,"
+ KEY_LOGIN_UID + " TEXT,"
+ KEY_LOGIN_CREATED_AT + " TEXT" + ")");
db.execSQL("CREATE TABLE " + TABLE_DATA + "("
+ KEY_DATA_ID + " INTEGER PRIMARY KEY,"
+ KEY_DATA_LEVEL + " INTEGER,"
+ KEY_DATA_PERCENT + " REAL,"
+ KEY_DATA_FEEDTIME + " INTEGER,"
+ KEY_DATA_EXPTIME + " INTEGER,"
+ KEY_DATA_EXP + " REAL" + ")");
}
@Override
public void onUpgrade(SQLiteDatabase db,
int oldVersion,
int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_LOGIN);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_DATA);
onCreate(db);
}
public void addUser(String name, String email, String uid, String created_at) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_LOGIN_NAME, name);
values.put(KEY_LOGIN_EMAIL, email);
values.put(KEY_LOGIN_UID, uid);
values.put(KEY_LOGIN_CREATED_AT, created_at);
db.insert(TABLE_LOGIN, null, values);
db.close();
addData();
}
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_DATA_LEVEL, 0);
values.put(KEY_DATA_PERCENT, 0.0);
values.put(KEY_DATA_FEEDTIME, new Date().getTime());
values.put(KEY_DATA_EXPTIME, new Date().getTime());
values.put(KEY_DATA_EXP, 0.0);
db.insert(TABLE_DATA, null, values);
db.close();
}
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
for(Entry<String, String> entry : data.entrySet()) {
values.put(entry.getKey(), entry.getValue());
}
db.update(TABLE_DATA, values, null, null);
db.close();
}
HashMap<String,String> user = new HashMap<String,String>();
String selectQuery = "SELECT * FROM " + TABLE_LOGIN;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
cursor.moveToFirst();
if(cursor.getCount() > 0){
user.put(KEY_LOGIN_NAME, cursor.getString(1));
user.put(KEY_LOGIN_EMAIL, cursor.getString(2));
user.put(KEY_LOGIN_UID, cursor.getString(3));
user.put(KEY_LOGIN_CREATED_AT, cursor.getString(4));
}
cursor.close();
db.close();
return user;
}
HashMap<String,String> data = new HashMap<String,String>();
String selectQuery = "SELECT * FROM " + TABLE_DATA;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
cursor.moveToFirst();
if(cursor.getCount() > 0){
data.put(KEY_DATA_LEVEL, cursor.getString(1));
data.put(KEY_DATA_PERCENT, cursor.getString(2));
data.put(KEY_DATA_FEEDTIME, cursor.getString(3));
data.put(KEY_DATA_EXPTIME, cursor.getString(4));
data.put(KEY_DATA_EXP, cursor.getString(5));
}
cursor.close();
db.close();
return data;
}
String countQuery = "SELECT * FROM " + TABLE_LOGIN;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
int rowCount = cursor.getCount();
db.close();
cursor.close();
return rowCount;
}
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_LOGIN, null, null);
db.delete(TABLE_DATA, null, null);
db.close();
}
}