@@ -38,6 +38,7 @@ public class SessionActivity extends BaseActivity implements SessionContract.Vie |
||
| 38 | 38 |
@BindView(R.id.title_bar_middle_txt) TextView titleTextView; |
| 39 | 39 |
@BindView(R.id.recycler_view_photos) RecyclerView photosRecyclerView; |
| 40 | 40 |
@BindView(R.id.iv_scan) ImageView qrcodeScanBtn; |
| 41 |
+ @BindView(R.id.tv_camera_status) TextView cameraStatusTextView; |
|
| 41 | 42 |
|
| 42 | 43 |
private PhotoRecyclerAdapter adapter; |
| 43 | 44 |
private SessionBean sessionBean; |
@@ -80,9 +81,9 @@ public class SessionActivity extends BaseActivity implements SessionContract.Vie |
||
| 80 | 81 |
sessionBean =(SessionBean)getIntent().getSerializableExtra("session");
|
| 81 | 82 |
if(BuildConfig.isTestMode){
|
| 82 | 83 |
sessionBean.sessionId="test"; |
| 84 |
+ cameraStatusTextView.setVisibility(View.VISIBLE); |
|
| 83 | 85 |
} |
| 84 | 86 |
presenter = new SessionPresenter(sessionBean,this); |
| 85 |
- |
|
| 86 | 87 |
titleTextView.setText(getString(R.string.scene,sessionBean.sessionSeq)); |
| 87 | 88 |
adapter = new PhotoRecyclerAdapter(this); |
| 88 | 89 |
|
@@ -215,6 +216,16 @@ public class SessionActivity extends BaseActivity implements SessionContract.Vie |
||
| 215 | 216 |
} |
| 216 | 217 |
|
| 217 | 218 |
@Override |
| 219 |
+ public void refreshCameraStatus(final String status) {
|
|
| 220 |
+ cameraStatusTextView.post(new Runnable() {
|
|
| 221 |
+ @Override |
|
| 222 |
+ public void run() {
|
|
| 223 |
+ cameraStatusTextView.setText(status); |
|
| 224 |
+ } |
|
| 225 |
+ }); |
|
| 226 |
+ } |
|
| 227 |
+ |
|
| 228 |
+ @Override |
|
| 218 | 229 |
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
| 219 | 230 |
super.onActivityResult(requestCode,resultCode,data); |
| 220 | 231 |
if (resultCode == Activity.RESULT_OK) {
|
@@ -18,6 +18,7 @@ public class SessionContract {
|
||
| 18 | 18 |
void showToast(String toast); |
| 19 | 19 |
void refreshUploadTimeHint(); |
| 20 | 20 |
void addPhotos(ArrayList<PhotoBean> photoList); |
| 21 |
+ void refreshCameraStatus(String status); |
|
| 21 | 22 |
} |
| 22 | 23 |
|
| 23 | 24 |
interface Presenter extends BasePresenter{
|
@@ -44,6 +44,7 @@ public class SessionInteractor implements Callback{
|
||
| 44 | 44 |
public boolean handleMessage(Message message) {
|
| 45 | 45 |
if(message.what==MSG_CAMERA_INIT_EVENT){
|
| 46 | 46 |
int result = CameraJNIInterface.getInstance().java_mygpcamerainit(); |
| 47 |
+ listener.onCameraStatusChanged("mygpcamerainit return "+result);
|
|
| 47 | 48 |
if(result>=0){
|
| 48 | 49 |
listener.onSessionStartSuccess(sessionBean.sessionId); |
| 49 | 50 |
isWorking = true; |
@@ -60,6 +61,7 @@ public class SessionInteractor implements Callback{
|
||
| 60 | 61 |
void onSessionStartError(String session); |
| 61 | 62 |
void onSessionPhotoCaptured(PhotoBean bean); |
| 62 | 63 |
void onSessionEnd(String session); |
| 64 |
+ void onCameraStatusChanged(String status); |
|
| 63 | 65 |
} |
| 64 | 66 |
|
| 65 | 67 |
public void startSession(){
|
@@ -69,6 +71,7 @@ public class SessionInteractor implements Callback{
|
||
| 69 | 71 |
new File(sessionWorkingDirPath).mkdirs(); |
| 70 | 72 |
|
| 71 | 73 |
int result = CameraJNIInterface.getInstance().java_mygpcamerainit(); |
| 74 |
+ listener.onCameraStatusChanged("mygpcamerainit return "+result);
|
|
| 72 | 75 |
if(result>=0){
|
| 73 | 76 |
LogHelper.d("czy","mygpcamerainit init success="+result);
|
| 74 | 77 |
listener.onSessionStartSuccess(sessionBean.sessionId); |
@@ -114,6 +117,7 @@ public class SessionInteractor implements Callback{
|
||
| 114 | 117 |
|
| 115 | 118 |
isLastQueryReturned = false; |
| 116 | 119 |
String eventMsg = CameraJNIInterface.getInstance().java_mygpcamerawaitforevent(sessionWorkingDirPath); |
| 120 |
+ listener.onCameraStatusChanged("mygpcamerawaitforevent return "+eventMsg);
|
|
| 117 | 121 |
LogHelper.d("czy","mygpcamerawaitforevent return result = "+eventMsg);
|
| 118 | 122 |
if(eventMsg!=null && eventMsg.length()>0){
|
| 119 | 123 |
if(MSG_TYPE_NOT_INIT.equalsIgnoreCase(eventMsg)||MSG_TYPE_CAMERA_ERROR.equalsIgnoreCase(eventMsg)){
|
@@ -153,7 +157,8 @@ public class SessionInteractor implements Callback{
|
||
| 153 | 157 |
photoCaptureTimer.cancel(); |
| 154 | 158 |
photoCaptureTimer = null; |
| 155 | 159 |
} |
| 156 |
- CameraJNIInterface.getInstance().java_mygpcameraexit(); |
|
| 160 |
+ int result = CameraJNIInterface.getInstance().java_mygpcameraexit(); |
|
| 161 |
+ listener.onCameraStatusChanged("mygpcameraexit return "+result);
|
|
| 157 | 162 |
listener.onSessionEnd(sessionBean.sessionId); |
| 158 | 163 |
if(cameraInitHandler!=null){
|
| 159 | 164 |
cameraInitHandler.removeCallbacksAndMessages(null); |
@@ -107,6 +107,11 @@ public class SessionPresenter implements SessionContract.Presenter, SessionInter |
||
| 107 | 107 |
} |
| 108 | 108 |
|
| 109 | 109 |
@Override |
| 110 |
+ public void onCameraStatusChanged(String status) {
|
|
| 111 |
+ sessionView.refreshCameraStatus(status); |
|
| 112 |
+ } |
|
| 113 |
+ |
|
| 114 |
+ @Override |
|
| 110 | 115 |
public void swipeToDeletePhoto(int index) {
|
| 111 | 116 |
if(index<0 || index>= photoList.size()){
|
| 112 | 117 |
return; |
@@ -81,6 +81,16 @@ |
||
| 81 | 81 |
android:layout_width="match_parent" |
| 82 | 82 |
android:layout_height="match_parent" /> |
| 83 | 83 |
|
| 84 |
+ <TextView |
|
| 85 |
+ android:id="@+id/tv_camera_status" |
|
| 86 |
+ android:layout_width="match_parent" |
|
| 87 |
+ android:layout_height="48dp" |
|
| 88 |
+ android:textSize="16sp" |
|
| 89 |
+ android:textColor="@color/dark_grey" |
|
| 90 |
+ android:gravity="center_vertical" |
|
| 91 |
+ android:background="@color/white" |
|
| 92 |
+ android:visibility="gone"/> |
|
| 93 |
+ |
|
| 84 | 94 |
<ImageButton |
| 85 | 95 |
android:id="@+id/btn_session_complete" |
| 86 | 96 |
android:layout_width="68dp" |