Commit 9ce2a1f8 by Kim Jinsung

Merge branch 'features/1.2.0_34866' into 'features/1.2.0'

Features/1.2.0 34866

See merge request !32
parents 30ad4bb2 3329f676
...@@ -380,4 +380,59 @@ public class OperationDao extends AbstractDao { ...@@ -380,4 +380,59 @@ public class OperationDao extends AbstractDao {
updateNeedSyncFlg(operationDto.operationId, true); updateNeedSyncFlg(operationDto.operationId, true);
} }
} }
/**
* 作業グループに紐づく同期可能な作業リストを取得
* @param operationGroupMasterId
* @return
*/
public List<OperationDto> getNeedSyncOperationByGroupMasterId(Integer operationGroupMasterId) {
StringBuffer sql = new StringBuffer();
sql.append(" SELECT * ");
sql.append(" FROM t_operation AS top ");
sql.append(" INNER JOIN r_operation_content AS rop ");
sql.append(" ON top.operation_id = rop.operation_id ");
sql.append(" AND rop.operation_content_flg = 1 ");
sql.append(" INNER JOIN r_operation_group_master_relation AS rogm ");
sql.append(" ON top.operation_id = rogm.operation_id ");
sql.append(" WHERE top.need_sync_flg = 1");
sql.append(" AND rogm.operation_group_master_id = ?");
return rawQueryGetDtoList(sql.toString(), new String[] { "" + operationGroupMasterId }, OperationDto.class);
}
/**
* 作業グループに紐づく同期可能な作業リストが存在するかチェック
* @param operationGroupMasterId
* @return
*/
public boolean hasNeedSyncOperationByGroupMasterId(Integer operationGroupMasterId) {
List<OperationDto> operationDtoList = getNeedSyncOperationByGroupMasterId(operationGroupMasterId);
return operationDtoList != null && operationDtoList.size() > 0;
}
/**
* 定期点検で同期が必要な作業を取得
* @return
*/
public List<OperationDto> getDeactivatedRoutineOperation() {
String curDate = DateTimeUtil.toStringInTimeZone(new Date(), DateTimeFormat.yyyyMMddHHmmss_hyphen, "UTC");
StringBuffer sql = new StringBuffer();
sql.append(" SELECT top.*, ");
sql.append(" CASE ");
sql.append(" WHEN report_type = 1 THEN ( ");
sql.append(" SELECT strftime('%Y/%m/%d %H:%M', datetime(ttr.report_start_date, 'localtime')) || ' ~ ' || strftime('%Y/%m/%d %H:%M', datetime(ttr.report_end_date, 'localtime')) ");
sql.append(" FROM t_task tt ");
sql.append(" INNER JOIN t_task_report ttr ");
sql.append(" ON tt.task_key = ttr.task_key ");
sql.append(" AND tt.del_flg = 0 ");
sql.append(" AND datetime(ttr.report_end_date) >= datetime('" + curDate + "') ");
sql.append(" WHERE tt.operation_id = top.operation_id ");
sql.append(" ORDER BY ttr.report_start_date ASC LIMIT 1 ) ");
sql.append(" ELSE '' ");
sql.append(" END AS report_period ");
sql.append(" FROM t_operation AS top");
sql.append(" WHERE top.need_sync_flg = 0");
sql.append(" AND top.report_type = 1");
return rawQueryGetDtoList(sql.toString(), null, OperationDto.class);
}
} }
\ No newline at end of file
...@@ -121,6 +121,10 @@ public class ContentDownloader { ...@@ -121,6 +121,10 @@ public class ContentDownloader {
public void addContentDownloadListener(ContentDownloadListener contentDownloadListener) { public void addContentDownloadListener(ContentDownloadListener contentDownloadListener) {
// ダウンロードリスナーが既にセットされてる場合、何もしない
if (contentDownloadListenerSet.contains(contentDownloadListener)) {
return;
}
contentDownloadListenerSet.add(contentDownloadListener); contentDownloadListenerSet.add(contentDownloadListener);
} }
...@@ -466,8 +470,9 @@ public class ContentDownloader { ...@@ -466,8 +470,9 @@ public class ContentDownloader {
* @throws NetworkDisconnectedException * @throws NetworkDisconnectedException
* @throws AcmsException * @throws AcmsException
* @since 1.0.0 * @since 1.0.0
* @return true : 正常 false : 異常
*/ */
public void resume(long contentId) throws NetworkDisconnectedException, AcmsException { public boolean resume(long contentId) throws NetworkDisconnectedException, AcmsException {
if (!networkAdapter.isNetworkConnected()) { if (!networkAdapter.isNetworkConnected()) {
throw new NetworkDisconnectedException(); throw new NetworkDisconnectedException();
} }
...@@ -475,12 +480,12 @@ public class ContentDownloader { ...@@ -475,12 +480,12 @@ public class ContentDownloader {
ContentDto contentDto = getOperableContent(contentId, DownloadStatusType.Downloading); ContentDto contentDto = getOperableContent(contentId, DownloadStatusType.Downloading);
if (contentDto == null) { if (contentDto == null) {
Logger.w(TAG, "resume called but already another thread is processing the contentId(%s).", contentId); Logger.w(TAG, "resume called but already another thread is processing the contentId(%s).", contentId);
return; return false;
} }
synchronized (contentDto) { synchronized (contentDto) {
if (contentDto.isDownloading()) { if (contentDto.isDownloading()) {
Logger.w(TAG, "resume called but already another thread is processing the contentId(%s).", contentId); Logger.w(TAG, "resume called but already another thread is processing the contentId(%s).", contentId);
return; return false;
} }
if (contentDto.downloader != null && !isFullActive()) { if (contentDto.downloader != null && !isFullActive()) {
contentDto.status = DownloadStatusType.Downloading.type(); contentDto.status = DownloadStatusType.Downloading.type();
...@@ -492,6 +497,7 @@ public class ContentDownloader { ...@@ -492,6 +497,7 @@ public class ContentDownloader {
kickTask(); kickTask();
} }
} }
return true;
} }
public void autoDownload() { public void autoDownload() {
......
...@@ -30,6 +30,7 @@ import jp.agentec.abook.abv.bl.logic.ContentReadingLogLogic; ...@@ -30,6 +30,7 @@ import jp.agentec.abook.abv.bl.logic.ContentReadingLogLogic;
import jp.agentec.abook.abv.bl.logic.ContractLogic; import jp.agentec.abook.abv.bl.logic.ContractLogic;
import jp.agentec.abook.abv.bl.logic.EnqueteLogic; import jp.agentec.abook.abv.bl.logic.EnqueteLogic;
import jp.agentec.abook.abv.bl.logic.GroupLogic; import jp.agentec.abook.abv.bl.logic.GroupLogic;
import jp.agentec.abook.abv.bl.logic.OperationGroupMasterLogic;
import jp.agentec.abook.abv.bl.logic.OperationLogic; import jp.agentec.abook.abv.bl.logic.OperationLogic;
import jp.agentec.adf.util.CollectionUtil; import jp.agentec.adf.util.CollectionUtil;
import jp.agentec.adf.util.DateTimeUtil; import jp.agentec.adf.util.DateTimeUtil;
...@@ -67,6 +68,7 @@ public class ContentRefresher { ...@@ -67,6 +68,7 @@ public class ContentRefresher {
// masterDataを取得するため登録 // masterDataを取得するため登録
private ApertureMasterDataLogic apertureMasterDataLogic = AbstractLogic.getLogic(ApertureMasterDataLogic.class); private ApertureMasterDataLogic apertureMasterDataLogic = AbstractLogic.getLogic(ApertureMasterDataLogic.class);
private OperationGroupMasterLogic operationGroupMasterLogic = AbstractLogic.getLogic(OperationGroupMasterLogic.class);
public static ContentRefresher getInstance() { public static ContentRefresher getInstance() {
...@@ -167,6 +169,9 @@ public class ContentRefresher { ...@@ -167,6 +169,9 @@ public class ContentRefresher {
// CMSでメンテナンスされる絞り検索マスタデータをアプリから取得できるようにJSONファイルを生成する。 // CMSでメンテナンスされる絞り検索マスタデータをアプリから取得できるようにJSONファイルを生成する。
apertureMasterDataLogic.initializeApertureMasterData(); apertureMasterDataLogic.initializeApertureMasterData();
// 作業種別情報を取得
operationGroupMasterLogic.setOperationGroupMaster();
if (interrupt) { // この時点で停止要求が来た場合先には進まない。(ServiceOption/Group/Categoryの更新は1セットで行う(トランザクションはそれぞれ別)) if (interrupt) { // この時点で停止要求が来た場合先には進まない。(ServiceOption/Group/Categoryの更新は1セットで行う(トランザクションはそれぞれ別))
Logger.d(TAG, "stop refresh worker before content update."); Logger.d(TAG, "stop refresh worker before content update.");
setFail(); setFail();
......
...@@ -96,8 +96,6 @@ public class OperationLogic extends AbstractLogic { ...@@ -96,8 +96,6 @@ public class OperationLogic extends AbstractLogic {
public void initializeOperations() throws AcmsException, NetworkDisconnectedException { public void initializeOperations() throws AcmsException, NetworkDisconnectedException {
// 作業グループリスト取得 // 作業グループリスト取得
setWorkingGroupList(); setWorkingGroupList();
// 作業種別・作業種別に紐づいた作業IDを取得
mOperationGroupMasterLogic.setOperationGroupMaster();
// 作業一覧取得し、登録・更新・削除する // 作業一覧取得し、登録・更新・削除する
retrieveServerOperation(); retrieveServerOperation();
} }
......
...@@ -472,8 +472,8 @@ ...@@ -472,8 +472,8 @@
<string name="date_label_routineTask">作業期間</string> <string name="date_label_routineTask">作業期間</string>
<string name="msg_no_report_data">作業データがありません。</string> <string name="msg_no_report_data">作業データがありません。</string>
<string name="msg_permission_dialog_mic">マイク利用権限が必要です。\nアプリ設定画面へ遷移します。</string> <string name="msg_permission_dialog_mic">マイク利用権限が必要です。\nアプリ設定画面へ遷移します。</string>
<string name="msg_routineTask_report_disable_not_list">情報更新中には点検作業報告画面へ遷移できません。</string> <string name="msg_routineTask_report_disable_refreshing">情報更新中には点検作業報告画面へ遷移できません。</string>
<string name="msg_routineTask_report_disable_refreshing">作業一覧画面以外では点検作業報告画面へ遷移できません。</string> <string name="msg_routineTask_report_disable_not_list">作業一覧画面以外では点検作業報告画面へ遷移できません。</string>
<string name="msg_routineTask_report_disable_meeting_room">作業一覧画面以外では点検作業報告画面へ遷移できません。</string> <string name="msg_routineTask_report_disable_meeting_room">作業一覧画面以外では点検作業報告画面へ遷移できません。</string>
<string name="msg_routineTask_report_disable_not_updated">情報更新されてませんので点検作業報告画面へ遷移できません。</string> <string name="msg_routineTask_report_disable_not_updated">情報更新されてませんので点検作業報告画面へ遷移できません。</string>
<string name="msg_routineTask_report_disable_no_operation">作業が存在しないので点検作業報告画面へ遷移できません。</string> <string name="msg_routineTask_report_disable_no_operation">作業が存在しないので点検作業報告画面へ遷移できません。</string>
...@@ -523,6 +523,17 @@ ...@@ -523,6 +523,17 @@
<string name="operation_category">カテゴリ</string> <string name="operation_category">カテゴリ</string>
<string name="type_all">全て</string> <string name="type_all">全て</string>
<!-- 1.2.0 -->
<string name="msg_operation_enable_meeting_room_connected">会議室入室中の為、このボタンは利用できません。\n共通資料画面から資料を選択してください。</string>
<string name="batch_sync">一括同期</string>
<string name="batch_syncing">一括同期中...</string>
<string name="msg_confirm_batch_sync">表示中の全作業を一括同期しますか?</string>
<string name="msg_batch_sync_disconnect_network">インターネットに接続されていない為、同期処理を中止します。</string>
<string name="msg_batch_sync_content_download_fail">作業ベース資料のダウンロードに失敗しました。</string>
<string name="msg_batch_sync_new_content_updating">新着更新処理中の為、一括同期できません。</string>
<string name="msg_batch_sync_error">「%1$s」の同期に失敗しました。同期処理を中止します。\n</string>
<string name="msg_batch_sync_move_operation_view">一括同期中には点検作業報告画面へ遷移できません。</string>
<!-- 1.0.1 Resource Pattern 1 --> <!-- 1.0.1 Resource Pattern 1 -->
<!-- 1.9.0.0--> <!-- 1.9.0.0-->
<string name="meetingroom_setting_1">会議室設定(1)</string> <string name="meetingroom_setting_1">会議室設定(1)</string>
...@@ -678,8 +689,8 @@ ...@@ -678,8 +689,8 @@
<string name="date_label_routineTask_1">作業期間(1)</string> <string name="date_label_routineTask_1">作業期間(1)</string>
<string name="msg_no_report_data_1">作業データがありません。(1)</string> <string name="msg_no_report_data_1">作業データがありません。(1)</string>
<string name="msg_permission_dialog_mic_1">マイク利用権限が必要です。\nアプリ設定画面へ遷移します。(1)</string> <string name="msg_permission_dialog_mic_1">マイク利用権限が必要です。\nアプリ設定画面へ遷移します。(1)</string>
<string name="msg_routineTask_report_disable_not_list_1">情報更新中には点検作業報告画面へ遷移できません。(1)</string> <string name="msg_routineTask_report_disable_refreshing_1">情報更新中には点検作業報告画面へ遷移できません。(1)</string>
<string name="msg_routineTask_report_disable_refreshing_1">作業一覧画面以外では点検作業報告画面へ遷移できません。(1)</string> <string name="msg_routineTask_report_disable_not_list_1">作業一覧画面以外では点検作業報告画面へ遷移できません。(1)</string>
<string name="msg_routineTask_report_disable_meeting_room_1">作業一覧画面以外では点検作業報告画面へ遷移できません。(1)</string> <string name="msg_routineTask_report_disable_meeting_room_1">作業一覧画面以外では点検作業報告画面へ遷移できません。(1)</string>
<string name="msg_routineTask_report_disable_not_updated_1">情報更新されてませんので点検作業報告画面へ遷移できません。(1)</string> <string name="msg_routineTask_report_disable_not_updated_1">情報更新されてませんので点検作業報告画面へ遷移できません。(1)</string>
<string name="msg_routineTask_report_disable_no_operation_1">作業が存在しないので点検作業報告画面へ遷移できません。(1)</string> <string name="msg_routineTask_report_disable_no_operation_1">作業が存在しないので点検作業報告画面へ遷移できません。(1)</string>
...@@ -854,8 +865,8 @@ ...@@ -854,8 +865,8 @@
<string name="date_label_routineTask_2">作業期間(2)</string> <string name="date_label_routineTask_2">作業期間(2)</string>
<string name="msg_no_report_data_2">作業データがありません。(2)</string> <string name="msg_no_report_data_2">作業データがありません。(2)</string>
<string name="msg_permission_dialog_mic_2">マイク利用権限が必要です。\nアプリ設定画面へ遷移します。(2)</string> <string name="msg_permission_dialog_mic_2">マイク利用権限が必要です。\nアプリ設定画面へ遷移します。(2)</string>
<string name="msg_routineTask_report_disable_not_list_2">情報更新中には点検作業報告画面へ遷移できません。(2)</string> <string name="msg_routineTask_report_disable_refreshing_2">情報更新中には点検作業報告画面へ遷移できません。(2)</string>
<string name="msg_routineTask_report_disable_refreshing_2">作業一覧画面以外では点検作業報告画面へ遷移できません。(2)</string> <string name="msg_routineTask_report_disable_not_list_2">作業一覧画面以外では点検作業報告画面へ遷移できません。(2)</string>
<string name="msg_routineTask_report_disable_meeting_room_2">作業一覧画面以外では点検作業報告画面へ遷移できません。(2)</string> <string name="msg_routineTask_report_disable_meeting_room_2">作業一覧画面以外では点検作業報告画面へ遷移できません。(2)</string>
<string name="msg_routineTask_report_disable_not_updated_2">情報更新されてませんので点検作業報告画面へ遷移できません。(2)</string> <string name="msg_routineTask_report_disable_not_updated_2">情報更新されてませんので点検作業報告画面へ遷移できません。(2)</string>
<string name="msg_routineTask_report_disable_no_operation_2">作業が存在しないので点検作業報告画面へ遷移できません。(2)</string> <string name="msg_routineTask_report_disable_no_operation_2">作業が存在しないので点検作業報告画面へ遷移できません。(2)</string>
...@@ -1030,8 +1041,8 @@ ...@@ -1030,8 +1041,8 @@
<string name="date_label_routineTask_3">作業期間(3)</string> <string name="date_label_routineTask_3">作業期間(3)</string>
<string name="msg_no_report_data_3">作業データがありません。(3)</string> <string name="msg_no_report_data_3">作業データがありません。(3)</string>
<string name="msg_permission_dialog_mic_3">マイク利用権限が必要です。\nアプリ設定画面へ遷移します。(3)</string> <string name="msg_permission_dialog_mic_3">マイク利用権限が必要です。\nアプリ設定画面へ遷移します。(3)</string>
<string name="msg_routineTask_report_disable_not_list_3">情報更新中には点検作業報告画面へ遷移できません。(3)</string> <string name="msg_routineTask_report_disable_refreshing_3">情報更新中には点検作業報告画面へ遷移できません。(3)</string>
<string name="msg_routineTask_report_disable_refreshing_3">作業一覧画面以外では点検作業報告画面へ遷移できません。(3)</string> <string name="msg_routineTask_report_disable_not_list_3">作業一覧画面以外では点検作業報告画面へ遷移できません。(3)</string>
<string name="msg_routineTask_report_disable_meeting_room_3">作業一覧画面以外では点検作業報告画面へ遷移できません。(3)</string> <string name="msg_routineTask_report_disable_meeting_room_3">作業一覧画面以外では点検作業報告画面へ遷移できません。(3)</string>
<string name="msg_routineTask_report_disable_not_updated_3">情報更新されてませんので点検作業報告画面へ遷移できません。(3)</string> <string name="msg_routineTask_report_disable_not_updated_3">情報更新されてませんので点検作業報告画面へ遷移できません。(3)</string>
<string name="msg_routineTask_report_disable_no_operation_3">作業が存在しないので点検作業報告画面へ遷移できません。(3)</string> <string name="msg_routineTask_report_disable_no_operation_3">作業が存在しないので点検作業報告画面へ遷移できません。(3)</string>
...@@ -1206,8 +1217,8 @@ ...@@ -1206,8 +1217,8 @@
<string name="date_label_routineTask_4">作業期間(4)</string> <string name="date_label_routineTask_4">作業期間(4)</string>
<string name="msg_no_report_data_4">作業データがありません。(4)</string> <string name="msg_no_report_data_4">作業データがありません。(4)</string>
<string name="msg_permission_dialog_mic_4">マイク利用権限が必要です。\nアプリ設定画面へ遷移します。(4)</string> <string name="msg_permission_dialog_mic_4">マイク利用権限が必要です。\nアプリ設定画面へ遷移します。(4)</string>
<string name="msg_routineTask_report_disable_not_list_4">情報更新中には点検作業報告画面へ遷移できません。(4)</string> <string name="msg_routineTask_report_disable_refreshing_4">情報更新中には点検作業報告画面へ遷移できません。(4)</string>
<string name="msg_routineTask_report_disable_refreshing_4">作業一覧画面以外では点検作業報告画面へ遷移できません。(4)</string> <string name="msg_routineTask_report_disable_not_list_4">作業一覧画面以外では点検作業報告画面へ遷移できません。(4)</string>
<string name="msg_routineTask_report_disable_meeting_room_4">作業一覧画面以外では点検作業報告画面へ遷移できません。(4)</string> <string name="msg_routineTask_report_disable_meeting_room_4">作業一覧画面以外では点検作業報告画面へ遷移できません。(4)</string>
<string name="msg_routineTask_report_disable_not_updated_4">情報更新されてませんので点検作業報告画面へ遷移できません。(4)</string> <string name="msg_routineTask_report_disable_not_updated_4">情報更新されてませんので点検作業報告画面へ遷移できません。(4)</string>
<string name="msg_routineTask_report_disable_no_operation_4">作業が存在しないので点検作業報告画面へ遷移できません。(4)</string> <string name="msg_routineTask_report_disable_no_operation_4">作業が存在しないので点検作業報告画面へ遷移できません。(4)</string>
...@@ -1382,8 +1393,8 @@ ...@@ -1382,8 +1393,8 @@
<string name="date_label_routineTask_5">作業期間(5)</string> <string name="date_label_routineTask_5">作業期間(5)</string>
<string name="msg_no_report_data_5">作業データがありません。(5)</string> <string name="msg_no_report_data_5">作業データがありません。(5)</string>
<string name="msg_permission_dialog_mic_5">マイク利用権限が必要です。\nアプリ設定画面へ遷移します。(5)</string> <string name="msg_permission_dialog_mic_5">マイク利用権限が必要です。\nアプリ設定画面へ遷移します。(5)</string>
<string name="msg_routineTask_report_disable_not_list_5">情報更新中には点検作業報告画面へ遷移できません。(5)</string> <string name="msg_routineTask_report_disable_refreshing_5">情報更新中には点検作業報告画面へ遷移できません。(5)</string>
<string name="msg_routineTask_report_disable_refreshing_5">作業一覧画面以外では点検作業報告画面へ遷移できません。(5)</string> <string name="msg_routineTask_report_disable_not_list_5">作業一覧画面以外では点検作業報告画面へ遷移できません。(5)</string>
<string name="msg_routineTask_report_disable_meeting_room_5">作業一覧画面以外では点検作業報告画面へ遷移できません。(5)</string> <string name="msg_routineTask_report_disable_meeting_room_5">作業一覧画面以外では点検作業報告画面へ遷移できません。(5)</string>
<string name="msg_routineTask_report_disable_not_updated_5">情報更新されてませんので点検作業報告画面へ遷移できません。(5)</string> <string name="msg_routineTask_report_disable_not_updated_5">情報更新されてませんので点検作業報告画面へ遷移できません。(5)</string>
<string name="msg_routineTask_report_disable_no_operation_5">作業が存在しないので点検作業報告画面へ遷移できません。(5)</string> <string name="msg_routineTask_report_disable_no_operation_5">作業が存在しないので点検作業報告画面へ遷移できません。(5)</string>
......
...@@ -525,6 +525,17 @@ ...@@ -525,6 +525,17 @@
<string name="operation_category">분류</string> <string name="operation_category">분류</string>
<string name="type_all">전체</string> <string name="type_all">전체</string>
<!-- 1.2.0 -->
<string name="msg_operation_enable_meeting_room_connected">회의실 접속 중에는 이 버튼을 사용하실수 없습니다. \n공통자료화면에서 자료를 선택해 주세요.</string>
<string name="batch_sync">일괄 동기</string>
<string name="batch_syncing">일괄 동기중...</string>
<string name="msg_confirm_batch_sync">표시 중인 모든 작업을 일괄 동기 하시겠습니까?</string>
<string name="msg_batch_sync_disconnect_network">인터넷에 접속 중이 아니므로, 동기처리를 중지합니다.</string>
<string name="msg_batch_sync_content_download_fail">작업 베이스 자료 파일 다운로드에 실패 하였습니다.</string>
<string name="msg_batch_sync_new_content_updating">새로운 정보갱신 중에는 일괄 동기을 하실 수 없습니다.</string>
<string name="msg_batch_sync_error">「%1$s」정보갱신에 실패하였습니다. 동기처리을 중지합니다.\n</string>
<string name="msg_batch_sync_move_operation_view">일괄 동기 처리 중에는 점검작업 보고화면으로 이동하실 수 없습니다.</string>
<!-- 1.0.1 Resource Pattern 1 --> <!-- 1.0.1 Resource Pattern 1 -->
<!-- 1.9.0.0--> <!-- 1.9.0.0-->
<string name="meetingroom_setting_1">회의실 설정(1)</string> <string name="meetingroom_setting_1">회의실 설정(1)</string>
......
...@@ -529,6 +529,16 @@ ...@@ -529,6 +529,16 @@
<string name="operation_category">Category</string> <string name="operation_category">Category</string>
<string name="type_all">All</string> <string name="type_all">All</string>
<string name="msg_operation_enable_meeting_room_connected">Because you are in a conference room, this button is not available right now. \n Please select the document from common document</string>
<string name="batch_sync">batch sync</string>
<string name="batch_syncing">batch syncing...</string>
<string name="msg_confirm_batch_sync">Do you want to synchronize all the displayed operation?</string>
<string name="msg_batch_sync_disconnect_network">There are not connected to the internet, we will stop the synchronization process.</string>
<string name="msg_batch_sync_content_download_fail">Failed to download operation base content.</string>
<string name="msg_batch_sync_new_content_updating">Batch synchronization can not be performed because new data is being updated.</string>
<string name="msg_batch_sync_error">「%1$s」 failed. Cancel synchronization processing.\n</string>
<string name="msg_batch_sync_move_operation_view">You can not transition to the inspection work report screen because you are in a batch synchronization.</string>
<!-- 1.0.1 Resource Pattern 1 --> <!-- 1.0.1 Resource Pattern 1 -->
<!-- 1.9.0.0--> <!-- 1.9.0.0-->
<string name="meetingroom_setting_1">Meeting room setting(1)</string> <string name="meetingroom_setting_1">Meeting room setting(1)</string>
......
...@@ -77,6 +77,15 @@ ...@@ -77,6 +77,15 @@
android:textStyle="bold" /> android:textStyle="bold" />
</RadioGroup> </RadioGroup>
<ImageButton
android:id="@+id/btc_batch_sync"
style="@style/ToolBarIcon"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/segment_group"
android:src="@drawable/ic_batch_sync"
android:visibility="gone"/>
<LinearLayout <LinearLayout
android:id="@+id/search_result" android:id="@+id/search_result"
android:layout_width="wrap_content" android:layout_width="wrap_content"
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
<RadioButton <RadioButton
android:id="@+id/operation_location_type_all" android:id="@+id/operation_location_type_all"
android:layout_width="80dp" android:layout_width="60dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@drawable/operation_location_segment_background" android:background="@drawable/operation_location_segment_background"
android:button="@null" android:button="@null"
...@@ -52,15 +52,17 @@ ...@@ -52,15 +52,17 @@
android:onClick="onClickOperationLocationType" android:onClick="onClickOperationLocationType"
android:textColor="@drawable/operation_location_text_color" android:textColor="@drawable/operation_location_text_color"
android:text="@string/type_all" android:text="@string/type_all"
android:textSize="10sp"
android:textStyle="bold" /> android:textStyle="bold" />
<RadioButton <RadioButton
android:id="@+id/operation_location_type_group" android:id="@+id/operation_location_type_group"
android:layout_width="80dp" android:layout_width="60dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@drawable/operation_location_segment_background" android:background="@drawable/operation_location_segment_background"
android:button="@null" android:button="@null"
android:gravity="center" android:gravity="center"
android:textSize="10sp"
android:onClick="onClickOperationLocationType" android:onClick="onClickOperationLocationType"
android:textColor="@drawable/operation_location_text_color" android:textColor="@drawable/operation_location_text_color"
android:text="@string/operation_category" android:text="@string/operation_category"
...@@ -68,6 +70,14 @@ ...@@ -68,6 +70,14 @@
</RadioGroup> </RadioGroup>
<ImageButton <ImageButton
android:id="@+id/btc_batch_sync"
style="@style/ToolBarIcon"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/segment_group"
android:src="@drawable/ic_batch_sync" />
<ImageButton
android:id="@+id/btn_common_content" android:id="@+id/btn_common_content"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
......
...@@ -49,7 +49,7 @@ public class ABVFcmListenerService extends FirebaseMessagingService { ...@@ -49,7 +49,7 @@ public class ABVFcmListenerService extends FirebaseMessagingService {
public void onMessageReceived(RemoteMessage remoteMessage) { public void onMessageReceived(RemoteMessage remoteMessage) {
Map<String, String> msg = remoteMessage.getData(); Map<String, String> msg = remoteMessage.getData();
Log.d(TAG,"onMessageReceived(): msg :"+ msg); Logger.d(TAG,"onMessageReceived(): msg :"+ msg);
try { try {
UserAuthenticateLogic logic = AbstractLogic.getLogic(UserAuthenticateLogic.class); UserAuthenticateLogic logic = AbstractLogic.getLogic(UserAuthenticateLogic.class);
MemberInfoDto memberInfo = logic.getMemberInfo(); MemberInfoDto memberInfo = logic.getMemberInfo();
......
...@@ -2,6 +2,7 @@ package jp.agentec.abook.abv.cl.util; ...@@ -2,6 +2,7 @@ package jp.agentec.abook.abv.cl.util;
import jp.agentec.abook.abv.bl.acms.client.json.content.MediaInfoJSON; import jp.agentec.abook.abv.bl.acms.client.json.content.MediaInfoJSON;
import jp.agentec.abook.abv.bl.acms.client.json.content.PageObjectJSON; import jp.agentec.abook.abv.bl.acms.client.json.content.PageObjectJSON;
import jp.agentec.abook.abv.bl.common.Constant;
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.dao.AbstractDao; import jp.agentec.abook.abv.bl.data.dao.AbstractDao;
import jp.agentec.abook.abv.bl.data.dao.ContentObjectLogDao; import jp.agentec.abook.abv.bl.data.dao.ContentObjectLogDao;
...@@ -13,6 +14,7 @@ import jp.agentec.abook.abv.bl.logic.ContentReadingLogLogic; ...@@ -13,6 +14,7 @@ import jp.agentec.abook.abv.bl.logic.ContentReadingLogLogic;
import jp.agentec.abook.abv.bl.logic.ContractLogic; import jp.agentec.abook.abv.bl.logic.ContractLogic;
import jp.agentec.abook.abv.bl.websocket.MeetingManager; import jp.agentec.abook.abv.bl.websocket.MeetingManager;
import jp.agentec.abook.abv.launcher.android.R; import jp.agentec.abook.abv.launcher.android.R;
import jp.agentec.abook.abv.ui.home.helper.ABookPermissionHelper;
import jp.agentec.adf.util.DateTimeUtil; import jp.agentec.adf.util.DateTimeUtil;
import org.json.adf.JSONException; import org.json.adf.JSONException;
...@@ -51,7 +53,8 @@ public class ContentLogUtil { ...@@ -51,7 +53,8 @@ public class ContentLogUtil {
int readingLogId = contentReadingLogLogic.startContentReadLog(contentId); int readingLogId = contentReadingLogLogic.startContentReadLog(contentId);
// 位置情報取得許可、サービスオプション、ビルドオプションチェック // 位置情報取得許可、サービスオプション、ビルドオプションチェック
if (permissionAccessLocation && checkUsableReadinglogGps(contentId)) { ABookPermissionHelper helper = new ABookPermissionHelper(context, Constant.ABookPermissionType.AccessFineLocation, null);
if (checkUsableReadinglogGps(contentId) && helper.checkMultiPermissions(false)) { //20190529 アプリ側の位置情報許可チェックはしない
// 位置情報取得 // 位置情報取得
locationManagerUtil = new LocationManagerUtil(context, new LocationManagerUtil.LocationManagerUtilListener() { locationManagerUtil = new LocationManagerUtil(context, new LocationManagerUtil.LocationManagerUtilListener() {
@Override @Override
......
...@@ -321,8 +321,8 @@ public abstract class ABVActivity extends Activity { ...@@ -321,8 +321,8 @@ public abstract class ABVActivity extends Activity {
} }
} }
protected void startActivity(Intent intend, NaviConsts ABVNavi) { protected void startActivity(Intent intent, NaviConsts ABVNavi) {
super.startActivity(intend); super.startActivity(intent);
ActivityHandlingHelper.transitionNavi(this, ABVNavi); ActivityHandlingHelper.transitionNavi(this, ABVNavi);
} }
...@@ -800,7 +800,7 @@ public abstract class ABVActivity extends Activity { ...@@ -800,7 +800,7 @@ public abstract class ABVActivity extends Activity {
showSimpleAlertDialog(getString(titleResId), getString(bodyResId)); showSimpleAlertDialog(getString(titleResId), getString(bodyResId));
} }
protected void showSimpleAlertDialog(final String title, final String body) { public void showSimpleAlertDialog(final String title, final String body) {
handler.postDelayed(new Runnable() { handler.postDelayed(new Runnable() {
@Override @Override
public void run() { public void run() {
......
...@@ -98,9 +98,11 @@ import jp.agentec.abook.abv.ui.common.dialog.ABookAlertDialog; ...@@ -98,9 +98,11 @@ import jp.agentec.abook.abv.ui.common.dialog.ABookAlertDialog;
import jp.agentec.abook.abv.ui.common.util.AlertDialogUtil; import jp.agentec.abook.abv.ui.common.util.AlertDialogUtil;
import jp.agentec.abook.abv.ui.common.util.DisplayUtil; import jp.agentec.abook.abv.ui.common.util.DisplayUtil;
import jp.agentec.abook.abv.ui.common.util.Initializer; import jp.agentec.abook.abv.ui.common.util.Initializer;
import jp.agentec.abook.abv.ui.common.view.ABVBatchSyncView;
import jp.agentec.abook.abv.ui.common.vo.Size; import jp.agentec.abook.abv.ui.common.vo.Size;
import jp.agentec.abook.abv.ui.home.activity.HelpActivity; import jp.agentec.abook.abv.ui.home.activity.HelpActivity;
import jp.agentec.abook.abv.ui.home.activity.LoginActivity; import jp.agentec.abook.abv.ui.home.activity.LoginActivity;
import jp.agentec.abook.abv.ui.home.activity.OperationListActivity;
import jp.agentec.abook.abv.ui.home.activity.SplashScreenActivity; import jp.agentec.abook.abv.ui.home.activity.SplashScreenActivity;
import jp.agentec.abook.abv.ui.home.helper.ActivityHandlingHelper; import jp.agentec.abook.abv.ui.home.helper.ActivityHandlingHelper;
import jp.agentec.abook.abv.ui.home.helper.ContentViewHelper; import jp.agentec.abook.abv.ui.home.helper.ContentViewHelper;
...@@ -122,10 +124,13 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co ...@@ -122,10 +124,13 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co
private ExecutorService initilizeExecutor = Executors.newFixedThreadPool(2); // DL後の初期化専用 private ExecutorService initilizeExecutor = Executors.newFixedThreadPool(2); // DL後の初期化専用
protected ImageButton btnDownload;
protected ActivityHandlingHelper activityHandlingHelper; protected ActivityHandlingHelper activityHandlingHelper;
protected Size mDisplaySize; protected Size mDisplaySize;
// 一括同期ビュー(コントロール)
protected ABVBatchSyncView batchSyncView;
/** /**
* メッセージ表示タイプ * メッセージ表示タイプ
*/ */
...@@ -207,8 +212,11 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co ...@@ -207,8 +212,11 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co
@Override @Override
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
if (!(this instanceof OperationListActivity)) {
// 作業一覧ではない場合、ダウンロードリスナーを削除する
contentDownloader.removeContentDownloadListener(this); contentDownloader.removeContentDownloadListener(this);
} }
}
@Override @Override
protected void onDestroy() { protected void onDestroy() {
...@@ -218,6 +226,10 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co ...@@ -218,6 +226,10 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co
@Override @Override
protected void onApplicationBroughtFromBackground() { protected void onApplicationBroughtFromBackground() {
if (isShowingBatchSync()) {
// 一括同期中は以下の処理を行わないようにする
return;
}
new Handler().post(new Runnable() { new Handler().post(new Runnable() {
@Override @Override
public void run() { public void run() {
...@@ -583,11 +595,23 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co ...@@ -583,11 +595,23 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co
contentLogic.deleteContent(dto, deletePhysical); contentLogic.deleteContent(dto, deletePhysical);
} }
/**
* ダウンロード処理(wifiチェック/トーストメッセージ表示)
* @param contentId
* @return
*/
protected boolean contentDownload(long contentId) { protected boolean contentDownload(long contentId) {
return contentDownload(contentId, true); return contentDownload(contentId, true, true);
} }
protected boolean contentDownload(final long contentId, boolean needCheckWifiFlag) { /**
* ダウンロード処理
* @param contentId
* @param needCheckWifiFlag
* @param isShowToast
* @return
*/
protected boolean contentDownload(final long contentId, boolean needCheckWifiFlag, final boolean isShowToast) {
boolean result = true; boolean result = true;
try { try {
if (needCheckWifiFlag) { if (needCheckWifiFlag) {
...@@ -595,7 +619,7 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co ...@@ -595,7 +619,7 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co
showWifiDisconnectAlert(R.string.C_E_SYSTEM_0005, new DialogInterface.OnClickListener() { showWifiDisconnectAlert(R.string.C_E_SYSTEM_0005, new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
contentDownload(contentId, false); contentDownload(contentId, false, isShowToast);
} }
}, new DialogInterface.OnClickListener() { }, new DialogInterface.OnClickListener() {
@Override @Override
...@@ -609,45 +633,34 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co ...@@ -609,45 +633,34 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co
} else { } else {
// 空き容量が少ない場合警告を表示 // 空き容量が少ない場合警告を表示
if (!StorageUtil.isFreeSpaceEnough(this)) { if (!StorageUtil.isFreeSpaceEnough(this)) {
Logger.w(TAG, "[storage free space enough]");
if (isShowToast) {
handleErrorMessageToast(ErrorCode.STORAGE_WARNING); handleErrorMessageToast(ErrorCode.STORAGE_WARNING);
} }
}
contentDownloader.download(contentId); contentDownloader.download(contentId);
} }
} catch (NetworkDisconnectedException e) { } catch (NetworkDisconnectedException e) {
Logger.e(TAG, "NetworkDisconnectedException" + e); Logger.e(TAG, "NetworkDisconnectedException" + e);
if (isShowToast) {
handleErrorMessageToast(ErrorCode.NETWORK); handleErrorMessageToast(ErrorCode.NETWORK);
}
result = false; result = false;
} catch (ABVException e) { } catch (ABVException e) {
if (btnDownload != null) {
btnDownload.setVisibility(View.INVISIBLE);
}
Logger.e("ABVException", e.toString()); Logger.e("ABVException", e.toString());
result = false; result = false;
} catch (Exception e) { } catch (Exception e) {
Logger.e(TAG, "Exception " + e); Logger.e(TAG, "Exception " + e);
if (isShowToast) {
handleErrorMessageToast(ErrorCode.E107); handleErrorMessageToast(ErrorCode.E107);
result = false;
} finally {
try {
List<ContentDto> contentList = contentDao.getUnfinishedDownloadAll();
if (contentList != null && contentList.size() > 0) {
if (btnDownload != null) {
btnDownload.setVisibility(View.VISIBLE);
}
} else {
if (btnDownload != null) {
btnDownload.setVisibility(View.INVISIBLE);
} }
}
} catch (Exception e) {
Logger.e(TAG, "Exception " + e);
handleErrorMessageToast(ErrorCode.E107);
result = false; result = false;
} }
}
return result; return result;
} }
// Wifi非接続時のアラート表示 // Wifi非接続時のアラート表示
public void showWifiDisconnectAlert(final int messageId, final DialogInterface.OnClickListener positive, final DialogInterface.OnClickListener negative) throws NetworkDisconnectedException { public void showWifiDisconnectAlert(final int messageId, final DialogInterface.OnClickListener positive, final DialogInterface.OnClickListener negative) throws NetworkDisconnectedException {
showWifiDisconnectAlert(messageId, R.string.download, positive, negative); showWifiDisconnectAlert(messageId, R.string.download, positive, negative);
...@@ -697,8 +710,6 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co ...@@ -697,8 +710,6 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co
} }
} }
public abstract boolean contentValidCheckAndDownload(long contentId);
public void startContentViewActivity(long contentId) { public void startContentViewActivity(long contentId) {
startContentViewActivity(contentId, 0); startContentViewActivity(contentId, 0);
} }
...@@ -745,6 +756,13 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co ...@@ -745,6 +756,13 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co
intent.putExtra(ABookKeys.HELP_VIEW_TYPE, helpViewType); intent.putExtra(ABookKeys.HELP_VIEW_TYPE, helpViewType);
intent.setClassName(getApplicationContext().getPackageName(), className); intent.setClassName(getApplicationContext().getPackageName(), className);
startActivity(intent); startActivity(intent);
}
/**
* 一括同期処理中であるか確認
* @return
*/
public boolean isShowingBatchSync() {
return batchSyncView != null && batchSyncView.isShowing();
} }
} }
...@@ -551,11 +551,6 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity { ...@@ -551,11 +551,6 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
} }
} }
@Override
public boolean contentValidCheckAndDownload(long contentId) {
return false; // dummy
}
protected void setMeetingParticipantCount(boolean isVisible, View toolBar) { protected void setMeetingParticipantCount(boolean isVisible, View toolBar) {
final TextView textView = (TextView)toolBar.findViewById(R.id.txt_meeting_participant); final TextView textView = (TextView)toolBar.findViewById(R.id.txt_meeting_participant);
if (textView == null) { if (textView == null) {
......
...@@ -24,6 +24,7 @@ import jp.agentec.abook.abv.ui.common.dialog.ABookAlertDialog; ...@@ -24,6 +24,7 @@ import jp.agentec.abook.abv.ui.common.dialog.ABookAlertDialog;
import jp.agentec.abook.abv.ui.common.util.ABVToastUtil; import jp.agentec.abook.abv.ui.common.util.ABVToastUtil;
import jp.agentec.abook.abv.ui.common.util.AlertDialogUtil; import jp.agentec.abook.abv.ui.common.util.AlertDialogUtil;
import jp.agentec.abook.abv.ui.common.util.LogUtil; import jp.agentec.abook.abv.ui.common.util.LogUtil;
import jp.agentec.abook.abv.ui.common.view.ABVBatchSyncView;
import jp.agentec.abook.abv.ui.home.activity.ABookSettingActivity; import jp.agentec.abook.abv.ui.home.activity.ABookSettingActivity;
import jp.agentec.abook.abv.ui.home.helper.ActivityHandlingHelper; import jp.agentec.abook.abv.ui.home.helper.ActivityHandlingHelper;
...@@ -52,7 +53,6 @@ public abstract class ABVUIActivity extends ABVAuthenticatedActivity { ...@@ -52,7 +53,6 @@ public abstract class ABVUIActivity extends ABVAuthenticatedActivity {
// 新着更新処理の終了後、プルダウンを完了させるためのビュー // 新着更新処理の終了後、プルダウンを完了させるためのビュー
protected PullToRefreshBase refreshBaseView; protected PullToRefreshBase refreshBaseView;
protected String urlPassword; // Reader用
//Gettisの場合:プッシュ―メッセージを経由してコンテンツダウンロード場合対応 //Gettisの場合:プッシュ―メッセージを経由してコンテンツダウンロード場合対応
private String mPushMessage = ""; //コンテンツ追加の機能をの引数が増えないようにこの変数を追加 private String mPushMessage = ""; //コンテンツ追加の機能をの引数が増えないようにこの変数を追加
...@@ -262,31 +262,14 @@ public abstract class ABVUIActivity extends ABVAuthenticatedActivity { ...@@ -262,31 +262,14 @@ public abstract class ABVUIActivity extends ABVAuthenticatedActivity {
* @param contentId 対象コンテンツID * @param contentId 対象コンテンツID
* @return boolean チェックの成功可否 * @return boolean チェックの成功可否
*/ */
@Override public boolean contentValidCheckAndDownload(long contentId) {
public boolean contentValidCheckAndDownload(final long contentId) {
CommonExecutor.execute(new Runnable() {
@Override
public void run() {
contentValidCheckAndDownload(contentId, true);
}
});
return true;
}
/**
* コンテンツの有効性チェックとダウンロードを行う
* @param contentId 対象コンテンツID
* @param refreshFlag 画面のリフレッシュさせるかのフラグ
* @return boolean チェックの成功可否
*/
public boolean contentValidCheckAndDownload(long contentId, boolean refreshFlag) {
boolean checkResult = false; boolean checkResult = false;
int status = contentValidCheckAndShowMessage(contentId, MessageType.TYPE_SHOW_TOAST); int status = contentValidCheckAndShowMessage(contentId, MessageType.TYPE_SHOW_TOAST);
if (status == ContentCheckResultType.SUCCESS) { if (status == ContentCheckResultType.SUCCESS) {
checkResult = contentDownload(contentId); checkResult = contentDownload(contentId);
} }
if (status == ContentCheckResultType.NO_AUTH_DELETE && refreshFlag) { if (status == ContentCheckResultType.NO_AUTH_DELETE) {
// コンテンツのチェック結果が権限喪失の場合はリフレッシュ // コンテンツのチェック結果が権限喪失の場合はリフレッシュ
handler.post(new Runnable() { handler.post(new Runnable() {
@Override @Override
......
...@@ -3,6 +3,7 @@ package jp.agentec.abook.abv.ui.common.activity; ...@@ -3,6 +3,7 @@ package jp.agentec.abook.abv.ui.common.activity;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.os.Bundle; import android.os.Bundle;
import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.dto.OperationDto; import jp.agentec.abook.abv.bl.dto.OperationDto;
import jp.agentec.abook.abv.bl.logic.AbstractLogic; import jp.agentec.abook.abv.bl.logic.AbstractLogic;
import jp.agentec.abook.abv.bl.logic.OperationLogic; import jp.agentec.abook.abv.bl.logic.OperationLogic;
...@@ -18,15 +19,19 @@ import jp.agentec.abook.abv.ui.home.helper.ActivityHandlingHelper; ...@@ -18,15 +19,19 @@ import jp.agentec.abook.abv.ui.home.helper.ActivityHandlingHelper;
import jp.agentec.adf.util.StringUtil; import jp.agentec.adf.util.StringUtil;
public class ShowPushMessageDailogActivity extends ABVUIActivity { public class ShowPushMessageDailogActivity extends ABVUIActivity {
private static final String TAG = "ShowPushMessageDailogActivity";
OperationLogic mOperationLogic = AbstractLogic.getLogic(OperationLogic.class);
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
String data = getIntent().getExtras().getString(PushMessageKey.data); String data = getIntent().getExtras() != null ? getIntent().getExtras().getString(PushMessageKey.data) : null;
if (StringUtil.isNullOrEmpty(data)) { if (StringUtil.isNullOrEmpty(data)) {
final long operationId = StringUtil.isNullOrEmpty(getIntent().getExtras().getString(PushMessageKey.operationId)) ? 0 : Long.parseLong(getIntent().getExtras().getString(PushMessageKey.operationId)); final long operationId = StringUtil.isNullOrEmpty(getIntent().getExtras().getString(PushMessageKey.operationId)) ? 0 : Long.parseLong(getIntent().getExtras().getString(PushMessageKey.operationId));
if (operationId > 0) { if (operationId > 0) {
Logger.d(TAG, "operationId : " + operationId);
final ABookAlertDialog alertDialog = AlertDialogUtil.createAlertDialog(ShowPushMessageDailogActivity.this, getRString(R.string.app_name), getIntent().getExtras().getString(PushMessageKey.message)); final ABookAlertDialog alertDialog = AlertDialogUtil.createAlertDialog(ShowPushMessageDailogActivity.this, getRString(R.string.app_name), getIntent().getExtras().getString(PushMessageKey.message));
// リソースパターンの適用 // リソースパターンの適用
...@@ -47,25 +52,31 @@ public class ShowPushMessageDailogActivity extends ABVUIActivity { ...@@ -47,25 +52,31 @@ public class ShowPushMessageDailogActivity extends ABVUIActivity {
R.string.msg_routineTask_report_disable_meeting_room, R.string.msg_routineTask_report_disable_meeting_room,
getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0))); getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)));
} else { } else {
OperationLogic mOperationLogic = AbstractLogic.getLogic(OperationLogic.class); OperationListActivity operationListActivity = ActivityHandlingHelper.getInstance().getPreviousOperationListActivity();
if (operationListActivity != null && operationListActivity.isShowingBatchSync()) {
Logger.d(TAG, "is showing Batch Sync");
// 一括同期中は移動しない
ErrorMessage.showErrorMessageToast(ShowPushMessageDailogActivity.this, getString(R.string.msg_batch_sync_move_operation_view));
} else {
OperationDto operationDto = mOperationLogic.getOperation(operationId); OperationDto operationDto = mOperationLogic.getOperation(operationId);
if (operationDto == null) { if (operationDto == null) {
Logger.d(TAG, "operationDto is null");
// リソースパターンの適用 // リソースパターンの適用
ErrorMessage.showErrorMessageToast(ShowPushMessageDailogActivity.this, PatternStringUtil.patternToInt(getApplicationContext(), ErrorMessage.showErrorMessageToast(ShowPushMessageDailogActivity.this, PatternStringUtil.patternToInt(getApplicationContext(),
R.string.msg_routineTask_report_disable_no_operation, R.string.msg_routineTask_report_disable_no_operation,
getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0))); getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)));
} else if (operationDto.needSyncFlg) { } else if (operationDto.needSyncFlg) {
Logger.d(TAG, "needSyncFlg is true");
// リソースパターンの適用 // リソースパターンの適用
ErrorMessage.showErrorMessageToast(ShowPushMessageDailogActivity.this, PatternStringUtil.patternToInt(getApplicationContext(), ErrorMessage.showErrorMessageToast(ShowPushMessageDailogActivity.this, PatternStringUtil.patternToInt(getApplicationContext(),
R.string.msg_routineTask_report_disable_not_updated, R.string.msg_routineTask_report_disable_not_updated,
getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0))); getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)));
} else { } else {
OperationListActivity operationListActivity = ActivityHandlingHelper.getInstance().getPreviousOperationListActivity();
if (operationListActivity != null) { if (operationListActivity != null) {
Logger.d(TAG, "startTaskDirectionOrReportView");
operationListActivity.startTaskDirectionOrReportView(operationDto); operationListActivity.startTaskDirectionOrReportView(operationDto);
} else { } else {
Logger.d(TAG, "operationListActivity is null");
// リソースパターンの適用 // リソースパターンの適用
ErrorMessage.showErrorMessageToast(ShowPushMessageDailogActivity.this, PatternStringUtil.patternToInt(getApplicationContext(), ErrorMessage.showErrorMessageToast(ShowPushMessageDailogActivity.this, PatternStringUtil.patternToInt(getApplicationContext(),
R.string.msg_routineTask_report_disable_not_list, R.string.msg_routineTask_report_disable_not_list,
...@@ -73,6 +84,7 @@ public class ShowPushMessageDailogActivity extends ABVUIActivity { ...@@ -73,6 +84,7 @@ public class ShowPushMessageDailogActivity extends ABVUIActivity {
} }
} }
} }
}
dialog.dismiss(); dialog.dismiss();
} }
}); });
......
package jp.agentec.abook.abv.ui.common.view;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.PixelFormat;
import java.util.Stack;
import jp.agentec.abook.abv.bl.common.ABVEnvironment;
import jp.agentec.abook.abv.bl.common.Callback;
import jp.agentec.abook.abv.bl.common.CommonExecutor;
import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.data.dao.AbstractDao;
import jp.agentec.abook.abv.bl.data.dao.ContentDao;
import jp.agentec.abook.abv.bl.dto.ContentDto;
import jp.agentec.abook.abv.bl.dto.OperationDto;
import jp.agentec.abook.abv.launcher.android.R;
import jp.agentec.abook.abv.ui.home.activity.OperationListActivity;
/**
* Created by leej on 2019/08/26.
*/
public class ABVBatchSyncView extends ProgressDialog {
private static final String TAG = "ABVBatchSyncView";
private Stack<OperationDto> mBatchSyncOperationStack = new Stack<>();
private ContentDao contentDao = AbstractDao.getDao(ContentDao.class);
private OperationListActivity mOperationListActivity;
// Activityが破棄された場合、処理を中止するフラグ
private boolean isDestroy = false;
public ABVBatchSyncView(Context context) {
super(context);
mOperationListActivity = (OperationListActivity)context;
init();
isDestroy = false;
}
// 初期化
private void init() {
if (getWindow() != null) {
setIndeterminate(false);
// キャンセルできないように設定・ナビゲーションバーのバックボタンも無効してくれる
setCancelable(false);
setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //プログレスバー表示
getWindow().setFormat(PixelFormat.TRANSPARENT);
setMessage(getContext().getResources().getString(R.string.batch_syncing));
}
}
/**
* スタックをセット(同期対象情報)
* @param operationDtoStack
*/
public void setStack(Stack<OperationDto> operationDtoStack) {
setMax(operationDtoStack.size());
mBatchSyncOperationStack = operationDtoStack;
}
/**
* 閉じる処理
*/
public void closeProgressDialog() {
// プログレス値を0に初期化
setProgress(0);
dismiss();
}
/**
* スタック中の空チェック
* @return
*/
public boolean isStackEmpty() {
return mBatchSyncOperationStack.empty();
}
/**
* 一括同期処理(stackの中を全て同期する)
* ベース資料ダウンロードチェックして、未ダウンロードであればダウンロードして同期
*/
public void batchOperationSyncForCheckDonwload() {
if (isDestroy || isStackEmpty()) {
// Activity破棄フラグがtrue、またはスタックが存在しなければ、全て完了と見做す
closeProgressDialog();
Logger.d(TAG, "---batchSync is end");
return;
}
// ベース資料のダウンロードチェック
OperationDto peekOperationDto = mBatchSyncOperationStack.peek();
ContentDto contentDto = contentDao.getContent(peekOperationDto.contentId);
if (contentDto == null) {
Logger.e(TAG, "contentDto is null !");
closeProgressDialog();
return;
}
if (!contentDto.downloadedFlg || contentDto.updatedFlg) {
if (!mOperationListActivity.operationContentDownload(contentDto)) {
// error
showBatchSyncErrorAlert(peekOperationDto, mOperationListActivity.getString(R.string.msg_batch_sync_content_download_fail));
}
return;
}
// 同期処理
batchOperationSync();
}
/**
* 一括同期処理(ベース資料はダウンロード済み)
*/
public void batchOperationSync() {
final OperationDto operationDto = mBatchSyncOperationStack.pop();
String errorMessage = mOperationListActivity.syncOperation(operationDto.operationId, operationDto.reportType, false);
if (errorMessage != null) {
showBatchSyncErrorAlert(operationDto, errorMessage);
} else {
// 正常
// 次のスタックがなければ、カウントしない
if (!isStackEmpty()) {
setProgress(getProgress() + 1);
}
// 次の作業を同期処理
batchOperationSyncForCheckDonwload();
}
}
// Activityが破棄された場合呼ばれる
public void setActivityDestroy() {
isDestroy = true;
}
/**
* 一括同期処理時、エラーアラート表示
* 一括同期中のプログレスバーは非表示にする
* @param operationDto
* @param errorMessage
*/
public void showBatchSyncErrorAlert(OperationDto operationDto, String errorMessage) {
// 異常
closeProgressDialog();
if (ABVEnvironment.getInstance().networkAdapter.isNetworkConnected()) {
String convertErrorMsg = String.format(mOperationListActivity.getString(R.string.msg_batch_sync_error), operationDto.operationName) + errorMessage;
mOperationListActivity.showSimpleAlertDialog(mOperationListActivity.getString(R.string.app_name), convertErrorMsg);
} else {
// ネットワーク通信エラー
mOperationListActivity.showSimpleAlertDialog(mOperationListActivity.getString(R.string.app_name), mOperationListActivity.getString(R.string.msg_batch_sync_disconnect_network));
}
}
}
...@@ -211,7 +211,7 @@ public class OperationRelatedContentActivity extends ABVUIActivity { ...@@ -211,7 +211,7 @@ public class OperationRelatedContentActivity extends ABVUIActivity {
mOperationRelatedContentSectionAdapter.setAdapterListener(new OperationRelatedContentSectionAdapter.OperationRelatedContentSectionListener() { mOperationRelatedContentSectionAdapter.setAdapterListener(new OperationRelatedContentSectionAdapter.OperationRelatedContentSectionListener() {
@Override @Override
public boolean onContentDownload(long contentId) { public boolean onContentDownload(long contentId) {
return contentValidCheckAndDownload(contentId, true); return contentValidCheckAndDownload(contentId);
} }
@Override @Override
...@@ -324,7 +324,7 @@ public class OperationRelatedContentActivity extends ABVUIActivity { ...@@ -324,7 +324,7 @@ public class OperationRelatedContentActivity extends ABVUIActivity {
protected Void doInBackground(Void... params) { protected Void doInBackground(Void... params) {
for (ContentDto contentDto : downloadList) { for (ContentDto contentDto : downloadList) {
Logger.i(TAG, "downloading content=" + contentDto.contentName); Logger.i(TAG, "downloading content=" + contentDto.contentName);
contentValidCheckAndDownload(contentDto.contentId, true); contentValidCheckAndDownload(contentDto.contentId);
} }
return null; return null;
} }
......
...@@ -118,29 +118,11 @@ public class OperationListAdapter extends AbstractOperationAdapter { ...@@ -118,29 +118,11 @@ public class OperationListAdapter extends AbstractOperationAdapter {
// 同期ボタン表示・非表示 // 同期ボタン表示・非表示
if (operationDto.contentId != null && operationDto.contentId != 0) { if (operationDto.contentId != null && operationDto.contentId != 0) {
if ((operationDto.needSyncFlg)) { holder.ivSync.setVisibility(operationDto.needSyncFlg ? View.VISIBLE : View.INVISIBLE);
holder.ivSync.setVisibility(View.VISIBLE);
} else { } else {
// needSyncFlgがfalseの場合 // 作業のコンテンツが存在しない場合は、同期ボタンを非活性化する
if (operationDto.reportType == ReportType.RoutineTask) {
// 定期点検プロジェクトの場合のみ、以下の処理を行う
String syncedDate = getUserPref(mContext, String.format(AppDefType.UserPrefKey.SYNCED_OPERATION_ID, operationDto.operationId), "");
if (StringUtil.isNullOrEmpty(operationDto.reportPeriod) && !syncedDate.equals(DateTimeUtil.toString(DateTimeUtil.getCurrentSqlDate(), DateTimeFormat.yyyyMMdd_none))) {
// 同期ボタンタップの日付と現在の日付が異なる且つ、作業するデータが存在しない場合
holder.ivSync.setVisibility(View.VISIBLE);
} else {
holder.ivSync.setVisibility(View.INVISIBLE);
}
} else {
// 定期点検プロジェクトではない場合、同期ボタンを非活性化する
holder.ivSync.setVisibility(View.INVISIBLE); holder.ivSync.setVisibility(View.INVISIBLE);
} }
}
} else {
// プロジェクトのコンテンツが存在しない場合は、同期ボタンを非活性化する
holder.ivSync.setVisibility(View.INVISIBLE);
}
if(operationDto.operationType == OperationType.PANO) { if(operationDto.operationType == OperationType.PANO) {
if (operationDto.enableReportEdit == Constant.EnableReportEdit.NO) { if (operationDto.enableReportEdit == Constant.EnableReportEdit.NO) {
......
...@@ -145,26 +145,9 @@ public class OperationPanelAdapter extends AbstractOperationAdapter { ...@@ -145,26 +145,9 @@ public class OperationPanelAdapter extends AbstractOperationAdapter {
// 同期ボタン表示・非表示 // 同期ボタン表示・非表示
if (operationDto.contentId != null && operationDto.contentId != 0) { if (operationDto.contentId != null && operationDto.contentId != 0) {
if ((operationDto.needSyncFlg)) { holder.ivSync.setVisibility(operationDto.needSyncFlg ? View.VISIBLE : View.INVISIBLE);
holder.ivSync.setVisibility(View.VISIBLE);
} else { } else {
// needSyncFlgがfalseの場合 // 作業のコンテンツが存在しない場合は、同期ボタンを非活性化する
if (operationDto.reportType == ReportType.RoutineTask) {
// 定期点検プロジェクトの場合のみ、以下の処理を行う
String syncedDate = getUserPref(mContext, String.format(AppDefType.UserPrefKey.SYNCED_OPERATION_ID, operationDto.operationId), "");
if (StringUtil.isNullOrEmpty(operationDto.reportPeriod) && !syncedDate.equals(DateTimeUtil.toString(DateTimeUtil.getCurrentSqlDate(), DateTimeFormat.yyyyMMdd_none))) {
// 同期ボタンタップの日付と現在の日付が異なる且つ、作業するデータが存在しない場合
holder.ivSync.setVisibility(View.VISIBLE);
} else {
holder.ivSync.setVisibility(View.INVISIBLE);
}
} else {
// 定期点検プロジェクトではない場合、同期ボタンを非活性化する
holder.ivSync.setVisibility(View.INVISIBLE);
}
}
} else {
// プロジェクトのコンテンツが存在しない場合は、同期ボタンを非活性化する
holder.ivSync.setVisibility(View.INVISIBLE); holder.ivSync.setVisibility(View.INVISIBLE);
} }
......
...@@ -74,6 +74,8 @@ public class OperationGroupMasterListHelper extends HierarchyOperationListHelper ...@@ -74,6 +74,8 @@ public class OperationGroupMasterListHelper extends HierarchyOperationListHelper
mAppActivity.closeOperationGroupMasterDialog(); mAppActivity.closeOperationGroupMasterDialog();
} }
OperationGroupMasterDto peekOperationGroupMasterDto = stack.peek(); OperationGroupMasterDto peekOperationGroupMasterDto = stack.peek();
mAppActivity.checkBatchNeedSyncButton(peekOperationGroupMasterDto.operationGroupMasterId);
// 作業種別IDで紐づく作業リストを取得 // 作業種別IDで紐づく作業リストを取得
return mOperationGroupMasterLogic.getOperationByOperationGroupMasterId(peekOperationGroupMasterDto.operationGroupMasterId); return mOperationGroupMasterLogic.getOperationByOperationGroupMasterId(peekOperationGroupMasterDto.operationGroupMasterId);
} }
......
...@@ -103,7 +103,9 @@ public class HTMLWebViewActivity extends ParentWebViewActivity { ...@@ -103,7 +103,9 @@ public class HTMLWebViewActivity extends ParentWebViewActivity {
webView = (WebView) findViewById(R.id.webView2); webView = (WebView) findViewById(R.id.webView2);
webView.setVisibility(View.VISIBLE); webView.setVisibility(View.VISIBLE);
webView.setVerticalScrollbarOverlay(true); // スクロールバー部分の隙間を消す webView.setVerticalScrollbarOverlay(true); // スクロールバー部分の隙間を消す
if (Logger.isDebugEnabled()) {
webView.setWebContentsDebuggingEnabled(true); //デバッグモード(chromeからinspect可) webView.setWebContentsDebuggingEnabled(true); //デバッグモード(chromeからinspect可)
}
// webView.setWebViewClient(new WebViewClient()); // webView.setWebViewClient(new WebViewClient());
// //ブラウザの描画領域を対象としたイベントをフック // //ブラウザの描画領域を対象としたイベントをフック
WebSettings settings = webView.getSettings(); WebSettings settings = webView.getSettings();
......
...@@ -119,8 +119,9 @@ public class HTMLXWalkWebViewActivity extends ParentWebViewActivity { ...@@ -119,8 +119,9 @@ public class HTMLXWalkWebViewActivity extends ParentWebViewActivity {
settings.setUseWideViewPort(true); // 画面の横幅にページの横幅を合わせる settings.setUseWideViewPort(true); // 画面の横幅にページの横幅を合わせる
settings.setDomStorageEnabled(true); // WebStorage有効化 settings.setDomStorageEnabled(true); // WebStorage有効化
settings.setCacheMode(XWalkSettings.LOAD_NO_CACHE); settings.setCacheMode(XWalkSettings.LOAD_NO_CACHE);
if (Logger.isDebugEnabled()) {
XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true); //デバッグモード(chromeからinspect可) XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true); //デバッグモード(chromeからinspect可)
}
final RelativeLayout fl = (RelativeLayout) findViewById(R.id.frameTopbar); final RelativeLayout fl = (RelativeLayout) findViewById(R.id.frameTopbar);
......
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