package **;
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;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import android.widget.Toast;
public class DBAdapter {
// ebteda sotun ha ro tarif mikonim
public static final String KEY_ID = "id";
public static final String KEY_ONVAN = "onvan";
public static final String KEY_ENONVAN = "enonvan";
public static final String KEY_MATN = "matn";
public static final String KEY_DATE = "date";
public static final String KEY_ENDATE = "endate";
public static final String KEY_PIC1 = "pic1";
public static final String KEY_PIC2 = "pic2";
public static final String KEY_PIC3 = "pic3";
public static final String KEY_PIC4 = "pic4";
public static final String KEY_PIC5 = "pic5";
public static final String KEY_PIC6 = "pic6";
public static final String KEY_PIC7 = "pic7";
public static final String KEY_PIC8 = "pic8";
public static final String KEY_DESPIC1 = "despic1";
public static final String KEY_DESPIC2 = "despic2";
public static final String KEY_DESPIC3 = "despic3";
public static final String KEY_DESPIC4 = "despic4";
public static final String KEY_DESPIC5 = "despic5";
public static final String KEY_DESPIC6 = "despic6";
public static final String KEY_FAV = "fav";
public static final String KEY_KHAND = "khande";
public static final String KEY_EXTRA = "ezafi";
public static final String DATABASE_NAME = "dastanha";
public static final String DATABASE_TABLE = "versions";
public static final String TAG = "FullBook Esfandune";
// hala nahve sakhte shodan database ro minevisim
static final String CREATE_TABLE = "CREATE TABLE "
+ DATABASE_TABLE + " (" +
KEY_ID + " INTEGER PRIMARY KEY NOT NULL , "
+ KEY_ONVAN + " TEXT, "
+ KEY_ENONVAN + " TEXT, "
+ KEY_MATN + " TEXT, "
+ KEY_DATE + " TEXT, "
+ KEY_ENDATE + " TEXT, "
+ KEY_PIC1 + " TEXT, "
+ KEY_PIC2 + " TEXT, "
+ KEY_PIC3 + " TEXT, "
+ KEY_PIC4 + " TEXT, "
+ KEY_PIC5 + " TEXT, "
+ KEY_PIC6 + " TEXT, "
+ KEY_PIC7 + " TEXT, "
+ KEY_PIC8 + " TEXT, "
+ KEY_DESPIC1 + " TEXT, "
+ KEY_DESPIC2 + " TEXT, "
+ KEY_DESPIC3 + " TEXT, "
+ KEY_DESPIC4 + " TEXT, "
+ KEY_DESPIC5 + " TEXT, "
+ KEY_DESPIC6 + " TEXT, "
+ KEY_FAV + " INTEGER NOT NULL DEFAULT 0, "
+ KEY_KHAND + " INTEGER NOT NULL DEFAULT 0, "
+ KEY_EXTRA + " TEXT)";
// ye arraye vase hame gozine ha minevisim
String[] yek_name = new String[] {
KEY_ID,
KEY_ONVAN,
KEY_MATN,
KEY_DATE,
KEY_FAV,
KEY_KHAND,
KEY_EXTRA,
KEY_PIC1,
KEY_PIC2,
KEY_PIC3,
KEY_PIC4,
KEY_PIC5,
KEY_PIC6,
KEY_PIC7,
KEY_PIC8,
KEY_DESPIC1,
KEY_DESPIC2,
KEY_DESPIC3,
KEY_DESPIC4,
KEY_DESPIC5,
KEY_DESPIC6,
KEY_ENONVAN,
KEY_ENDATE,
};
// Ebteda cod hayi ke tu site gharar dadam ro inja copy konid
// import haye lazem ro anjam midim
// khube
/*
* ebteda ye nokte yi begam az inke cod haye zir ro khodeteun naneveshtid va
* copy kardid negaran nabashid , chun neveshtan cod haye zir aslan manteghi
* nis amuzesh haye database lynda ro ham ke negah kardan ostad , cod ha ro
* az dakhele ye file txt copy mikard kolan neveshtan in codhaye khaste
* konande o tekrari kare manteghi nis va behtare unhar o dark konim ta hefz
* :) Esfandune.ir yadetun nare
*/
final Context context;
DatabaseHelper DBHelper;
SQLiteDatabase db;
public DBAdapter(Context ctx) {
this.context = ctx;
DBHelper = new DatabaseHelper(context);
}
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
// DATABASE_VERSION = 1
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL(CREATE_TABLE);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
// codhaye bala ke chize khasi nis va hamishe bayad tekrar beshan va daran
// classe databaesemun ro
// paye rizi mikonan
// ---ba farakhni method e zir databesemun baz mishe va amade khandano
//neveshtan e etelaat mishe---
public DBAdapter open() throws SQLException {
db = DBHelper.getWritableDatabase();
return this;
}
// ---methode zir databasemun ro mibande---
public void close() {
DBHelper.close();
}
// ---age gharar bud masalan ye barname hesabdari ya yaddasht besazim ke
//karbar betune field ezafe kone niaz be in method dashtim ta karbar betune
//etelaat ezafe kone vali dakhele barname ma niaz be in method nis
// chun dastanha az ghabl mojud hasan va karbar faghat gharare una ro bekhune
// pas hazfesh mikonim---
/*public long insertContact(String id, String nam, String mavadavaliye,
String dasturpokht, String note, String ezafi, String fav) {
ContentValues initialValues = new ContentValues();
/*
return db.insert(DATABASE_TABLE, null, initialValues);
}*/
// ---retrieves all the contacts---
/* in method ham ke hame dastan ha ro bar migardune , baraye nemayesh dakhele liste safhe aval*/
public List<Dastan> getAllContacts() {
Cursor cursor = db.query(DATABASE_TABLE, yek_name, null, null, null,
null, null);
List<Dastan> nams = cursorToList(cursor);
return nams;
}
public List<Dastan> getRegisteredContacts() {
Cursor cursor = db.query(DATABASE_TABLE, yek_name, null, null, null,
null, null);
List<Dastan> nams = new ArrayList<Dastan>();
cursor.moveToFirst();
do {
Dastan nam = new Dastan();
nam.setId(cursor.getInt(cursor.getColumnIndex(KEY_ID)));
nam.setMatn(cursor.getString(cursor.getColumnIndex(KEY_MATN)));
nam.setOnvan(cursor.getString(cursor.getColumnIndex(KEY_ONVAN)));
nam.setenOnvan(cursor.getString(cursor.getColumnIndex(KEY_ENONVAN)));
nam.setDate(cursor.getString(cursor.getColumnIndex(KEY_ENDATE)));
nam.setenDate(cursor.getString(cursor.getColumnIndex(KEY_ENDATE)));
nam.setPic1(cursor.getString(cursor.getColumnIndex(KEY_PIC1)));
nam.setPic2(cursor.getString(cursor.getColumnIndex(KEY_PIC2)));
nam.setPic3(cursor.getString(cursor.getColumnIndex(KEY_PIC3)));
nam.setPic4(cursor.getString(cursor.getColumnIndex(KEY_PIC4)));
nam.setPic5(cursor.getString(cursor.getColumnIndex(KEY_PIC5)));
nam.setPic6(cursor.getString(cursor.getColumnIndex(KEY_PIC6)));
nam.setPic7(cursor.getString(cursor.getColumnIndex(KEY_PIC7)));
nam.setPic8(cursor.getString(cursor.getColumnIndex(KEY_PIC8)));
nam.setdesPic1(cursor.getString(cursor.getColumnIndex(KEY_DESPIC1)));
nam.setdesPic2(cursor.getString(cursor.getColumnIndex(KEY_DESPIC2)));
nam.setdesPic3(cursor.getString(cursor.getColumnIndex(KEY_DESPIC3)));
nam.setdesPic4(cursor.getString(cursor.getColumnIndex(KEY_DESPIC4)));
nam.setdesPic5(cursor.getString(cursor.getColumnIndex(KEY_DESPIC5)));
nam.setdesPic6(cursor.getString(cursor.getColumnIndex(KEY_DESPIC6)));
nam.setFav(cursor.getInt(cursor.getColumnIndex(KEY_FAV)));
nam.setKhande(cursor.getInt(cursor.getColumnIndex(KEY_KHAND)));
nam.SetEzafi(cursor.getString(cursor.getColumnIndex(KEY_EXTRA)));
nams.add(nam);
}while(cursor.moveToNext());
return nams;
}
//khob, in method vase rahati e karemun dakhele method haye dige , jelogiri az tekrar cod zani
// sakhtimesh ke cursor i ke database behemun mide ro mikkhunim va dakhele shey Dastanemun mirizim
//
private List<Dastan> cursorToList(Cursor cursor) {
List<Dastan> nams = new ArrayList<Dastan>();
if (cursor.getCount() > 0) {
while (cursor.moveToNext()) {
Dastan nam = new Dastan();
nam.setId(cursor.getInt(cursor.getColumnIndex(KEY_ID)));
nam.setMatn(cursor.getString(cursor.getColumnIndex(KEY_MATN)));
nam.setOnvan(cursor.getString(cursor.getColumnIndex(KEY_ONVAN)));
nam.setenOnvan(cursor.getString(cursor.getColumnIndex(KEY_ENONVAN)));
nam.setDate(cursor.getString(cursor.getColumnIndex(KEY_DATE)));
nam.setenDate(cursor.getString(cursor.getColumnIndex(KEY_ENDATE)));
nam.setPic1(cursor.getString(cursor.getColumnIndex(KEY_PIC1)));
nam.setPic2(cursor.getString(cursor.getColumnIndex(KEY_PIC2)));
nam.setPic3(cursor.getString(cursor.getColumnIndex(KEY_PIC3)));
nam.setPic4(cursor.getString(cursor.getColumnIndex(KEY_PIC4)));
nam.setPic5(cursor.getString(cursor.getColumnIndex(KEY_PIC5)));
nam.setPic6(cursor.getString(cursor.getColumnIndex(KEY_PIC6)));
nam.setPic7(cursor.getString(cursor.getColumnIndex(KEY_PIC7)));
nam.setPic8(cursor.getString(cursor.getColumnIndex(KEY_PIC8)));
nam.setdesPic1(cursor.getString(cursor.getColumnIndex(KEY_DESPIC1)));
nam.setdesPic2(cursor.getString(cursor.getColumnIndex(KEY_DESPIC2)));
nam.setdesPic3(cursor.getString(cursor.getColumnIndex(KEY_DESPIC3)));
nam.setdesPic4(cursor.getString(cursor.getColumnIndex(KEY_DESPIC4)));
nam.setdesPic5(cursor.getString(cursor.getColumnIndex(KEY_DESPIC5)));
nam.setdesPic6(cursor.getString(cursor.getColumnIndex(KEY_DESPIC6)));
nam.setFav(cursor.getInt(cursor.getColumnIndex(KEY_FAV)));
nam.setKhande(cursor.getInt(cursor.getColumnIndex(KEY_KHAND)));
nam.SetEzafi(cursor.getString(cursor.getColumnIndex(KEY_EXTRA)));
nams.add(nam);
};
}//khube , pas marahel chi shod?
/*dakhele method haye dige query mizanim be database , bad database be ma
* mahale un Dastan ro mige , ma miam in methode "cursorToList" ro seda mizanim
* va mahale Dastan ro behesh midim , "cursorToList" ham miad etelaat ro mikhune
* va mirize dakhele ye Dastan be name "nam" va un ro be ma bar migardune :)*/
return nams;
}
// ---in method ham ke moshakhase , ye Dastan ro bar migardune (id migire)---
public Dastan getContact(int new_id) throws SQLException {
List<Dastan> nams = new ArrayList<Dastan>();
Cursor cursor = db.query(true, DATABASE_TABLE, yek_name, KEY_ID
+ " == '" + new_id + "'", null, null, null, null, null);
Dastan nam = new Dastan();
if (cursor != null) {
cursor.moveToFirst();
// khob inja be surate amali didid chi shod,
// cursorToList ro farukhuni kardim ta Dastane ma ro behemun bede
nams = cursorToList(cursor);
}
Log.i(TAG, nam.getOnvan() + ",database");
//chun ma faghat ye dune dastan bishtar nadashtim , pas faghat avali nams ro bar migardunim
return nams.get(0);
}
// /search
public List<Dastan> findContacts(String nam, String row)
throws SQLException {
Cursor cursor = db.query(true, DATABASE_TABLE, yek_name, row
+ " LIKE '%" + nam + "%'", null, null, null, null, null);
List<Dastan> nams = cursorToList(cursor);
return nams;
}
// /fav?
public List<Dastan> findFAVContacts() throws SQLException {
Cursor cursor = db.query(true, DATABASE_TABLE, yek_name, KEY_FAV
+ " == " + 1 + "", null, null, null, null, null);
List<Dastan> nams = cursorToList(cursor);
return nams;
}
//in methodam dastanhaye khande shode ro bar miardune
public List<Dastan> findKhandeContacts() throws SQLException {
Cursor cursor = db.query(true, DATABASE_TABLE, yek_name, KEY_KHAND
+ " == " + 1 + "", null, null, null, null, null);
List<Dastan> nams = cursorToList(cursor);
return nams;
}
// ---updates a contact---
public boolean updateContact(Dastan up_nam) {
ContentValues args = new ContentValues();
// bale in method ro faramush kardim meghdar dehi konim :D. alan mikonim
args.put(KEY_ID, up_nam.getId());
args.put(KEY_ONVAN, up_nam.getOnvan());
args.put(KEY_ENONVAN, up_nam.getenOnvan());
args.put(KEY_DATE, up_nam.getDate());
args.put(KEY_ENDATE, up_nam.getenDate());
args.put(KEY_MATN, up_nam.getMatn());
args.put(KEY_PIC1, up_nam.getPic1());
args.put(KEY_PIC2, up_nam.getPic2());
args.put(KEY_PIC3, up_nam.getPic3());
args.put(KEY_PIC4, up_nam.getPic4());
args.put(KEY_PIC5, up_nam.getPic5());
args.put(KEY_PIC6, up_nam.getPic6());
args.put(KEY_PIC7, up_nam.getPic7());
args.put(KEY_PIC8, up_nam.getPic8());
args.put(KEY_DESPIC1, up_nam.getdesPic1());
args.put(KEY_DESPIC2, up_nam.getdesPic2());
args.put(KEY_DESPIC3, up_nam.getdesPic3());
args.put(KEY_DESPIC4, up_nam.getdesPic4());
args.put(KEY_DESPIC5, up_nam.getdesPic5());
args.put(KEY_DESPIC6, up_nam.getdesPic6());
args.put(KEY_FAV, up_nam.getFav());
args.put(KEY_KHAND, up_nam.getKhande());
args.put(KEY_EXTRA, up_nam.getEzafi());
return db.update(DATABASE_TABLE, args, KEY_ID + "=" + up_nam.getId(),
null) > 0;
}
}// khob class e DBAdapter emun tamum shod, ehtemalan ye sery taghirat dige badan behesh bedam :)