/v3.2/nimbits-android/src/com/nimbits/android/dao/LocalDatabaseDaoImpl.java

http://nimbits-server.googlecode.com/ · Java · 142 lines · 101 code · 21 blank · 20 comment · 1 complexity · cc5d11ae26ff44f23ba1b846c13b9815 MD5 · raw file

  1. /*
  2. * Copyright (c) 2010 Tonic Solutions LLC.
  3. *
  4. * http://www.nimbits.com
  5. *
  6. *
  7. * Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
  8. *
  9. * http://www.gnu.org/licenses/gpl.html
  10. *
  11. * Unless required by applicable law or agreed to in writing, software distributed under the license is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
  12. */
  13. package com.nimbits.android.dao;
  14. import android.content.ContentValues;
  15. import android.content.Context;
  16. import android.database.Cursor;
  17. import android.database.sqlite.SQLiteDatabase;
  18. import android.widget.ListAdapter;
  19. import com.nimbits.android.ImageCursorAdapter;
  20. import com.nimbits.android.R;
  21. import com.nimbits.android.database.DatabaseHelperFactory;
  22. import com.nimbits.client.model.Const;
  23. import com.nimbits.client.model.point.PointName;
  24. import java.util.ArrayList;
  25. import java.util.List;
  26. /**
  27. * Created by bsautner
  28. * User: benjamin
  29. * Date: 7/6/11
  30. * Time: 4:50 PM
  31. */
  32. public class LocalDatabaseDaoImpl implements LocalDatabaseDao {
  33. @Override
  34. public void insertPoints(final Context aContext,final ContentValues values) {
  35. final SQLiteDatabase db1 = DatabaseHelperFactory.getInstance(aContext).getDB(false);
  36. db1.insert(Const.ANDROID_TABLE_LEVEL_TWO_DISPLAY, null,values);
  37. db1.close();
  38. }
  39. @Override
  40. public String getSetting(final Context aContext,final String settingName) {
  41. final SQLiteDatabase db1 = DatabaseHelperFactory.getInstance(aContext).getDB(false);
  42. final Cursor c = db1.query(Const.ANDROID_TABLE_SETTINGS, new String[] {Const.ANDROID_COL_ID, Const.ANDROID_COL_VALUE}, Const.ANDROID_COL_NAME + "=?" , new String[] {settingName}, null, null, null);
  43. c.moveToFirst();
  44. final String retVal = c.getString(c.getColumnIndex(Const.ANDROID_COL_VALUE));
  45. c.close();
  46. db1.close();
  47. return retVal;
  48. }
  49. public List<String> getServers(final Context aContext) {
  50. final List<String> serverList = new ArrayList<String>();
  51. final SQLiteDatabase db1 = DatabaseHelperFactory.getInstance(aContext).getDB(false);
  52. final Cursor c = db1.query(Const.ANDROID_TABLE_SERVERS, new String[] {Const.ANDROID_COL_ID,Const.ANDROID_COL_URL}, null , null, null, null, null);
  53. c.moveToFirst();
  54. //l.add("New Connection");
  55. while (! c.isAfterLast())
  56. {
  57. final String url = c.getString(c.getColumnIndex(Const.ANDROID_COL_URL));
  58. serverList.add(url);
  59. c.moveToNext();
  60. }
  61. c.close();
  62. db1.close();
  63. return serverList;
  64. }
  65. @Override
  66. public void insertMain(final Context aContext,final ContentValues values) {
  67. final SQLiteDatabase db1 = DatabaseHelperFactory.getInstance(aContext).getDB(false);
  68. db1.insert(Const.ANDROID_TABLE_LEVEL_ONE_DISPLAY, null,values);
  69. db1.close();
  70. }
  71. @Override
  72. public ListAdapter mainListCursor(final Context aContext) {
  73. final SQLiteDatabase db1 = DatabaseHelperFactory.getInstance(aContext).getDB(false);
  74. final Cursor listCursor = db1.query(Const.ANDROID_TABLE_LEVEL_ONE_DISPLAY, new String[] {Const.ANDROID_COL_ID, Const.ANDROID_COL_NAME, Const.ANDROID_COL_DESCRIPTION, Const.ANDROID_COL_DISPLAY_TYPE}, Const.ANDROID_COL_NAME + " != ?", new String[] {Const.CONST_HIDDEN_CATEGORY}, null, null, Const.ANDROID_COL_DISPLAY_TYPE);
  75. // int r = listCursor.getCount();
  76. return new ImageCursorAdapter(
  77. aContext, // Context.
  78. R.layout.main_list, // Specify the row template to use (here, two columns bound to the two retrieved cursor
  79. listCursor, // Pass in the cursor to bind to.
  80. new String[] {Const.ANDROID_COL_NAME,Const.ANDROID_COL_DESCRIPTION}, // Array of cursor columns to bind to.
  81. new int[] {R.id.text1, R.id.text2});
  82. }
  83. @Override
  84. public void updatePointValuesByName(Context aContext,final ContentValues u,final PointName pointName) {
  85. final SQLiteDatabase db1 = DatabaseHelperFactory.getInstance(aContext).getDB(false);
  86. db1.update(Const.ANDROID_TABLE_LEVEL_TWO_DISPLAY, u, Const.ANDROID_COL_NAME + "=?", new String[] {pointName.getValue()});
  87. db1.close();
  88. }
  89. public void updateSetting(final Context aContext,final String settingName,final String newValue) {
  90. final SQLiteDatabase db1 = DatabaseHelperFactory.getInstance(aContext).getDB(false);
  91. ContentValues u = new ContentValues();
  92. u.put(Const.PARAM_VALUE, newValue);
  93. db1.update(Const.ANDROID_TABLE_SETTINGS, u, Const.ANDROID_COL_NAME + "=?", new String[] {settingName});
  94. db1.close();
  95. }
  96. public void addServer(Context aContext, String url) {
  97. ContentValues u = new ContentValues();
  98. u.put(Const.ANDROID_COL_URL,url);
  99. SQLiteDatabase db1;
  100. db1 = DatabaseHelperFactory.getInstance(aContext).getDB(true);
  101. db1.insert(Const.ANDROID_TABLE_SERVERS, null, u);
  102. db1.close();
  103. }
  104. public String getSelectedChildTableJsonByName(Context aContext, String name) {
  105. Cursor c;
  106. SQLiteDatabase db1= DatabaseHelperFactory.getInstance(aContext).getDB(false);
  107. c = db1.query(Const.ANDROID_TABLE_LEVEL_TWO_DISPLAY, new String[] {Const.ANDROID_COL_ID, Const.ANDROID_COL_JSON}, Const.ANDROID_COL_NAME + "='" + name +"'" , null, null, null, null);
  108. c.moveToFirst();
  109. String retVal = c.getString(c.getColumnIndex(Const.ANDROID_COL_JSON));
  110. c.close();
  111. db1.close();
  112. return retVal;
  113. }
  114. @Override
  115. public void deleteAll(Context aContext) {
  116. SQLiteDatabase db1= DatabaseHelperFactory.getInstance(aContext).getDB(true);
  117. db1.execSQL("delete from " + Const.ANDROID_TABLE_LEVEL_ONE_DISPLAY);
  118. db1.execSQL("delete from " + Const.ANDROID_TABLE_LEVEL_TWO_DISPLAY);
  119. db1.close();
  120. }
  121. }