--- /dev/null
+cd /home/yuji/prog/android-sdk-linux/platform-tools/
+./adb kill-server
+./adb start-server
}
public static final class string {
public static final int ErrorLogin=0x7f050024;
+ public static final int ErrorSystem=0x7f050025;
public static final int ErrorUpdate=0x7f050023;
public static final int MenuAdd=0x7f05001f;
public static final int MenuCut=0x7f05001d;
public static final int app_name=0x7f050000;
public static final int cancelButton=0x7f050003;
public static final int closeButton=0x7f050004;
+ public static final int dialogErrorTitle=0x7f050026;
+ public static final int dialogSystemError=0x7f050027;
public static final int mainAddMsg=0x7f050008;
public static final int mainConfirmMsg=0x7f050006;
public static final int mainConfirmTitle=0x7f050005;
public static final int settingUpdateMsg=0x7f05000f;
public static final int settingUpdateTimeTitle=0x7f05001c;
public static final int settingUpdateTitle=0x7f05001a;
+ public static final int toastSystem=0x7f050028;
public static final int yesButton=0x7f050001;
}
}
<string name="MenuRename">名称変更</string>
<string name="MenuSetting">設定</string>
- <string name="ErrorUpdate">データの更新に失敗しました</string>
- <string name="ErrorLogin">ログインに失敗しました</string>
+ <string name="dialogErrorTitle">システムエラー</string>
+ <string name="dialogSystemError">予期せぬエラーが発生しました</string>
+ <string name="toastSystem">予期せぬエラーが発生しました</string>
+ <string name="ErrorUpdate">データの更新に失敗しました</string>
+ <string name="ErrorLogin">ログインに失敗しました</string>
+ <string name="ErrorSystem">予期せぬエラーが発生しました</string>
</resources>
\ No newline at end of file
<string name="MenuDelete">Delete</string>
<string name="MenuRename">Rename</string>
<string name="MenuSetting">Setting</string>
-
- <string name="ErrorUpdate">Failed to update the data</string>
- <string name="ErrorLogin">Failed to login</string>
+
+ <string name="dialogErrorTitle">System error</string>
+ <string name="dialogSystemError">An unexpected error has occurred</string>
+ <string name="toastSystem">An unexpected error has occurred</string>
+ <string name="ErrorUpdate">Failed to update the data</string>
+ <string name="ErrorLogin">Failed to login</string>
+ <string name="ErrorSystem">An unexpected error has occurred</string>
</resources>
\ No newline at end of file
\r
import java.util.List;\r
\r
-\r
import android.os.Bundle;\r
import android.view.View;\r
import android.view.View.OnClickListener;\r
import com.yuji.ef.dao.Node;\r
import com.yuji.ef.dao.NodeCacheDao;\r
import com.yuji.ef.dao.NodeDao;\r
-import com.yuji.ef.pref.EditPrefUtil;\r
+import com.yuji.ef.exception.EfException;\r
import com.yuji.ef.utility.BaseActivity;\r
import com.yuji.ef.utility.Debug;\r
\r
dao.updateSelected(item, selected);\r
}\r
catch (Exception e){\r
- // TODO\r
- e.printStackTrace();\r
+ EfException.msg(R.string.ErrorSystem);\r
}\r
}\r
});\r
import com.yuji.ef.dao.NodeDao;
import com.yuji.ef.dao.NodeDaoImpl;
import com.yuji.ef.dao.RootNode;
+import com.yuji.ef.exception.EfError;
import com.yuji.ef.exception.EfException;
import com.yuji.ef.pref.EditPrefUtil;
import com.yuji.ef.utility.BaseActivity;
private LinearLayout buttonLayout;
private Button leftButton;
private Button rightButton;
- // private Button addButton;
- // private Button deleteButton;
private ScreenStatus status;
private NodeComparator nodeComparator = new NodeComparator();
buttonLayout = (LinearLayout) findViewById(R.id.mainButtonLayout);
leftButton = (Button) findViewById(R.id.leftButton);
rightButton = (Button) findViewById(R.id.rightButton);
- // addButton = (Button) findViewById(R.id.addButton);
- // deleteButton = (Button) findViewById(R.id.deleteButton);
msgLayout = (LinearLayout) findViewById(R.id.mainMsgLayout);
confirmMsg = (TextView) findViewById(R.id.mainConfirmMsg);
rightButtonOnClick();
}
});
- // addButton.setOnClickListener(new OnClickListener() {
- // @Override
- // public void onClick(View v) {
- // addButtonOnClick();
- // }
- // });
- // deleteButton.setOnClickListener(new OnClickListener() {
- // @Override
- // public void onClick(View v) {
- // deleteButtonOnClick();
- // }
- // });
msgEditText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
leftButton.setTextSize(fSize);
rightButton.setTextSize(fSize);
} catch (Exception e) {
- // TODO
- e.printStackTrace();
+ EfException.msg(R.string.ErrorSystem);
}
}
boolean ret = super.onCreateOptionsMenu(menu);
int index = 0;
- // TODO
menu.add(Menu.NONE, Menu.FIRST + index++, Menu.NONE,
getString(R.string.MenuCut));
menu.add(Menu.NONE, Menu.FIRST + index++, Menu.NONE,
NodeDao dao = (NodeDao) NodeCacheDao.getInstance();
top = dao.searchRoot();
if (top == null) {
- // TODO
+ EfException.msg(R.string.ErrorSystem);
+ return;
}
updateList(top);
}
for (Long id : idList) {
Node n = dao.searchById(id);
if (n == null) {
- // TODO
+ // ERROR
continue;
}
if (n instanceof DirNode) {
params.y = y;
v.setLayoutParams(params);
- // LabelIconView siv = v.getStatusImageView();
- // if (siv != null) {
- // layout.addView(siv, false);
- // }
-
layout.addView(v);
v.layout(x, y, x + v.getWidth(), y + v.getHeight());
}
}
if (isInCycle) {
-// LockDao lockDao = (LockDao) LockDao.getInstance();
-// lock = lockDao.lock(this, Constant.LOCK_UPDATE_NOTE);
if (isInit) {
status = ScreenStatus.Normal;
setStatus();
isInit = false;
} else {
- if (lock){
+ if (lock) {
updateList();
}
setStatus();
}
} else {
- // TODO
- // lock解除
+ LockDao lockDao = (LockDao) LockDao.getInstance();
+ lockDao.unlock(EverFolderActivity.this, Constant.LOCK_UPDATE_NOTE);
+ lock = false;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- // TODO sendLockResult()、「lock解除」のため、とりあえずコメント
- // NodeDao dao = (NodeDao) NodeCacheDao.getInstance();
- // if (dao.isEmpty()) {
- // finish();
- // }
isResult = true;
isInit = true;
}
isInCycle = true;
LockHandler handler = new LockHandler();
- handler.lock(this, Constant.LOCK_UPDATE_NOTE);
+ handler.lock(this, Constant.LOCK_UPDATE_NOTE, true);
lock = false;
if (isInit) {
// #29421
updateList();
}
-
- // TODO
- // NodeDao dao = (NodeDao) NodeCacheDao.getInstance();
- // if (dao.isEmpty()) {
- // if (isInit) {
- // Intent intent = new Intent(this,
- // (Class<?>) SettingActivity.class);
- // startActivityForResult(intent, 0);
- //
- // isInit = false;
- // } else {
- // finish();
- // isInit = true;
- // }
- // }
- //
- // LockDao lockDao = (LockDao) LockDao.getInstance();
- // lock = lockDao.lock(this, Constant.LOCK_UPDATE_NOTE);
- //
- // if (isInit) {
- // status = ScreenStatus.Normal;
- //
- // if (lock) {
- // updateList();
- // } else {
- // layout.removeAllViews();
- // }
- // setStatus();
- // isInit = false;
- // } else {
- // setStatus();
- // }
}
@Override
}
}
- // private void addButtonOnClick() {
- // setStatus(ScreenStatus.AddNode);
- // }
- //
- // private void deleteButtonOnClick() {
- // FolderUtil util = FolderUtil.getInstance();
- // LabelIconView target = layout.getSelectedTarget();
- // long id = target.getNodeId();
- // NodeDao dao = (NodeDao) NodeDao.getInstance();
- // Node node = dao.searchById(id);
- // if (node != null) {
- // util.deleteNode(node);
- // // TODO 三角マークも消さないといけないのでは
- // layout.removeView(target);
- // updateList();
- // setStatus();
- // }
- // }
-
private void msgOkButtonOnClick(View v) {
FolderUtil util = FolderUtil.getInstance();
LabelIconView target = layout.getSelectedTarget();
NodeDao dao = (NodeDao) NodeCacheDao.getInstance();
if (srcId < 0) {
- // TODO
+ throw new EfException(EfError.NOT_FOUND);
}
if (dstId < 0) {
- // TODO
+ throw new EfException(EfError.NOT_FOUND);
}
Node src = dao.searchById(srcId);
Node sp = dao.searchById(src.getParent());
if (sp == null) {
- // TODO
+ throw new EfException(EfError.NOT_FOUND);
}
Node dp = null;
if (src.getParent() == dst.getParent()) {
dp = dao.searchById(dst.getParent());
}
if (dp == null) {
- // TODO
+ throw new EfException(EfError.NOT_FOUND);
}
- // TODO DBへのアクセス
- // sp.remove(src.getId());
SQLiteDatabase db = DatabaseHelper.getInstance()
.getSQLiteDatabase();
db.beginTransaction();
try {
dao.removeChildrenIdNT(sp, src.getId());
if (dst instanceof DirNode) {
- // dst.add(src.getId());
dao.updateParentNT(src, dst.getId());
dao.addChildrenIdNT(dst, src.getId());
} else if (dst instanceof FileNode) {
- // dp.add(src.getId());
dao.updateParentNT(src, dp.getId());
dao.addChildrenIdNT(dp, src.getId());
}
} finally {
db.endTransaction();
}
+ } catch (EfException e) {
+ EfException.msg(R.string.ErrorSystem);
} finally {
updateList();
}
}
Node node = dao.searchById(dstId);
if (node == null) {
- // TODO エラー
+ // ERROR
return false;
}
if (!(node instanceof DirNode)) {
}
public void execute(long id) {
- NodeDao dao = (NodeDao) NodeCacheDao.getInstance();
+ try {
+ NodeDao dao = (NodeDao) NodeCacheDao.getInstance();
- Node node = dao.searchById(id);
- if (node == null) {
- // TODO
- }
- node.toggleStatus();
- Status status = node.getStatus();
+ Node node = dao.searchById(id);
+ if (node == null) {
+ throw new EfException(EfError.NOT_FOUND);
+ }
+ node.toggleStatus();
+ Status status = node.getStatus();
- dao.updateStatus(node, status);
+ dao.updateStatus(node, status);
- // removeAllNodeView();
- updateList();
+ updateList();
+ } catch (EfException e) {
+ EfException.msg(R.string.ErrorSystem);
+ }
}
public void executeView(long id) {
if (status == ScreenStatus.Normal) {
msgLayout.setVisibility(View.GONE);
- // mainMsgEditText.setText("");
boolean leftButtonFlag = true;
boolean rightButtonFlag = true;
- // boolean addButtonFlag = true;
- // boolean deleteButtonFlag = true;
if (indent <= 0) {
leftButtonFlag = false;
}
- // LabelIconView target = layout.getSelectedTarget();
- // NodeDao dao = (NodeDao) NodeDao.getInstance();
- // long id = -1;
- // Node node = null;
- // if (target != null) {
- // id = target.getNodeId();
- // node = dao.searchById(id);
- // }
- // if (target == null || node == null || !(node instanceof
- // DirNode))
- // {
- // addButtonFlag = false;
- // }
- // if (target == null || (node != null && node instanceof
- // RootNode))
- // {
- // deleteButtonFlag = false;
- // }
layout.setElabledTouchEvent(true);
leftButton.setEnabled(leftButtonFlag);
rightButton.setEnabled(rightButtonFlag);
- // addButton.setEnabled(addButtonFlag);
- // deleteButton.setEnabled(deleteButtonFlag);
} else if (status == ScreenStatus.AddNode) {
msgLayout.setVisibility(View.VISIBLE);
msgEditText.setVisibility(View.VISIBLE);
rightButton.setEnabled(false);
}
} catch (Throwable e) {
- // TODO
- e.printStackTrace();
+ EfException.msg(R.string.ErrorSystem);
}
}
this.cutTarget = cutTarget;
if (cutTarget != null){
if (cutTarget instanceof StatusIconView){
- // TODO
return;
}
}
public void setSelectedTarget(LabelIconView selectedTarget){
if (selectedTarget != null){
if (selectedTarget instanceof StatusIconView){
- // TODO
return;
}
}
public void setTarget(LabelIconView target){
if (target != null){
if (target instanceof StatusIconView){
- // TODO
return;
}
}
offsetX = x;
offsetY = y;
- // TODO
currentX = obj.getLeft();
currentY = obj.getTop();
long dst = destTarget.getNodeId();
activity.execute(src, dst);
- // TODO
setTarget(null);
destTarget = null;
import com.yuji.ef.common.Constant;
import com.yuji.ef.dao.DatabaseHelper;
+import com.yuji.ef.exception.EfError;
+import com.yuji.ef.exception.EfException;
import com.yuji.ef.pref.EditPrefUtil;
import com.yuji.ef.service.NoteUpdatorService;
import com.yuji.ef.utility.EvernoteUtil;
private static Context context;
private static boolean isInit = true;
- public static void initialize(Context applicatonContext) {
+ public static void initialize(Context applicatonContext) throws EfException {
if (!isInit) {
return;
}
DatabaseHelper.init(context);
NoteUpdatorService.init(context);
+
+ isInit = false;
} catch (Exception e) {
- // TODO
- e.printStackTrace();
+ EfException.msg(R.string.ErrorSystem);
+ throw new EfException(EfError.INIT);
}
- isInit = false;
}
public static Context getContext() {
import android.graphics.PorterDuff.Mode;
import android.graphics.Rect;
import android.view.Gravity;
-import android.view.MotionEvent;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
this.removeView(textView);
}
- // TODO
if (bmp1 != null) {
statusImageView = new StatusIconView(context, this);
statusImageView.init(0, 0, null, bmp1, null);
public void clearColorFilter() {
imageView.clearColorFilter();
}
-
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- // TODO
- return super.onTouchEvent(event);
- }
-
-
}
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;
-import android.widget.Toast;
-import com.yuji.ef.common.CommonUtil;
import com.yuji.ef.common.Constant;
import com.yuji.ef.dao.LockDao;
import com.yuji.ef.dao.Node;
@Override
public void onReceive(Context context, Intent intent) {
-// Toast toast = Toast.makeText(getApplicationContext(), "Time over!",
-// Toast.LENGTH_LONG);
-// toast.show();
+ ;
}
}
NoteUpdateTask task = new NoteUpdateTask(this, true, true, isAll);
AsyncTaskCommand command = new AsyncTaskCommand(this, task);
- // TODO
// command.setTitle(getString(R.string.updatorNoteDialogTitle));
// command.setButtonTitle(getString(R.string.cancelButton));
command.setCancelable(false);
}
public void done(int errorCode) {
-// LockDao lockDao = (LockDao) LockDao.getInstance();
-// lockDao.unlock(this, Constant.LOCK_UPDATE_NOTE);
-// lock = false;
-
lock = false;
setStatus();
}
package com.yuji.ef.common;
-import android.content.Intent;
-
public class Constant {
-/*
- public static final String PREF_USER = "USER";
- public static final String PREF_PASSWORD = "PASSWORD";
- public static final String PREF_NOTE_ITEM_TYPE = "NOTE_ITEM_TYPE";
- public static final String PREF_NOTE_ITEM_GUID = "NOTE_ITEM_GUID";
- public static final String PREF_NOTE_ITEM_TYPE_TMP = "NOTE_ITEM_TYPE_TMP";
- public static final String PREF_NOTE_ITEM_GUID_TMP = "NOTE_ITEM_GUID_TMP";
- public static final String PREF_NOTE_ITEM_GUID_TYPE_TMP = "NOTE_ITEM_GUID_TYPE_TMP";
- public static final String PREF_NOTE_ITEM_TEXT = "NOTE_ITEM_TEXT";
- public static final String PREF_NOTE_ORDER = "NOTE_ORDER";
- public static final String PREF_NOTE_ORDER_BY = "NOTE_ORDER_BY";
- public static final String PREF_AUTO_UPDATE = "AUTO_UPDATE";
- public static final String PREF_UPDATE_TIME = "UPDATE_TIME";
-
- public static final String EXTRA_GUID = "GUID";
- public static final String EXTRA_TITLE = "TITLE";
-
- public static final int NOTE_ITEM_TYPE_NONE = -1;
- public static final int NOTE_ITEM_TYPE_ALL = 0;
- public static final int NOTE_ITEM_TYPE_NOTE_BOOK = 1;
- public static final int NOTE_ITEM_TYPE_TAG = 2;
-
- public static final int NOTE_ORDER_NONE = -1;
- public static final int NOTE_ORDER_CREATE = 0;
- public static final int NOTE_ORDER_UPDATE = 1;
- public static final int NOTE_ORDER_TEXT = 2;
-
- public static final int NOTE_ORDER_BY_ASC = 0;
- public static final int NOTE_ORDER_BY_DES = 1;
-
- public static final int OFF = 0;
- public static final int ON = 1;
-
- public static final String ACTION_UPDATE = "com.yuji.ec.UPDATE";
-*/
public static final int OFF = 0;
public static final int ON = 1;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteStatement;
-import com.yuji.ef.common.CommonUtil;
import com.yuji.ef.utility.Debug;
-import com.yuji.ef.utility.FolderUtil;
public class BookDao implements IDao<Book> {
private static IDao<Book> instance = null;
db.execSQL("CREATE TABLE BOOK (" + android.provider.BaseColumns._ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT," + "TYPE INTEGER,"
+ "GUID TEXT," + "NID INTEGER," + "NAME TEXT" + ");");
-
- // TODO
- // CREATE INDEX インデックス名 ON テーブル名(カラム名1, カラム名2, ...);
}
public void init(SQLiteDatabase db) {
}
public long deleteNT(long did) {
- long id = -1; // TODO
+ long id = -1;
int i = 1;
SQLiteStatement stmt = deleteIdStmt;
private Status status = Status.CLOSE;
private Category category = Category.NONE;
- // private String notebookGuid = null;
-
public DirNode(String name, LabelIconView view) {
super(name, view);
this.category = category;
}
- // public String getNotebookGuid() {
- // return notebookGuid;
- // }
- //
- // public void setNotebookGuid(String notebookGuid) {
- // this.notebookGuid = notebookGuid;
- // }
-
@Override
public int getType() {
return CommonUtil.isNull(getGuid()) ? TYPE_DIR : TYPE_BOOK;
import java.util.Calendar;
import java.util.List;
-import com.yuji.ef.utility.Debug;
-
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteConstraintException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteStatement;
+import com.yuji.ef.utility.Debug;
+
public class LockDao implements IDao<Lock> {
private static final int DEFAULT_PERIOD = 60 * 60; // 1時間
id = stmt.executeInsert();
} catch (SQLiteConstraintException e) {
// error code 19: constraint failed
- // TODO DEBUG
List<Lock> list = this.search();
for (Lock l : list) {
Debug.d(this, l.toString());
}
public long deleteNT(String key, String clazz) {
- long id = -1; // TODO
+ long id = -1;
int i = 1;
SQLiteStatement stmt = deleteIdStmt;
}
public long deleteUpdatedNT(String key, long updated) {
- long id = -1; // TODO
+ long id = -1;
int i = 1;
SQLiteStatement stmt = deleteUpdatedStmt;
}
}
- // TODO
public void unlock(Class clazz, String key) {
try {
this.delete(key, clazz.getName());
} catch (Exception e) {
- // TODO
+ ;
}
}
try {
this.delete(key, getClazz(obj));
} catch (Exception e) {
- // TODO
+ ;
}
}
protected boolean selected = false;
public static int getStatusCode(Status status) {
- if (status == status.OPEN) {
+ if (status == Status.OPEN) {
return 1;
}
- if (status == status.CLOSE) {
+ if (status == Status.CLOSE) {
return 2;
}
return 0;
return;
}
children.add(node);
- // TODO DB
- // node.setParent(id);
}
public void remove(long node) {
return;
}
children.remove(node);
- // TODO DB
- // node.setParent(-1);
}
public LabelIconView getView() {
package com.yuji.ef.dao;
import java.util.LinkedHashMap;
-import java.util.List;
import java.util.Map;
import android.database.sqlite.SQLiteDatabase;
private static final int MAP_SIZE = 1024;
private static IDao<Node> instance = null;
- //private static NodeDao dao = (NodeDao) NodeDaoImpl.getInstance();
private static LinkedHashMap<Long, Node> map = new LinkedHashMap<Long, Node>(
MAP_SIZE, (float) 0.75, true) {
@Override
}
-// @Override
-// public void onCreate(SQLiteDatabase db) {
-// dao.onCreate(db);
-// }
-//
-// @Override
-// public void init(SQLiteDatabase db) {
-// dao.init(db);
-// }
-//
-// @Override
-// public void start(SQLiteDatabase db) {
-// dao.start(db);
-// }
-//
-// @Override
-// public void start2(SQLiteDatabase db) {
-// dao.start2(db);
-// }
-//
-// @Override
-// public List<Node> search() {
-// return dao.search();
-// }
-//
-// @Override
-// public Node searchRoot() {
-// return dao.searchRoot();
-// }
-//
-// @Override
-// public Node searchRoot(SQLiteDatabase db) {
-// return dao.searchRoot(db);
-// }
-//
-// @Override
-// public Node searchById(long id) {
-// return dao.searchById(id);
-// }
-
@Override
public Node searchById(SQLiteDatabase db, long id) {
Node n = map.get(id);
return n;
}
-// @Override
-// public Node searchByGuid(SQLiteDatabase db, String guid) {
-// return dao.searchByGuid(db, guid);
-// }
-//
-// @Override
-// public boolean isEmpty() {
-// return dao.isEmpty();
-// }
-//
-// @Override
-// public long add(Node node) {
-// return dao.add(node);
-// }
-//
-// @Override
-// public long addNT(Node node) {
-// return dao.addNT(node);
-// }
-//
-// @Override
-// public long addChildrenId(Node node, long id) {
-// return dao.addChildrenId(node, id);
-// }
-//
-// @Override
-// public long addChildrenIdNT(Node node, long id) {
-// return dao.addChildrenIdNT(node, id);
-// }
-
@Override
public long updateChildrenNT(Node node, String children) {
map.remove(node.getId());
return super.updateChildrenNT(node, children);
}
-// @Override
-// public long removeChildrenId(Node node, long id) {
-// return dao.removeChildrenId(node, id);
-// }
-
@Override
public long removeChildrenIdNT(Node node, long id) {
map.remove(node.getId());
return super.removeChildrenIdNT(node, id);
}
-// @Override
-// public long updateStatus(Node node, Status status) {
-// return dao.updateStatus(node, status);
-// }
-//
-// @Override
-// public long updateStatus(SQLiteDatabase db, Node node, Status status) {
-// return dao.updateStatus(db, node, status);
-// }
-
@Override
public long updateStatusNT(Node node, Status status) {
map.remove(node.getId());
return super.updateStatusNT(node, status);
}
-// @Override
-// public long updateName(Node node, String name) {
-// return dao.updateName(node, name);
-// }
-//
-// @Override
-// public long updateName(SQLiteDatabase db, Node node, String name) {
-// return dao.updateName(db, node, name);
-// }
-
@Override
public long updateNameNT(Node node, String name) {
map.remove(node.getId());
return super.updateNameNT(node, name);
}
-// @Override
-// public long updateParent(Node node, long parent) {
-// return dao.updateParent(node, parent);
-// }
-//
-// @Override
-// public long updateParent(SQLiteDatabase db, Node node, long parent) {
-// return dao.updateParent(db, node, parent);
-// }
-
@Override
public long updateSelectedNT(Node node, boolean isSelected) {
map.remove(node.getId());
return super.updateParentNT(node, parent);
}
-// @Override
-// public long updateChildren(Node node, String children) {
-// return dao.updateChildren(node, children);
-// }
-//
-// @Override
-// public long delete(long id) {
-// return dao.delete(id);
-// }
-//
-// @Override
-// public long delete(SQLiteDatabase db, long did) {
-// return dao.delete(db, did);
-// }
-
@Override
public long deleteNT(long did) {
map.remove(did);
return super.deleteNT(did);
}
-// @Override
-// public long delete() {
-// return dao.delete();
-// }
-//
-// @Override
-// public long delete(SQLiteDatabase db) {
-// return dao.delete(db);
-// }
-
@Override
public void deleteNT() {
map.clear();
super.deleteNT();
}
-
@Override
public void clear() {
map.clear();
cursor.moveToFirst();
int size = cursor.getCount();
for (int i = 0; i < size; i++) {
- // TODO Factory
- // Node Node = new Node(
- // cursor.getLong(0),
- // cursor.getString(1),
- // cursor.getString(2),
- // cursor.getLong(3),
- // cursor.getLong(4));
Node node = factory.create(cursor.getLong(0), cursor.getInt(1),
cursor.getString(2), cursor.getLong(3),
cursor.getString(4), cursor.getString(5),
*/
@Override
public long deleteNT(long did) {
- long id = -1; // TODO
+ long id = -1;
int i = 1;
SQLiteStatement stmt = deleteIdStmt;
switch (type){
case Node.TYPE_ROOT:
- // TODO
node = new RootNode(name, null, children, status);
break;
case Node.TYPE_BOOK:
case Node.TYPE_DIR:
- // TODO
node = new DirNode(name, null, children, status);
break;
case Node.TYPE_NOTE:
- // TODO
node = new FileNode(name, null);
break;
default:
public enum EfError {
NONE,
+ INIT,
NOT_FOUND,
NO_LOGIN,
package com.yuji.ef.exception;
-import com.yuji.ef.Initialize;
-import com.yuji.ef.common.Constant;
-
import android.content.Context;
import android.content.Intent;
-import android.os.Handler;
import android.widget.Toast;
+import com.yuji.ef.Initialize;
+import com.yuji.ef.common.Constant;
+
public class EfException extends Exception {
/**
*
import com.yuji.ef.exception.EfException;
import com.yuji.ef.pref.EditPrefUtil;
import com.yuji.ef.task.NoteUpdateTask;
-import com.yuji.ef.utility.DateUtil;
import com.yuji.ef.utility.Debug;
import com.yuji.ef.utility.EvernoteUtil;
import com.yuji.ef.utility.NetworkUtil;
public static final String ACTION = "NoteUpdatorService";
public static final String ACTION_START = "START";
- private static final int DS = 60;
private EditPrefUtil pref = new EditPrefUtil(this);
private KitchenTimerBinder binder = new KitchenTimerBinder();
private String action = null;
import java.lang.ref.WeakReference;
-import android.R;
-import android.content.Context;
-import android.content.Intent;
-
-import com.yuji.ef.Initialize;
import com.yuji.ef.SettingActivity;
import com.yuji.ef.common.Constant;
import com.yuji.ef.dao.LockDao;
import com.yuji.ef.exception.RollbackException;
import com.yuji.ef.utility.AsyncTaskIF;
import com.yuji.ef.utility.Debug;
-import com.yuji.ef.utility.EvernoteUtil;
import com.yuji.ef.utility.FolderUtil;
public class NoteUpdateTask implements AsyncTaskIF {
activity.done(errorCode);
activityRef = null;
}
-
- // if (context != null) {
- // Intent intent = new Intent(Constant.ACTION_UPDATE);
- // context.sendBroadcast(intent);
- // }
}
private SettingActivity getActivity() {
@Override
public int getStatus() {
- // TODO
+ // NOT USED
return 0;
}
}
import android.view.KeyEvent;
import android.view.Window;
import android.view.WindowManager;
+import android.widget.Toast;
import com.yuji.ef.Initialize;
+import com.yuji.ef.R;
public class BaseActivity extends Activity {
@Override
Debug.d(this, Debug.ON_CREATE);
try {
- String name = this.getLocalClassName();
+ //String name = this.getLocalClassName();
Context context = getApplicationContext();
Initialize.initialize(context);
}
if (t != null) {
Debug.d(target, null, t);
}
- // TODO
-// showDialog(getString(R.string.dialogErrorTitle),
-// getString(R.string.dialogSystemError));
+ showDialog(getString(R.string.dialogErrorTitle),
+ getString(R.string.dialogSystemError));
}
public void terminate(Throwable t) {
if (t != null) {
Debug.d(this, null, t);
- // TODO
-// Toast.makeText(
-// this,
-// getString(R.string.toastSystem) + ":"
-// + t.getLocalizedMessage(), Toast.LENGTH_LONG);
+ Toast.makeText(
+ this,
+ getString(R.string.toastSystem) + ":"
+ + t.getLocalizedMessage(), Toast.LENGTH_LONG).show();
}
moveTaskToBack(true);
}
Log.d(FILTER, text, t);
}
}
-
-// public static void t(Context context, String msg){
-// if (!Log.isLoggable(FILTER, Log.DEBUG)){
-// return;
-// }
-// if (context == null){
-// return;
-// }
-// Intent intent = new Intent(DelayReceiver.DEBUG);
-// intent.putExtra("TEXT", msg);
-// context.sendBroadcast(intent);
-// }
-//
-// public static void l(String msg){
-// if (!Log.isLoggable(FILTER, Log.DEBUG)){
-// return;
-// }
-// Calendar cal = Calendar.getInstance();
-// Date date = cal.getTime();
-// int ymd = DateUtil.getYmd(date);
-// int hm = DateUtil.getHm(date);
-// com.td.db.Log log = new com.td.db.Log(ymd, hm, msg);
-//
-// LogDao dao = LogDao.getInstance();
-// dao.add(log);
-// }
-
+
public static boolean isDebug(){
return Log.isLoggable(FILTER, Log.DEBUG);
}
}
public void viewNote(Context context, String noteGuid) {
- //String noteGuid = "8323550a-8e99-4100-b638-d4f07fd1c815";
- //boolean hideTitleBar = true;
boolean hideTitleBar = false;
Intent intent = new Intent();
try {
context.startActivity(intent);
} catch (android.content.ActivityNotFoundException ex) {
- // TODO
+ ;
}
}
try {
noteStore = session.createNoteStore();
} catch (TTransportException e) {
- // TODO
authenticationToken = null;
}
}
}
}
} catch (EDAMUserException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Debug.d(this, null, e);
} catch (EDAMSystemException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Debug.d(this, null, e);
} catch (EDAMNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Debug.d(this, null, e);
} catch (TException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Debug.d(this, null, e);
}
}
try {
newNote = noteStore.createNote(authToken, note);
} catch (EDAMUserException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Debug.d(this, null, e);
} catch (EDAMSystemException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Debug.d(this, null, e);
} catch (EDAMNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Debug.d(this, null, e);
} catch (TException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Debug.d(this, null, e);
}
return newNote;
}
Notebook memoSchedule = createHelpBook(token, "スケジュール");
} catch (EDAMUserException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Debug.d(this, null, e);
} catch (EDAMSystemException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Debug.d(this, null, e);
} catch (TException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Debug.d(this, null, e);
} catch (EDAMNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Debug.d(this, null, e);
}
}
public Note createHelpNote(String toke, Notebook notebook, String name) throws EDAMUserException, EDAMSystemException, EDAMNotFoundException, TException{
return createNote(notebook, name);
}
-
- // public String getErrorMessage(Context context, Error code) {
- // if (code.equals(Error.NONE)) {
- // return "";
- // }
- // if (code.equals(Error.CONNECT)) {
- // return context.getString(R.string.toastConnect);
- // }
- // if (code.equals(Error.INVALID_AUTH)) {
- // return context.getString(R.string.toastInvalidAuth);
- // }
- // if (code.equals(Error.NOT_FOUND)) {
- // return context.getString(R.string.toastNoteDoesNotExist);
- // }
- // return context.getString(R.string.toastEvernoteSystem);
- // }
- //
- // public static com.yuji.ec.db.Note toNote(Note n, String text) {
- // com.yuji.ec.db.Note note = new com.yuji.ec.db.Note(n.getGuid(), text,
- // n.getCreated(), n.getUpdated());
- // return note;
- // }
- //
- // public List<com.yuji.ec.db.Note> getNoteContentList(List<NoteList>
- // noteListList) {
- // List<com.yuji.ec.db.Note> list = new ArrayList<com.yuji.ec.db.Note>();
- // for (NoteList noteList : noteListList){
- // List<com.yuji.ec.db.Note> l = getNoteContentList(noteList);
- // if (l == null){
- // return null;
- // }
- // list.addAll(l);
- // }
- // return list;
- // }
- //
- // public List<com.yuji.ec.db.Note> getNoteContentList(NoteList noteList) {
- // errorCode = Error.OTHER;
- //
- // List<com.yuji.ec.db.Note> list = new ArrayList<com.yuji.ec.db.Note>();
- // HtmlParser parser = new HtmlParser();
- //
- // try {
- // List<Note> notes = noteList.getNotes();
- // int s = noteList.getNotesSize();
- // System.out.println("" + s);
- // for (Note n : notes) {
- // String guid = n.getGuid();
- // Note nc = getNote(guid);
- // String content = nc.getContent();
- // if (!parser.parse(content)){
- // return null;
- // }
- // String text = parser.getText();
- // com.yuji.ec.db.Note note = toNote(nc, text);
- // list.add(note);
- // }
- // notes = noteList.getNotes();
- // s = noteList.getNotesSize();
- // errorCode = Error.NONE;
- // } catch (EDAMNotFoundException e) {
- // errorCode = Error.NOT_FOUND;
- // return null;
- // }
- // return list;
- // }
- //
- // public List<INoteItem> toNoteItemFromNoteBook(List<Notebook> noteList) {
- // List<INoteItem> list = new ArrayList<INoteItem>();
- // for (Notebook notebook : noteList) {
- // com.yuji.ec.db.Note item = new com.yuji.ec.db.Note(
- // notebook.getGuid(), notebook.getName(), -1, -1);
- // list.add(item);
- // }
- // return list;
- // }
- //
- // public List<INoteItem> toNoteItemFromTag(List<Tag> tagList) {
- // List<INoteItem> list = new ArrayList<INoteItem>();
- // for (Tag tag : tagList) {
- // com.yuji.ec.db.Note item = new com.yuji.ec.db.Note(tag.getGuid(),
- // tag.getName(), -1, -1);
- // list.add(item);
- // }
- // return list;
- // }
-
}
\ No newline at end of file
import java.util.ArrayList;
import java.util.List;
-import org.apache.thrift.TException;
-
import android.database.sqlite.SQLiteDatabase;
-import com.evernote.edam.error.EDAMNotFoundException;
-import com.evernote.edam.error.EDAMSystemException;
-import com.evernote.edam.error.EDAMUserException;
import com.evernote.edam.notestore.NoteList;
import com.evernote.edam.type.Note;
import com.evernote.edam.type.Notebook;
}
- public void updateNotebook(SQLiteDatabase db, List<Long> removeList) {
+ public void updateNotebook(SQLiteDatabase db, List<Long> removeList) throws RollbackException {
List<Notebook> noteBookList = util.getNoteBookList();
-
+ if (noteBookList == null){
+ throw new RollbackException(EfError.SYSTEM);
+ }
+
long id;
Node top = nodeDao.searchRoot(db);
// 削除
List<Node> list = nodeDao.searchBook(db);
+ if (list == null){
+ throw new RollbackException(EfError.SYSTEM);
+ }
for (Node node : list) {
boolean isFound = false;
for (Notebook book : noteBookList) {
public void updateNote(SQLiteDatabase db) throws RollbackException {
List<Node> list = nodeDao.searchSelectedBook(db);
+ if (list == null){
+ throw new RollbackException(EfError.SYSTEM);
+ }
for (Node node : list) {
String guid = node.getGuid();
List<NoteList> noteListList = util.getNoteListByNotebook(guid);
+ if (noteListList == null){
+ throw new RollbackException(EfError.SYSTEM);
+ }
updateNote(db, noteListList);
}
}
}
}
- private void deleteNode(SQLiteDatabase db) {
+ private void deleteNode(SQLiteDatabase db) throws RollbackException {
List<Node> list = nodeDao.searchNoteByFlag(db, 0);
+ if (list == null){
+ throw new RollbackException(EfError.SYSTEM);
+ }
for (Node node : list) {
nodeDao.deleteNT(node.getId());
long pid = node.getParent();
db.setTransactionSuccessful();
nodeDao.clear();
+ }
+ catch (RuntimeException e){
+ throw e;
} finally {
db.endTransaction();
}
import com.yuji.ef.dao.LockDao;
public class LockHandler {
- private LockListener target;
+ private final static int N = 64;
private LockDao dao = (LockDao) LockDao.getInstance();
- public void lock(final LockListener target, final String key) {
- this.target = target;
-
+ public void lock(final LockListener target, final String key,
+ final boolean wait) {
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
target.sendLockResult(msg.what != 0);
Thread t = new Thread(new Runnable() {
@Override
public void run() {
- boolean lock = dao.lock(target, key);
-
- handler.sendEmptyMessage(lock? 1 : 0);
+ int n = 1;
+ while (true) {
+ boolean lock = dao.lock(target, key);
+
+ if (wait) {
+ if (!lock) {
+ try {
+ Thread.sleep(n * 1000);
+ } catch (InterruptedException e) {
+ ;
+ }
+ if (n < N){
+ n *= 2;
+ }
+ continue;
+ }
+ }
+ handler.sendEmptyMessage(lock ? 1 : 0);
+ break;
+ }
}
});
t.start();