13ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru/* 23ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * 33ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * Copyright 2001-2011 Texas Instruments, Inc. - http://www.ti.com/ 43ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * 53ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * Licensed under the Apache License, Version 2.0 (the "License"); 63ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * you may not use this file except in compliance with the License. 73ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * You may obtain a copy of the License at 83ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * 93ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * http://www.apache.org/licenses/LICENSE-2.0 103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * 113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * Unless required by applicable law or agreed to in writing, software 123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * distributed under the License is distributed on an "AS IS" BASIS, 133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * See the License for the specific language governing permissions and 153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru * limitations under the License. 163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru */ 173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querupackage com.ti.fmrxapp; 193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport java.util.HashMap; 223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.content.ContentValues; 243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.content.Context; 253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.database.Cursor; 263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.database.SQLException; 273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.database.sqlite.SQLiteDatabase; 283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.database.sqlite.SQLiteOpenHelper; 293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queruimport android.util.Log; 303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Querupublic class DBAdapter 323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru{ 333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru public static final String KEY_ROWID = "_id"; 343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru public static final String ITEM_KEY = "id"; 353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru public static final String ITEM_VALUE = "channel"; 363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru public static final String ITEM_NAME = "name"; 373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru private static final String TAG = "DBAdapter"; 383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru private static final String DATABASE_NAME = "presets.db"; 393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru private static final String DATABASE_TABLE = "presets"; 403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru private static final int DATABASE_VERSION = 1; 413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru private static final String DATABASE_CREATE = 433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru "create table presets (_id integer primary key autoincrement, " 443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru + "id text not null, channel text not null, " 453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru + "name text not null);"; 463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru private final Context context; 483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru private DatabaseHelper DBHelper; 503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru private SQLiteDatabase db; 513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru public DBAdapter(Context ctx) 533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru { 543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru this.context = ctx; 553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru DBHelper = new DatabaseHelper(context); 563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru Log.d(TAG," DBAdapter const"); 573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru } 583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru private static class DatabaseHelper extends SQLiteOpenHelper 603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru { 613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru DatabaseHelper(Context context) 623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru { 633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru super(context, DATABASE_NAME, null, DATABASE_VERSION); 653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru Log.d(TAG," DatabaseHelper con"); 663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru } 673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru @Override 693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru public void onCreate(SQLiteDatabase db) 703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru { 713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru Log.d(TAG," DatabaseHelper onCreate"); 723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru db.execSQL(DATABASE_CREATE); 733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru } 743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru @Override 763ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru public void onUpgrade(SQLiteDatabase db, int oldVersion, 773ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru int newVersion) 783ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru { 793ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru Log.w(TAG, "Upgrading database from version " + oldVersion 803ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru + " to " 813ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru + newVersion + ", which will destroy all old data"); 823ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru db.execSQL("DROP TABLE IF EXISTS presets"); 833ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru onCreate(db); 843ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru } 853ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru } 863ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 873ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru //---opens the database--- 883ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru public DBAdapter open() throws SQLException 893ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru { 903ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru db = DBHelper.getWritableDatabase(); 913ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru Log.d(TAG," DatabaseHelper open"); 923ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru return this; 933ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru } 943ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 953ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru //---closes the database--- 963ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru public void close() 973ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru { 983ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru DBHelper.close(); 993ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru Log.d(TAG," DatabaseHelper close"); 1003ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru } 1013ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1023ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru //---insert a station into the database--- 1033ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru public long insertStation(String itemkey, String itemValue, String itemName) 1043ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru { 1053ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1063ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru Log.d(TAG," DatabaseHelper insertStation"); 1073ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru ContentValues initialValues = new ContentValues(); 1083ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru initialValues.put(ITEM_KEY, itemkey); 1093ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru initialValues.put(ITEM_VALUE, itemValue); 1103ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru initialValues.put(ITEM_NAME, itemName); 1113ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru return db.insert(DATABASE_TABLE, null, initialValues); 1123ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru } 1133ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1143ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru //---deletes a particular station--- 1153ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru public boolean deleteStation(long rowId) 1163ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru { 1173ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru Log.d(TAG," DatabaseHelper deleteStation"); 1183ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru return db.delete(DATABASE_TABLE, KEY_ROWID + 1193ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru "=" + rowId, null) > 0; 1203ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru } 1213ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1223ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru //---retrieves all the Stations--- 1233ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru public Cursor getAllStations() 1243ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru { 1253ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru Log.d(TAG," DatabaseHelper getAllStations"); 1263ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru return db.query(DATABASE_TABLE, new String[] { 1273ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru KEY_ROWID, 1283ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru ITEM_KEY, 1293ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru ITEM_VALUE, 1303ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru ITEM_NAME}, 1313ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru null, 1323ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru null, 1333ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru null, 1343ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru null, 1353ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru null); 1363ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru } 1373ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1383ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru //---retrieves a particular station--- 1393ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru public Cursor getStation(long rowId) throws SQLException 1403ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru { 1413ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1423ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru Log.d(TAG," DatabaseHelper getStation"); 1433ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru Cursor mCursor = 1443ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru db.query(true, DATABASE_TABLE, new String[] { 1453ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru KEY_ROWID, 1463ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru ITEM_KEY, 1473ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru ITEM_VALUE, 1483ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru ITEM_NAME}, 1493ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru KEY_ROWID + "=" + rowId, 1503ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru null, 1513ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru null, 1523ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru null, 1533ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru null, 1543ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru null); 1553ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru if (mCursor != null) { 1563ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru mCursor.moveToFirst(); 1573ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru } 1583ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru return mCursor; 1593ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru } 1603ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1613ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru //---updates a station--- 1623ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru public boolean updateStation(int index, String itemKey, 1633ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru String itemValue, String itemName) 1643ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru { 1653ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru Log.d(TAG," DatabaseHelper updateStation"); 1663ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru ContentValues args = new ContentValues(); 1673ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru args.put(ITEM_KEY, itemKey); 1683ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru args.put(ITEM_VALUE, itemValue); 1693ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru args.put(ITEM_NAME, itemName); 1703ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru return db.update(DATABASE_TABLE, args, 1713ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru KEY_ROWID + "=" + index, null) > 0; 1723ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru } 1733ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1743ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru 1753ece7d9e08052989401e008bc397dbcd2557cfd0Jean-Baptiste Queru} 176