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
62397df1
Commit
62397df1
authored
Jun 12, 2020
by
Kim Jinsung
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ベースシーンとシーン登録処理追加
parent
cc209be0
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
484 additions
and
281 deletions
+484
-281
ABVJE_BL/src/jp/agentec/abook/abv/bl/acms/client/AcmsClient.java
+3
-5
ABVJE_BL/src/jp/agentec/abook/abv/bl/common/constant/ABookKeys.java
+1
-0
ABVJE_BL/src/jp/agentec/abook/abv/bl/logic/OperationLogic.java
+2
-3
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/common/util/AlertDialogUtil.java
+15
-0
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/home/activity/OperationListActivity.java
+216
-166
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/viewer/activity/DeviceImageListActivity.java
+144
-102
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/viewer/activity/ParentWebViewActivity.java
+1
-1
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/viewer/adapter/ImageGalleryAdapter.java
+14
-4
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/viewer/helper/SceneSendHelper.java
+88
-0
No files found.
ABVJE_BL/src/jp/agentec/abook/abv/bl/acms/client/AcmsClient.java
View file @
62397df1
...
...
@@ -616,21 +616,19 @@ public class AcmsClient implements AcmsClientResponseListener {
/**
* パノラマで使用するシーンを登録
* @param sid
* @param contentId
* @param FormFile シーンで使用する画像
* @return
* @throws IOException
* @throws AcmsException
*/
public
SceneEntryJSON
sceneEntry
(
String
sid
,
Long
contentId
,
File
FormFile
)
throws
IOException
,
AcmsException
,
NetworkDisconnectedException
{
public
SceneEntryJSON
sceneEntry
(
String
sid
,
File
FormFile
)
throws
IOException
,
AcmsException
,
NetworkDisconnectedException
{
if
(
networkAdapter
!=
null
&&
!
networkAdapter
.
isNetworkConnected
())
{
// NWのチェック
throw
new
NetworkDisconnectedException
();
}
String
apiUrl
=
AcmsApis
.
getApiUrl
(
env
.
acmsAddress
,
urlPath
,
AcmsApis
.
ApiSceneEntry
);
HttpMultipart
part1
=
new
HttpMultipart
(
ABookKeys
.
SID
,
sid
);
HttpMultipart
part2
=
new
HttpMultipart
(
ABookKeys
.
CONTENT_ID
,
StringUtil
.
toString
(
contentId
));
HttpMultipart
part3
=
new
HttpMultipart
(
ABookKeys
.
FORM_FILE
,
FormFile
);
HttpResponse
result
=
HttpRequestSender
.
post
(
apiUrl
,
new
HttpMultipart
[]{
part1
,
part2
,
part3
});
HttpMultipart
part2
=
new
HttpMultipart
(
ABookKeys
.
FORM_FILE
,
FormFile
);
HttpResponse
result
=
HttpRequestSender
.
post
(
apiUrl
,
new
HttpMultipart
[]{
part1
,
part2
});
SceneEntryJSON
json
=
new
SceneEntryJSON
(
result
.
httpResponseBody
);
if
(
json
.
httpStatus
!=
200
)
{
if
(
json
.
errorMessage
!=
null
)
{
...
...
ABVJE_BL/src/jp/agentec/abook/abv/bl/common/constant/ABookKeys.java
View file @
62397df1
...
...
@@ -129,6 +129,7 @@ public class ABookKeys {
public
static
final
String
EDITABLE
=
"editable"
;
//commonAttachedDataUrl()で編集可否を判別するパラメタをWebからもらう。
public
static
final
String
FILE_PATH
=
"filePath"
;
//再編集する場合、クリックしたイマージのパスのパラメタ
public
static
final
String
BASE_CONTENT_REGISTER
=
"BaseContentRegister"
;
//THETA端末関連
public
static
final
String
THETA_FILE_ID
=
"OBJECT_ID"
;
public
static
final
String
THETA_THUMBNAIL
=
"THUMBNAIL"
;
...
...
ABVJE_BL/src/jp/agentec/abook/abv/bl/logic/OperationLogic.java
View file @
62397df1
...
...
@@ -1380,12 +1380,11 @@ public class OperationLogic extends AbstractLogic {
/**
* シーンの登録
* @param file
* @param contentId
* @throws IOException
* @throws AcmsException
*/
public
Integer
sendScene
(
File
file
,
Long
contentId
)
throws
IOException
,
AcmsException
,
NetworkDisconnectedException
{
SceneEntryJSON
json
=
AcmsClient
.
getInstance
(
cache
.
getUrlPath
(),
networkAdapter
).
sceneEntry
(
cache
.
getMemberInfo
().
sid
,
contentId
,
file
);
public
Integer
sendScene
(
File
file
)
throws
IOException
,
AcmsException
,
NetworkDisconnectedException
{
SceneEntryJSON
json
=
AcmsClient
.
getInstance
(
cache
.
getUrlPath
(),
networkAdapter
).
sceneEntry
(
cache
.
getMemberInfo
().
sid
,
file
);
return
json
.
resourceId
;
}
...
...
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/common/util/AlertDialogUtil.java
View file @
62397df1
...
...
@@ -44,6 +44,21 @@ public class AlertDialogUtil {
}
/**
* 共通ダイアログ表示用(OKボタンコールバック、CANCELボタンコールバック)
* @param context コンテキスト
* @param title タイトル
* @param message メッセージ
* @param okOnClick OKボタンコールバック
* @param okOnClick CANCELボタンコールバック
*/
public
static
void
showAlertDialog
(
Context
context
,
int
title
,
int
message
,
DialogInterface
.
OnClickListener
okOnClick
,
DialogInterface
.
OnClickListener
canOnClick
)
{
ABookAlertDialog
alertDialog
=
createAlertDialog
(
context
,
context
.
getResources
().
getString
(
title
),
context
.
getResources
().
getString
(
message
));
alertDialog
.
setNegativeButton
(
R
.
string
.
cancel
,
canOnClick
);
alertDialog
.
setPositiveButton
(
R
.
string
.
ok
,
okOnClick
);
alertDialog
.
show
();
}
/**
* 共通ダイアログ表示用(Cancel表示・非表示、OKボタンコールバック)
* @param context コンテキスト
* @param title タイトル
...
...
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/home/activity/OperationListActivity.java
View file @
62397df1
...
...
@@ -102,10 +102,12 @@ import jp.agentec.abook.abv.ui.common.view.ABVListDialog;
import
jp.agentec.abook.abv.ui.common.view.ABVPopupListWindow
;
import
jp.agentec.abook.abv.ui.home.adapter.HierarchyOperationGroupListAdapter
;
import
jp.agentec.abook.abv.ui.home.helper.ABookCheckWebViewHelper
;
import
jp.agentec.abook.abv.ui.home.helper.ABookPermissionHelper
;
import
jp.agentec.abook.abv.ui.home.helper.ActivityHandlingHelper
;
import
jp.agentec.abook.abv.ui.home.helper.HomeOperationListHelper
;
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.DateTimeFormat
;
import
jp.agentec.adf.util.DateTimeUtil
;
...
...
@@ -170,6 +172,10 @@ public class OperationListActivity extends ABVUIActivity {
// 作業種別のサービスオプション値を保持用フラグ
private
boolean
mOperationGroupMasterServiceOperationFlg
;
//シーン画像選択画面からベース画像登録後に閉じたときに処理追加のため、
private
static
final
int
SUB_DIVICE_IMAGE_LIST_ACTIVITY
=
1001
;
private
Long
mSelectedOperationId
;
// ビューの作成
private
class
ReloadHandler
implements
Runnable
{
@Override
...
...
@@ -1152,185 +1158,229 @@ public class OperationListActivity extends ABVUIActivity {
*/
public
void
showPanoEntryDialog
(
final
OperationDto
operationDto
)
{
Logger
.
d
(
TAG
,
"*****************showPanoEntryDialog"
);
if
(
contentRefresher
!=
null
&&
contentRefresher
.
isRefreshing
())
{
// 新着更新処理が行っていれば、止める
contentRefresher
.
stopRefresh
();
}
if
(
mPanoEntryDialog
==
null
)
{
mPanoEntryDialog
=
new
Dialog
(
OperationListActivity
.
this
);
mPanoEntryDialog
.
requestWindowFeature
(
Window
.
FEATURE_NO_TITLE
);
mPanoEntryDialog
.
setCanceledOnTouchOutside
(
false
);
mPanoEntryDialog
.
setContentView
(
R
.
layout
.
operation_pano_entry_dialog
);
}
mPanoCotnentImageView
=
(
ImageView
)
mPanoEntryDialog
.
findViewById
(
R
.
id
.
pano_image_view
);
mPanoContentNameTextView
=
(
TextView
)
mPanoEntryDialog
.
findViewById
(
R
.
id
.
operation_name
);
mPanoContentNameTextView
.
setText
(
operationDto
.
operationName
);
mPanoCotnentImageView
.
setImageBitmap
(
null
);
FileUtil
.
delete
(
ABVEnvironment
.
getInstance
().
getCacheTempAttachedImageDirPath
());
// 閉じるボタン
mPanoEntryDialog
.
findViewById
(
R
.
id
.
closeBtn
).
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
mPanoCotnentImageView
.
setImageBitmap
(
null
);
mSelectPanoContentUri
=
null
;
mPanoEntryDialog
.
dismiss
();
FileUtil
.
delete
(
ABVEnvironment
.
getInstance
().
getCacheTempAttachedImageDirPath
());
}
});
// 画像選択ボタン
mPanoEntryDialog
.
findViewById
(
R
.
id
.
select_image
).
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
startCameraIntent
(
ABOOK_CHECK_OPERATION_PANO_CONTENT_IMAGE
,
"Camera"
,
ABookKeys
.
IMAGE
,
false
);
//パーミッションチェック
ABookPermissionHelper
helper
=
new
ABookPermissionHelper
(
this
,
Constant
.
ABookPermissionType
.
ReadExternalStorage
,
null
);
if
(
helper
.
checkMultiPermissions
(
true
))
{
mSelectedOperationId
=
operationDto
.
operationId
;
//シーン画像選択画面表示
Intent
intent
=
new
Intent
();
intent
.
putExtra
(
ABookKeys
.
BASE_CONTENT_REGISTER
,
true
);
intent
.
putExtra
(
ABookKeys
.
OPERATION_ID
,
mSelectedOperationId
);
intent
.
putExtra
(
ABookKeys
.
OPERATION_NAME
,
operationDto
.
operationName
);
String
className
=
DeviceImageListActivity
.
class
.
getName
();
if
(
isNormalSize
()
==
false
)
{
className
+=
"Dialog"
;
}
});
// 登録ボタン
mPanoEntryDialog
.
findViewById
(
R
.
id
.
btn_entry
).
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(!
ABVEnvironment
.
getInstance
().
networkAdapter
.
isNetworkConnected
())
{
ABVToastUtil
.
showMakeText
(
OperationListActivity
.
this
,
R
.
string
.
msg_network_offline
,
Toast
.
LENGTH_SHORT
);
return
;
}
if
(
mSelectPanoContentUri
==
null
)
{
ABVToastUtil
.
showMakeText
(
OperationListActivity
.
this
,
PatternStringUtil
.
patternToInt
(
getApplicationContext
(),
R
.
string
.
msg_pano_image_no_selected
,
getUserPref
(
AppDefType
.
UserPrefKey
.
RESOURCE_PATTERN_TYPE
,
0
)),
Toast
.
LENGTH_SHORT
);
return
;
}
// リソースパターンの適用
showProgressView
(
PatternStringUtil
.
patternToString
(
getApplicationContext
(),
R
.
string
.
msg_common_processing
,
getUserPref
(
AppDefType
.
UserPrefKey
.
RESOURCE_PATTERN_TYPE
,
0
)));
CommonExecutor
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
boolean
isError
=
true
;
String
[]
projection
=
{
MediaStore
.
MediaColumns
.
DATA
};
Cursor
cursor
=
getContentResolver
().
query
(
mSelectPanoContentUri
,
projection
,
null
,
null
,
null
);
String
scenePath
=
null
;
if
(
mSelectPanoContentUri
.
toString
().
contains
(
"file"
))
{
//アプリ内に臨時保存した画像ファイル
scenePath
=
mSelectPanoContentUri
.
getPath
();
}
else
{
if
(
cursor
!=
null
)
{
if
(
cursor
.
moveToFirst
())
{
scenePath
=
cursor
.
getString
(
0
);
}
cursor
.
close
();
}
}
if
(
scenePath
!=
null
)
{
File
file
=
new
File
(
scenePath
);
isError
=
true
;
try
{
mOperationLogic
.
sendPanoContent
(
operationDto
.
operationId
,
operationDto
.
operationName
,
file
);
isError
=
false
;
}
catch
(
ABVException
e
)
{
//noinspection EnumSwitchStatementWhichMissesCases
switch
(
e
.
getCode
())
{
case
P_E_ACMS_P001:
showSimpleAlertDialog
(
R
.
string
.
app_name
,
PatternStringUtil
.
patternToInt
(
getApplicationContext
(),
R
.
string
.
P001
,
getUserPref
(
AppDefType
.
UserPrefKey
.
RESOURCE_PATTERN_TYPE
,
0
)));
break
;
case
P_E_ACMS_P002:
showSimpleAlertDialog
(
R
.
string
.
app_name
,
PatternStringUtil
.
patternToInt
(
getApplicationContext
(),
R
.
string
.
P002
,
getUserPref
(
AppDefType
.
UserPrefKey
.
RESOURCE_PATTERN_TYPE
,
0
)));
break
;
case
S_E_ACMS_0500:
handleErrorMessageToast
(
ABVExceptionCode
.
S_E_ACMS_0500
);
break
;
default
:
Logger
.
e
(
TAG
,
"PanoContent send error"
,
e
);
handleErrorMessageToast
(
ErrorCode
.
E107
);
break
;
}
}
catch
(
Exception
e
)
{
Logger
.
e
(
TAG
,
e
);
ErrorMessage
.
showErrorMessageToast
(
OperationListActivity
.
this
,
ErrorCode
.
E107
);
}
}
if
(
isError
)
{
closeProgressPopup
();
}
else
{
handler
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
progressDialogHorizontal
.
setProgress
(
20
);
mOperationLogic
.
setContentCreatingFlg
(
operationDto
.
operationId
);
refreshOperationList
();
}
});
//10秒後に新着更新させる
handler
.
postDelayed
(
new
Runnable
()
{
@Override
public
void
run
()
{
int
progress
=
progressDialogHorizontal
.
getProgress
();
progressDialogHorizontal
.
setProgress
(
progress
+
8
);
if
(
progress
>=
100
)
{
closeProgressPopup
();
mPanoEntryDialog
.
dismiss
();
mPanoCotnentImageView
.
setImageBitmap
(
null
);
dataRefresh
(
true
);
}
else
{
handler
.
postDelayed
(
this
,
1000
);
}
}
},
1000
);
}
}
});
}
});
intent
.
setClassName
(
getPackageName
(),
className
);
startActivityForResult
(
intent
,
SUB_DIVICE_IMAGE_LIST_ACTIVITY
);
if
(
mPanoEntryDialog
!=
null
)
{
mPanoEntryDialog
.
show
(
);
}
else
{
Logger
.
w
(
TAG
,
"ReadExternalStorage checkMultiPermissions false"
);
}
// if (contentRefresher != null && contentRefresher.isRefreshing()) {
// // 新着更新処理が行っていれば、止める
// contentRefresher.stopRefresh();
// }
// if (mPanoEntryDialog == null) {
// mPanoEntryDialog = new Dialog(OperationListActivity.this);
// mPanoEntryDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
// mPanoEntryDialog.setCanceledOnTouchOutside(false);
// mPanoEntryDialog.setContentView(R.layout.operation_pano_entry_dialog);
// }
// mPanoCotnentImageView = (ImageView) mPanoEntryDialog.findViewById(R.id.pano_image_view);
// mPanoContentNameTextView = (TextView) mPanoEntryDialog.findViewById(R.id.operation_name);
//
// mPanoContentNameTextView.setText(operationDto.operationName);
// mPanoCotnentImageView.setImageBitmap(null);
// FileUtil.delete(ABVEnvironment.getInstance().getCacheTempAttachedImageDirPath());
//
// // 閉じるボタン
// mPanoEntryDialog.findViewById(R.id.closeBtn).setOnClickListener(new View.OnClickListener() {
//
// @Override
// public void onClick(View v) {
// mPanoCotnentImageView.setImageBitmap(null);
// mSelectPanoContentUri = null;
// mPanoEntryDialog.dismiss();
// FileUtil.delete(ABVEnvironment.getInstance().getCacheTempAttachedImageDirPath());
// }
// });
//
//
// // 画像選択ボタン
// mPanoEntryDialog.findViewById(R.id.select_image).setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// startCameraIntent(ABOOK_CHECK_OPERATION_PANO_CONTENT_IMAGE, "Camera", ABookKeys.IMAGE, false);
// }
// });
//
//
// // 登録ボタン
// mPanoEntryDialog.findViewById(R.id.btn_entry).setOnClickListener(new View.OnClickListener() {
//
// @Override
// public void onClick(View v) {
// if (!ABVEnvironment.getInstance().networkAdapter.isNetworkConnected()) {
// ABVToastUtil.showMakeText(OperationListActivity.this, R.string.msg_network_offline, Toast.LENGTH_SHORT);
// return;
// }
// if (mSelectPanoContentUri == null) {
// ABVToastUtil.showMakeText(OperationListActivity.this, PatternStringUtil.patternToInt(getApplicationContext(),
// R.string.msg_pano_image_no_selected,
// getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)), Toast.LENGTH_SHORT);
// return;
// }
// // リソースパターンの適用
// showProgressView(PatternStringUtil.patternToString(getApplicationContext(),
// R.string.msg_common_processing,
// getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)));
// CommonExecutor.execute(new Runnable() {
// @Override
// public void run() {
// boolean isError = true;
// String[] projection = {MediaStore.MediaColumns.DATA};
// Cursor cursor = getContentResolver().query(mSelectPanoContentUri, projection, null, null, null);
//
// String scenePath = null;
// if (mSelectPanoContentUri.toString().contains("file")) { //アプリ内に臨時保存した画像ファイル
// scenePath = mSelectPanoContentUri.getPath();
// } else {
// if (cursor != null) {
// if (cursor.moveToFirst()) {
// scenePath = cursor.getString(0);
// }
// cursor.close();
// }
//
// }
// if (scenePath != null) {
// File file = new File(scenePath);
// isError = true;
// try {
// mOperationLogic.sendPanoContent(operationDto.operationId, operationDto.operationName, file);
// isError = false;
// } catch (ABVException e) {
// //noinspection EnumSwitchStatementWhichMissesCases
// switch (e.getCode()) {
// case P_E_ACMS_P001:
// showSimpleAlertDialog(R.string.app_name,
// PatternStringUtil.patternToInt(getApplicationContext(),
// R.string.P001,
// getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)));
// break;
// case P_E_ACMS_P002:
// showSimpleAlertDialog(R.string.app_name,
// PatternStringUtil.patternToInt(getApplicationContext(),
// R.string.P002,
// getUserPref(AppDefType.UserPrefKey.RESOURCE_PATTERN_TYPE, 0)));
// break;
// case S_E_ACMS_0500:
// handleErrorMessageToast(ABVExceptionCode.S_E_ACMS_0500);
// break;
// default:
// Logger.e(TAG, "PanoContent send error", e);
// handleErrorMessageToast(ErrorCode.E107);
// break;
// }
// } catch (Exception e) {
// Logger.e(TAG, e);
// ErrorMessage.showErrorMessageToast(OperationListActivity.this, ErrorCode.E107);
// }
// }
// if (isError) {
// closeProgressPopup();
// } else {
// handler.post(new Runnable() {
// @Override
// public void run() {
// progressDialogHorizontal.setProgress(20);
// mOperationLogic.setContentCreatingFlg(operationDto.operationId);
// refreshOperationList();
// }
// });
//
// //10秒後に新着更新させる
// handler.postDelayed(new Runnable() {
// @Override
// public void run() {
// int progress = progressDialogHorizontal.getProgress();
// progressDialogHorizontal.setProgress(progress + 8);
// if (progress >= 100) {
// closeProgressPopup();
// mPanoEntryDialog.dismiss();
// mPanoCotnentImageView.setImageBitmap(null);
// dataRefresh(true);
// } else {
// handler.postDelayed(this, 1000);
// }
// }
// }, 1000);
// }
// }
// });
// }
// });
//
// if (mPanoEntryDialog != null) {
// mPanoEntryDialog.show();
// }
}
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
Intent
intent
)
{
activityResultFlg
=
true
;
Uri
result
=
(
intent
==
null
||
resultCode
!=
RESULT_OK
)
?
null
:
intent
.
getData
();
if
(
requestCode
==
ABOOK_CHECK_OPERATION_PANO_CONTENT_IMAGE
)
{
if
(
result
!=
null
)
{
mSelectPanoContentUri
=
result
;
try
{
String
[]
projection
=
{
MediaStore
.
MediaColumns
.
DATA
};
Cursor
cursor
=
getContentResolver
().
query
(
mSelectPanoContentUri
,
projection
,
null
,
null
,
null
);
String
photoFilePath
=
ABookCheckWebViewHelper
.
getInstance
().
contentSchemeUriToFilePath
(
cursor
);
int
rotationAngle
=
ABookCheckWebViewHelper
.
getInstance
().
rotateBitmapOrientation
(
photoFilePath
);
if
(
rotationAngle
!=
0
)
{
mLocalFile
=
ABookCheckWebViewHelper
.
getInstance
().
rotateBitmapToImageFile
(
rotationAngle
,
photoFilePath
,
ABVEnvironment
.
getInstance
().
getCacheTempAttachedImageDirPath
());
mSelectPanoContentUri
=
Uri
.
fromFile
(
mLocalFile
);
}
if
(
mSelectPanoContentUri
!=
null
)
{
InputStream
stream
=
getContentResolver
().
openInputStream
(
mSelectPanoContentUri
);
Bitmap
bitmap
=
BitmapFactory
.
decodeStream
(
stream
);
mPanoCotnentImageView
.
setImageBitmap
(
bitmap
);
}
//ベースファイル登録した後にシーン画像選択画面閉じた後に呼ばれる
if
(
requestCode
==
SUB_DIVICE_IMAGE_LIST_ACTIVITY
)
{
mOperationLogic
.
setContentCreatingFlg
(
mSelectedOperationId
);
refreshOperationList
();
}
catch
(
FileNotFoundException
e
)
{
Logger
.
e
(
TAG
,
"panoImageContent is not found"
,
e
);
}
catch
(
IOException
e
)
{
Logger
.
e
(
TAG
,
"IOException = "
,
e
);
//10秒(コンテンツ作成し、公開までの時間)に新着更新させる。
showProgressView
(
getString
(
R
.
string
.
msg_common_processing
));
handler
.
postDelayed
(
new
Runnable
()
{
@Override
public
void
run
()
{
int
progress
=
progressDialogHorizontal
.
getProgress
();
progressDialogHorizontal
.
setProgress
(
progress
+
10
);
if
(
progress
>=
100
)
{
closeProgressPopup
();
//新着更新
dataRefresh
(
true
);
}
else
{
handler
.
postDelayed
(
this
,
1000
);
}
}
}
}
,
1000
);
}
// if (requestCode == ABOOK_CHECK_OPERATION_PANO_CONTENT_IMAGE) {
// if (result != null) {
// mSelectPanoContentUri = result;
// try {
// String[] projection = {MediaStore.MediaColumns.DATA};
// Cursor cursor = getContentResolver().query(mSelectPanoContentUri, projection, null, null, null);
// String photoFilePath = ABookCheckWebViewHelper.getInstance().contentSchemeUriToFilePath(cursor);
// int rotationAngle = ABookCheckWebViewHelper.getInstance().rotateBitmapOrientation(photoFilePath);
// if (rotationAngle != 0) {
// mLocalFile = ABookCheckWebViewHelper.getInstance().rotateBitmapToImageFile(rotationAngle, photoFilePath, ABVEnvironment.getInstance().getCacheTempAttachedImageDirPath());
// mSelectPanoContentUri = Uri.fromFile(mLocalFile);
// }
// if (mSelectPanoContentUri != null) {
// InputStream stream = getContentResolver().openInputStream(mSelectPanoContentUri);
// Bitmap bitmap = BitmapFactory.decodeStream(stream);
// mPanoCotnentImageView.setImageBitmap(bitmap);
// }
//
// } catch (FileNotFoundException e) {
// Logger.e(TAG, "panoImageContent is not found", e);
// } catch (IOException e) {
// Logger.e(TAG, "IOException = ", e);
// }
// }
// }
}
/**
...
...
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/viewer/activity/DeviceImageListActivity.java
View file @
62397df1
...
...
@@ -22,7 +22,6 @@ import com.imagepicker.ImageInternalFetcher;
import
com.theta.helper.ThetaHelper
;
import
com.theta.network.ThetaDeviceInfo
;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.HashSet
;
import
java.util.Iterator
;
...
...
@@ -30,15 +29,10 @@ import java.util.List;
import
java.util.Set
;
import
jp.agentec.abook.abv.bl.common.Callback
;
import
jp.agentec.abook.abv.bl.common.CommonExecutor
;
import
jp.agentec.abook.abv.bl.common.Constant
;
import
jp.agentec.abook.abv.bl.common.constant.ABookKeys
;
import
jp.agentec.abook.abv.bl.common.constant.ABookValues
;
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.log.Logger
;
import
jp.agentec.abook.abv.bl.logic.AbstractLogic
;
import
jp.agentec.abook.abv.bl.logic.OperationLogic
;
import
jp.agentec.abook.abv.cl.environment.DeviceInfo
;
import
jp.agentec.abook.abv.launcher.android.R
;
import
jp.agentec.abook.abv.ui.common.activity.ABVUIActivity
;
...
...
@@ -50,6 +44,7 @@ import jp.agentec.abook.abv.ui.viewer.activity.theta.ThetaCameraActivity;
import
jp.agentec.abook.abv.ui.viewer.activity.theta.task.DeviceInfoTask
;
import
jp.agentec.abook.abv.ui.viewer.adapter.ImageGalleryAdapter
;
import
jp.agentec.abook.abv.ui.viewer.adapter.WifiThetaConnectAdapter
;
import
jp.agentec.abook.abv.ui.viewer.helper.SceneSendHelper
;
import
jp.agentec.abook.abv.ui.viewer.view.CustomImage
;
public
class
DeviceImageListActivity
extends
ABVUIActivity
{
...
...
@@ -78,7 +73,7 @@ public class DeviceImageListActivity extends ABVUIActivity {
GridView
mGalleryGridView
;
ImageGalleryAdapter
mGalleryAdapter
;
private
Se
t
<
String
>
mSelectedImages
;
private
ArrayLis
t
<
String
>
mSelectedImages
;
private
List
<
CustomImage
>
mLocalImageList
;
private
Set
<
String
>
mLocalImageUriList
;
public
ImageInternalFetcher
mImageFetcher
;
...
...
@@ -87,12 +82,16 @@ public class DeviceImageListActivity extends ABVUIActivity {
private
int
mGridViewRowHeight
;
private
boolean
mIsOnResume
;
private
Long
mContentId
;
private
Long
mOperationId
;
private
String
mOperationName
;
private
Dialog
mThetaDeviceConnectDialog
;
private
ListView
notSavedListView
;
private
ListView
savedListView
;
private
boolean
isBaseSceneUpload
=
false
;
private
boolean
mIsBaseSceneUpload
=
false
;
private
boolean
mIsBaseSceneUploadSuccess
=
true
;
private
ThetaHelper
mThetaHelper
=
new
ThetaHelper
(
this
);
private
SceneSendHelper
mSceneSendHelper
=
new
SceneSendHelper
(
this
);
@Override
public
void
onCreate
(
Bundle
savedInstanceState
)
{
...
...
@@ -101,20 +100,19 @@ public class DeviceImageListActivity extends ABVUIActivity {
setContentView
(
R
.
layout
.
ac_device_image_list
);
Intent
intent
=
getIntent
();
mContentId
=
intent
.
getLongExtra
(
ABookKeys
.
CONTENT_ID
,
-
1
);
if
(
mContentId
==
-
1
)
{
isBaseSceneUpload
=
true
;
}
mSelectedImages
=
new
HashSet
<>();
mIsBaseSceneUpload
=
intent
.
getBooleanExtra
(
ABookKeys
.
BASE_CONTENT_REGISTER
,
false
);
mOperationId
=
intent
.
getLongExtra
(
ABookKeys
.
OPERATION_ID
,
-
1
);
mOperationName
=
intent
.
getStringExtra
(
ABookKeys
.
OPERATION_NAME
);
mSelectedImages
=
new
ArrayList
<>();
mLocalImageList
=
new
ArrayList
<>();
mLocalImageUriList
=
new
HashSet
<>();
mIsOnResume
=
false
;
mIsBaseSceneUploadSuccess
=
false
;
mImageFetcher
=
new
ImageInternalFetcher
(
this
,
THUMBNALE_SIZE
);
mImageFetcher
.
addImageCache
(
this
,
THUMB_IMAGE_CACHE_DIRECTORY_NAME
);
mImageFetcher
.
clearCache
();
mIsOnResume
=
false
;
mGalleryGridView
=
findViewById
(
R
.
id
.
gallery_grid
);
Button
closeBtn
=
findViewById
(
R
.
id
.
close
);
// 閉じるボタン
closeBtn
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
...
...
@@ -123,9 +121,10 @@ public class DeviceImageListActivity extends ABVUIActivity {
Logger
.
v
(
TAG
,
"CloseBtn.onClick"
);
//キャッシュをクリア
mImageFetcher
.
clearCache
();
finish
();
activityClose
();
}
});
mRegistBtn
=
findViewById
(
R
.
id
.
regist
);
mRegistBtn
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
...
...
@@ -142,7 +141,6 @@ public class DeviceImageListActivity extends ABVUIActivity {
}
});
}
}
});
mRegistBtn
.
setEnabled
(
false
);
...
...
@@ -289,7 +287,7 @@ public class DeviceImageListActivity extends ABVUIActivity {
* 端末のギャラリーから画像情報を元にして、GridViewビューア描画
*/
private
void
displayGalleryGridView
()
{
mGalleryAdapter
=
new
ImageGalleryAdapter
(
this
,
mLocalImageList
,
mGridViewRowHeight
);
mGalleryAdapter
=
new
ImageGalleryAdapter
(
this
,
mLocalImageList
,
mGridViewRowHeight
,
mIsBaseSceneUpload
);
mGalleryGridView
.
setAdapter
(
mGalleryAdapter
);
mGalleryGridView
.
setOnItemClickListener
(
new
AdapterView
.
OnItemClickListener
()
{
private
boolean
isClicked
=
false
;
...
...
@@ -297,7 +295,16 @@ public class DeviceImageListActivity extends ABVUIActivity {
public
void
onItemClick
(
AdapterView
<?>
adapterView
,
View
view
,
int
i
,
long
l
)
{
CustomImage
customImage
=
mGalleryAdapter
.
getItem
(
i
);
if
(
containsCustomImageUri
(
customImage
.
mUri
))
{
boolean
isFirst
=
firstCustomImageUri
(
customImage
.
mUri
);
mSelectedImages
.
remove
(
customImage
.
mUri
.
toString
());
//ベースシーンが削除された場合、2番目に選択された画像がベースシーン選択状態にする
if
(
mIsBaseSceneUpload
)
{
if
(
isFirst
)
{
mGalleryAdapter
.
notifyDataSetChanged
();
mRegistBtn
.
setEnabled
(
mSelectedImages
.
size
()
!=
0
);
return
;
}
}
}
else
{
//最大選択画像をチェック
if
(
mSelectedImages
.
size
()
+
1
>
IMAGE_SELECT_MAX_COUNT
)
{
...
...
@@ -336,100 +343,122 @@ public class DeviceImageListActivity extends ABVUIActivity {
}
/**
* 選択画像配列から1番目かチェック
* @param imageUri 画像ファイル情報
* @return true:1番目、false:2番目以上
*/
public
boolean
firstCustomImageUri
(
Uri
imageUri
){
if
(
mIsBaseSceneUpload
&&
mIsBaseSceneUploadSuccess
)
{
return
false
;
}
return
mSelectedImages
.
indexOf
(
imageUri
.
toString
())
==
0
;
}
/**
* 選択されている画像をサーバ側に送信する。
*/
private
void
sendImageList
(
final
Se
t
<
String
>
sendImages
)
{
private
void
sendImageList
(
final
Lis
t
<
String
>
sendImages
)
{
showProgressView
(
PatternStringUtil
.
patternToString
(
getApplicationContext
(),
R
.
string
.
msg_access_registing
,
getUserPref
(
AppDefType
.
UserPrefKey
.
RESOURCE_PATTERN_TYPE
,
0
)));
CommonExecutor
.
execute
(
new
Runnable
()
{
mSceneSendHelper
.
setListener
(
new
SceneSendHelper
.
DeviceImageListSendListener
()
{
/**
* シーン登録成功した後、ダイアログ表示
*/
@Override
public
void
run
()
{
final
Set
<
String
>
needSendImages
=
new
HashSet
<>(
sendImages
);
for
(
String
filePath
:
sendImages
){
File
file
=
new
File
(
filePath
);
try
{
AbstractLogic
.
getLogic
(
OperationLogic
.
class
).
sendScene
(
file
,
mContentId
);
needSendImages
.
remove
(
filePath
);
//プログレスバー進捗
final
int
progress
=
(
int
)
(((
float
)(
sendImages
.
size
()
-
needSendImages
.
size
())
/
sendImages
.
size
())
*
100
);
runOnUiThread
(
new
Runnable
()
{
public
void
sceneSendfinish
()
{
handler
.
postDelayed
(
new
Runnable
()
{
@Override
public
void
run
()
{
//プログレスバー非表示
closeProgressPopup
();
//成功ダイアログ表示
AlertDialogUtil
.
showAlertDialog
(
DeviceImageListActivity
.
this
,
R
.
string
.
app_name
,
R
.
string
.
msg_image_select_send_success
,
true
,
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
run
(
)
{
progressDialogHorizontal
.
setProgress
(
progress
);
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
activityClose
(
);
}
});
}
},
SEND_FINISH_DIALOG_DELAY_MILLIS
);
}
/**
* インジケーターのプログレスバー更新
* @param progress プログレスバー設定値
*/
@Override
public
void
changeProgress
(
final
int
progress
)
{
runOnUiThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
if
(
mIsBaseSceneUpload
)
{
mIsBaseSceneUploadSuccess
=
true
;
}
progressDialogHorizontal
.
setProgress
(
progress
);
}
});
}
/**
* サーバ通信失敗時に再度送信要求しない。
* @param errorMessage エラーメッセージ
*/
@Override
public
void
sceneSendFail
(
final
String
errorMessage
)
{
// シーン追加時、ロック状態である場合
runOnUiThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
closeProgressPopup
();
showSimpleAlertDialog
(
errorMessage
);
}
});
}
//送信終了
if
(
needSendImages
.
size
()
==
0
)
{
//プログレスバーを100%を表示してから非表示するため、ディレーする。
handler
.
postDelayed
(
new
Runnable
()
{
/**
* サーバ通信失敗時に再度送信要求する
* @param sendImages 再送信画像FilePath配列
*/
@Override
public
void
sceneSendFailRetry
(
final
List
<
String
>
sendImages
)
{
handler
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
closeProgressPopup
();
//ベースシーンアップロード時、ベースシーン登録完了の場合、Cancelでシーン画像選択画面非表示
if
(
mIsBaseSceneUpload
&&
mIsBaseSceneUploadSuccess
)
{
AlertDialogUtil
.
showAlertDialog
(
DeviceImageListActivity
.
this
,
R
.
string
.
app_name
,
R
.
string
.
msg_image_select_send_fail_retry
,
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
run
()
{
//プログレスバー非表示
closeProgressPopup
();
//成功ダイアログ表示
AlertDialogUtil
.
showAlertDialog
(
DeviceImageListActivity
.
this
,
R
.
string
.
app_name
,
R
.
string
.
msg_image_select_send_success
,
true
,
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
finish
();
}
});
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
//OKボタン
if
(
checkNetworkConnected
())
{
sendImageList
(
sendImages
);
}
}
},
SEND_FINISH_DIALOG_DELAY_MILLIS
);
}
}
catch
(
AcmsException
ex
)
{
Logger
.
e
(
TAG
,
ex
);
if
(
ex
.
getCode
()
==
ABVExceptionCode
.
P_E_ACMS_P007
)
{
// シーン追加時、ロック状態である場合
runOnUiThread
(
new
Runnable
()
{
},
new
DialogInterface
.
OnClickListener
()
{
//Cancelボタン
@Override
public
void
run
(
)
{
closeProgressPopup
();
showSimpleAlertDialog
(
R
.
string
.
app_name
,
R
.
string
.
error_msg_open_pano_edit
);
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
activityClose
(
);
}
});
}
else
{
handler
.
post
(
new
Runnable
()
{
AlertDialogUtil
.
showAlertDialog
(
DeviceImageListActivity
.
this
,
R
.
string
.
app_name
,
R
.
string
.
msg_image_select_send_fail_retry
,
false
,
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
run
()
{
sendImageFailDialog
(
needSendImages
);
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
//OKボタン
//インターネット非接続チェック
if
(
checkNetworkConnected
())
{
sendImageList
(
sendImages
);
}
}
});
}
break
;
}
catch
(
Exception
e
)
{
Logger
.
e
(
TAG
,
e
);
handler
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
sendImageFailDialog
(
needSendImages
);
}
});
break
;
}
}
}
);
}
});
mSceneSendHelper
.
sendSceneImages
(
sendImages
,
mOperationId
,
mOperationName
,
mIsBaseSceneUpload
);
}
/**
* サーバ側通信時、失敗の時の再登録ダイアログ表示
* @param needSendImages 登録必要な画像URI配列
*/
private
void
sendImageFailDialog
(
final
Set
<
String
>
needSendImages
)
{
closeProgressPopup
();
AlertDialogUtil
.
showAlertDialog
(
this
,
R
.
string
.
app_name
,
R
.
string
.
msg_image_select_send_fail_retry
,
false
,
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
//インターネット非接続チェック
if
(
checkNetworkConnected
())
{
sendImageList
(
needSendImages
);
}
}
});
}
/**
* THETAカメラ接続ダイアログを表示
...
...
@@ -541,6 +570,33 @@ public class DeviceImageListActivity extends ABVUIActivity {
}
}
/**
* デバイスのWifi有効・無効チェックし
* 無効の場合、ダイアログ表示
* @return true:有効, false:無効
*/
private
boolean
deviceWifiEnable
()
{
if
(
DeviceInfo
.
isDeviceWifiEnabled
(
DeviceImageListActivity
.
this
))
{
return
true
;
}
else
{
showSimpleAlertDialog
(
R
.
string
.
msg_error_device_wifi_off
);
return
false
;
}
}
/**
* ActivityをFinishする
*/
private
void
activityClose
()
{
//ベースシーン登録成功後、新着更新させるため
if
(
mIsBaseSceneUpload
)
{
if
(
mIsBaseSceneUploadSuccess
)
{
Intent
data
=
new
Intent
();
setResult
(
RESULT_OK
);
}
}
finish
();
}
/**
* THETAカメラ情報取得完了後、呼ばれる
...
...
@@ -575,18 +631,4 @@ public class DeviceImageListActivity extends ABVUIActivity {
}
}
}
/**
* デバイスのWifi有効・無効チェックし
* 無効の場合、ダイアログ表示
* @return true:有効, false:無効
*/
private
boolean
deviceWifiEnable
()
{
if
(
DeviceInfo
.
isDeviceWifiEnabled
(
DeviceImageListActivity
.
this
))
{
return
true
;
}
else
{
showSimpleAlertDialog
(
R
.
string
.
msg_error_device_wifi_off
);
return
false
;
}
}
}
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/viewer/activity/ParentWebViewActivity.java
View file @
62397df1
...
...
@@ -94,7 +94,7 @@ public class ParentWebViewActivity extends ABVContentViewActivity {
if
(
helper
.
checkMultiPermissions
(
true
))
{
//シーン画像選択画面表示
Intent
intent
=
new
Intent
();
intent
.
putExtra
(
ABookKeys
.
CONTENT_ID
,
contentId
);
intent
.
putExtra
(
ABookKeys
.
BASE_CONTENT_REGISTER
,
false
);
String
className
=
DeviceImageListActivity
.
class
.
getName
();
if
(
isNormalSize
()
==
false
)
{
className
+=
"Dialog"
;
...
...
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/viewer/adapter/ImageGalleryAdapter.java
View file @
62397df1
...
...
@@ -18,11 +18,12 @@ public class ImageGalleryAdapter extends BaseAdapter {
LayoutInflater
inflater
;
List
<
CustomImage
>
imageUriList
;
int
mRowHeight
;
public
ImageGalleryAdapter
(
Context
context
,
List
<
CustomImage
>
imageUriList
,
int
rowHeight
)
{
boolean
isBaseSceneUpload
;
public
ImageGalleryAdapter
(
Context
context
,
List
<
CustomImage
>
imageUriList
,
int
rowHeight
,
boolean
isBaseSceneUpload
)
{
this
.
context
=
context
;
this
.
imageUriList
=
imageUriList
;
this
.
mRowHeight
=
rowHeight
;
this
.
isBaseSceneUpload
=
isBaseSceneUpload
;
inflater
=
(
LayoutInflater
)
context
.
getSystemService
(
Context
.
LAYOUT_INFLATER_SERVICE
);
}
...
...
@@ -59,10 +60,19 @@ public class ImageGalleryAdapter extends BaseAdapter {
CustomImage
customImage
=
getItem
(
position
);
boolean
isSelected
=
((
DeviceImageListActivity
)
context
).
containsCustomImageUri
(
customImage
.
mUri
);
holder
.
mThumbnailSelected
.
setImageResource
(
R
.
drawable
.
check_mark
);
holder
.
mThumbnailSelected
.
setVisibility
(
View
.
INVISIBLE
);
//ベースシーンチェック画像設定
if
(
isBaseSceneUpload
)
{
boolean
isFirstImage
=
((
DeviceImageListActivity
)
context
).
firstCustomImageUri
(
customImage
.
mUri
);
if
(
isFirstImage
)
{
holder
.
mThumbnailSelected
.
setImageResource
(
R
.
drawable
.
icon_base_content_check
);
}
}
if
(
isSelected
)
{
holder
.
mThumbnailSelected
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
holder
.
mThumbnailSelected
.
setVisibility
(
View
.
INVISIBLE
);
}
if
(
holder
.
customImage
==
null
||
!
holder
.
customImage
.
mUri
.
equals
(
customImage
.
mUri
))
{
...
...
ABVJE_UI_Android/src/jp/agentec/abook/abv/ui/viewer/helper/SceneSendHelper.java
0 → 100644
View file @
62397df1
package
jp
.
agentec
.
abook
.
abv
.
ui
.
viewer
.
helper
;
import
android.content.Context
;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.List
;
import
jp.agentec.abook.abv.bl.common.CommonExecutor
;
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.log.Logger
;
import
jp.agentec.abook.abv.bl.logic.AbstractLogic
;
import
jp.agentec.abook.abv.bl.logic.OperationLogic
;
import
jp.agentec.abook.abv.launcher.android.R
;
/**
* シーン画像ファイルをサーバへ登録する処理クラス
*/
public
class
SceneSendHelper
{
private
static
final
String
TAG
=
"DeviceImageListHelper"
;
private
SceneSendHelper
.
DeviceImageListSendListener
listener
;
private
Context
mContext
;
public
SceneSendHelper
(
Context
context
)
{
mContext
=
context
;
}
public
void
setListener
(
SceneSendHelper
.
DeviceImageListSendListener
listener
)
{
this
.
listener
=
listener
;
}
public
interface
DeviceImageListSendListener
{
void
sceneSendfinish
();
void
changeProgress
(
final
int
progress
);
void
sceneSendFail
(
final
String
errorMessage
);
void
sceneSendFailRetry
(
List
<
String
>
retrySendImages
);
}
/**
* シーン画像をサーバへ送信
* @param sendImages シーン画像ファイルPath配列
* @param operationId 作業ID
* @param OperationName 作業名
* @param isBaseSceneUpload ベースシーン登録フラグ(true:登録、false:登録しない)
*/
public
void
sendSceneImages
(
final
List
<
String
>
sendImages
,
final
Long
operationId
,
final
String
OperationName
,
final
boolean
isBaseSceneUpload
)
{
CommonExecutor
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
String
firstFilePath
=
sendImages
.
get
(
0
);
final
List
<
String
>
needSendImages
=
new
ArrayList
<>(
sendImages
);
for
(
String
filePath
:
sendImages
){
File
file
=
new
File
(
filePath
);
try
{
if
(
isBaseSceneUpload
&&
firstFilePath
.
equals
(
filePath
))
{
AbstractLogic
.
getLogic
(
OperationLogic
.
class
).
sendPanoContent
(
operationId
,
OperationName
,
file
);
}
else
{
AbstractLogic
.
getLogic
(
OperationLogic
.
class
).
sendScene
(
file
);
}
needSendImages
.
remove
(
filePath
);
//プログレスバー進捗
int
progress
=
(
int
)
(((
float
)(
sendImages
.
size
()
-
needSendImages
.
size
())
/
sendImages
.
size
())
*
100
);
listener
.
changeProgress
(
progress
);
//送信終了
if
(
needSendImages
.
size
()
==
0
)
{
listener
.
sceneSendfinish
();
}
}
catch
(
AcmsException
ex
)
{
Logger
.
e
(
TAG
,
ex
);
if
(
ex
.
getCode
()
==
ABVExceptionCode
.
P_E_ACMS_P007
)
{
listener
.
sceneSendFail
(
mContext
.
getString
(
R
.
string
.
error_msg_open_pano_edit
));
}
else
{
listener
.
sceneSendFailRetry
(
needSendImages
);
}
break
;
}
catch
(
Exception
e
)
{
Logger
.
e
(
TAG
,
e
);
listener
.
sceneSendFailRetry
(
needSendImages
);
break
;
}
}
}
});
}
}
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