getTextValue(dwellSeekBar.getProgress()),\r
motion);\r
try {\r
+ Dao dao = Dao.getInstance();\r
if (mode == NEW){\r
- Dao.getInstance().add(jp); \r
+ int m = dao.max(type);\r
+ dao.add(jp, m + 1); \r
}\r
else {\r
- Dao.getInstance().set(jp);\r
+ dao.set(jp);\r
}\r
Resource.speed = getTextValue(speedSeekBar.getProgress());\r
}\r
// private List patternList;\r
private Vector<JmPattern> patterns;\r
// }\r
- \r
+ private int idx = -1;\r
\r
public PatternList() {\r
\r
setPackage03();\r
setPackage04();\r
setPackage05();\r
+ setPackage06();\r
break;\r
default:\r
- setPackage00En();\r
+ setPackage00En(); \r
setPackage01En();\r
+ setPackage06En();\r
break;\r
}\r
}\r
\r
public void update() throws JmException {\r
- int type = 6;\r
- int count = count(type);\r
- \r
- if (count <= 0){\r
- DatabaseHelper helper = DatabaseHelper.getInstance();\r
- switch (helper.getLangId()){\r
- case DatabaseHelper.JAPANEASE_ID:\r
- setPackage06();\r
- break;\r
- default:\r
- setPackage06En();\r
- break;\r
- }\r
+ DatabaseHelper helper = DatabaseHelper.getInstance();\r
+ switch (helper.getLangId()) {\r
+ case DatabaseHelper.JAPANEASE_ID:\r
+ setPackage06();\r
+ break;\r
+ default:\r
+ setPackage06En();\r
+ break;\r
}\r
}\r
\r
return patterns.size();\r
}\r
\r
+ private void clearIndex(){\r
+ idx = 0;\r
+ }\r
+ \r
private void add(JmPattern jp) throws JmException {\r
if (jp.getSiteSwap() == null) return;\r
// edit {\r
// patternList.append(jp.getName(), null);\r
// }\r
// patterns.addElement(jp);\r
- Dao.getInstance().add(jp);\r
+ Dao.getInstance().add(jp, idx++);\r
// }\r
}\r
\r
public static final byte[][] columns = new byte[][] {c,f,f,c};\r
\r
public void setPackage00() throws JmException {\r
+ clearIndex();\r
// edit {\r
int type = 0;\r
// }\r
\r
\r
public void setPackage01() throws JmException {\r
+ clearIndex();\r
// edit {\r
int type = 1;\r
// }\r
}\r
\r
public void setPackage02() throws JmException {\r
+ clearIndex();\r
// edit {\r
int type = 2;\r
// }\r
}\r
\r
public void setPackage03() throws JmException {\r
+ clearIndex();\r
// edit {\r
int type = 3;\r
// }\r
}\r
\r
public void setPackage04() throws JmException {\r
+ clearIndex();\r
// edit {\r
int type = 4;\r
// }\r
}\r
\r
public void setPackage05() throws JmException {\r
+ clearIndex();\r
// edit {\r
int type = 5;\r
// }\r
}\r
\r
public void setPackage06() throws JmException {\r
+ clearIndex();\r
int type = 6;\r
add(new JmPattern(type, "[新規作成]", "1"));\r
}\r
\r
public void setPackage00En() throws JmException {\r
+ clearIndex();\r
int type = 0;\r
add(new JmPattern(type, "Cascade", "3"));\r
add(new JmPattern(type, "フラッシュ", "333355500", 30, 50));\r
}\r
\r
public void setPackage01En() throws JmException {\r
+ clearIndex();\r
int type = 1;\r
\r
add(new JmPattern(type, "531"));\r
}\r
\r
public void setPackage06En() throws JmException {\r
+ clearIndex();\r
int type = 6;\r
add(new JmPattern(type, "[Create]", "1"));\r
}\r
+ "dwell integer, "\r
+ "name integer, "\r
+ "motion text,"\r
- + "lang integer);"\r
+ + "lang integer,"\r
+ + "idx integer);"\r
);\r
start(db);\r
}\r
public void start(SQLiteDatabase db){\r
insertStmt = db.compileStatement(\r
"insert into pattern ("\r
- + "type, siteswap, height, dwell, name, motion, lang"\r
+ + "type, siteswap, height, dwell, name, motion, lang, idx"\r
+ ") values ("\r
- + "?, ?, ?, ?, ?, ?, ?"\r
+ + "?, ?, ?, ?, ?, ?, ?, ?"\r
+ ");"); \r
updateStmt = db.compileStatement(\r
"update pattern set "\r
"delete from pattern where id = ? and lang = ?;");\r
}\r
\r
- public void add(JmPattern jp) throws JmException{\r
+ public void add(JmPattern jp, int index) throws JmException{\r
DatabaseHelper helper = DatabaseHelper.getInstance();\r
SQLiteDatabase db = helper.getWritableDatabase();\r
db.beginTransaction();\r
stmt.bindString(i++, jp.getName());\r
stmt.bindString(i++, jp.motionToString());\r
stmt.bindLong(i++, helper.getLangId());\r
+ stmt.bindLong(i++, index);\r
stmt.executeInsert();\r
db.setTransactionSuccessful();\r
} catch (SQLException e){\r
try {\r
DatabaseHelper helper = DatabaseHelper.getInstance();\r
SQLiteDatabase db = helper.getReadableDatabase();\r
- String selection = "lang = " + helper.getLangId() + " and type = " + type;\r
- Cursor c = db.query(\r
- "pattern",\r
- new String[] {\r
- "id",\r
- "type",\r
- "siteswap",\r
- "height",\r
- "dwell",\r
- "name",\r
- "motion"},\r
- selection, null, null, null, null);\r
- c.moveToFirst();\r
- list = new JmPattern[c.getCount()];\r
- for (int i = 0; i < list.length; i++) {\r
- JmPattern jp = new JmPattern(\r
- c.getInt(0), // id\r
- c.getInt(1), // type\r
- c.getString(5), // name\r
- c.getString(2), // siteswap\r
- c.getInt(3), // height\r
- c.getInt(4), // dwell\r
- JmPattern.getMotion(c.getString(6))); // motions\r
- list[i] = jp;\r
- c.moveToNext();\r
- }\r
- c.close();\r
+ list = get(db, type);\r
} catch (SQLException e){\r
throw new JmException(e);\r
}\r
return list;\r
}\r
+\r
+ public JmPattern[] get(SQLiteDatabase db, int type) throws JmException{\r
+ DatabaseHelper helper = DatabaseHelper.getInstance();\r
+ JmPattern[] list = null;\r
+ String selection = "lang = " + helper.getLangId() + " and type = " + type;\r
+ String orderBy = "idx";\r
+ Cursor c = db.query(\r
+ "pattern",\r
+ new String[] {\r
+ "id",\r
+ "type",\r
+ "siteswap",\r
+ "height",\r
+ "dwell",\r
+ "name",\r
+ "motion"},\r
+ selection, null, null, null, orderBy);\r
+ c.moveToFirst();\r
+ list = new JmPattern[c.getCount()];\r
+ for (int i = 0; i < list.length; i++) {\r
+ JmPattern jp = new JmPattern(\r
+ c.getInt(0), // id\r
+ c.getInt(1), // type\r
+ c.getString(5), // name\r
+ c.getString(2), // siteswap\r
+ c.getInt(3), // height\r
+ c.getInt(4), // dwell\r
+ JmPattern.getMotion(c.getString(6))); // motions\r
+ list[i] = jp;\r
+ c.moveToNext();\r
+ }\r
+ c.close();\r
+ return list;\r
+ }\r
\r
public JmPattern[] getFromId(int id) throws JmException{\r
JmPattern[] list = null;\r
return list;\r
}\r
\r
+ public int max(int type) throws JmException{\r
+ int m = -1;\r
+ try {\r
+ DatabaseHelper helper = DatabaseHelper.getInstance();\r
+ SQLiteDatabase db = helper.getReadableDatabase();\r
+ String sql = "select max(idx) from pattern where type = " + type + " and lang = " + helper.getLangId();\r
+ Cursor c = db.rawQuery(sql, null);\r
+ c.moveToFirst();\r
+ m = c.getInt(0);\r
+ c.close();\r
+ } catch (SQLException e){\r
+ throw new JmException(e);\r
+ }\r
+ return m;\r
+ }\r
+ \r
public int count() throws JmException{\r
int count = -1;\r
try {\r
import android.database.sqlite.SQLiteDatabase;\r
import android.database.sqlite.SQLiteOpenHelper;\r
\r
+import com.jm.JmPattern;\r
import com.jm.PatternList;\r
import com.jm.utility.Debug;\r
import com.jm.utility.JmException;\r
public final static int ENGLISH_ID = 1;\r
public final static int JAPANEASE_ID = 2;\r
private static int langId = -1;\r
+ private static boolean type6Flag = false;\r
+ private static boolean convFlag = false;\r
\r
private static DatabaseHelper instance = null;\r
-\r
+ \r
public static DatabaseHelper getInstance() {\r
return instance;\r
}\r
if (count <= 0) {\r
p.create();\r
}\r
- p.update();\r
+ if (type6Flag){\r
+ p.update();\r
+ type6Flag = false;\r
+ }\r
+ \r
+ if (convFlag){\r
+ conv(context);\r
+ convFlag = false;\r
+ }\r
}\r
\r
+ private static void conv(Context context) {\r
+ ;\r
+ }\r
+ \r
public DatabaseHelper(Context context) {\r
//super(context, "JuggleMaster.db", null, 1);\r
super(context, "JuggleMaster.db", null, 2);\r
try {\r
if (oldVersion == 1 && newVersion == 2) {\r
db.execSQL("ALTER TABLE pattern ADD COLUMN lang integer;");\r
+ db.execSQL("ALTER TABLE pattern ADD COLUMN idx integer;");\r
+ \r
+ Dao dao = Dao.getInstance();\r
+ for (int i = 0; i < 7; i++){\r
+ JmPattern[] list = dao.get(db, i);\r
+ int size = list.length;\r
+ for (int j = 0; j < size; j++){\r
+ JmPattern item = list[j];\r
+ int id = item.getId();\r
+ db.execSQL("UPDATE pattern set idx = " + i + " WHERE ID = " + id + ";");\r
+ }\r
+ }\r
+ \r
// 既存のデータは、日本語のデータに変換\r
db.execSQL("UPDATE pattern set LANG = " + JAPANEASE_ID + " WHERE TYPE <> 6;");\r
// ただし、マイパターンは、システムの言語に\r
+ if (langId != JAPANEASE_ID){\r
+ type6Flag = true;\r
+ }\r
db.execSQL("UPDATE pattern set LANG = " + langId + " WHERE TYPE = 6;");\r
db.execSQL("create index langindex on pattern(lang);");\r
+ db.execSQL("create index langindex on pattern(idx);");\r
+ \r
+ convFlag = true;\r
}\r
} catch (Exception e) {\r
e.printStackTrace(); // TODO\r