Commit 686fb965 by Lee Munkyeong

IO帳票1.4.0対応。

parent 66089491
......@@ -235,7 +235,9 @@
<!-- ABookCheck対応 -->
<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"
android:configChanges="keyboardHidden|orientation|screenSize"/>
<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;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
......@@ -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.NetworkDisconnectedException;
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.dao.AbstractDao;
import jp.agentec.abook.abv.bl.data.dao.OperationContentDao;
......@@ -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.viewer.activity.DeviceImageListActivity;
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.DateTimeUtil;
import jp.agentec.adf.util.FileUtil;
......@@ -125,6 +130,11 @@ import jp.agentec.adf.util.StringUtil;
public class OperationListActivity extends ABVUIActivity {
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 mSearchButton; // 検索ボタン
private ImageButton mCommonContentButton; // 共通資料ボタン
......@@ -196,174 +206,226 @@ public class OperationListActivity extends ABVUIActivity {
@Override
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);
mCommonContentButton = (ImageButton) findViewById(R.id.btn_common_content);
mCategoryLocationButton = (ImageButton) findViewById(R.id.btn_category_location);
mQuickReportPrintButton = (ImageButton) findViewById(R.id.btn_operation_print);
super.onCreate(savedInstanceState);
//setContentView(R.layout.ac_operation_list);
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();
// 非活性化する(ホーム画面ではホームボタンが必要ないため)
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();
//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;
}
// 検索ボタン
// 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);
// mCommonContentButton = (ImageButton) findViewById(R.id.btn_common_content);
// mCategoryLocationButton = (ImageButton) findViewById(R.id.btn_category_location);
// mQuickReportPrintButton = (ImageButton) findViewById(R.id.btn_operation_print);
//
// // 定期点検で同期ボタンタップの日付と現在の日付が異なる且つ、作業するデータが存在しない場合、needSyncFlgをtrueに更新
// 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();
//
// // 検索アイコンのクリックイベント
// 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()) {
// 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();
}
// 会議室接続中
if (ActivityHandlingHelper.getInstance().isMeetingConnected()) {
ABVToastUtil.showMakeText(OperationListActivity.this, R.string.msg_operation_enable_meeting_room_connected, Toast.LENGTH_SHORT);
return;
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;
case "":
break;
}
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();
}
// 共通資料画面表示
......@@ -520,9 +582,15 @@ public class OperationListActivity extends ABVUIActivity {
// 一括同期中の場合何もしない
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) {
final OperationDto operationDto = mOperationLogic.getOperation(operationId);
// リソースパターンの適用
......@@ -555,7 +623,7 @@ public class OperationListActivity extends ABVUIActivity {
putUserPref(AppDefType.UserPrefKey.SYNC_TARGET_OPERATION_ID, -1L);
activityResultFlg = false;
configurationToolbarIcon();
configurationToolbarIcon();*/
}
// 検索ダイアログ表示
......
......@@ -69,7 +69,7 @@ public abstract class OperationListHelper {
abstract protected List<OperationDto> findOperationList() throws Exception;
private List<OperationDto> filterOperationList() {
public List<OperationDto> filterOperationList() {
try {
operationDtoList = findOperationList();
} 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