Commit 2a2a26b3 by yuichiro ogawa

Merge remote-tracking branch 'origin/features/1.2.302' into features/1.2.360_ogawa-y

# Conflicts:
#	ABVJE_BL/src/jp/agentec/abook/abv/bl/acms/type/ServiceOption.java
#	ABVJE_BL/src/jp/agentec/abook/abv/bl/data/ABVDataCache.java
parents b0b09483 e0f4e275
...@@ -162,5 +162,11 @@ public interface ServiceOption { ...@@ -162,5 +162,11 @@ public interface ServiceOption {
* 利用しない:N(通常)、利用する:Y * 利用しない:N(通常)、利用する:Y
*/ */
int Chat = 183; int Chat = 183;
/**
* I/O帳票使用
* 利用しない:N(通常)、利用する:Y
*/
int UsableIOReport = 186;
} }
} }
\ No newline at end of file
...@@ -339,6 +339,10 @@ public class ABVDataCache { ...@@ -339,6 +339,10 @@ public class ABVDataCache {
return isServiceOptionEnable(ServiceOptionId.Chat); return isServiceOptionEnable(ServiceOptionId.Chat);
} }
public boolean isUnableIOReport() {
return isServiceOptionEnable(ServiceOptionId.UsableIOReport);
}
/** /**
* @version 1.2.300 * @version 1.2.300
* サービスオプション(ユーザパスワードソルト付加)返す * サービスオプション(ユーザパスワードソルト付加)返す
......

642 Bytes | W: | H:

1.47 KB | W: | H:

ABVJE_Res_Default_Android/res/drawable-xhdpi/home_print_on.png
ABVJE_Res_Default_Android/res/drawable-xhdpi/home_print_on.png
ABVJE_Res_Default_Android/res/drawable-xhdpi/home_print_on.png
ABVJE_Res_Default_Android/res/drawable-xhdpi/home_print_on.png
  • 2-up
  • Swipe
  • Onion skin
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_enabled="true" android:drawable="@drawable/ic_history_back_off" />
<item android:state_enabled="false" android:drawable="@drawable/ic_history_back_disable" />
</selector>
\ No newline at end of file
...@@ -533,7 +533,7 @@ ...@@ -533,7 +533,7 @@
<string name="title_all_operation">全作業</string> <string name="title_all_operation">全作業</string>
<!-- ABookCheck 1.2.3 --> <!-- ABookCheck 1.2.3 -->
<string name="title_quick_report_output">簡易帳票出力</string> <string name="title_quick_report_output">帳票確認</string>
<!-- 1.0.1 Resource Pattern 1 --> <!-- 1.0.1 Resource Pattern 1 -->
<!-- 1.9.0.0--> <!-- 1.9.0.0-->
......
...@@ -531,12 +531,12 @@ ...@@ -531,12 +531,12 @@
<string name="msg_batch_sync_new_content_updating">새로운 정보갱신 중에는 일괄 동기을 하실 수 없습니다.</string> <string name="msg_batch_sync_new_content_updating">새로운 정보갱신 중에는 일괄 동기을 하실 수 없습니다.</string>
<string name="msg_batch_sync_error">「%1$s」정보갱신에 실패하였습니다. 동기처리을 중지합니다.\n</string> <string name="msg_batch_sync_error">「%1$s」정보갱신에 실패하였습니다. 동기처리을 중지합니다.\n</string>
<string name="msg_batch_sync_move_operation_view">일괄 동기 처리 중에는 점검작업 보고화면으로 이동하실 수 없습니다.</string> <string name="msg_batch_sync_move_operation_view">일괄 동기 처리 중에는 점검작업 보고화면으로 이동하실 수 없습니다.</string>
<string name="category_list">분류 일람</string> <string name="category_list">분류 목록</string>
<string name="title_category">분류</string> <string name="title_category">분류</string>
<string name="title_all_operation">전체 작업</string> <string name="title_all_operation">전체 작업</string>
<!-- ABookCheck 1.2.3 --> <!-- ABookCheck 1.2.3 -->
<string name="title_quick_report_output">簡易帳票出力</string> <string name="title_quick_report_output">장표 확인</string>
<!-- 1.0.1 Resource Pattern 1 --> <!-- 1.0.1 Resource Pattern 1 -->
<!-- 1.9.0.0--> <!-- 1.9.0.0-->
......
...@@ -540,7 +540,7 @@ ...@@ -540,7 +540,7 @@
<string name="title_all_operation">All</string> <string name="title_all_operation">All</string>
<!-- ABookCheck 1.2.3 --> <!-- ABookCheck 1.2.3 -->
<string name="title_quick_report_output">簡易帳票出力</string> <string name="title_quick_report_output">Report confirmation</string>
<!-- 1.0.1 Resource Pattern 1 --> <!-- 1.0.1 Resource Pattern 1 -->
<!-- 1.9.0.0--> <!-- 1.9.0.0-->
......
...@@ -136,6 +136,7 @@ ...@@ -136,6 +136,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/print_layout"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
......
...@@ -139,6 +139,7 @@ ...@@ -139,6 +139,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/print_layout"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
......
...@@ -136,6 +136,7 @@ ...@@ -136,6 +136,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/print_layout"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
......
...@@ -129,6 +129,7 @@ ...@@ -129,6 +129,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/print_layout"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
......
...@@ -135,8 +135,8 @@ ...@@ -135,8 +135,8 @@
android:layout_weight="1" android:layout_weight="1"
android:background="@drawable/btn_operation_print_white" android:background="@drawable/btn_operation_print_white"
android:contentDescription="@string/print" android:contentDescription="@string/print"
android:scaleX="0.7" android:scaleX="0.6"
android:scaleY="0.7" android:scaleY="0.6"
android:visibility="gone" /> android:visibility="gone" />
<ImageButton <ImageButton
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/LinearLayout1" android:id="@+id/LinearLayout1"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
...@@ -12,22 +13,38 @@ ...@@ -12,22 +13,38 @@
android:background="@color/app_color" android:background="@color/app_color"
android:minHeight="50dp" > android:minHeight="50dp" >
<Button <ImageButton
android:id="@+id/closeBtn" android:id="@+id/backBtn"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentLeft="false" android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" android:layout_alignParentStart="true"
android:layout_alignTop="@+id/linearLayout"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginLeft="5dp" android:layout_marginLeft="5dp"
android:layout_marginStart="5dp" android:layout_marginStart="5dp"
android:background="@null"
android:src="@drawable/btn_history_back_for_webview" />
<Button
android:id="@+id/closeBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="false"
android:layout_alignParentStart="false"
android:layout_centerVertical="true"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:background="@drawable/btn_close" android:background="@drawable/btn_close"
android:contentDescription="@string/cont_desc" /> android:contentDescription="@string/cont_desc"
android:layout_alignParentRight="true" />
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerInParent="true"> android:layout_centerInParent="true"
android:id="@+id/linearLayout">
<TextView <TextView
android:id="@+id/title" android:id="@+id/title"
......
...@@ -22,8 +22,11 @@ import java.math.RoundingMode; ...@@ -22,8 +22,11 @@ import java.math.RoundingMode;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.TimeZone;
import java.util.Timer; import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
...@@ -357,6 +360,7 @@ public class HttpConnector { ...@@ -357,6 +360,7 @@ public class HttpConnector {
try { try {
//API2.0 //API2.0
if (mIsOldApi) { if (mIsOldApi) {
//画像ファイルの場合、「recordTime」がないのでJSONException発生
entry.getInt("recordTime"); entry.getInt("recordTime");
//動画ファイルは保存しない。 //動画ファイルは保存しない。
continue; continue;
...@@ -1110,6 +1114,8 @@ public class HttpConnector { ...@@ -1110,6 +1114,8 @@ public class HttpConnector {
//API2.0 //API2.0
if (mSessionId != null) { if (mSessionId != null) {
parameters.put("sessionId", mSessionId); parameters.put("sessionId", mSessionId);
//THETA S端末の時間初期化問題で、現在時間は常に設定
options.put("dateTimeZone", currentDateTimeZone());
} }
parameters.put("options", options); parameters.put("options", options);
...@@ -1520,4 +1526,12 @@ public class HttpConnector { ...@@ -1520,4 +1526,12 @@ public class HttpConnector {
return isSuccess; return isSuccess;
} }
/**
* yyyy:MM:dd HH:mm:ssXXXフォマットで現在の日付を返す。
* @return 現在の日付
*/
private String currentDateTimeZone() {
return new SimpleDateFormat("yyyy:MM:dd HH:mm:ssXXX").format(new Date());
}
} }
...@@ -12,16 +12,28 @@ import android.view.SurfaceView; ...@@ -12,16 +12,28 @@ import android.view.SurfaceView;
import java.io.IOException; import java.io.IOException;
import jp.agentec.abook.abv.bl.common.log.Logger;
/** /**
* Motion JPEG view * Motion JPEG view
*/ */
public class MJpegView extends SurfaceView implements SurfaceHolder.Callback { public class MJpegView extends SurfaceView implements SurfaceHolder.Callback {
private static final String TAG = "MJpegView";
private MJpegViewThread mMJpegViewThread = null; private MJpegViewThread mMJpegViewThread = null;
private MJpegInputStream mMJpegInputStream = null; private MJpegInputStream mMJpegInputStream = null;
private boolean existSurface = false; private boolean existSurface = false;
private int mDisplayWidth; private int mDisplayWidth;
private int mDisplayHeight; private int mDisplayHeight;
private MJpegView.LiveCameraListener mListener;
public interface LiveCameraListener {
void liveCameraPlayFail();
}
public void setLiveCameraListenerListener(MJpegView.LiveCameraListener listener) {
this.mListener = listener;
}
/** /**
* Constructor * Constructor
* @param context * @param context
...@@ -107,9 +119,13 @@ public class MJpegView extends SurfaceView implements SurfaceHolder.Callback { ...@@ -107,9 +119,13 @@ public class MJpegView extends SurfaceView implements SurfaceHolder.Callback {
* @param source Source stream * @param source Source stream
*/ */
public void setSource(MJpegInputStream source) { public void setSource(MJpegInputStream source) {
if (source == null) { //mMJpegInputStreamのクローズ作業のため、現在スレッドをストップする。
stopPlay();
} else {
mMJpegInputStream = source; mMJpegInputStream = source;
play(); play();
} }
}
/** /**
* Get source stream for receiving motion JPEG * Get source stream for receiving motion JPEG
...@@ -185,7 +201,6 @@ public class MJpegView extends SurfaceView implements SurfaceHolder.Callback { ...@@ -185,7 +201,6 @@ public class MJpegView extends SurfaceView implements SurfaceHolder.Callback {
Bitmap bitmap; Bitmap bitmap;
Rect bitmapRect; Rect bitmapRect;
Canvas bitmapCanvas = null; Canvas bitmapCanvas = null;
while (keepRunning) { while (keepRunning) {
if (existSurface) { if (existSurface) {
try { try {
...@@ -201,7 +216,9 @@ public class MJpegView extends SurfaceView implements SurfaceHolder.Callback { ...@@ -201,7 +216,9 @@ public class MJpegView extends SurfaceView implements SurfaceHolder.Callback {
} }
} catch (IOException e) { } catch (IOException e) {
e.getStackTrace(); e.getStackTrace();
Logger.e(TAG, "MJpegView IOException = " + e.toString());
keepRunning = false; keepRunning = false;
mListener.liveCameraPlayFail();
} }
} }
} finally { } finally {
...@@ -226,8 +243,10 @@ public class MJpegView extends SurfaceView implements SurfaceHolder.Callback { ...@@ -226,8 +243,10 @@ public class MJpegView extends SurfaceView implements SurfaceHolder.Callback {
if (mMJpegInputStream != null) { if (mMJpegInputStream != null) {
try { try {
mMJpegInputStream.close(); mMJpegInputStream.close();
mMJpegInputStream = null;
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
Logger.e(TAG, "mMJpegInputStream IOException = " + e.toString());
} }
} }
} }
......
...@@ -259,6 +259,7 @@ public class OperationListActivity extends ABVUIActivity { ...@@ -259,6 +259,7 @@ public class OperationListActivity extends ABVUIActivity {
} }
}); });
if (ABVDataCache.getInstance().serviceOption.isUnableIOReport()) {
// 簡易帳票印刷ボタン // 簡易帳票印刷ボタン
mQuickReportPrintButton.setOnClickListener(new View.OnClickListener() { mQuickReportPrintButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
...@@ -267,6 +268,10 @@ public class OperationListActivity extends ABVUIActivity { ...@@ -267,6 +268,10 @@ public class OperationListActivity extends ABVUIActivity {
} }
}); });
mQuickReportPrintButton.setVisibility(View.VISIBLE); mQuickReportPrintButton.setVisibility(View.VISIBLE);
} else {
findViewById(R.id.print_layout).setVisibility(View.GONE);
mQuickReportPrintButton.setVisibility(View.GONE);
}
// 一括同期ボタン // 一括同期ボタン
mOperationBatchSyncButton.setOnClickListener(new View.OnClickListener() { mOperationBatchSyncButton.setOnClickListener(new View.OnClickListener() {
......
...@@ -109,8 +109,12 @@ public class OperationRelatedContentActivity extends ABVUIActivity { ...@@ -109,8 +109,12 @@ public class OperationRelatedContentActivity extends ABVUIActivity {
showCommunicationMenuDialog(); showCommunicationMenuDialog();
} }
}); });
// 印刷ボタン活性化 if (ABVDataCache.getInstance().serviceOption.isUnableIOReport()) {
mQuickReportPrintButton.setVisibility(View.VISIBLE); mQuickReportPrintButton.setVisibility(View.VISIBLE);
} else {
findViewById(R.id.print_layout).setVisibility(View.GONE);
mQuickReportPrintButton.setVisibility(View.GONE);
}
} }
@Override @Override
......
...@@ -623,7 +623,7 @@ public class HTMLWebViewActivity extends ParentWebViewActivity { ...@@ -623,7 +623,7 @@ public class HTMLWebViewActivity extends ParentWebViewActivity {
*/ */
private void printButtonActivityControl() { private void printButtonActivityControl() {
OperationDto operation = mOperationDao.getOperation(mOperationId); OperationDto operation = mOperationDao.getOperation(mOperationId);
if (operation != null && operation.quickReport == 1) { if (operation != null && operation.quickReport == 1 && ABVDataCache.getInstance().serviceOption.isUnableIOReport()) {
printButton.setVisibility(View.VISIBLE); printButton.setVisibility(View.VISIBLE);
} else { } else {
printButton.setVisibility(View.GONE); printButton.setVisibility(View.GONE);
......
...@@ -10,10 +10,12 @@ import android.view.Window; ...@@ -10,10 +10,12 @@ import android.view.Window;
import android.webkit.CookieManager; import android.webkit.CookieManager;
import android.webkit.DownloadListener; import android.webkit.DownloadListener;
import android.webkit.URLUtil; import android.webkit.URLUtil;
import android.webkit.WebBackForwardList;
import android.webkit.WebSettings; import android.webkit.WebSettings;
import android.webkit.WebView; import android.webkit.WebView;
import android.webkit.WebViewClient; import android.webkit.WebViewClient;
import android.widget.Button; import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
...@@ -34,6 +36,7 @@ public class OnlineHTMLWebViewActivity extends ABVContentViewActivity { ...@@ -34,6 +36,7 @@ public class OnlineHTMLWebViewActivity extends ABVContentViewActivity {
private WebView webView; private WebView webView;
private Button closeButton; private Button closeButton;
private ImageButton backButton;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
...@@ -59,7 +62,7 @@ public class OnlineHTMLWebViewActivity extends ABVContentViewActivity { ...@@ -59,7 +62,7 @@ public class OnlineHTMLWebViewActivity extends ABVContentViewActivity {
OnlineHTMLWebViewLogic logic = AbstractLogic.getLogic(OnlineHTMLWebViewLogic.class); OnlineHTMLWebViewLogic logic = AbstractLogic.getLogic(OnlineHTMLWebViewLogic.class);
webView.postUrl(url, logic.getPostData(param)); webView.postUrl(url, logic.getPostData(param));
// ***** るボタン // ***** 閉じるボタン
closeButton = findViewById(R.id.closeBtn); closeButton = findViewById(R.id.closeBtn);
closeButton.setOnClickListener(new View.OnClickListener() { closeButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
...@@ -67,6 +70,26 @@ public class OnlineHTMLWebViewActivity extends ABVContentViewActivity { ...@@ -67,6 +70,26 @@ public class OnlineHTMLWebViewActivity extends ABVContentViewActivity {
finishActivity(); finishActivity();
} }
}); });
// ***** 戻るボタン
backButton = findViewById(R.id.backBtn);
backButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// PDFダウンロードの場合はスキップする
WebBackForwardList bfList = webView.copyBackForwardList();
for (int i = 0, len = bfList.getCurrentIndex(); i < len; i++) {
String url = bfList.getItemAtIndex(len - i).getUrl();
if (url.contains("fileSelect")) {
continue;
}
if (webView.canGoBackOrForward(-1 * (i + 1))) {
webView.goBackOrForward(-1 * (i + 1));
break;
}
}
}
});
} }
private void setWebView() { private void setWebView() {
...@@ -98,6 +121,12 @@ public class OnlineHTMLWebViewActivity extends ABVContentViewActivity { ...@@ -98,6 +121,12 @@ public class OnlineHTMLWebViewActivity extends ABVContentViewActivity {
Logger.v(TAG, "shouldOverrideUrlLoading: %s", url); Logger.v(TAG, "shouldOverrideUrlLoading: %s", url);
return false; return false;
} }
@Override
public void onPageFinished(WebView view, String url) {
// ***** 戻るボタンの活性制御
backButton.setEnabled(webView.canGoBack());
super.onPageFinished(view, url);
}
}); });
webView.setDownloadListener(new DownloadListener() { webView.setDownloadListener(new DownloadListener() {
......
...@@ -38,7 +38,9 @@ public class ThetaCameraActivity extends ThetaActivity { ...@@ -38,7 +38,9 @@ public class ThetaCameraActivity extends ThetaActivity {
private static final String TAG = "ThetaCameraActivity"; private static final String TAG = "ThetaCameraActivity";
//画面表示後、ライブビューア取得を0.5秒後に取得 //画面表示後、ライブビューア取得を0.5秒後に取得
private static final int LIVE_VIEW_START_DELAY = 500; private static final int LIVE_VIEW_START_DELAY = 500;
private static final int LIVE_VIEW_FAIL_START_DELAY = 1000;
private static final int EV_TEXT_VIEW_TEXT_SIZE_PHONE = 16; private static final int EV_TEXT_VIEW_TEXT_SIZE_PHONE = 16;
private static final int LIVE_VIDEO_FAIL_MAX_COUNT = 3;
private MJpegView mLiveView; private MJpegView mLiveView;
private ShowLiveViewTask mLivePreviewTask; private ShowLiveViewTask mLivePreviewTask;
private Button mShootBtn; private Button mShootBtn;
...@@ -46,6 +48,8 @@ public class ThetaCameraActivity extends ThetaActivity { ...@@ -46,6 +48,8 @@ public class ThetaCameraActivity extends ThetaActivity {
private TextView mExposureTextView; private TextView mExposureTextView;
private SeekBar mExposureSeekBar; private SeekBar mExposureSeekBar;
private int mCurrentSeekBarProgress; private int mCurrentSeekBarProgress;
private int mLiveViewFailCount;
private boolean mInitOnResumeFlg = false;
private static final List<String> mExposureValues = new ArrayList<>(Arrays.asList("-2.0", "-1.7", "-1.3", "-1.0", "-0.7", "-0.3", "0.0", "0.3", "0.7", "1.0", "1.3", "1.7", "2.0")); private static final List<String> mExposureValues = new ArrayList<>(Arrays.asList("-2.0", "-1.7", "-1.3", "-1.0", "-0.7", "-0.3", "0.0", "0.3", "0.7", "1.0", "1.3", "1.7", "2.0"));
@Override @Override
...@@ -78,6 +82,7 @@ public class ThetaCameraActivity extends ThetaActivity { ...@@ -78,6 +82,7 @@ public class ThetaCameraActivity extends ThetaActivity {
showProgressPopup(); showProgressPopup();
new ShootTask(ThetaCameraActivity.this).execute(); new ShootTask(ThetaCameraActivity.this).execute();
mLiveView.setSource(null); mLiveView.setSource(null);
mLiveViewFailCount = 0;
} }
}); });
...@@ -90,22 +95,54 @@ public class ThetaCameraActivity extends ThetaActivity { ...@@ -90,22 +95,54 @@ public class ThetaCameraActivity extends ThetaActivity {
Intent intent = new Intent(); Intent intent = new Intent();
intent.setClassName(getPackageName(), ThetaImageListActivity.class.getName()); intent.setClassName(getPackageName(), ThetaImageListActivity.class.getName());
startActivity(intent); startActivity(intent);
mLiveViewFailCount = 0;
} }
}); });
//露出シークバー //露出シークバー
settingSeekbar(); settingSeekbar();
showProgressPopup(); showProgressPopup();
startLiveCameraTask(false);
mLiveViewFailCount = 0;
mLiveView.setLiveCameraListenerListener(new MJpegView.LiveCameraListener() {
@Override
public void liveCameraPlayFail() {
mLiveViewFailCount++;
Logger.e(TAG,"mLiveViewFailCount = " + mLiveViewFailCount);
if (mLiveViewFailCount == LIVE_VIDEO_FAIL_MAX_COUNT) {
handler.post(new Runnable() {
@Override
public void run() {
mLiveView.setSource(null);
thetaConnectError(R.string.msg_theta_live_image_fail);
}
});
return;
}
startLiveCameraTask(true);
}
});
}
private void startLiveCameraTask(final boolean isFailRetry) {
int delayTime = LIVE_VIEW_START_DELAY;
if (isFailRetry) { //失敗時にはリトライを1秒後に行うように設定
delayTime = LIVE_VIEW_FAIL_START_DELAY;
}
handler.postDelayed(new Runnable() { handler.postDelayed(new Runnable() {
@Override @Override
public void run() { public void run() {
if (isFailRetry) {
showProgressPopup();
}
if (mLivePreviewTask != null) {
mLivePreviewTask.cancel(true);
}
mLivePreviewTask = new ShowLiveViewTask(ThetaCameraActivity.this); mLivePreviewTask = new ShowLiveViewTask(ThetaCameraActivity.this);
mLivePreviewTask.execute(); mLivePreviewTask.execute();
} }
}, LIVE_VIEW_START_DELAY); }, delayTime);
} }
//端末の戻るボタン禁止 //端末の戻るボタン禁止
@Override @Override
public boolean dispatchKeyEvent(KeyEvent event) { public boolean dispatchKeyEvent(KeyEvent event) {
...@@ -121,19 +158,18 @@ public class ThetaCameraActivity extends ThetaActivity { ...@@ -121,19 +158,18 @@ public class ThetaCameraActivity extends ThetaActivity {
@Override @Override
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
mLiveView.stopPlay(); mLiveView.setSource(null);
} }
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
mLiveView.play(); Logger.d(TAG, "super.onResume()");
if (mInitOnResumeFlg) { //初回呼ばれた時は実行しない。(初期表示時)
if (mLivePreviewTask != null) { showProgressPopup();
mLivePreviewTask.cancel(true); startLiveCameraTask(false);
mLivePreviewTask = new ShowLiveViewTask(this);
mLivePreviewTask.execute();
} }
mInitOnResumeFlg = true;
} }
@Override @Override
protected void onDestroy() { protected void onDestroy() {
...@@ -189,8 +225,6 @@ public class ThetaCameraActivity extends ThetaActivity { ...@@ -189,8 +225,6 @@ public class ThetaCameraActivity extends ThetaActivity {
public void onStartTrackingTouch(SeekBar seekBar) {} public void onStartTrackingTouch(SeekBar seekBar) {}
}); });
} }
/** /**
...@@ -225,7 +259,7 @@ public class ThetaCameraActivity extends ThetaActivity { ...@@ -225,7 +259,7 @@ public class ThetaCameraActivity extends ThetaActivity {
mLiveView.setSource(mJpegInputStream); mLiveView.setSource(mJpegInputStream);
new GetOptionExposureTask(ThetaCameraActivity.this).execute(); new GetOptionExposureTask(ThetaCameraActivity.this).execute();
} else { } else {
Logger.e("failed to start live view"); Logger.e(TAG, "failed to start live view");
thetaConnectError(R.string.msg_theta_live_image_fail); thetaConnectError(R.string.msg_theta_live_image_fail);
} }
} }
......
...@@ -25,7 +25,7 @@ import jp.agentec.abook.abv.ui.viewer.activity.theta.ThetaCameraActivity; ...@@ -25,7 +25,7 @@ import jp.agentec.abook.abv.ui.viewer.activity.theta.ThetaCameraActivity;
*/ */
public class ShowLiveViewTask extends AsyncTask<Void, String, MJpegInputStream> { public class ShowLiveViewTask extends AsyncTask<Void, String, MJpegInputStream> {
private static final String TAG = "ShowLiveViewTask"; private static final String TAG = "ShowLiveViewTask";
private static final int FAIL_RETRAY_DELAY_MILLIS = 500; private static final int FAIL_RETRAY_DELAY_MILLIS = 1000;
private final WeakReference<ThetaCameraActivity> refActivity; private final WeakReference<ThetaCameraActivity> refActivity;
public ShowLiveViewTask(ThetaCameraActivity refActivity) { public ShowLiveViewTask(ThetaCameraActivity refActivity) {
...@@ -43,8 +43,20 @@ public class ShowLiveViewTask extends AsyncTask<Void, String, MJpegInputStream> ...@@ -43,8 +43,20 @@ public class ShowLiveViewTask extends AsyncTask<Void, String, MJpegInputStream>
HttpConnector camera = new HttpConnector(ABookValues.THETA_IP_ADDRESS, isOldApi); HttpConnector camera = new HttpConnector(ABookValues.THETA_IP_ADDRESS, isOldApi);
InputStream is = camera.getLivePreview(); InputStream is = camera.getLivePreview();
mjis = new MJpegInputStream(is); mjis = new MJpegInputStream(is);
//正常にライブ再生されるか確認
mjis.readMJpegFrame();
retryCount = MAX_RETRY_COUNT; retryCount = MAX_RETRY_COUNT;
} catch (IOException e) { } catch (IOException e) {
Logger.e(TAG,"doInBackground fail e = " + e.toString());
if (mjis != null) {
try {
mjis.close();
} catch (IOException ex) {
Logger.e(TAG, "doInBackground fail ex = " + ex.toString());
}
}
try { try {
Thread.sleep(FAIL_RETRAY_DELAY_MILLIS); Thread.sleep(FAIL_RETRAY_DELAY_MILLIS);
} catch (InterruptedException e1) { } catch (InterruptedException e1) {
......
...@@ -72,9 +72,12 @@ public class OperationTaskLayout extends RelativeLayout { ...@@ -72,9 +72,12 @@ public class OperationTaskLayout extends RelativeLayout {
super(context); super(context);
mContext = (ContentViewActivity)context; mContext = (ContentViewActivity)context;
if (isNormalSize) { // #39410 【Check】報告タブの上部にグレー帯と×ボタンが表示されない
setPadding(0, 130, 0, 0); // android 10 で setPaddingすると、Paddingの値分WebView が表示されないので
} // setPaddingを実行せずに、WebViewを全画面表示にする。
//if (isNormalSize) {
// setPadding(0, 130, 0, 0);
//}
mWebView = new EnqueteWebView(context); mWebView = new EnqueteWebView(context);
mWebView.setVerticalScrollbarOverlay(true); // スクロールバー部分の隙間を消す mWebView.setVerticalScrollbarOverlay(true); // スクロールバー部分の隙間を消す
......
...@@ -86,8 +86,8 @@ is_check_invalid_passward_limit=true ...@@ -86,8 +86,8 @@ is_check_invalid_passward_limit=true
repeat_default=true repeat_default=true
#Setting Info(設定画面のABookについての設定情報) #Setting Info(設定画面のABookについての設定情報)
version_name=1.2.300 version_name=1.2.301
release_date=2020/07/06 release_date=2020/08/31
copy_right=2016 AGENTEC Co.,Ltd. All rights reserved. copy_right=2016 AGENTEC Co.,Ltd. All rights reserved.
hope_page=http://www.agentec.jp hope_page=http://www.agentec.jp
contact_email=abook-appsupport@agentec.jp contact_email=abook-appsupport@agentec.jp
......
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