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