Commit 686fb965 by Lee Munkyeong

IO帳票1.4.0対応。

parent 66089491
...@@ -235,7 +235,9 @@ ...@@ -235,7 +235,9 @@
<!-- ABookCheck対応 --> <!-- ABookCheck対応 -->
<activity android:name="jp.agentec.abook.abv.ui.home.activity.OperationListActivity" <activity android:name="jp.agentec.abook.abv.ui.home.activity.OperationListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"/> android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
android:resizeableActivity="true"
android:windowSoftInputMode="adjustPan"/>
<activity android:name="jp.agentec.abook.abv.ui.home.activity.OperationRelatedContentActivity" <activity android:name="jp.agentec.abook.abv.ui.home.activity.OperationRelatedContentActivity"
android:configChanges="keyboardHidden|orientation|screenSize"/> android:configChanges="keyboardHidden|orientation|screenSize"/>
<activity android:name="jp.agentec.abook.abv.ui.home.activity.OperationMeetingListActivity"/> <activity android:name="jp.agentec.abook.abv.ui.home.activity.OperationMeetingListActivity"/>
......
Subproject commit 42598f4013d66303be35fbf2807e34fbf60b4490 Subproject commit 44603713517d4aecaa49ccc4d4b8427e2db2e12c
...@@ -16,6 +16,9 @@ import android.view.KeyEvent; ...@@ -16,6 +16,9 @@ import android.view.KeyEvent;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.Window; import android.view.Window;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.AbsListView; import android.widget.AbsListView;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
...@@ -69,6 +72,7 @@ import jp.agentec.abook.abv.bl.common.exception.ABVExceptionCode; ...@@ -69,6 +72,7 @@ import jp.agentec.abook.abv.bl.common.exception.ABVExceptionCode;
import jp.agentec.abook.abv.bl.common.exception.AcmsException; import jp.agentec.abook.abv.bl.common.exception.AcmsException;
import jp.agentec.abook.abv.bl.common.exception.NetworkDisconnectedException; import jp.agentec.abook.abv.bl.common.exception.NetworkDisconnectedException;
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.data.ABVDataCache; import jp.agentec.abook.abv.bl.data.ABVDataCache;
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.OperationContentDao; import jp.agentec.abook.abv.bl.data.dao.OperationContentDao;
...@@ -112,6 +116,7 @@ import jp.agentec.abook.abv.ui.home.helper.OperationGroupMasterListHelper; ...@@ -112,6 +116,7 @@ import jp.agentec.abook.abv.ui.home.helper.OperationGroupMasterListHelper;
import jp.agentec.abook.abv.ui.home.helper.OperationListHelper; import jp.agentec.abook.abv.ui.home.helper.OperationListHelper;
import jp.agentec.abook.abv.ui.viewer.activity.DeviceImageListActivity; import jp.agentec.abook.abv.ui.viewer.activity.DeviceImageListActivity;
import jp.agentec.abook.abv.ui.viewer.activity.HTMLXWalkWebViewActivity; import jp.agentec.abook.abv.ui.viewer.activity.HTMLXWalkWebViewActivity;
import jp.agentec.adf.util.CollectionUtil;
import jp.agentec.adf.util.DateTimeFormat; import jp.agentec.adf.util.DateTimeFormat;
import jp.agentec.adf.util.DateTimeUtil; import jp.agentec.adf.util.DateTimeUtil;
import jp.agentec.adf.util.FileUtil; import jp.agentec.adf.util.FileUtil;
...@@ -125,6 +130,11 @@ import jp.agentec.adf.util.StringUtil; ...@@ -125,6 +130,11 @@ import jp.agentec.adf.util.StringUtil;
public class OperationListActivity extends ABVUIActivity { public class OperationListActivity extends ABVUIActivity {
private static final String TAG = "OperationListActivity"; private static final String TAG = "OperationListActivity";
private WebView mCheckWebView;
private final String OPERATION_LIST_PAGE = "file:///android_asset/check/app/index.html?";
private JsInf jsInf = new JsInf();
private ImageButton mViewModeButton; // パンネル・リスト表示ボタン private ImageButton mViewModeButton; // パンネル・リスト表示ボタン
private ImageButton mSearchButton; // 検索ボタン private ImageButton mSearchButton; // 検索ボタン
private ImageButton mCommonContentButton; // 共通資料ボタン private ImageButton mCommonContentButton; // 共通資料ボタン
...@@ -196,174 +206,226 @@ public class OperationListActivity extends ABVUIActivity { ...@@ -196,174 +206,226 @@ public class OperationListActivity extends ABVUIActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ac_operation_list);
mListHelper = getListHelper();
// ビュー変更ボタン
mViewModeButton = (ImageButton) findViewById(R.id.btn_view_mode);
// 検索ボタン
mSearchButton = (ImageButton) findViewById(R.id.btn_search);
// ツールバーのタイトル表示
mOperationTitle = (TextView) findViewById(R.id.operation_title);
mOperationBatchSyncButton = (ImageButton) findViewById(R.id.btn_batch_sync);
communicationButton = (ImageButton) findViewById(R.id.btn_communication_menu); super.onCreate(savedInstanceState);
mCommonContentButton = (ImageButton) findViewById(R.id.btn_common_content); //setContentView(R.layout.ac_operation_list);
mCategoryLocationButton = (ImageButton) findViewById(R.id.btn_category_location);
mQuickReportPrintButton = (ImageButton) findViewById(R.id.btn_operation_print); setContentView(R.layout.chat_webview);
mCheckWebView = findViewById(R.id.chatWebview2);
mCheckWebView.setOverScrollMode(View.OVER_SCROLL_NEVER); //オーバースクロールしない。
mCheckWebView.setVerticalScrollBarEnabled(false); //スクロールバーを消す。
mCheckWebView.addJavascriptInterface(jsInf, "android");
WebSettings settings = mCheckWebView.getSettings();
settings.setJavaScriptEnabled(true); //Javascriptを有効にする。
settings.setAppCacheEnabled(true);
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
settings.setDomStorageEnabled(true);
settings.setDatabaseEnabled(true);
settings.setMediaPlaybackRequiresUserGesture(false);
settings.setAllowFileAccess(true);
settings.setUseWideViewPort(true);
settings.setAllowContentAccess(true);
settings.setAllowFileAccessFromFileURLs(true);
settings.setSaveFormData(false);
settings.setAllowUniversalAccessFromFileURLs(true);
ArrayList<String> paramList = new ArrayList<String>();
paramList.add("debug=1");
paramList.add("mobile_flg=1");
paramList.add("is_android=1");
mCheckWebView.postUrl(OPERATION_LIST_PAGE + StringUtil.join("&", paramList), null);
// 定期点検で同期ボタンタップの日付と現在の日付が異なる且つ、作業するデータが存在しない場合、needSyncFlgをtrueに更新 mListHelper = getListHelper();
updateNeedSyncRoutineOperation(); updateNeedSyncRoutineOperation();
// 非活性化する(ホーム画面ではホームボタンが必要ないため)
ImageButton operationHomeButton = (ImageButton) findViewById(R.id.btn_operation_home);
operationHomeButton.setEnabled(false);
// ビュー変更ボタンのタッチイベント
mViewModeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (getABVUIDataCache().getViewMode() == ViewMode.PANEL) {
getABVUIDataCache().setViewMode(ViewMode.LIST);
} else {
getABVUIDataCache().setViewMode(ViewMode.PANEL);
}
setOperationListView();
}
});
// サービスオプション(作業種別使用)をセット
mOperationGroupMasterServiceOperationFlg = ABVDataCache.getInstance().serviceOption.isOperationGroupMaster(); mOperationGroupMasterServiceOperationFlg = ABVDataCache.getInstance().serviceOption.isOperationGroupMaster();
//setOperationListView();
// 検索アイコンのクリックイベント
mSearchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showSearchDialog();
}
});
// コミュニケーションボタン
communicationButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showCommunicationMenuDialog();
}
});
// 共通関連資料ボタン
mCommonContentButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showCommonContent();
}
});
if (ABVDataCache.getInstance().serviceOption.isUnableIOReport()) {
// 簡易帳票印刷ボタン
mQuickReportPrintButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showPrintTargetSelect();
}
});
mQuickReportPrintButton.setVisibility(View.VISIBLE);
} else {
findViewById(R.id.print_layout).setVisibility(View.GONE);
mQuickReportPrintButton.setVisibility(View.GONE);
}
// 一括同期ボタン
mOperationBatchSyncButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ネットワーク通信チェック
if (!ABVEnvironment.getInstance().networkAdapter.isNetworkConnected()) {
showSimpleAlertDialog(getString(R.string.app_name), getString(R.string.request_network_connection));
return;
}
// 新着更新チェック
if (contentRefresher.isRefreshing()) {
showSimpleAlertDialog(getString(R.string.app_name), getString(R.string.msg_batch_sync_new_content_updating));
return;
}
// 会議室接続中 // 検索ボタン
if (ActivityHandlingHelper.getInstance().isMeetingConnected()) { // mSearchButton = (ImageButton) findViewById(R.id.btn_search);
ABVToastUtil.showMakeText(OperationListActivity.this, R.string.msg_operation_enable_meeting_room_connected, Toast.LENGTH_SHORT); //
return; // // ツールバーのタイトル表示
} // mOperationTitle = (TextView) findViewById(R.id.operation_title);
showBatchSyncDialog(); // mOperationBatchSyncButton = (ImageButton) findViewById(R.id.btn_batch_sync);
} //
}); // communicationButton = (ImageButton) findViewById(R.id.btn_communication_menu);
// mCommonContentButton = (ImageButton) findViewById(R.id.btn_common_content);
// mCategoryLocationButton = (ImageButton) findViewById(R.id.btn_category_location);
if (!StringUtil.isNullOrEmpty(getIntent().getStringExtra(AppDefType.PushMessageKey.operationId))) { // mQuickReportPrintButton = (ImageButton) findViewById(R.id.btn_operation_print);
final long operationId = Long.parseLong(getIntent().getStringExtra(AppDefType.PushMessageKey.operationId)); //
String message = getIntent().getStringExtra(AppDefType.PushMessageKey.message); // // 定期点検で同期ボタンタップの日付と現在の日付が異なる且つ、作業するデータが存在しない場合、needSyncFlgをtrueに更新
if (operationId > 0) { // updateNeedSyncRoutineOperation();
final ABookAlertDialog alertDialog = AlertDialogUtil.createAlertDialog(this, getRString(R.string.app_name), message); //
// リソースパターンの適用 // // 非活性化する(ホーム画面ではホームボタンが必要ないため)
alertDialog.setPositiveButton(PatternStringUtil.patternToInt(getApplicationContext(), R.string.work_report, getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)), // ImageButton operationHomeButton = (ImageButton) findViewById(R.id.btn_operation_home);
new DialogInterface.OnClickListener() { // operationHomeButton.setEnabled(false);
@Override //
public void onClick(DialogInterface dialog, int whichButton) { // // ビュー変更ボタンのタッチイベント
if (contentRefresher.isRefreshing()) { // mViewModeButton.setOnClickListener(new View.OnClickListener() {
// リソースパターンの適用 // @Override
ErrorMessage.showErrorMessageToast(OperationListActivity.this, PatternStringUtil.patternToInt(getApplicationContext(), // public void onClick(View v) {
R.string.msg_routineTask_report_disable_refreshing, // if (getABVUIDataCache().getViewMode() == ViewMode.PANEL) {
getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0))); // getABVUIDataCache().setViewMode(ViewMode.LIST);
} else if(ActivityHandlingHelper.getInstance().isMeetingConnected()) { // } else {
// リソースパターンの適用 // getABVUIDataCache().setViewMode(ViewMode.PANEL);
ErrorMessage.showErrorMessageToast(OperationListActivity.this, PatternStringUtil.patternToInt(getApplicationContext(), // }
R.string.msg_routineTask_report_disable_meeting_room, // setOperationListView();
getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0))); // }
} else if (isShowingBatchSync()) { // });
// 一括同期中は移動しない //
ErrorMessage.showErrorMessageToast(OperationListActivity.this, getString(R.string.msg_batch_sync_move_operation_view)); // // サービスオプション(作業種別使用)をセット
} else { // mOperationGroupMasterServiceOperationFlg = ABVDataCache.getInstance().serviceOption.isOperationGroupMaster();
OperationDto operationDto = mOperationLogic.getOperation(operationId); //
// // 検索アイコンのクリックイベント
if (operationDto == null) { // mSearchButton.setOnClickListener(new View.OnClickListener() {
// リソースパターンの適用 // @Override
ErrorMessage.showErrorMessageToast(OperationListActivity.this, PatternStringUtil.patternToInt(getApplicationContext(), // public void onClick(View v) {
R.string.msg_routineTask_report_disable_no_operation, // showSearchDialog();
getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0))); // }
} else if (operationDto.needSyncFlg) { // });
// リソースパターンの適用 //
ErrorMessage.showErrorMessageToast(OperationListActivity.this, PatternStringUtil.patternToInt(getApplicationContext(), // // コミュニケーションボタン
R.string.msg_routineTask_report_disable_not_updated, // communicationButton.setOnClickListener(new View.OnClickListener() {
getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0))); // @Override
} else { // public void onClick(View v) {
startTaskDirectionOrReportView(operationDto); // showCommunicationMenuDialog();
} // }
} // });
//
dialog.dismiss(); // // 共通関連資料ボタン
} // mCommonContentButton.setOnClickListener(new View.OnClickListener() {
}); // @Override
// public void onClick(View v) {
alertDialog.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { // showCommonContent();
@Override // }
public void onClick(DialogInterface dialog, int whichButton) { // });
dialog.dismiss(); //
} // if (ABVDataCache.getInstance().serviceOption.isUnableIOReport()) {
}); // // 簡易帳票印刷ボタン
// mQuickReportPrintButton.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// showPrintTargetSelect();
// }
// });
// mQuickReportPrintButton.setVisibility(View.VISIBLE);
// } else {
// findViewById(R.id.print_layout).setVisibility(View.GONE);
// mQuickReportPrintButton.setVisibility(View.GONE);
// }
//
// // 一括同期ボタン
// mOperationBatchSyncButton.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// // ネットワーク通信チェック
// if (!ABVEnvironment.getInstance().networkAdapter.isNetworkConnected()) {
// showSimpleAlertDialog(getString(R.string.app_name), getString(R.string.request_network_connection));
// return;
// }
//
// // 新着更新チェック
// if (contentRefresher.isRefreshing()) {
// showSimpleAlertDialog(getString(R.string.app_name), getString(R.string.msg_batch_sync_new_content_updating));
// return;
// }
//
// // 会議室接続中
// if (ActivityHandlingHelper.getInstance().isMeetingConnected()) {
// ABVToastUtil.showMakeText(OperationListActivity.this, R.string.msg_operation_enable_meeting_room_connected, Toast.LENGTH_SHORT);
// return;
// }
// showBatchSyncDialog();
// }
// });
//
//
// if (!StringUtil.isNullOrEmpty(getIntent().getStringExtra(AppDefType.PushMessageKey.operationId))) {
// final long operationId = Long.parseLong(getIntent().getStringExtra(AppDefType.PushMessageKey.operationId));
// String message = getIntent().getStringExtra(AppDefType.PushMessageKey.message);
// if (operationId > 0) {
// final ABookAlertDialog alertDialog = AlertDialogUtil.createAlertDialog(this, getRString(R.string.app_name), message);
// // リソースパターンの適用
// alertDialog.setPositiveButton(PatternStringUtil.patternToInt(getApplicationContext(), R.string.work_report, getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)),
// new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int whichButton) {
// if (contentRefresher.isRefreshing()) {
// // リソースパターンの適用
// ErrorMessage.showErrorMessageToast(OperationListActivity.this, PatternStringUtil.patternToInt(getApplicationContext(),
// R.string.msg_routineTask_report_disable_refreshing,
// getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)));
// } else if(ActivityHandlingHelper.getInstance().isMeetingConnected()) {
// // リソースパターンの適用
// ErrorMessage.showErrorMessageToast(OperationListActivity.this, PatternStringUtil.patternToInt(getApplicationContext(),
// R.string.msg_routineTask_report_disable_meeting_room,
// getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)));
// } else if (isShowingBatchSync()) {
// // 一括同期中は移動しない
// ErrorMessage.showErrorMessageToast(OperationListActivity.this, getString(R.string.msg_batch_sync_move_operation_view));
// } else {
// OperationDto operationDto = mOperationLogic.getOperation(operationId);
//
// if (operationDto == null) {
// // リソースパターンの適用
// ErrorMessage.showErrorMessageToast(OperationListActivity.this, PatternStringUtil.patternToInt(getApplicationContext(),
// R.string.msg_routineTask_report_disable_no_operation,
// getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)));
// } else if (operationDto.needSyncFlg) {
// // リソースパターンの適用
// ErrorMessage.showErrorMessageToast(OperationListActivity.this, PatternStringUtil.patternToInt(getApplicationContext(),
// R.string.msg_routineTask_report_disable_not_updated,
// getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)));
// } else {
// startTaskDirectionOrReportView(operationDto);
// }
// }
//
// dialog.dismiss();
// }
// });
//
// alertDialog.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int whichButton) {
// dialog.dismiss();
// }
// });
//
// alertDialog.show();
// }
// }
// // プッシュメッセージがある場合
// else if (!StringUtil.isNullOrEmpty(getIntent().getStringExtra(AppDefType.ChatPushMessageKey.roomName)) &&
// getIntent().getLongExtra(AppDefType.ChatPushMessageKey.roomId, '0') > 0) {
// ActivityHandlingHelper.getInstance().startChatWebviewActivity(
// getIntent().getLongExtra(AppDefType.ChatPushMessageKey.roomId, '0'),
// getIntent().getStringExtra(AppDefType.ChatPushMessageKey.roomName));
// }
//
// // リスト更新
// setOperationListView();
}
private class JsInf {
@JavascriptInterface
public void sendParam(String param) {
JSONObject jsonParam = new JSONObject(param);
if (jsonParam.has("cmd")) {
switch (jsonParam.getString("cmd")){
case "goSetting":
showSetting();
break;
alertDialog.show(); case "":
break;
} }
} }
// プッシュメッセージがある場合
else if (!StringUtil.isNullOrEmpty(getIntent().getStringExtra(AppDefType.ChatPushMessageKey.roomName)) &&
getIntent().getLongExtra(AppDefType.ChatPushMessageKey.roomId, '0') > 0) {
ActivityHandlingHelper.getInstance().startChatWebviewActivity(
getIntent().getLongExtra(AppDefType.ChatPushMessageKey.roomId, '0'),
getIntent().getStringExtra(AppDefType.ChatPushMessageKey.roomName));
} }
// リスト更新
setOperationListView();
} }
// 共通資料画面表示 // 共通資料画面表示
...@@ -520,9 +582,15 @@ public class OperationListActivity extends ABVUIActivity { ...@@ -520,9 +582,15 @@ public class OperationListActivity extends ABVUIActivity {
// 一括同期中の場合何もしない // 一括同期中の場合何もしない
return; return;
} }
refreshOperationList();
List<OperationDto> operationDtoList = mListHelper.filterOperationList();
//refreshOperationList();
//refreshOperationList();
// 報告画面から作業一覧へ戻った時の同期処理 // 報告画面から作業一覧へ戻った時の同期処理
final long operationId = getUserPref(AppDefType.UserPrefKey.SYNC_TARGET_OPERATION_ID, -1L); /*final long operationId = getUserPref(AppDefType.UserPrefKey.SYNC_TARGET_OPERATION_ID, -1L);
if (operationId != -1) { if (operationId != -1) {
final OperationDto operationDto = mOperationLogic.getOperation(operationId); final OperationDto operationDto = mOperationLogic.getOperation(operationId);
// リソースパターンの適用 // リソースパターンの適用
...@@ -555,7 +623,7 @@ public class OperationListActivity extends ABVUIActivity { ...@@ -555,7 +623,7 @@ public class OperationListActivity extends ABVUIActivity {
putUserPref(AppDefType.UserPrefKey.SYNC_TARGET_OPERATION_ID, -1L); putUserPref(AppDefType.UserPrefKey.SYNC_TARGET_OPERATION_ID, -1L);
activityResultFlg = false; activityResultFlg = false;
configurationToolbarIcon(); configurationToolbarIcon();*/
} }
// 検索ダイアログ表示 // 検索ダイアログ表示
......
...@@ -69,7 +69,7 @@ public abstract class OperationListHelper { ...@@ -69,7 +69,7 @@ public abstract class OperationListHelper {
abstract protected List<OperationDto> findOperationList() throws Exception; abstract protected List<OperationDto> findOperationList() throws Exception;
private List<OperationDto> filterOperationList() { public List<OperationDto> filterOperationList() {
try { try {
operationDtoList = findOperationList(); operationDtoList = findOperationList();
} catch (Exception e) { } catch (Exception e) {
......
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