Commit ed09a6a5 by Kang Donghun

#73480 通信仕組み改善検証

parent 8a85b027
...@@ -91,7 +91,6 @@ public class OperationLogic extends AbstractLogic { ...@@ -91,7 +91,6 @@ public class OperationLogic extends AbstractLogic {
private TaskWorkerGroupDao mTaskWorkerGroupDao = AbstractDao.getDao(TaskWorkerGroupDao.class); private TaskWorkerGroupDao mTaskWorkerGroupDao = AbstractDao.getDao(TaskWorkerGroupDao.class);
private static final int FINISHED_STATUS = 999; private static final int FINISHED_STATUS = 999;
private final static int INTERVAL_LAST_EDIT_TIME_MS = 1800000;
public void initializeOperations() throws AcmsException, NetworkDisconnectedException { public void initializeOperations() throws AcmsException, NetworkDisconnectedException {
// 作業グループリスト取得 // 作業グループリスト取得
setWorkingGroupList(); setWorkingGroupList();
...@@ -1936,29 +1935,6 @@ public class OperationLogic extends AbstractLogic { ...@@ -1936,29 +1935,6 @@ public class OperationLogic extends AbstractLogic {
return result; return result;
} }
private Boolean isEnableTimeForAutoSync(Date lastEditDateTime) {
Date currentDateTime = DateTimeUtil.getCurrentDate();
if (lastEditDateTime == null) {
return true;
} else {
long diffInMillis = currentDateTime.getTime() - lastEditDateTime.getTime();
if (diffInMillis >= INTERVAL_LAST_EDIT_TIME_MS) {
return true;
}
}
return false;
}
public List<OperationDto> needSyncCheckArray(List<OperationDto> needSyncOperationInfoArray) {
List<OperationDto> needSyncCheckArray = new ArrayList<>();
for (OperationDto operationDto : needSyncOperationInfoArray) {
if (isEnableTimeForAutoSync(operationDto.operationLastSyncDate)) {
needSyncCheckArray.add(operationDto);
}
}
return needSyncCheckArray;
}
/** /**
* 重複作業情報を配列から除外 * 重複作業情報を配列から除外
* @param operationDtoList * @param operationDtoList
......
...@@ -68,11 +68,4 @@ ...@@ -68,11 +68,4 @@
android:title="@string/spp_machine" > android:title="@string/spp_machine" >
</PreferenceScreen> </PreferenceScreen>
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory android:title="@string/auto_sync" android:key="auto_sync">
<CheckBoxPreference
android:defaultValue="false"
android:key="operationAutoSync"
android:title="@string/auto_sync_setting_title"
android:summary="@string/auto_sync_setting_subtitle"/>
</PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>
\ No newline at end of file
...@@ -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.ABVEnvironment;
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;
...@@ -57,8 +58,8 @@ public class ShowPushMessageDailogActivity extends ABVUIActivity { ...@@ -57,8 +58,8 @@ public class ShowPushMessageDailogActivity extends ABVUIActivity {
getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0))); getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)));
} else { } else {
OperationListActivity operationListActivity = ActivityHandlingHelper.getInstance().getPreviousOperationListActivity(); OperationListActivity operationListActivity = ActivityHandlingHelper.getInstance().getPreviousOperationListActivity();
if (operationListActivity != null && operationListActivity.needAutoSync()) { if (operationListActivity != null && ABVEnvironment.getInstance().networkAdapter.isNetworkConnected()) {
operationListActivity.autoSyncOperationId(operationId); operationListActivity.autoSyncNeedSyncAndOpenOperationId(operationId);
return; return;
} }
if (operationDto.needSyncFlg) { if (operationDto.needSyncFlg) {
......
...@@ -76,7 +76,6 @@ public interface AppDefType { ...@@ -76,7 +76,6 @@ public interface AppDefType {
String OPERATION_GROUP_MASERT_MODE = "operation_group_master"; // 通常・作業種別モード(画面) String OPERATION_GROUP_MASERT_MODE = "operation_group_master"; // 通常・作業種別モード(画面)
String OPERATION_GROUP_MASERT_ID = "operation_group_master_id"; // 作業種別のID String OPERATION_GROUP_MASERT_ID = "operation_group_master_id"; // 作業種別のID
String OPERATION_SORT_CONDITION = "operation_sort_condition"; // 作業のソート String OPERATION_SORT_CONDITION = "operation_sort_condition"; // 作業のソート
String OPERATION_AUTO_SYNC = "operationAutoSync";
String ANDROID_13_PERMISSION_CHECK = "android13PermissionCheck"; String ANDROID_13_PERMISSION_CHECK = "android13PermissionCheck";
String ANDROID_14_PERMISSION_CHECK = "android14PermissionCheck"; String ANDROID_14_PERMISSION_CHECK = "android14PermissionCheck";
......
...@@ -95,6 +95,10 @@ public class ABookSettingFragment extends PreferenceFragment { ...@@ -95,6 +95,10 @@ public class ABookSettingFragment extends PreferenceFragment {
handler = new Handler(); handler = new Handler();
pref = PreferenceManager.getDefaultSharedPreferences(getActivity()); pref = PreferenceManager.getDefaultSharedPreferences(getActivity());
// 設定XMLから削除した CheckBox(operationAutoSync)の残キーを掃除
if (pref.contains("operationAutoSync")) {
pref.edit().remove("operationAutoSync").apply();
}
addPreferencesFromResource(R.xml.pref); addPreferencesFromResource(R.xml.pref);
// アカウント // アカウント
......
...@@ -456,6 +456,30 @@ public class DashboardActivity extends OperationActivity { ...@@ -456,6 +456,30 @@ public class DashboardActivity extends OperationActivity {
// 新着更新を止める // 新着更新を止める
contentRefresher.stopRefresh(); contentRefresher.stopRefresh();
if (ABVEnvironment.getInstance().networkAdapter.isNetworkConnected()) {
// 既に作業一覧がスタック上にある場合は、画面遷移せずにそのActivityで同期処理だけ実行する
OperationListActivity operationListActivity = ActivityHandlingHelper.getInstance().getPreviousOperationListActivity();
if (operationListActivity != null) {
operationListActivity.autoSyncOperationIdFromDashboard(operationId, taskKey, taskReportId, reportStartDate);
return;
}
Intent bridge = new Intent(this, OperationListActivity.class);
bridge.putExtra(OperationListActivity.EXTRA_PENDING_DASH_SYNC_OPERATION_ID, operationId);
bridge.putExtra(OperationListActivity.EXTRA_PENDING_DASH_TASK_KEY, taskKey);
if (taskReportId != null) {
bridge.putExtra(OperationListActivity.EXTRA_PENDING_DASH_TASK_REPORT_ID, taskReportId);
}
if (reportStartDate != null) {
bridge.putExtra(OperationListActivity.EXTRA_PENDING_DASH_REPORT_START_DATE, reportStartDate);
}
bridge.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(bridge);
// 一覧画面を経由しても遷移アニメーションを無効化して、直接遷移に見せる
overridePendingTransition(0, 0);
return;
}
OperationDao operationDao = AbstractDao.getDao(OperationDao.class); OperationDao operationDao = AbstractDao.getDao(OperationDao.class);
OperationDto operationDto = operationDao.getOperation(operationId); OperationDto operationDto = operationDao.getOperation(operationId);
// t_operationテーブルにcontent_idは含まれていないので、この時点でoperationDto.contentIdはnull // t_operationテーブルにcontent_idは含まれていないので、この時点でoperationDto.contentIdはnull
......
...@@ -106,6 +106,7 @@ public class OperationActivity extends ABVUIActivity { ...@@ -106,6 +106,7 @@ public class OperationActivity extends ABVUIActivity {
private void backHome() { private void backHome() {
Intent intent = new Intent(); Intent intent = new Intent();
intent.setClass(this, OperationListActivity.class); intent.setClass(this, OperationListActivity.class);
intent.putExtra(OperationListActivity.EXTRA_RESUME_MODE, OperationListActivity.RESUME_NEW_CONTENT_ONLY);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent); startActivity(intent);
} }
......
...@@ -116,17 +116,8 @@ public class OperationListAdapter extends AbstractOperationAdapter { ...@@ -116,17 +116,8 @@ public class OperationListAdapter extends AbstractOperationAdapter {
holder.tvDate.setText(DateTimeUtil.toString(operationDto.operationStartDate, DateTimeFormat.yyyyMMdd_slash) + " ~ " + DateTimeUtil.toString(operationDto.operationEndDate, DateTimeFormat.yyyyMMdd_slash)); holder.tvDate.setText(DateTimeUtil.toString(operationDto.operationStartDate, DateTimeFormat.yyyyMMdd_slash) + " ~ " + DateTimeUtil.toString(operationDto.operationEndDate, DateTimeFormat.yyyyMMdd_slash));
} }
// 同期ボタン表示・非表示 // 作業別の同期ボタンは表示しない仕様
if (operationDto.contentId != null && operationDto.contentId != 0) { holder.ivSync.setVisibility(View.GONE);
if (operationDto.needSyncFlg) {
holder.ivSync.setVisibility(View.VISIBLE);
} else {
holder.ivSync.setVisibility(View.INVISIBLE);
}
} else {
// プロジェクトのコンテンツが存在しない場合は、同期ボタンを非活性化する
holder.ivSync.setVisibility(View.INVISIBLE);
}
holder.reportCountNotStarted.setText(String.valueOf(operationDto.statusNotStartedCount)); holder.reportCountNotStarted.setText(String.valueOf(operationDto.statusNotStartedCount));
holder.reportCountWorking.setText(String.valueOf(operationDto.statusWorkingCount)); holder.reportCountWorking.setText(String.valueOf(operationDto.statusWorkingCount));
...@@ -139,13 +130,6 @@ public class OperationListAdapter extends AbstractOperationAdapter { ...@@ -139,13 +130,6 @@ public class OperationListAdapter extends AbstractOperationAdapter {
listener.openReport(operationDto); listener.openReport(operationDto);
} }
}); });
// 同期ボタンのタップイベント
holder.ivSync.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.onSyncOperation(operationDto);
}
});
} }
return convertView; return convertView;
......
...@@ -142,18 +142,8 @@ public class OperationPanelAdapter extends AbstractOperationAdapter { ...@@ -142,18 +142,8 @@ public class OperationPanelAdapter extends AbstractOperationAdapter {
holder.tvDate.setText(DateTimeUtil.toString(operationDto.operationStartDate, DateTimeFormat.yyyyMMdd_slash) + " ~ " + DateTimeUtil.toString(operationDto.operationEndDate, DateTimeFormat.yyyyMMdd_slash)); holder.tvDate.setText(DateTimeUtil.toString(operationDto.operationStartDate, DateTimeFormat.yyyyMMdd_slash) + " ~ " + DateTimeUtil.toString(operationDto.operationEndDate, DateTimeFormat.yyyyMMdd_slash));
} }
// 同期ボタン表示・非表示 // 作業別の同期ボタンは表示しない仕様
if (operationDto.contentId != null && operationDto.contentId != 0) { holder.ivSync.setVisibility(View.GONE);
if ((operationDto.needSyncFlg)) {
holder.ivSync.setVisibility(View.VISIBLE);
} else {
// 定期点検プロジェクトではない場合、同期ボタンを非活性化する
holder.ivSync.setVisibility(View.INVISIBLE);
}
} else {
// プロジェクトのコンテンツが存在しない場合は、同期ボタンを非活性化する
holder.ivSync.setVisibility(View.INVISIBLE);
}
holder.reportCountNotStarted.setText(String.valueOf(operationDto.statusNotStartedCount)); holder.reportCountNotStarted.setText(String.valueOf(operationDto.statusNotStartedCount));
holder.reportCountWorking.setText(String.valueOf(operationDto.statusWorkingCount)); holder.reportCountWorking.setText(String.valueOf(operationDto.statusWorkingCount));
...@@ -167,13 +157,6 @@ public class OperationPanelAdapter extends AbstractOperationAdapter { ...@@ -167,13 +157,6 @@ public class OperationPanelAdapter extends AbstractOperationAdapter {
} }
}); });
// 同期ボタンのタップイベント
holder.ivSync.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.onSyncOperation(operationDto);
}
});
} }
return convertView; return convertView;
......
...@@ -12,6 +12,7 @@ import java.util.ArrayList; ...@@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import jp.agentec.abook.abv.bl.common.ABVEnvironment;
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.dto.OperationDto; import jp.agentec.abook.abv.bl.dto.OperationDto;
...@@ -264,7 +265,7 @@ public abstract class OperationListHelper { ...@@ -264,7 +265,7 @@ public abstract class OperationListHelper {
abstract protected List<OperationDto> findOperationList() throws Exception; abstract protected List<OperationDto> findOperationList() throws Exception;
public void onClickReport(OperationDto operationDto) { public void onClickReport(OperationDto operationDto) {
if (mAppActivity.needAutoSync()) { if (ABVEnvironment.getInstance().networkAdapter.isNetworkConnected()) {
mAppActivity.autoSyncOperationId(operationDto.operationId); mAppActivity.autoSyncOperationId(operationDto.operationId);
return; return;
} }
......
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