public static final int setting=0x7f030004;
}
public static final class string {
- public static final int ErrorLogin=0x7f06002c;
- public static final int ErrorSystem=0x7f06002d;
+ public static final int ErrorLogin=0x7f06002d;
+ public static final int ErrorNetwork=0x7f06002c;
+ public static final int ErrorSystem=0x7f06002e;
public static final int ErrorUpdate=0x7f06002b;
public static final int MenuAdd=0x7f060020;
public static final int MenuCut=0x7f06001e;
<string name="toastSystem">予期せぬエラーが発生しました</string>
<string name="ErrorUpdate">データの更新に失敗しました</string>
+ <string name="ErrorNetwork">ネットワークエラーが発生しました</string>
<string name="ErrorLogin">ログインに失敗しました</string>
<string name="ErrorSystem">予期せぬエラーが発生しました</string>
</resources>
\ No newline at end of file
<string name="toastSystem">An unexpected error has occurred</string>
<string name="ErrorUpdate">Failed to update the data</string>
+ <string name="ErrorNetwork">A network error occurred</string>
<string name="ErrorLogin">Failed to login</string>
<string name="ErrorSystem">An unexpected error has occurred</string>
</resources>
\ No newline at end of file
import android.content.Context;
import com.yuji.ef.common.Constant;
+import com.yuji.ef.dao.BookDao;
import com.yuji.ef.dao.DatabaseHelper;
import com.yuji.ef.dao.LockDao;
+import com.yuji.ef.dao.NodeCacheDao;
import com.yuji.ef.exception.EfError;
import com.yuji.ef.exception.EfException;
import com.yuji.ef.pref.EditPrefUtil;
EvernoteUtil util = EvernoteUtil.getInstance();
util.setConfig("yuji-k64613", "TODO");
- DatabaseHelper.init(context);
+
+ DatabaseHelper.addDao(NodeCacheDao.getInstance());
+ DatabaseHelper.addDao(BookDao.getInstance());
+ DatabaseHelper.init(context, "EverFolder.db");
+ DatabaseHelper.addDao(LockDao.getInstance());
+ DatabaseHelper.init(context, "Lock.db");
// #29573
if (activity != null && activity.getClass() == EverFolderActivity.class){
import com.yuji.ef.dao.Node;
import com.yuji.ef.dao.NodeCacheDao;
import com.yuji.ef.dao.NodeDao;
+import com.yuji.ef.exception.EfException;
import com.yuji.ef.pref.EditPrefUtil;
import com.yuji.ef.service.NoteUpdatorService;
import com.yuji.ef.task.NoteUpdateTask;
private boolean lock = false;
private boolean isInit = true;
private boolean isInCycle = false;
+
+ private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+
+ if (action.equals(Constant.ACTION_MESSAGE)) {
+ String msg = intent
+ .getStringExtra(Constant.ACTION_MESSAGE_MESSAGE);
+ EfException.msg(SettingActivity.this, msg);
+ } else if (action.equals(Constant.ACTION_UPDATE)) {
+ if (isInCycle && !lock) {
+ LockDao lockDao = (LockDao) LockDao.getInstance();
+ lock = lockDao.lock(SettingActivity.this,
+ Constant.LOCK_UPDATE_NOTE);
+ setStatus();
+ }
+ }
+ }
+ };
private class NoteUpdatorReceiver extends BroadcastReceiver {
super.onCreate(savedInstanceState);
setContentView(R.layout.setting);
+ IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction(Constant.ACTION_UPDATE);
+ intentFilter.addAction(Constant.ACTION_MESSAGE);
+ registerReceiver(broadcastReceiver, intentFilter);
+
msgLayout = (LinearLayout) findViewById(R.id.settingMsgLayout);
confirmMsg = (TextView) findViewById(R.id.settingConfirmMsg);
loginButton = (Button) findViewById(R.id.settingLoginButton);
import com.yuji.ef.utility.Debug;
public class DatabaseHelper extends SQLiteOpenHelper {
- private static DatabaseHelper instance = null;
- private static List<IDao<?>> daoList = null;
-
+ private static List<DatabaseHelper> instances = new ArrayList<DatabaseHelper>();
+ private static List<List<IDao<?>>> daoLists = new ArrayList<List<IDao<?>>>();
+ private int id;
+
public static DatabaseHelper getInstance() {
- return instance;
+ return getInstance(0);
}
- public static void init(Context context) {
- if (instance != null) {
- return;
- }
- daoList = new ArrayList<IDao<?>>();
- daoList.add(NodeCacheDao.getInstance());
- daoList.add(BookDao.getInstance());
- daoList.add(LockDao.getInstance());
+ public static DatabaseHelper getInstance(int id) {
+ return instances.get(id);
+ }
- DatabaseHelper helper = new DatabaseHelper(context);
+ public static void addDao(IDao<?> dao){
+ int id = instances.size();
+ while (daoLists.size() < id + 1){
+ daoLists.add(new ArrayList<IDao<?>>());
+ }
+ List<IDao<?>> daoList = daoLists.get(id);
+ daoList.add(dao);
+ }
+
+ public static void init(Context context, String name) {
+ int id = instances.size();
+ DatabaseHelper helper = new DatabaseHelper(context, name, id);
SQLiteDatabase db = helper.getWritableDatabase();
+ instances.add(helper);
+ List<IDao<?>> daoList = daoLists.get(id);
for (IDao<?> dao : daoList) {
dao.init(db);
}
}
- public DatabaseHelper(Context context) {
- super(context, "EverFolder.db", null, 1);
- instance = this;
+ private DatabaseHelper(Context context, String name, int id) {
+// super(context, "EverFolder.db", null, 1);
+ super(context, name, null, 1);
+ this.id = id;
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
+ List<IDao<?>> daoList = daoLists.get(id);
+
for (IDao<?> dao : daoList) {
dao.onCreate(db);
dao.init(db);
}
public SQLiteDatabase getSQLiteDatabase() {
- DatabaseHelper helper = DatabaseHelper.getInstance();
+ DatabaseHelper helper = DatabaseHelper.getInstance(id);
SQLiteDatabase db = helper.getWritableDatabase();
return db;
}
private List<Lock> search(String selection, String[] selectionArgs,
String orderBy) {
- return search(DatabaseHelper.getInstance().getSQLiteDatabase(),
+ return search(getSQLiteDatabase(),
selection, selectionArgs, orderBy);
}
}
public long add(Lock lock) {
- return add(DatabaseHelper.getInstance().getSQLiteDatabase(), lock);
+ return add(getSQLiteDatabase(), lock);
}
private long add(SQLiteDatabase db, Lock lock) {
}
public long delete(String key, String clazz) {
- return delete(DatabaseHelper.getInstance().getSQLiteDatabase(), key,
+ return delete(getSQLiteDatabase(), key,
clazz);
}
public boolean isLock(Object obj, String key) {
return searchByKey(key) != null;
}
+
+ public SQLiteDatabase getSQLiteDatabase(){
+ return DatabaseHelper.getInstance(1).getSQLiteDatabase();
+ }
}
} catch (RollbackException e) {
if (e.getError() == EfError.NETWORK){
// TODO
- EfException.msg(com.yuji.ef.R.string.ErrorUpdate);
+ EfException.msg(com.yuji.ef.R.string.ErrorNetwork);
}
else {
EfException.msg(com.yuji.ef.R.string.ErrorUpdate);