3 import android.content.Context;
\r
4 import android.database.SQLException;
\r
5 import android.database.sqlite.SQLiteDatabase;
\r
6 import android.database.sqlite.SQLiteOpenHelper;
\r
8 import com.jm.JmPattern;
\r
9 import com.jm.PatternList;
\r
10 import com.jm.utility.Debug;
\r
11 import com.jm.utility.JmException;
\r
13 public class DatabaseHelper extends SQLiteOpenHelper {
\r
14 public final static int NONE_ID = -1;
\r
15 public final static int ENGLISH_ID = 1;
\r
16 public final static int JAPANEASE_ID = 2;
\r
17 public final static int FRENCH_ID = 3;
\r
18 private static int langId = NONE_ID;
\r
19 private Context context;
\r
20 private static boolean convFlag = false;
\r
22 private static DatabaseHelper instance = null;
\r
24 public static DatabaseHelper getInstance() {
\r
28 public static void init(Context context) throws JmException {
\r
29 if (instance != null) {
\r
33 DatabaseHelper helper = new DatabaseHelper(context);
\r
34 SQLiteDatabase db = helper.getWritableDatabase();
\r
35 Dao.getInstance().start(db);
\r
37 // SQLiteDatabase db = helper.getWritableDatabase();
\r
40 // count = Dao.getInstance().count(type);
\r
41 // Dao.getInstance().start(db);
\r
42 // PatternList p = new PatternList();
\r
43 // if (count <= 0) {
\r
48 // convFlag = false;
\r
52 public DatabaseHelper(Context context) {
\r
53 // super(context, "JuggleMaster.db", null, 1);
\r
54 super(context, "JuggleMaster.db", null, 2);
\r
57 // setLangId(context);
\r
58 this.context = context;
\r
62 public void onCreate(SQLiteDatabase db) {
\r
63 db.beginTransaction();
\r
65 Dao.getInstance().init(db);
\r
66 db.setTransactionSuccessful();
\r
67 } catch (SQLException e) {
\r
68 Debug.d(this, null, e);
\r
71 db.endTransaction();
\r
76 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
\r
78 if (oldVersion == 1 && newVersion == 2) {
\r
79 // db.execSQL("ALTER TABLE pattern ADD COLUMN lang integer;");
\r
80 // db.execSQL("ALTER TABLE pattern ADD COLUMN idx integer;");
\r
82 // Dao dao = Dao.getInstance();
\r
83 // for (int i = 0; i < 7; i++){
\r
84 // JmPattern[] list = dao.get(db, "type = " + i, null);
\r
85 // int size = list.length;
\r
86 // for (int j = 0; j < size; j++){
\r
87 // JmPattern item = list[j];
\r
88 // int id = item.getId();
\r
89 // db.execSQL("UPDATE pattern set idx = " + j + " WHERE id = " +
\r
94 // int langId = getLangId();
\r
96 // // 既存のデータは、日本語のデータに変換
\r
97 // db.execSQL("UPDATE pattern set LANG = " + JAPANEASE_ID +
\r
98 // " WHERE TYPE <> 6;");
\r
99 // db.execSQL("DELETE FROM pattern WHERE NAME = '[新規作成]';");
\r
100 // // ただし、マイパターンは、システムの言語に
\r
101 // db.execSQL("UPDATE pattern set LANG = " + langId +
\r
102 // " WHERE TYPE = 6;");
\r
103 // db.execSQL("create index langindex on pattern(lang);");
\r
104 // db.execSQL("create index idxindex on pattern(idx);");
\r
108 } catch (Exception e) {
\r
109 e.printStackTrace(); // TODO
\r
113 public void convert(SQLiteDatabase db, int langId) {
\r
115 db.execSQL("ALTER TABLE pattern ADD COLUMN lang integer;");
\r
116 db.execSQL("ALTER TABLE pattern ADD COLUMN idx integer;");
\r
118 Dao dao = Dao.getInstance();
\r
119 for (int i = 0; i < 7; i++) {
\r
121 list = dao.get(db, "type = " + i, null);
\r
122 int size = list.length;
\r
123 for (int j = 0; j < size; j++) {
\r
124 JmPattern item = list[j];
\r
125 int id = item.getId();
\r
126 db.execSQL("UPDATE pattern set idx = " + j + " WHERE id = "
\r
131 // 既存のデータは、日本語のデータに変換
\r
132 db.execSQL("UPDATE pattern set LANG = " + JAPANEASE_ID
\r
133 + " WHERE TYPE <> 6;");
\r
134 db.execSQL("DELETE FROM pattern WHERE NAME = '[新規作成]';");
\r
135 // ただし、マイパターンは、システムの言語に
\r
136 db.execSQL("UPDATE pattern set LANG = " + langId
\r
137 + " WHERE TYPE = 6;");
\r
138 db.execSQL("create index langindex on pattern(lang);");
\r
139 db.execSQL("create index idxindex on pattern(idx);");
\r
140 } catch (JmException e) {
\r
141 // TODO Auto-generated catch block
\r
142 e.printStackTrace();
\r
147 public boolean getConvFlag(){
\r
151 public void setLangId(int id) {
\r
155 public int getLangId() {
\r
156 if (langId != NONE_ID) {
\r
159 String id = context.getString(com.jm.R.string.lang);
\r
160 return Integer.valueOf(id).intValue();
\r