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 ENGLISH_ID = 1;
\r
15 public final static int JAPANEASE_ID = 2;
\r
16 private static int langId = -1;
\r
17 private static boolean convFlag = false;
\r
19 private static DatabaseHelper instance = null;
\r
21 public static DatabaseHelper getInstance() {
\r
25 public static void init(Context context) throws JmException {
\r
26 if (instance != null){
\r
29 DatabaseHelper helper = new DatabaseHelper(context);
\r
30 SQLiteDatabase db = helper.getWritableDatabase();
\r
33 count = Dao.getInstance().count(type);
\r
34 Dao.getInstance().start(db);
\r
35 PatternList p = new PatternList();
\r
45 public DatabaseHelper(Context context) {
\r
46 //super(context, "JuggleMaster.db", null, 1);
\r
47 super(context, "JuggleMaster.db", null, 2);
\r
54 public void onCreate(SQLiteDatabase db) {
\r
55 db.beginTransaction();
\r
57 Dao.getInstance().init(db);
\r
58 db.setTransactionSuccessful();
\r
59 } catch (SQLException e) {
\r
60 Debug.d(this, null, e);
\r
63 db.endTransaction();
\r
68 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
\r
70 if (oldVersion == 1 && newVersion == 2) {
\r
71 db.execSQL("ALTER TABLE pattern ADD COLUMN lang integer;");
\r
72 db.execSQL("ALTER TABLE pattern ADD COLUMN idx integer;");
\r
74 Dao dao = Dao.getInstance();
\r
75 for (int i = 0; i < 7; i++){
\r
76 JmPattern[] list = dao.get(db, "type = " + i, null);
\r
77 int size = list.length;
\r
78 for (int j = 0; j < size; j++){
\r
79 JmPattern item = list[j];
\r
80 int id = item.getId();
\r
81 db.execSQL("UPDATE pattern set idx = " + j + " WHERE id = " + id + ";");
\r
85 // 既存のデータは、日本語のデータに変換
\r
86 db.execSQL("UPDATE pattern set LANG = " + JAPANEASE_ID + " WHERE TYPE <> 6;");
\r
87 db.execSQL("DELETE FROM pattern WHERE NAME = '[新規作成]';");
\r
88 // ただし、マイパターンは、システムの言語に
\r
89 db.execSQL("UPDATE pattern set LANG = " + langId + " WHERE TYPE = 6;");
\r
90 db.execSQL("create index langindex on pattern(lang);");
\r
91 db.execSQL("create index idxindex on pattern(idx);");
\r
95 } catch (Exception e) {
\r
96 e.printStackTrace(); // TODO
\r
100 public void setLangId(Context context){
\r
102 String id = context.getString(com.jm.R.string.lang);
\r
104 langId = Integer.valueOf(id).intValue();
\r
106 catch (Exception e){
\r
107 langId = ENGLISH_ID;
\r
112 public int getLangId(){
\r