· 7 years ago · Nov 17, 2018, 08:30 AM
1import android.database.sqlite.SQLiteDatabase
2import android.database.sqlite.SQLiteOpenHelper
3import android.content.Context
4import android.content.ContentValues
5import android.database.sqlite.SQLiteQueryBuilder
6
7import android.util.Log
8import java.util.ArrayList
9
10class DatabaseHandler : SQLiteOpenHelper {
11 companion object {
12
13 val Tag = "DatabaseHandler"
14 val DBName = "ContactDB"
15 val DBVersion = 1
16
17 val tableName = "phoneTable"
18 val ConID = "id"
19 val FirstName = "fname"
20 val LastName = "lname"
21 val Number = "number"
22 val Email = "email"
23 }
24
25 var context: Context? = null
26 var sqlObj: SQLiteDatabase
27
28 constructor(context: Context) : super(context, DBName, null, DBVersion) {
29 this.context = context
30 sqlObj = this.writableDatabase
31 }
32
33 override fun onCreate(db: SQLiteDatabase?) {
34
35 var sql1: String = "CREATE TABLE IF NOT EXISTS " + tableName + " " +
36 "(" + ConID + " INTEGER PRIMARY KEY," +
37 FirstName + " TEXT, " + LastName + " TEXT, " + Email +
38 " TEXT," + Number + " TEXT );"
39
40 db!!.execSQL(sql1);
41 Log.d(Tag, "Database created!!!")
42 }
43
44 override fun onUpgrade(db: SQLiteDatabase?, p1: Int, p2: Int) {
45 db!!.execSQL("Drop table IF EXISTS " + tableName)
46 onCreate(db)
47 }
48
49 fun AddContact(values: ContentValues): String {
50 var Msg: String = "error";
51 val ID = sqlObj!!.insert(tableName, "", values)
52 if (ID > 0) {
53 Msg = "ok"
54 }
55 return Msg
56 }
57
58 fun FetchContacts(keyword: String): ArrayList<ContactData> {
59 var arraylist = ArrayList<ContactData>()
60 val sqb = SQLiteQueryBuilder()
61 sqb.tables = tableName
62 val cols = arrayOf("id", "fname", "lname", "email", "number")
63 val rowSelArg = arrayOf(keyword)
64 val cur = sqb.query(sqlObj, cols, "fname like ?", rowSelArg, null, null, "fname")
65 if (cur.moveToFirst()) {
66 do {
67 val id = cur.getInt(cur.getColumnIndex("id"))
68 val fname = cur.getString(cur.getColumnIndex("fname"))
69 val lname = cur.getString(cur.getColumnIndex("lname"))
70 val email = cur.getString(cur.getColumnIndex("email"))
71 val number = cur.getString(cur.getColumnIndex("number"))
72
73 arraylist.add(ContactData(id, fname, lname, email, number))
74
75 } while (cur.moveToNext())
76 }
77 var count: Int = arraylist.size
78 return arraylist
79 }
80
81 fun UpdateContact(values: ContentValues, id: Int): String {
82 var selectionArs = arrayOf(id.toString())
83 val i = sqlObj!!.update(tableName, values, "id=?", selectionArs)
84 if (i > 0) {
85 return "ok";
86 } else {
87 return "error";
88 }
89 }
90
91 fun RemoveContact(id: Int): String {
92
93 var selectionArs = arrayOf(id.toString())
94
95 val i = sqlObj!!.delete(tableName, "id=?", selectionArs)
96 if (i > 0) {
97 return "ok";
98 } else {
99
100 return "error";
101 }
102 }
103}