Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
abook_check
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abook_android
abook_check
Commits
f9af92e0
Commit
f9af92e0
authored
Feb 20, 2024
by
NGUYEN HOANG SON
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
implement auto sync 1->7
parent
f3cacd09
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
166 additions
and
80 deletions
+166
-80
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/common/view/ABVBatchSyncView.java
+6
-0
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/home/activity/OperationListActivity.java
+138
-56
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/home/helper/OperationListHelper.java
+22
-24
No files found.
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/common/view/ABVBatchSyncView.java
View file @
f9af92e0
...
...
@@ -82,6 +82,9 @@ public class ABVBatchSyncView extends ProgressDialog {
// Activity破棄フラグがtrue、またはスタックが存在しなければ、全て完了と見做す
closeProgressDialog
();
Logger
.
d
(
TAG
,
"---batchSync is end"
);
if
(
mOperationListActivity
!=
null
&&
mOperationListActivity
.
isAutoSyncing
)
{
mOperationListActivity
.
autoSyncOperationDone
(
true
);
}
return
;
}
// ベース資料のダウンロードチェック
...
...
@@ -97,6 +100,9 @@ public class ABVBatchSyncView extends ProgressDialog {
// error
showBatchSyncErrorAlert
(
peekOperationDto
,
mOperationListActivity
.
getString
(
R
.
string
.
msg_batch_sync_content_download_fail
));
}
if
(
mOperationListActivity
!=
null
&&
mOperationListActivity
.
isAutoSyncing
)
{
mOperationListActivity
.
autoSyncOperationDone
(
false
);
}
return
;
}
// 同期処理
...
...
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/home/activity/OperationListActivity.java
View file @
f9af92e0
...
...
@@ -206,6 +206,9 @@ public class OperationListActivity extends OperationActivity {
// 作業種別のサービスオプション値を保持用フラグ
private
boolean
mOperationGroupMasterServiceOperationFlg
;
public
boolean
isAutoSyncing
;
public
Long
autoSyncOpenOperationId
=
null
;
public
Long
mQrCodeOperationId
=
null
;
// ビューの作成
private
class
ReloadHandler
implements
Runnable
{
...
...
@@ -478,6 +481,37 @@ public class OperationListActivity extends OperationActivity {
// ビューを作り直す
setOperationListView
();
}
if
(
isAutoSync
())
{
if
(
isAutoSyncing
)
{
if
(
result
)
{
// content update success
List
<
OperationDto
>
needSyncOperationList
=
new
ArrayList
<>();
if
(
autoSyncOpenOperationId
!=
null
)
{
OperationDto
operationDto
=
mOperationLogic
.
getOperation
(
autoSyncOpenOperationId
);
if
(
operationDto
.
needSyncFlg
)
{
needSyncOperationList
.
add
(
operationDto
);
}
}
else
{
for
(
OperationDto
operationDto
:
mOperationDao
.
getAllOperation
())
{
if
(
operationDto
.
needSyncFlg
)
{
needSyncOperationList
.
add
(
operationDto
);
}
}
}
needSyncOperationList
.
addAll
(
mOperationDao
.
getAllOperation
());
if
(
needSyncOperationList
.
size
()
>
0
)
{
categoryBatchSync
(
needSyncOperationList
);
}
else
{
// donot need sync
autoSyncOperationDone
(
true
);
}
}
else
{
// content update fail
autoSyncOperationDone
(
false
);
}
}
return
;
}
//「I/O 帳票使用」がYESのみ、新着更新処理完了後、一括同期処理を開始する。
if
(
ABVDataCache
.
getInstance
().
serviceOption
.
isUnableIOReport
())
{
if
(
mAutoBatchSyncFlg
)
{
...
...
@@ -509,68 +543,71 @@ public class OperationListActivity extends OperationActivity {
refreshOperationList
();
// 作業指示・報告からプロジェクト一覧へ戻った時の同期処理
if
(
ABVEnvironment
.
getInstance
().
networkAdapter
.
isNetworkConnected
())
{
final
long
operationId
=
getUserPref
(
AppDefType
.
UserPrefKey
.
SYNC_TARGET_OPERATION_ID
,
-
1L
);
if
(
operationId
!=
-
1
)
{
final
OperationDto
operationDto
=
mOperationLogic
.
getOperation
(
operationId
);
// リソースパターンの適用
showProgressView
(
PatternStringUtil
.
patternToString
(
getApplicationContext
(),
R
.
string
.
synchronizing
,
getUserPref
(
AppDefType
.
UserPrefKey
.
RESOURCE_PATTERN_TYPE
,
0
)));
CommonExecutor
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
Logger
.
d
(
TAG
,
"onResume Sync operationId : "
+
operationId
);
if
(
operationDto
!=
null
&&
operationDto
.
needSyncFlg
)
{
// 同期処理後、直列処理で新着更新を行う。
singleSyncOperation
(
operationId
,
operationDto
.
reportType
);
//「I/O 帳票使用」がYESのみ、カテゴリ一括動機実施
if
(
ABVDataCache
.
getInstance
().
serviceOption
.
isUnableIOReport
())
{
//同期中のインジケーター表示中には新着更新中のインジケーター表示できないので、チェックする。
while
(
progressDialogHorizontalShowing
())
{
try
{
Thread
.
sleep
(
100
);
}
catch
(
InterruptedException
ie
)
{
Logger
.
e
(
TAG
,
"sleep error = "
+
ie
.
getLocalizedMessage
());
}
}
//新着更新後、一括同期処理を行うため、インジケーター表示
handler
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
showProgressPopup
(
PatternStringUtil
.
patternToString
(
getApplicationContext
(),
R
.
string
.
updating
,
getUserPref
(
AppDefType
.
UserPrefKey
.
RESOURCE_PATTERN_TYPE
,
0
)));
if
(
isAutoSync
())
{
autoSyncOperation
();
}
else
{
final
long
operationId
=
getUserPref
(
AppDefType
.
UserPrefKey
.
SYNC_TARGET_OPERATION_ID
,
-
1L
);
if
(
operationId
!=
-
1
)
{
final
OperationDto
operationDto
=
mOperationLogic
.
getOperation
(
operationId
);
// リソースパターンの適用
showProgressView
(
PatternStringUtil
.
patternToString
(
getApplicationContext
(),
R
.
string
.
synchronizing
,
getUserPref
(
AppDefType
.
UserPrefKey
.
RESOURCE_PATTERN_TYPE
,
0
)));
CommonExecutor
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
Logger
.
d
(
TAG
,
"onResume Sync operationId : "
+
operationId
);
if
(
operationDto
!=
null
&&
operationDto
.
needSyncFlg
)
{
// 同期処理後、直列処理で新着更新を行う。
singleSyncOperation
(
operationId
,
operationDto
.
reportType
);
//「I/O 帳票使用」がYESのみ、カテゴリ一括動機実施
if
(
ABVDataCache
.
getInstance
().
serviceOption
.
isUnableIOReport
())
{
//同期中のインジケーター表示中には新着更新中のインジケーター表示できないので、チェックする。
while
(
progressDialogHorizontalShowing
())
{
try
{
Thread
.
sleep
(
100
);
}
catch
(
InterruptedException
ie
)
{
Logger
.
e
(
TAG
,
"sleep error = "
+
ie
.
getLocalizedMessage
());
}
}
});
mAutoBatchSyncFlg
=
true
;
//表示作業数が10個以上の場合、2秒待機してから新着更新を行う。10個未満は1秒待機
List
<
OperationDto
>
operationList
=
mListHelper
.
getOperationList
();
int
delaySeconds
=
1000
;
if
(
operationList
.
size
()
>=
DELAY_2SECONDS_OPERATION_MAX_COUNT
)
{
delaySeconds
=
2000
;
}
handler
.
postDelayed
(
new
Runnable
()
{
@Override
public
void
run
()
{
dataRefresh
(
true
);
//新着更新後、一括同期処理を行うため、インジケーター表示
handler
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
showProgressPopup
(
PatternStringUtil
.
patternToString
(
getApplicationContext
(),
R
.
string
.
updating
,
getUserPref
(
AppDefType
.
UserPrefKey
.
RESOURCE_PATTERN_TYPE
,
0
)));
}
});
mAutoBatchSyncFlg
=
true
;
//表示作業数が10個以上の場合、2秒待機してから新着更新を行う。10個未満は1秒待機
List
<
OperationDto
>
operationList
=
mListHelper
.
getOperationList
();
int
delaySeconds
=
1000
;
if
(
operationList
.
size
()
>=
DELAY_2SECONDS_OPERATION_MAX_COUNT
)
{
delaySeconds
=
2000
;
}
},
delaySeconds
);
handler
.
postDelayed
(
new
Runnable
()
{
@Override
public
void
run
()
{
dataRefresh
(
true
);
}
},
delaySeconds
);
}
}
else
{
closeProgressPopup
();
dataRefresh
(
true
);
}
}
else
{
closeProgressPopup
();
dataRefresh
(
true
);
}
}
});
}
if
(!
activityResultFlg
&&
operationId
==
-
1
)
{
dataRefresh
(
true
);
}
});
}
if
(!
activityResultFlg
&&
operationId
==
-
1
)
{
dataRefresh
(
true
);
}
}
}
putUserPref
(
AppDefType
.
UserPrefKey
.
SYNC_TARGET_OPERATION_ID
,
-
1L
);
activityResultFlg
=
false
;
...
...
@@ -1855,6 +1892,10 @@ public class OperationListActivity extends OperationActivity {
refreshView
.
getLoadingLayoutProxy
().
setLastUpdatedLabel
(
lastUpdateTimeLabel
);
}
}
if
(
needAutoSync
())
{
autoSyncOperation
();
return
;
}
CommonExecutor
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
...
...
@@ -1892,7 +1933,10 @@ public class OperationListActivity extends OperationActivity {
refreshView
.
getLoadingLayoutProxy
().
setLastUpdatedLabel
(
lastUpdateTimeLabel
);
}
}
if
(
needAutoSync
())
{
autoSyncOperation
();
return
;
}
CommonExecutor
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
...
...
@@ -2393,4 +2437,42 @@ public class OperationListActivity extends OperationActivity {
Logger
.
w
(
TAG
,
"Camera Permission false"
);
}
}
private
boolean
isAutoSync
()
{
return
PreferenceUtil
.
get
(
getApplicationContext
(),
AppDefType
.
UserPrefKey
.
OPERATION_AUTO_SYNC
,
false
);
}
public
boolean
needAutoSync
()
{
return
(
isAutoSync
()
&&
ABVEnvironment
.
getInstance
().
networkAdapter
.
isNetworkConnected
());
}
public
void
autoSyncOperation
()
{
if
(
isAutoSyncing
)
{
return
;
}
isAutoSyncing
=
true
;
showProgressView
(
PatternStringUtil
.
patternToString
(
getApplicationContext
(),
R
.
string
.
synchronizing
,
getUserPref
(
AppDefType
.
UserPrefKey
.
RESOURCE_PATTERN_TYPE
,
0
)));
CommonExecutor
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
dataRefresh
(
true
);
if
(!
contentRefresher
.
isRefreshing
())
{
autoSyncOperationDone
(
false
);
}
}
});
}
public
void
autoSyncOperationDone
(
boolean
isSuccess
)
{
isAutoSyncing
=
false
;
closeProgressPopup
();
if
(
isSuccess
)
{
if
(
autoSyncOpenOperationId
!=
null
)
{
OperationDto
operationDto
=
mOperationLogic
.
getOperation
(
autoSyncOpenOperationId
);
openReportView
(
operationDto
);
}
}
autoSyncOpenOperationId
=
null
;
}
}
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/home/helper/OperationListHelper.java
View file @
f9af92e0
...
...
@@ -148,18 +148,7 @@ public abstract class OperationListHelper {
adapter
.
setAdapterListener
(
new
AbstractOperationAdapter
.
AbstractOperationListAdapterListener
()
{
@Override
public
void
openReport
(
OperationDto
operationDto
)
{
if
(
operationDto
.
contentId
!=
null
&&
operationDto
.
contentId
!=
0
)
{
// 作業画面
mAppActivity
.
openReportView
(
operationDto
);
}
else
{
if
(
operationDto
.
operationType
==
PANO
)
{
// パノラマ登録画面
mAppActivity
.
showPanoEntryDialog
(
operationDto
);
}
else
{
// 何もしない
Logger
.
e
(
"not open target"
);
}
}
onClickReport
(
operationDto
);
}
@Override
...
...
@@ -211,18 +200,7 @@ public abstract class OperationListHelper {
adapter
.
setAdapterListener
(
new
AbstractOperationAdapter
.
AbstractOperationListAdapterListener
()
{
@Override
public
void
openReport
(
OperationDto
operationDto
)
{
if
(
operationDto
.
contentId
!=
null
&&
operationDto
.
contentId
!=
0
)
{
// 作業画面
mAppActivity
.
openReportView
(
operationDto
);
}
else
{
if
(
operationDto
.
operationType
==
PANO
)
{
// パノラマ登録画面
mAppActivity
.
showPanoEntryDialog
(
operationDto
);
}
else
{
// 何もしない
Logger
.
e
(
"not open target"
);
}
}
onClickReport
(
operationDto
);
}
@Override
...
...
@@ -285,4 +263,24 @@ public abstract class OperationListHelper {
*/
abstract
protected
List
<
OperationDto
>
findOperationList
()
throws
Exception
;
public
void
onClickReport
(
OperationDto
operationDto
)
{
if
(
mAppActivity
.
needAutoSync
())
{
mAppActivity
.
autoSyncOpenOperationId
=
operationDto
.
operationId
;
mAppActivity
.
autoSyncOperation
();
return
;
}
if
(
operationDto
.
contentId
!=
null
&&
operationDto
.
contentId
!=
0
)
{
// 作業画面
mAppActivity
.
openReportView
(
operationDto
);
}
else
{
if
(
operationDto
.
operationType
==
PANO
)
{
// パノラマ登録画面
mAppActivity
.
showPanoEntryDialog
(
operationDto
);
}
else
{
// 何もしない
Logger
.
e
(
"not open target"
);
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment