Commit f175c17c by Kim Peace

Merge branch 'features/abcomm_sp6' into 'features/1.3.100'

Features/abcomm sp6

See merge request !133
parents 1a198557 d2806542
...@@ -111,18 +111,6 @@ public class ABVDataOpenHelper { ...@@ -111,18 +111,6 @@ public class ABVDataOpenHelper {
iTableScripts.add(new ROperationGroupMasterOperation()); iTableScripts.add(new ROperationGroupMasterOperation());
iTableScripts.add(new TTaskReportApproval()); iTableScripts.add(new TTaskReportApproval());
//ABCOMM関連テーブル
iTableScripts.add(new MChatGroup());
iTableScripts.add(new MShopMember());
iTableScripts.add(new TChatRoom());
iTableScripts.add(new TChatMessage());
iTableScripts.add(new TCollaboration());
iTableScripts.add(new TCollaborationDetail());
iTableScripts.add(new TArchive());
iTableScripts.add(new RShopMemberGroup());
iTableScripts.add(new RChatRoomShopMember());
iTableScripts.add(new RCollaborationMember());
return iTableScripts; return iTableScripts;
} }
......
package jp.agentec.abook.abv.bl.data;
import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase;
/**
* DBへの接続を管理するクラス
*
* ActivityのonCreate時に必ず、以下の手順で呼び出すこと。
* もしくはInitilizerの中で行っても良い。
*
* DBConnector conn = DBConnector.getInstance();
* SQLiteOpenHelper sqlLiteOpenHelper = new ...;
* conn.setSqlLiteOpenHelper(sqlLiteOpenHelper);
* conn.init();
*
* @author tsukada
*
*/
public class CommunicationDBConnector {
private static volatile CommunicationDBConnector dbConnector = null;
public static final String DatabaseName = "ABVJE_COMM";
public static final int DatabaseVersion = DatabaseVersions.Ver1_3_000;
protected SQLiteDatabase db = null;
private jp.agentec.abook.abv.bl.common.db.SQLiteOpenHelper sqlLiteOpenHelper = null;
public void setSqlLiteOpenHelper(jp.agentec.abook.abv.bl.common.db.SQLiteOpenHelper sqlLiteOpenHelper) {
this.sqlLiteOpenHelper = sqlLiteOpenHelper;
}
public static CommunicationDBConnector getInstance() {
if (dbConnector == null) {
synchronized (CommunicationDBConnector.class) {
if (dbConnector == null) {
dbConnector = new CommunicationDBConnector();
}
}
}
return dbConnector;
}
public SQLiteDatabase getDatabase() {
if (!isOpen()) {
db = sqlLiteOpenHelper.openDatabase();
}
return db;
}
/**
* データベースコネクションがオープンされているか確認します。
* @return コネクションがオープンされているとtrueを返します。
* @since 1.0.0
*/
public synchronized boolean isOpen() {
return db != null && db.isOpen();
}
}
package jp.agentec.abook.abv.bl.data;
import java.util.ArrayList;
import java.util.List;
import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase;
import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.data.tables.LContentObjectLog;
import jp.agentec.abook.abv.bl.data.tables.LContentPageReadingLog;
import jp.agentec.abook.abv.bl.data.tables.LContentReadingLog;
import jp.agentec.abook.abv.bl.data.tables.MAcms;
import jp.agentec.abook.abv.bl.data.tables.MAppConfig;
import jp.agentec.abook.abv.bl.data.tables.MCategory;
import jp.agentec.abook.abv.bl.data.tables.MChatGroup;
import jp.agentec.abook.abv.bl.data.tables.MGroup;
import jp.agentec.abook.abv.bl.data.tables.MMemberInfo;
import jp.agentec.abook.abv.bl.data.tables.MOperationGroupMaster;
import jp.agentec.abook.abv.bl.data.tables.MPasswordLockInfo;
import jp.agentec.abook.abv.bl.data.tables.MServiceOption;
import jp.agentec.abook.abv.bl.data.tables.MShopMember;
import jp.agentec.abook.abv.bl.data.tables.MWorkerGroup;
import jp.agentec.abook.abv.bl.data.tables.RChatRoomShopMember;
import jp.agentec.abook.abv.bl.data.tables.RCollaborationMember;
import jp.agentec.abook.abv.bl.data.tables.RContentCategory;
import jp.agentec.abook.abv.bl.data.tables.RContentGroup;
import jp.agentec.abook.abv.bl.data.tables.ROperationContent;
import jp.agentec.abook.abv.bl.data.tables.ROperationGroupMasterOperation;
import jp.agentec.abook.abv.bl.data.tables.RShopMemberGroup;
import jp.agentec.abook.abv.bl.data.tables.RTaskWorkerGroup;
import jp.agentec.abook.abv.bl.data.tables.SQLiteTableScript;
import jp.agentec.abook.abv.bl.data.tables.TArchive;
import jp.agentec.abook.abv.bl.data.tables.TChatMessage;
import jp.agentec.abook.abv.bl.data.tables.TChatRoom;
import jp.agentec.abook.abv.bl.data.tables.TCollaboration;
import jp.agentec.abook.abv.bl.data.tables.TCollaborationDetail;
import jp.agentec.abook.abv.bl.data.tables.TContent;
import jp.agentec.abook.abv.bl.data.tables.TContentBookmark;
import jp.agentec.abook.abv.bl.data.tables.TContentDownloadQueue;
import jp.agentec.abook.abv.bl.data.tables.TContentMarking;
import jp.agentec.abook.abv.bl.data.tables.TContentMemo;
import jp.agentec.abook.abv.bl.data.tables.TContentOldPdf;
import jp.agentec.abook.abv.bl.data.tables.TContentPage;
import jp.agentec.abook.abv.bl.data.tables.TContentResource;
import jp.agentec.abook.abv.bl.data.tables.TContentServerSearched;
import jp.agentec.abook.abv.bl.data.tables.TContentTag;
import jp.agentec.abook.abv.bl.data.tables.TEnquete;
import jp.agentec.abook.abv.bl.data.tables.TMarkingSetting;
import jp.agentec.abook.abv.bl.data.tables.TOperation;
import jp.agentec.abook.abv.bl.data.tables.TPushMessage;
import jp.agentec.abook.abv.bl.data.tables.TTask;
import jp.agentec.abook.abv.bl.data.tables.TTaskReport;
import jp.agentec.abook.abv.bl.data.tables.TTaskReportApproval;
import jp.agentec.abook.abv.bl.data.tables.TTaskReportItems;
import jp.agentec.abook.abv.bl.data.tables.TTaskReportSend;
import jp.agentec.adf.util.StringUtil;
public class CommunicationDataOpenHelper {
private Throwable lastError = null;
private boolean createFailed = false;
private static final String TAG = "DATA";
public Throwable getLastError() {
return lastError;
}
public boolean isCreated() {
return !createFailed;
}
private List<SQLiteTableScript> getTableScripts() {
List<SQLiteTableScript> iTableScripts = new ArrayList<SQLiteTableScript>();
//ABCOMM関連テーブル
iTableScripts.add(new MChatGroup());
iTableScripts.add(new MShopMember());
iTableScripts.add(new TChatRoom());
iTableScripts.add(new TChatMessage());
iTableScripts.add(new TCollaboration());
iTableScripts.add(new TCollaborationDetail());
iTableScripts.add(new TArchive());
iTableScripts.add(new RShopMemberGroup());
iTableScripts.add(new RChatRoomShopMember());
iTableScripts.add(new RCollaborationMember());
return iTableScripts;
}
public void onCreate(SQLiteDatabase db) {
Logger.i(TAG, "create database version " + db.getVersion());
List<SQLiteTableScript> iTableScripts = getTableScripts();
try {
List<String> ddl;
db.beginTransaction();
for (SQLiteTableScript iTableScript : iTableScripts) {
ddl = iTableScript.getCreateScript(db.getVersion());
for (String sql : ddl) {
if (!StringUtil.isNullOrWhiteSpace(sql)) {
Logger.d(TAG, sql);
db.execSQL(sql);
}
}
}
db.setTransactionSuccessful(); // commit
createFailed = false;
} catch (Exception e) {
lastError = e;
createFailed = true;
} finally {
db.endTransaction();
}
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Logger.i(TAG, String.format("upgrade database to version %d from version : %d", newVersion, oldVersion));
List<SQLiteTableScript> iTableScripts = getTableScripts();
try {
List<String> ddl;
List<String> dml;
db.beginTransaction();
for (SQLiteTableScript iTableScript : iTableScripts) {
ddl = iTableScript.getUpgradeScript(oldVersion, newVersion);
if (ddl != null) {
for (String sql : ddl) {
if (!StringUtil.isNullOrWhiteSpace(sql)) {
Logger.d(TAG, sql);
db.execSQL(sql);
}
}
}
dml = iTableScript.getMigrationScript(db, oldVersion, newVersion, null);
if (dml != null) {
for (String sql : dml) {
if (!StringUtil.isNullOrWhiteSpace(sql)) {
Logger.d(TAG, sql);
db.execSQL(sql);
}
}
}
}
db.setTransactionSuccessful(); // commit
createFailed = false;
} catch (Exception e) {
Logger.e(TAG, e);
lastError = e;
createFailed = true;
} finally {
db.endTransaction();
}
}
}
...@@ -11,5 +11,7 @@ public class DatabaseVersions { ...@@ -11,5 +11,7 @@ public class DatabaseVersions {
//チャット機能追加(1.2.360障害対応。) //チャット機能追加(1.2.360障害対応。)
public static final int Ver1_2_362 = 24; public static final int Ver1_2_362 = 24;
// コミュニケーション(1.3.000)
public static final int Ver1_3_000 = 30;
} }
...@@ -11,7 +11,7 @@ import jp.agentec.abook.abv.bl.dto.CollaborationDto; ...@@ -11,7 +11,7 @@ import jp.agentec.abook.abv.bl.dto.CollaborationDto;
import jp.agentec.adf.util.CollectionUtil; import jp.agentec.adf.util.CollectionUtil;
import jp.agentec.adf.util.StringUtil; import jp.agentec.adf.util.StringUtil;
public class ArchiveDao extends AbstractDao { public class ArchiveDao extends AbstractCommunicationDao {
/** /**
* {@link ArchiveDao} のインスタンスを初期化します。 * {@link ArchiveDao} のインスタンスを初期化します。
......
...@@ -10,7 +10,7 @@ import jp.agentec.abook.abv.bl.dto.GroupDto; ...@@ -10,7 +10,7 @@ import jp.agentec.abook.abv.bl.dto.GroupDto;
import jp.agentec.adf.util.CollectionUtil; import jp.agentec.adf.util.CollectionUtil;
import jp.agentec.adf.util.StringUtil; import jp.agentec.adf.util.StringUtil;
public class ChatGroupDao extends AbstractDao { public class ChatGroupDao extends AbstractCommunicationDao {
private static final String TAG = "ChatGroupDao"; private static final String TAG = "ChatGroupDao";
/*package*/ ChatGroupDao() { /*package*/ ChatGroupDao() {
......
...@@ -9,7 +9,7 @@ import jp.agentec.abook.abv.bl.dto.ChatMessageDto; ...@@ -9,7 +9,7 @@ import jp.agentec.abook.abv.bl.dto.ChatMessageDto;
import jp.agentec.abook.abv.bl.dto.ChatRoomDto; import jp.agentec.abook.abv.bl.dto.ChatRoomDto;
import jp.agentec.adf.util.StringUtil; import jp.agentec.adf.util.StringUtil;
public class ChatMessageDao extends AbstractDao { public class ChatMessageDao extends AbstractCommunicationDao {
/** /**
* {@link ChatMessageDao} のインスタンスを初期化します。 * {@link ChatMessageDao} のインスタンスを初期化します。
......
...@@ -11,7 +11,7 @@ import jp.agentec.abook.abv.bl.dto.ShopMemberDto; ...@@ -11,7 +11,7 @@ import jp.agentec.abook.abv.bl.dto.ShopMemberDto;
import jp.agentec.adf.util.CollectionUtil; import jp.agentec.adf.util.CollectionUtil;
import jp.agentec.adf.util.StringUtil; import jp.agentec.adf.util.StringUtil;
public class ChatRoomDao extends AbstractDao { public class ChatRoomDao extends AbstractCommunicationDao {
/** /**
* {@link ChatRoomDao} のインスタンスを初期化します。 * {@link ChatRoomDao} のインスタンスを初期化します。
...@@ -187,6 +187,7 @@ public class ChatRoomDao extends AbstractDao { ...@@ -187,6 +187,7 @@ public class ChatRoomDao extends AbstractDao {
} }
public void insertChatRoomUsers(List<Integer> attendUsers, Integer chatRoomId) { public void insertChatRoomUsers(List<Integer> attendUsers, Integer chatRoomId) {
update("delete from r_chat_room_shop_member where chat_room_id = ?", new Integer[]{chatRoomId});
for (Integer attendUserId : attendUsers) { for (Integer attendUserId : attendUsers) {
insert("insert or replace into r_chat_room_shop_member (chat_room_id, shop_member_id) values (?,?)", new Integer[]{chatRoomId, attendUserId}); insert("insert or replace into r_chat_room_shop_member (chat_room_id, shop_member_id) values (?,?)", new Integer[]{chatRoomId, attendUserId});
} }
......
...@@ -7,7 +7,7 @@ import jp.agentec.abook.abv.bl.common.log.Logger; ...@@ -7,7 +7,7 @@ import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.dto.ChatMessageDto; import jp.agentec.abook.abv.bl.dto.ChatMessageDto;
import jp.agentec.abook.abv.bl.dto.CollaborationDto; import jp.agentec.abook.abv.bl.dto.CollaborationDto;
public class CollaborationDao extends AbstractDao { public class CollaborationDao extends AbstractCommunicationDao {
/** /**
* {@link CollaborationDao} のインスタンスを初期化します。 * {@link CollaborationDao} のインスタンスを初期化します。
......
...@@ -6,7 +6,7 @@ import jp.agentec.abook.abv.bl.common.db.Cursor; ...@@ -6,7 +6,7 @@ import jp.agentec.abook.abv.bl.common.db.Cursor;
import jp.agentec.abook.abv.bl.common.log.Logger; import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.dto.CollaborationDetailDto; import jp.agentec.abook.abv.bl.dto.CollaborationDetailDto;
public class CollaborationDetailDao extends AbstractDao { public class CollaborationDetailDao extends AbstractCommunicationDao {
/** /**
* {@link CollaborationDetailDao} のインスタンスを初期化します。 * {@link CollaborationDetailDao} のインスタンスを初期化します。
......
...@@ -14,7 +14,7 @@ import jp.agentec.adf.util.DateTimeFormat; ...@@ -14,7 +14,7 @@ import jp.agentec.adf.util.DateTimeFormat;
import jp.agentec.adf.util.DateTimeUtil; import jp.agentec.adf.util.DateTimeUtil;
import jp.agentec.adf.util.StringUtil; import jp.agentec.adf.util.StringUtil;
public class ShopMemberDao extends AbstractDao { public class ShopMemberDao extends AbstractCommunicationDao {
/** /**
* {@link ShopMemberDao} のインスタンスを初期化します。 * {@link ShopMemberDao} のインスタンスを初期化します。
......
...@@ -15,16 +15,16 @@ import jp.agentec.adf.util.StringUtil; ...@@ -15,16 +15,16 @@ import jp.agentec.adf.util.StringUtil;
* @version 1.1.1 * @version 1.1.1
*/ */
public class MGroup extends SQLiteTableScript { public class MGroup extends SQLiteTableScript {
public MGroup() { public MGroup() {
super(); super();
} }
@Override @Override
public List<String> getCreateScript(int version) { public List<String> getCreateScript(int version) {
List<String> ddl = new ArrayList<String>(); List<String> ddl = new ArrayList<String>();
StringBuffer sql = new StringBuffer(); StringBuffer sql = new StringBuffer();
// since DatabaseVersions.Ver1_0_0 // since DatabaseVersions.Ver1_0_0
sql.append(" CREATE TABLE m_group ( "); sql.append(" CREATE TABLE m_group ( ");
sql.append(" group_relation_id INTEGER NOT NULL "); sql.append(" group_relation_id INTEGER NOT NULL ");
...@@ -34,34 +34,33 @@ public class MGroup extends SQLiteTableScript { ...@@ -34,34 +34,33 @@ public class MGroup extends SQLiteTableScript {
sql.append(" , group_name VARCHAR(64) NOT NULL "); sql.append(" , group_name VARCHAR(64) NOT NULL ");
sql.append(" , group_path TEXT NOT NULL "); // path enumaerationパターンを適用する。since DatabaseVersions.Ver1_5_0 sql.append(" , group_path TEXT NOT NULL "); // path enumaerationパターンを適用する。since DatabaseVersions.Ver1_5_0
sql.append(" , user_group_flg BOOLEAN NOT NULL DEFAULT 0 "); // since DatabaseVersions.Plus_1_1_0 sql.append(" , user_group_flg BOOLEAN NOT NULL DEFAULT 0 "); // since DatabaseVersions.Plus_1_1_0
sql.append(" , favorite_register_date VARCHAR2(64) ");
sql.append(" , PRIMARY KEY (group_relation_id) "); sql.append(" , PRIMARY KEY (group_relation_id) ");
sql.append(" ) "); sql.append(" ) ");
ddl.add(sql.toString()); ddl.add(sql.toString());
StringUtil.clear(sql); StringUtil.clear(sql);
sql.append(" CREATE INDEX idx_group_1 ON m_group ( "); sql.append(" CREATE INDEX idx_group_1 ON m_group ( ");
sql.append(" parent_group_id "); sql.append(" parent_group_id ");
sql.append(" ) "); sql.append(" ) ");
ddl.add(sql.toString()); ddl.add(sql.toString());
StringUtil.clear(sql); StringUtil.clear(sql);
// sql.append(" CREATE UNIQUE INDEX udx_group_1 ON m_group ( "); // TODO: これは複数の親を持てる場合には必要だが。 // sql.append(" CREATE UNIQUE INDEX udx_group_1 ON m_group ( "); // TODO: これは複数の親を持てる場合には必要だが。
// sql.append(" group_id, parent_group_id, group_level "); // sql.append(" group_id, parent_group_id, group_level ");
// sql.append(" ) "); // sql.append(" ) ");
// //
// ddl.add(sql.toString()); // ddl.add(sql.toString());
// StringUtil.clear(sql); // StringUtil.clear(sql);
// since DatabaseVersions.Ver1_5_0 // since DatabaseVersions.Ver1_5_0
sql.append(" CREATE UNIQUE INDEX udx_group_2 ON m_group ( "); sql.append(" CREATE UNIQUE INDEX udx_group_2 ON m_group ( ");
sql.append(" group_path "); sql.append(" group_path ");
sql.append(" ) "); sql.append(" ) ");
ddl.add(sql.toString()); ddl.add(sql.toString());
return ddl; return ddl;
} }
......
...@@ -4,6 +4,7 @@ import java.util.ArrayList; ...@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase; import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase;
import jp.agentec.abook.abv.bl.data.DatabaseVersions;
public class MShopMember extends SQLiteTableScript { public class MShopMember extends SQLiteTableScript {
...@@ -32,7 +33,11 @@ public class MShopMember extends SQLiteTableScript { ...@@ -32,7 +33,11 @@ public class MShopMember extends SQLiteTableScript {
@Override @Override
public List<String> getUpgradeScript(int oldVersion, int newVersion) { public List<String> getUpgradeScript(int oldVersion, int newVersion) {
return null; List<String> ddl = new ArrayList<String>();
if (oldVersion < DatabaseVersions.Ver1_3_000) {
ddl.addAll(getCreateScript(newVersion));
}
return ddl;
} }
@Override @Override
......
...@@ -3,6 +3,7 @@ package jp.agentec.abook.abv.bl.data.tables; ...@@ -3,6 +3,7 @@ package jp.agentec.abook.abv.bl.data.tables;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase; import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase;
import jp.agentec.abook.abv.bl.data.DatabaseVersions;
public class RChatRoomShopMember extends SQLiteTableScript { public class RChatRoomShopMember extends SQLiteTableScript {
public RChatRoomShopMember() { public RChatRoomShopMember() {
...@@ -23,7 +24,11 @@ public class RChatRoomShopMember extends SQLiteTableScript { ...@@ -23,7 +24,11 @@ public class RChatRoomShopMember extends SQLiteTableScript {
@Override @Override
public List<String> getUpgradeScript(int oldVersion, int newVersion) { public List<String> getUpgradeScript(int oldVersion, int newVersion) {
return null; List<String> ddl = new ArrayList<String>();
if (oldVersion < DatabaseVersions.Ver1_3_000) {
ddl.addAll(getCreateScript(newVersion));
}
return ddl;
} }
@Override @Override
......
...@@ -4,6 +4,7 @@ import java.util.ArrayList; ...@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase; import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase;
import jp.agentec.abook.abv.bl.data.DatabaseVersions;
public class RCollaborationMember extends SQLiteTableScript { public class RCollaborationMember extends SQLiteTableScript {
...@@ -29,7 +30,11 @@ public class RCollaborationMember extends SQLiteTableScript { ...@@ -29,7 +30,11 @@ public class RCollaborationMember extends SQLiteTableScript {
@Override @Override
public List<String> getUpgradeScript(int oldVersion, int newVersion) { public List<String> getUpgradeScript(int oldVersion, int newVersion) {
return null; List<String> ddl = new ArrayList<String>();
if (oldVersion < DatabaseVersions.Ver1_3_000) {
ddl.addAll(getCreateScript(newVersion));
}
return ddl;
} }
@Override @Override
......
...@@ -4,6 +4,7 @@ import java.util.ArrayList; ...@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase; import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase;
import jp.agentec.abook.abv.bl.data.DatabaseVersions;
public class RShopMemberGroup extends SQLiteTableScript { public class RShopMemberGroup extends SQLiteTableScript {
...@@ -29,7 +30,11 @@ public class RShopMemberGroup extends SQLiteTableScript { ...@@ -29,7 +30,11 @@ public class RShopMemberGroup extends SQLiteTableScript {
@Override @Override
public List<String> getUpgradeScript(int oldVersion, int newVersion) { public List<String> getUpgradeScript(int oldVersion, int newVersion) {
return null; List<String> ddl = new ArrayList<String>();
if (oldVersion < DatabaseVersions.Ver1_3_000) {
ddl.addAll(getCreateScript(newVersion));
}
return ddl;
} }
@Override @Override
......
...@@ -4,6 +4,7 @@ import java.util.ArrayList; ...@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase; import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase;
import jp.agentec.abook.abv.bl.data.DatabaseVersions;
public class TChatMessage extends SQLiteTableScript { public class TChatMessage extends SQLiteTableScript {
...@@ -37,7 +38,11 @@ public class TChatMessage extends SQLiteTableScript { ...@@ -37,7 +38,11 @@ public class TChatMessage extends SQLiteTableScript {
@Override @Override
public List<String> getUpgradeScript(int oldVersion, int newVersion) { public List<String> getUpgradeScript(int oldVersion, int newVersion) {
return null; List<String> ddl = new ArrayList<String>();
if (oldVersion < DatabaseVersions.Ver1_3_000) {
ddl.addAll(getCreateScript(newVersion));
}
return ddl;
} }
@Override @Override
......
...@@ -4,6 +4,7 @@ import java.util.ArrayList; ...@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase; import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase;
import jp.agentec.abook.abv.bl.data.DatabaseVersions;
public class TChatRoom extends SQLiteTableScript { public class TChatRoom extends SQLiteTableScript {
...@@ -33,7 +34,11 @@ public class TChatRoom extends SQLiteTableScript { ...@@ -33,7 +34,11 @@ public class TChatRoom extends SQLiteTableScript {
@Override @Override
public List<String> getUpgradeScript(int oldVersion, int newVersion) { public List<String> getUpgradeScript(int oldVersion, int newVersion) {
return null; List<String> ddl = new ArrayList<String>();
if (oldVersion < DatabaseVersions.Ver1_3_000) {
ddl.addAll(getCreateScript(newVersion));
}
return ddl;
} }
@Override @Override
......
...@@ -4,6 +4,7 @@ import java.util.ArrayList; ...@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase; import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase;
import jp.agentec.abook.abv.bl.data.DatabaseVersions;
public class TCollaboration extends SQLiteTableScript { public class TCollaboration extends SQLiteTableScript {
...@@ -28,7 +29,11 @@ public class TCollaboration extends SQLiteTableScript { ...@@ -28,7 +29,11 @@ public class TCollaboration extends SQLiteTableScript {
@Override @Override
public List<String> getUpgradeScript(int oldVersion, int newVersion) { public List<String> getUpgradeScript(int oldVersion, int newVersion) {
return null; List<String> ddl = new ArrayList<String>();
if (oldVersion < DatabaseVersions.Ver1_3_000) {
ddl.addAll(getCreateScript(newVersion));
}
return ddl;
} }
@Override @Override
......
...@@ -4,6 +4,7 @@ import java.util.ArrayList; ...@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase; import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase;
import jp.agentec.abook.abv.bl.data.DatabaseVersions;
public class TCollaborationDetail extends SQLiteTableScript { public class TCollaborationDetail extends SQLiteTableScript {
...@@ -31,7 +32,11 @@ public class TCollaborationDetail extends SQLiteTableScript { ...@@ -31,7 +32,11 @@ public class TCollaborationDetail extends SQLiteTableScript {
@Override @Override
public List<String> getUpgradeScript(int oldVersion, int newVersion) { public List<String> getUpgradeScript(int oldVersion, int newVersion) {
return null; List<String> ddl = new ArrayList<String>();
if (oldVersion < DatabaseVersions.Ver1_3_000) {
ddl.addAll(getCreateScript(newVersion));
}
return ddl;
} }
@Override @Override
......
package jp.agentec.abook.abv.bl.dto; package jp.agentec.abook.abv.bl.dto;
import java.util.List;
/** /**
* グループ情報を格納します。m_groupのPKであるgroup_relation_idはこのdtoの扱いません。内部的なキーはgetKyeValuesメソッドで定義してあります。 * グループ情報を格納します。m_groupのPKであるgroup_relation_idはこのdtoの扱いません。内部的なキーはgetKyeValuesメソッドで定義してあります。
* @author Taejin Hong * @author Taejin Hong
...@@ -17,12 +15,7 @@ public class GroupDto extends AbstractDto { ...@@ -17,12 +15,7 @@ public class GroupDto extends AbstractDto {
public int contentCount = 0; public int contentCount = 0;
public String displayCount; public String displayCount;
public String groupPath; public String groupPath;
public String favoriteRegisterDate = "";
public boolean userGroupFlg; public boolean userGroupFlg;
public int delFlg;
public List<ShopMemberDto> groupMembers;
public List<String> groupPathList;
public String updateDate;
public GroupDto() { public GroupDto() {
} }
......
...@@ -14,6 +14,7 @@ import java.util.stream.Collectors; ...@@ -14,6 +14,7 @@ import java.util.stream.Collectors;
import jp.agentec.abook.abv.bl.common.constant.ABookCommConstants; import jp.agentec.abook.abv.bl.common.constant.ABookCommConstants;
import jp.agentec.abook.abv.bl.common.log.Logger; import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.common.util.JsonUtil; import jp.agentec.abook.abv.bl.common.util.JsonUtil;
import jp.agentec.abook.abv.bl.data.dao.AbstractCommunicationDao;
import jp.agentec.abook.abv.bl.data.dao.AbstractDao; import jp.agentec.abook.abv.bl.data.dao.AbstractDao;
import jp.agentec.abook.abv.bl.data.dao.ArchiveDao; import jp.agentec.abook.abv.bl.data.dao.ArchiveDao;
import jp.agentec.abook.abv.bl.data.dao.ChatGroupDao; import jp.agentec.abook.abv.bl.data.dao.ChatGroupDao;
...@@ -31,7 +32,6 @@ import jp.agentec.adf.util.ArrayUtil; ...@@ -31,7 +32,6 @@ import jp.agentec.adf.util.ArrayUtil;
import jp.agentec.adf.util.CollectionUtil; import jp.agentec.adf.util.CollectionUtil;
import jp.agentec.adf.util.DateTimeUtil; import jp.agentec.adf.util.DateTimeUtil;
import jp.agentec.adf.util.StringUtil; import jp.agentec.adf.util.StringUtil;
import sun.rmi.runtime.Log;
/** /**
* @author Lee-mk * @author Lee-mk
...@@ -39,14 +39,14 @@ import sun.rmi.runtime.Log; ...@@ -39,14 +39,14 @@ import sun.rmi.runtime.Log;
public class CommunicationLogic extends AbstractLogic { public class CommunicationLogic extends AbstractLogic {
private static final String TAG = "CommunicationLogic"; private static final String TAG = "CommunicationLogic";
private ChatRoomDao chatRoomDao = AbstractDao.getDao(ChatRoomDao.class); private ChatRoomDao chatRoomDao = AbstractCommunicationDao.getDao(ChatRoomDao.class);
private ChatMessageDao chatMessageDao = AbstractDao.getDao(ChatMessageDao.class); private ChatMessageDao chatMessageDao = AbstractCommunicationDao.getDao(ChatMessageDao.class);
private ShopMemberDao shopMemberDao = AbstractDao.getDao(ShopMemberDao.class); private ShopMemberDao shopMemberDao = AbstractCommunicationDao.getDao(ShopMemberDao.class);
private ChatGroupDao chatGroupDao = AbstractDao.getDao(ChatGroupDao.class); private ChatGroupDao chatGroupDao = AbstractCommunicationDao.getDao(ChatGroupDao.class);
private ContentDao contentDao = AbstractDao.getDao(ContentDao.class); private ContentDao contentDao = AbstractDao.getDao(ContentDao.class);
private String localFilePath; private String localFilePath;
private ArchiveDao archiveDao = AbstractDao.getDao(ArchiveDao.class); private ArchiveDao archiveDao = AbstractCommunicationDao.getDao(ArchiveDao.class);
/** /**
* {@link CommunicationLogic} クラスのインスタンスを初期化します。 * {@link CommunicationLogic} クラスのインスタンスを初期化します。
......
Subproject commit d0dd14b2cf0da5b2623cc416710429bfd85ad6ee Subproject commit d2a3c40e46287e1d3869fdc7aaeff3195cb4ae59
package jp.agentec.abook.abv.bl.common.db.impl;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import jp.agentec.abook.abv.bl.common.exception.ABVRuntimeException;
import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.data.ABVDataOpenHelper;
import jp.agentec.abook.abv.bl.data.CommunicationDataOpenHelper;
public class CommunicationSQLiteOpenHelper extends SQLiteOpenHelper implements jp.agentec.abook.abv.bl.common.db.SQLiteOpenHelper {
private static final String TAG = "CommunicationSQLiteOpenHelper";
public static CommunicationDataOpenHelper abhelper;
private Context context;
public CommunicationSQLiteOpenHelper(Context context, String name, int version) {
super(context, name, null, version);
this.context = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
abhelper.onCreate(new StandardSQLiteDatabase(db));
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
abhelper.onUpgrade(new StandardSQLiteDatabase(db), oldVersion, newVersion);
}
public boolean isCreated() {
return abhelper.isCreated();
}
public Throwable getLastError() {
return abhelper.getLastError();
}
@Override
public StandardSQLiteDatabase openDatabase() {
if (context == null) {
throw new ABVRuntimeException("Android context is null. You must call init()");
}
abhelper = new CommunicationDataOpenHelper();
Logger.i(TAG, "open communication database start.");
StandardSQLiteDatabase db = new StandardSQLiteDatabase(getWritableDatabase()); // このタイミングでDBが生成され、onCreateが呼び出される
Logger.i(TAG, "open communication database completed.");
if (!isCreated()) {
throw new ABVRuntimeException("Can't open or create database.", getLastError());
}
return db;
}
}
...@@ -6,10 +6,12 @@ import jp.agentec.abook.abv.bl.common.Constant; ...@@ -6,10 +6,12 @@ import jp.agentec.abook.abv.bl.common.Constant;
import jp.agentec.abook.abv.bl.common.Constant.AspectType; import jp.agentec.abook.abv.bl.common.Constant.AspectType;
import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase; import jp.agentec.abook.abv.bl.common.db.SQLiteDatabase;
import jp.agentec.abook.abv.bl.common.db.SQLiteOpenHelper; import jp.agentec.abook.abv.bl.common.db.SQLiteOpenHelper;
import jp.agentec.abook.abv.bl.common.db.impl.CommunicationSQLiteOpenHelper;
import jp.agentec.abook.abv.bl.common.db.impl.StandardSQLiteOpenHelper; import jp.agentec.abook.abv.bl.common.db.impl.StandardSQLiteOpenHelper;
import jp.agentec.abook.abv.bl.common.exception.ABVException; import jp.agentec.abook.abv.bl.common.exception.ABVException;
import jp.agentec.abook.abv.bl.common.log.LogLevel; import jp.agentec.abook.abv.bl.common.log.LogLevel;
import jp.agentec.abook.abv.bl.common.log.Logger; import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.data.CommunicationDBConnector;
import jp.agentec.abook.abv.bl.data.DBConnector; import jp.agentec.abook.abv.bl.data.DBConnector;
import jp.agentec.abook.abv.cl.environment.DeviceInfo; import jp.agentec.abook.abv.cl.environment.DeviceInfo;
import jp.agentec.abook.abv.cl.environment.NetworkAdapter; import jp.agentec.abook.abv.cl.environment.NetworkAdapter;
...@@ -148,6 +150,7 @@ public class Initializer { ...@@ -148,6 +150,7 @@ public class Initializer {
public void initDB() { public void initDB() {
// DBを開く。マイグレーションがあれば実行されるようにする。 // DBを開く。マイグレーションがあれば実行されるようにする。
DBConnector conn = DBConnector.getInstance(); DBConnector conn = DBConnector.getInstance();
CommunicationDBConnector communicationConn = CommunicationDBConnector.getInstance();
if (!conn.isOpen()) { if (!conn.isOpen()) {
Logger.i(TAG, "initDB start"); Logger.i(TAG, "initDB start");
SQLiteOpenHelper sqlLiteOpenHelper = new StandardSQLiteOpenHelper(context, DBConnector.DatabaseName, DBConnector.DatabaseVersion); SQLiteOpenHelper sqlLiteOpenHelper = new StandardSQLiteOpenHelper(context, DBConnector.DatabaseName, DBConnector.DatabaseVersion);
...@@ -156,6 +159,15 @@ public class Initializer { ...@@ -156,6 +159,15 @@ public class Initializer {
db.execSQL("PRAGMA foreign_keys=ON;journal_mode=WAL;synchronous=OFF;"); // foreign keyを有効,ジャーナルモードをWAL,書き込み非同期にする db.execSQL("PRAGMA foreign_keys=ON;journal_mode=WAL;synchronous=OFF;"); // foreign keyを有効,ジャーナルモードをWAL,書き込み非同期にする
Logger.i(TAG, "initDB end"); Logger.i(TAG, "initDB end");
} }
if (!communicationConn.isOpen()) {
Logger.i(TAG, "Comm initDB start");
SQLiteOpenHelper commSqlLiteOpenHelper = new CommunicationSQLiteOpenHelper(context, CommunicationDBConnector.DatabaseName, DBConnector.DatabaseVersion);
communicationConn.setSqlLiteOpenHelper(commSqlLiteOpenHelper);
SQLiteDatabase commDb = conn.getDatabase();
commDb.execSQL("PRAGMA foreign_keys=ON;journal_mode=WAL;synchronous=OFF;"); // foreign keyを有効,ジャーナルモードをWAL,書き込み非同期にする
Logger.i(TAG, "Comm initDB end");
}
} }
protected String s(int id) { protected String s(int id) {
......
...@@ -132,6 +132,7 @@ public class ChatWebviewActivity extends ParentWebViewActivity { ...@@ -132,6 +132,7 @@ public class ChatWebviewActivity extends ParentWebViewActivity {
private boolean isOnline; private boolean isOnline;
private Long roomId; private Long roomId;
private String roomType; private String roomType;
private String groupId;
private String beforeRoomType; private String beforeRoomType;
private Integer shopMemberId; private Integer shopMemberId;
private String selectedUserIdList; private String selectedUserIdList;
...@@ -161,13 +162,12 @@ public class ChatWebviewActivity extends ParentWebViewActivity { ...@@ -161,13 +162,12 @@ public class ChatWebviewActivity extends ParentWebViewActivity {
private void initializeWebView() { private void initializeWebView() {
initiateDatas(getIntent()); initiateDatas(getIntent());
setupDefaultChatWebViewURL();
setupChatWebView(); setupChatWebView();
registChatRoomPageLoader();
registJSReactor(); registJSReactor();
addDownloadListener(); addDownloadListener();
observeNetworkChange(); observeNetworkChange();
loadWebViewResource(); loadWebViewResource();
setupDefaultChatWebViewURL();
} }
private void initiateDatas(Intent intent) { private void initiateDatas(Intent intent) {
...@@ -188,6 +188,7 @@ public class ChatWebviewActivity extends ParentWebViewActivity { ...@@ -188,6 +188,7 @@ public class ChatWebviewActivity extends ParentWebViewActivity {
} }
chatWebviewUrl = NETWORK_ERROR_PLACE_HOLDER; chatWebviewUrl = NETWORK_ERROR_PLACE_HOLDER;
if (!ABVEnvironment.getInstance().networkAdapter.isNetworkConnected()) { if (!ABVEnvironment.getInstance().networkAdapter.isNetworkConnected()) {
registChatRoomPageLoader();
Logger.d("DEVICE_NOT_CONNECTED_NETWORK:"); Logger.d("DEVICE_NOT_CONNECTED_NETWORK:");
return; return;
} }
...@@ -212,6 +213,16 @@ public class ChatWebviewActivity extends ParentWebViewActivity { ...@@ -212,6 +213,16 @@ public class ChatWebviewActivity extends ParentWebViewActivity {
updateAllGroupInfo(); updateAllGroupInfo();
updateFavoriteInfo(); updateFavoriteInfo();
shopMemberId = communicationLogic.getMyShopMemberDto().shopMemberId; shopMemberId = communicationLogic.getMyShopMemberDto().shopMemberId;
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
registChatRoomPageLoader();
} catch (Exception e) {
Logger.d("registChatRoomPageLoader Error");
}
}
});
closeProgressPopup(); closeProgressPopup();
} catch (Exception e) { } catch (Exception e) {
Logger.d("Update error"); Logger.d("Update error");
...@@ -224,6 +235,7 @@ public class ChatWebviewActivity extends ParentWebViewActivity { ...@@ -224,6 +235,7 @@ public class ChatWebviewActivity extends ParentWebViewActivity {
mChatWebView = findViewById(R.id.chatWebview2); mChatWebView = findViewById(R.id.chatWebview2);
mChatWebView.setOverScrollMode(View.OVER_SCROLL_NEVER); //オーバースクロールしない。 mChatWebView.setOverScrollMode(View.OVER_SCROLL_NEVER); //オーバースクロールしない。
mChatWebView.setVerticalScrollBarEnabled(false); //スクロールバーを消す。 mChatWebView.setVerticalScrollBarEnabled(false); //スクロールバーを消す。
mChatWebView.addJavascriptInterface(jsInf, "android");
WebSettings settings = mChatWebView.getSettings(); WebSettings settings = mChatWebView.getSettings();
settings.setJavaScriptEnabled(true); //Javascriptを有効にする。 settings.setJavaScriptEnabled(true); //Javascriptを有効にする。
settings.setAppCacheEnabled(true); settings.setAppCacheEnabled(true);
...@@ -250,7 +262,6 @@ public class ChatWebviewActivity extends ParentWebViewActivity { ...@@ -250,7 +262,6 @@ public class ChatWebviewActivity extends ParentWebViewActivity {
// 最後のチャットのルーム // 最後のチャットのルーム
String lastRoomId = PreferenceUtil.getUserPref(getApplicationContext(), AppDefType.UserPrefKey.CHAT_LAST_ROOMID, ""); String lastRoomId = PreferenceUtil.getUserPref(getApplicationContext(), AppDefType.UserPrefKey.CHAT_LAST_ROOMID, "");
mChatWebView.addJavascriptInterface(jsInf, "android");
String fixedParam = "&platform=android&isMobile=true&chatServerUrl=" + ABVEnvironment.getInstance().websocketServerHttpUrl; String fixedParam = "&platform=android&isMobile=true&chatServerUrl=" + ABVEnvironment.getInstance().websocketServerHttpUrl;
//ページをロード //ページをロード
if (roomId != 0 && roomName != null) { // by push message if (roomId != 0 && roomName != null) { // by push message
...@@ -1325,6 +1336,16 @@ public class ChatWebviewActivity extends ParentWebViewActivity { ...@@ -1325,6 +1336,16 @@ public class ChatWebviewActivity extends ParentWebViewActivity {
} }
@JavascriptInterface @JavascriptInterface
public String getToMoveGroupId() {
return groupId;
}
@JavascriptInterface
public void setToMoveGroupId(String moveToGroupId) {
groupId = moveToGroupId;
}
@JavascriptInterface
public String getContentList() { public String getContentList() {
return communicationLogic.getContentList(); return communicationLogic.getContentList();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment