package iWish_database;
/**Raffaella*/
import iWish_Friends.Friends;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
/**This class is our DAO.
* It maintains the database connection and supports adding new element.**/
public class FriendsDao {
// Database field
private SQLiteDatabase database ;
private DataBaseStorageFriends dbHelper;
private static String[] allColumns={
DataBaseStorageFriends.COLUMN_ID,
DataBaseStorageFriends.COLUMN_EMAIL_FRIENDS,
DataBaseStorageFriends.COLUMN_EMAIL_USER,
DataBaseStorageFriends.COLUMN_NAME,
DataBaseStorageFriends.COLUMN_SURNAME,
DataBaseStorageFriends.COLUMN_POINT
//DataBaseStorageFriends.COLUMN_PHOTO
};
public FriendsDao(Context context){
dbHelper = new DataBaseStorageFriends(context);
}
public void open() throws SQLException{
// if the database is already open return directly
if((database != null) && (database.isOpen())){
return;
}else{
// we use getWritableDatabase() if we want insert, upload and delete
database = dbHelper.getWritableDatabase();
}
}
public void close(){
if(database.isOpen()){
dbHelper.close();
}
}
@SuppressWarnings("unused")
public void insertOnDbFriends(Friends mFriends)throws Exception{
ContentValues values = new ContentValues();
values.put(DataBaseStorageFriends.COLUMN_EMAIL_FRIENDS, "" + mFriends.getEmailFriends() + "");
values.put(DataBaseStorageFriends.COLUMN_EMAIL_USER, "" + mFriends.getEmailUser() + "");
values.put(DataBaseStorageFriends.COLUMN_NAME,"" + mFriends.getName() + "");
values.put(DataBaseStorageFriends.COLUMN_SURNAME,"" + mFriends.getSurname() + "");
values.put(DataBaseStorageFriends.COLUMN_POINT,"" + mFriends.getPoint() + "");
long insertId = database.insert(DataBaseStorageFriends.TABLE_FRIENDS, null, values);
}
public void deleteOnDbAllFriends(){
database.delete(DataBaseStorageFriends.TABLE_FRIENDS, null,null);
}
public void deleteOnDbOneFriends(String meMail){
String email = meMail;
System.out.print("Key Friends that we have delete is : " + email);
database.delete(DataBaseStorageFriends.TABLE_FRIENDS, DataBaseStorageFriends.COLUMN_EMAIL_FRIENDS+"='" + email+ "'" , null);
}
public int deleteOnDbSomeFriends(List<Friends> mFriends){
Long guid=null;
int db=-1;
for(Friends friends: mFriends){
guid=friends.getKeyFriend();
db=database.delete(DataBaseStorageFriends.TABLE_FRIENDS, DataBaseStorageFriends.COLUMN_ID+ "='" + guid+ "'", null);
}return db;
}
public List<Friends> getAllFriends(){
List<Friends> listFriends = new ArrayList<Friends>();
Cursor cursor = database.query(DataBaseStorageFriends.TABLE_FRIENDS, allColumns, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
Friends friends = cursorsFriends(cursor);
listFriends.add(friends);
cursor.moveToNext();
}
// Make sure to close the cursor
cursor.close();
return listFriends;
}
private Friends cursorsFriends(Cursor cursor) {
Friends friends = new Friends();
friends.setKeyFriend(cursor.getLong(DataBaseStorageFriends.COLUMN_ID_INDEX));
friends.setEmailFriends(cursor.getString(DataBaseStorageFriends.COLUMN_EMAIL_FRIENDS_INDEX));
friends.setEmailUser(cursor.getString(DataBaseStorageFriends.COLUMN_EMAIL_USER_INDEX));
friends.setName(cursor.getString(DataBaseStorageFriends.COLUMN_NAME_INDEX));
friends.setSurname(cursor.getString(DataBaseStorageFriends.COLUMN_SURNAME_INDEX));
friends.setPoint(cursor.getInt(DataBaseStorageFriends.COLUMN_POINT_INDEX));
return friends;
}
/**Invoked when the garbage collector has detected that this instance is no longer
* reachable. The default implementation does nothing, but this method can be overridden
* to free resources */
@Override
protected void finalize() throws Throwable {
close();
super.finalize();
}
}