From efccfaaf5e7b5f62f46dc6110cc131141df3de62 Mon Sep 17 00:00:00 2001 From: Yuji Konishi Date: Thu, 13 Sep 2012 22:14:29 +0900 Subject: [PATCH] T29440 --- .../src/com/yuji/ef/SettingActivity.java | 5 +- .../EverFolder/src/com/yuji/ef/dao/NodeDao.java | 2 + .../src/com/yuji/ef/dao/NodeDaoImpl.java | 75 ++++++++++++++-------- 3 files changed, 52 insertions(+), 30 deletions(-) diff --git a/source/workspace/EverFolder/src/com/yuji/ef/SettingActivity.java b/source/workspace/EverFolder/src/com/yuji/ef/SettingActivity.java index 69a7d9f..2d30f31 100644 --- a/source/workspace/EverFolder/src/com/yuji/ef/SettingActivity.java +++ b/source/workspace/EverFolder/src/com/yuji/ef/SettingActivity.java @@ -348,8 +348,7 @@ public class SettingActivity extends BaseActivity { return; } - if (false) { - // TODO + if (dao.isEmptyNote()) { msgLayout.setVisibility(View.VISIBLE); confirmMsg.setText(getString(R.string.settingDoUpdateMsg)); @@ -358,7 +357,7 @@ public class SettingActivity extends BaseActivity { listButton.setVisibility(View.GONE); bookButton.setEnabled(true); updateButton.setEnabled(true); - updateSpinner.setEnabled(true); + updateSpinner.setEnabled(false); return; } diff --git a/source/workspace/EverFolder/src/com/yuji/ef/dao/NodeDao.java b/source/workspace/EverFolder/src/com/yuji/ef/dao/NodeDao.java index a784dcf..4320a40 100644 --- a/source/workspace/EverFolder/src/com/yuji/ef/dao/NodeDao.java +++ b/source/workspace/EverFolder/src/com/yuji/ef/dao/NodeDao.java @@ -44,6 +44,8 @@ public interface NodeDao { public abstract boolean isEmpty(); + public abstract boolean isEmptyNote(); + public abstract long add(Node node); public abstract long addNT(Node node); diff --git a/source/workspace/EverFolder/src/com/yuji/ef/dao/NodeDaoImpl.java b/source/workspace/EverFolder/src/com/yuji/ef/dao/NodeDaoImpl.java index 3195dea..53b42d4 100644 --- a/source/workspace/EverFolder/src/com/yuji/ef/dao/NodeDaoImpl.java +++ b/source/workspace/EverFolder/src/com/yuji/ef/dao/NodeDaoImpl.java @@ -48,8 +48,7 @@ public class NodeDaoImpl implements IDao, NodeDao { + " INTEGER PRIMARY KEY AUTOINCREMENT," + "TYPE INTEGER," + "GUID TEXT," + "PARENT INTEGER," + "NAME TEXT," + "CHILDREN TEXT," + "STATUS INTEGER," + "SELECTED INTEGER," - + "FLAG INTEGER" - + ");"); + + "FLAG INTEGER" + ");"); db.execSQL("CREATE UNIQUE INDEX Node_GUID ON Node(GUID);"); } @@ -61,8 +60,8 @@ public class NodeDaoImpl implements IDao, NodeDao { @Override public void init(SQLiteDatabase db) { insertStmt = db.compileStatement("INSERT INTO Node (" + "TYPE," - + "GUID," + "PARENT," + "NAME," + "CHILDREN," + "STATUS, " + "SELECTED" - + ") VALUES (" + "?,?,?,?,?,?,?" + ");"); + + "GUID," + "PARENT," + "NAME," + "CHILDREN," + "STATUS, " + + "SELECTED" + ") VALUES (" + "?,?,?,?,?,?,?" + ");"); updateChildrenStmt = db .compileStatement("UPDATE Node SET CHILDREN = ? WHERE " + android.provider.BaseColumns._ID + " = ?"); @@ -80,9 +79,8 @@ public class NodeDaoImpl implements IDao, NodeDao { updateNoteFlagStmt = db .compileStatement("UPDATE Node SET FLAG = ? WHERE " + "TYPE = ?"); - updateFlagStmt = db - .compileStatement("UPDATE Node SET FLAG = ? WHERE " - + android.provider.BaseColumns._ID + " = ?"); + updateFlagStmt = db.compileStatement("UPDATE Node SET FLAG = ? WHERE " + + android.provider.BaseColumns._ID + " = ?"); updateParentStmt = db .compileStatement("UPDATE Node SET PARENT = ? WHERE " + android.provider.BaseColumns._ID + " = ?"); @@ -110,7 +108,7 @@ public class NodeDaoImpl implements IDao, NodeDao { @Override public List search() { return search(DatabaseHelper.getInstance().getSQLiteDatabase(), null, - null, null); + null, null, -1); } /* @@ -135,7 +133,7 @@ public class NodeDaoImpl implements IDao, NodeDao { String selection = "TYPE = ?"; String[] selectionArgs = { String.valueOf(Node.TYPE_ROOT) }; String orderBy = null; - List list = search(db, selection, selectionArgs, orderBy); + List list = search(db, selection, selectionArgs, orderBy, -1); if (list.size() <= 0) { return null; } @@ -152,7 +150,7 @@ public class NodeDaoImpl implements IDao, NodeDao { String selection = "TYPE = ?"; String[] selectionArgs = { String.valueOf(Node.TYPE_NOTE) }; String orderBy = null; - List list = search(db, selection, selectionArgs, orderBy); + List list = search(db, selection, selectionArgs, orderBy, -1); return list; } @@ -165,8 +163,9 @@ public class NodeDaoImpl implements IDao, NodeDao { public List searchBook(SQLiteDatabase db) { String selection = "TYPE = ?"; String[] selectionArgs = { String.valueOf(Node.TYPE_BOOK) }; - String orderBy = "NAME";; - List list = search(db, selection, selectionArgs, orderBy); + String orderBy = "NAME"; + ; + List list = search(db, selection, selectionArgs, orderBy, -1); return list; } @@ -181,7 +180,7 @@ public class NodeDaoImpl implements IDao, NodeDao { String selection = "TYPE = ? AND SELECTED = ?"; String[] selectionArgs = { String.valueOf(Node.TYPE_BOOK), "1" }; String orderBy = null; - List list = search(db, selection, selectionArgs, orderBy); + List list = search(db, selection, selectionArgs, orderBy, -1); return list; } @@ -197,7 +196,7 @@ public class NodeDaoImpl implements IDao, NodeDao { String[] selectionArgs = { String.valueOf(Node.TYPE_NOTE), String.valueOf(flag) }; String orderBy = null; - List list = search(db, selection, selectionArgs, orderBy); + List list = search(db, selection, selectionArgs, orderBy, -1); return list; } @@ -223,7 +222,7 @@ public class NodeDaoImpl implements IDao, NodeDao { String selection = android.provider.BaseColumns._ID + " = ?"; String[] selectionArgs = { String.valueOf(id) }; String orderBy = null; - List list = search(db, selection, selectionArgs, orderBy); + List list = search(db, selection, selectionArgs, orderBy, -1); if (list.size() <= 0) { return null; } @@ -242,7 +241,7 @@ public class NodeDaoImpl implements IDao, NodeDao { String selection = "GUID = ?"; String[] selectionArgs = { guid }; String orderBy = null; - List list = search(db, selection, selectionArgs, orderBy); + List list = search(db, selection, selectionArgs, orderBy, -1); if (list.size() <= 0) { return null; } @@ -250,16 +249,24 @@ public class NodeDaoImpl implements IDao, NodeDao { } private List search(SQLiteDatabase db, String selection, - String[] selectionArgs, String orderBy) { + String[] selectionArgs, String orderBy, int limit) { List list = new ArrayList(); Cursor cursor = null; try { NodeFactory factory = NodeFactory.getInstance(); - cursor = db.query("Node", new String[] { - android.provider.BaseColumns._ID, "TYPE", "GUID", "PARENT", - "NAME", "CHILDREN", "STATUS", "SELECTED" }, selection, - selectionArgs, null, null, orderBy); + if (limit <= 0) { + cursor = db.query("Node", new String[] { + android.provider.BaseColumns._ID, "TYPE", "GUID", + "PARENT", "NAME", "CHILDREN", "STATUS", "SELECTED" }, + selection, selectionArgs, null, null, orderBy); + } else { + cursor = db.query("Node", new String[] { + android.provider.BaseColumns._ID, "TYPE", "GUID", + "PARENT", "NAME", "CHILDREN", "STATUS", "SELECTED" }, + selection, selectionArgs, null, null, orderBy, + String.valueOf(limit)); + } cursor.moveToFirst(); int size = cursor.getCount(); for (int i = 0; i < size; i++) { @@ -307,6 +314,21 @@ public class NodeDaoImpl implements IDao, NodeDao { /* * (non-Javadoc) * + * @see com.yuji.ef.dao.NodeDao#isEmptyNote() + */ + @Override + public boolean isEmptyNote() { + String selection = "TYPE = ?"; + String[] selectionArgs = { String.valueOf(Node.TYPE_NOTE) }; + String orderBy = null; + List list = search(DatabaseHelper.getInstance() + .getSQLiteDatabase(), selection, selectionArgs, orderBy, 1); + return list.size() <= 0; + } + + /* + * (non-Javadoc) + * * @see com.yuji.ef.dao.NodeDao#add(com.yuji.ef.dao.Node) */ @Override @@ -339,17 +361,16 @@ public class NodeDaoImpl implements IDao, NodeDao { int i = 1; SQLiteStatement stmt = insertStmt; stmt.bindLong(i++, node.getType()); - if (CommonUtil.isNull(node.getGuid())){ + if (CommonUtil.isNull(node.getGuid())) { stmt.bindNull(i++); - } - else { - stmt.bindString(i++, node.getGuid()); + } else { + stmt.bindString(i++, node.getGuid()); } stmt.bindLong(i++, node.getParent()); stmt.bindString(i++, node.getName()); stmt.bindString(i++, CommonUtil.nz(node.getChildrenString())); stmt.bindLong(i++, Node.getStatusCode(node.getStatus())); - stmt.bindLong(i++, node.isSelected()? 1 : 0); + stmt.bindLong(i++, node.isSelected() ? 1 : 0); id = stmt.executeInsert(); return id; } @@ -405,7 +426,7 @@ public class NodeDaoImpl implements IDao, NodeDao { long id = -1; int i = 1; SQLiteStatement stmt = updateChildrenStmt; - //stmt.bindString(i++, node.getChildrenString()); + // stmt.bindString(i++, node.getChildrenString()); stmt.bindString(i++, children); stmt.bindLong(i++, node.getId()); id = stmt.executeInsert(); -- 2.11.0