|
|
@@ -9,21 +9,22 @@ import android.content.Context;
|
|
|
import android.content.DialogInterface;
|
|
|
import android.content.Intent;
|
|
|
import android.database.Cursor;
|
|
|
-import android.graphics.BitmapFactory;
|
|
|
import android.net.Uri;
|
|
|
import android.os.Environment;
|
|
|
import android.os.Handler;
|
|
|
import android.os.Message;
|
|
|
import android.provider.MediaStore;
|
|
|
+import android.support.v4.content.PermissionChecker;
|
|
|
import android.support.v4.widget.SwipeRefreshLayout;
|
|
|
import android.support.v7.app.AppCompatActivity;
|
|
|
import android.os.Bundle;
|
|
|
import android.util.Log;
|
|
|
-import android.view.LayoutInflater;
|
|
|
+
|
|
|
import android.view.Menu;
|
|
|
import android.view.MenuItem;
|
|
|
import android.view.View;
|
|
|
import android.widget.ExpandableListView;
|
|
|
+import android.widget.Toast;
|
|
|
|
|
|
import com.usai.redant.apexdrivers.ApexDriverApplication;
|
|
|
import com.usai.redant.apexdrivers.CodeScanner.CaptureActivity;
|
|
|
@@ -37,7 +38,6 @@ import com.usai.redant.apexdrivers.Update.Model.UpdatePhotoModel;
|
|
|
import com.usai.redant.rautils.Receiver.RABroadcast;
|
|
|
import com.usai.redant.rautils.Utils.FileManager;
|
|
|
import com.usai.redant.rautils.Utils.ImageUtil;
|
|
|
-import com.usai.redant.rautils.Utils.Network;
|
|
|
import com.usai.redant.rautils.Utils.RAUtil;
|
|
|
|
|
|
import org.json.JSONArray;
|
|
|
@@ -97,6 +97,7 @@ public class UpdateActivity extends AppCompatActivity implements UpdateAdapter.U
|
|
|
private File photoFile = null;
|
|
|
|
|
|
private ProgressDialog mProgressDialog;
|
|
|
+ private AlertDialog mDialog;
|
|
|
private ArrayList<File> mPhotoArray = new ArrayList<>();// 用于直接返回后删除Photo文件
|
|
|
|
|
|
@Override
|
|
|
@@ -176,6 +177,9 @@ public class UpdateActivity extends AppCompatActivity implements UpdateAdapter.U
|
|
|
super.onStop();
|
|
|
|
|
|
dismissProgressDialog();
|
|
|
+ if (mDialog != null && mDialog.isShowing()) {
|
|
|
+ mDialog.dismiss();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -396,7 +400,12 @@ public class UpdateActivity extends AppCompatActivity implements UpdateAdapter.U
|
|
|
final int result = json.optInt("result",0);
|
|
|
if (result == RESULT_TRUE) {
|
|
|
|
|
|
- syncUploadPhotos(photoArr,json);
|
|
|
+ if (photoArr.size() > 0) {
|
|
|
+ syncUploadPhotos(photoArr,json);
|
|
|
+ } else {
|
|
|
+ dismissProgressDialog();
|
|
|
+ goHome();
|
|
|
+ }
|
|
|
|
|
|
} else {
|
|
|
dismissProgressDialog();
|
|
|
@@ -431,7 +440,7 @@ public class UpdateActivity extends AppCompatActivity implements UpdateAdapter.U
|
|
|
@Override
|
|
|
public void run() {
|
|
|
int retryCount = 0;
|
|
|
- ArrayList<UpdatePhotoModel> failedArr = new ArrayList<>();
|
|
|
+ ArrayList<UpdatePhotoModel> finishArr = new ArrayList<>();
|
|
|
for (int i = 0; i < photoArr.size(); i++) {
|
|
|
|
|
|
UpdatePhotoModel model = photoArr.get(i);
|
|
|
@@ -448,7 +457,6 @@ public class UpdateActivity extends AppCompatActivity implements UpdateAdapter.U
|
|
|
i--;
|
|
|
retryCount++;
|
|
|
if (retryCount >= 3) {
|
|
|
- failedArr.add(model);
|
|
|
break;
|
|
|
}
|
|
|
} else {
|
|
|
@@ -458,27 +466,31 @@ public class UpdateActivity extends AppCompatActivity implements UpdateAdapter.U
|
|
|
photoFile.delete();
|
|
|
ImageUtil.updateGallery(mCtx,model.photoPath);
|
|
|
}
|
|
|
+ finishArr.add(model);
|
|
|
}
|
|
|
} else {
|
|
|
// error
|
|
|
i--;
|
|
|
retryCount++;
|
|
|
if (retryCount >= 3) {
|
|
|
- failedArr.add(model);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- final ArrayList<UpdatePhotoModel> uploadFaildArr = failedArr;
|
|
|
+ for (UpdatePhotoModel model : finishArr) {
|
|
|
+ photoArr.remove(model);
|
|
|
+ }
|
|
|
+
|
|
|
+ final ArrayList<UpdatePhotoModel> uploadFaildArr = photoArr;
|
|
|
runOnUiThread(new Runnable() {
|
|
|
@Override
|
|
|
public void run() {
|
|
|
dismissProgressDialog();
|
|
|
if (uploadFaildArr.size() > 0) {
|
|
|
|
|
|
- new AlertDialog.Builder(mCtx)
|
|
|
+ mDialog = new AlertDialog.Builder(mCtx)
|
|
|
.setTitle("Warning")
|
|
|
.setMessage("upload the photos failed,would you like to retry or do it background?")
|
|
|
.setPositiveButton("Background", new DialogInterface.OnClickListener() {
|
|
|
@@ -526,8 +538,9 @@ public class UpdateActivity extends AppCompatActivity implements UpdateAdapter.U
|
|
|
ArrayList<Bundle> taskArr = new ArrayList<Bundle>();
|
|
|
final ArrayList<UpdatePhotoModel> photoArr = photos;
|
|
|
|
|
|
- String encryptUser = ApexDriverApplication.sharedApplication().encryptUser();
|
|
|
- String encryptPwd = ApexDriverApplication.sharedApplication().encryptPassword();
|
|
|
+ Date currentTime = new Date();
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/YYYY HH:mm");
|
|
|
+ String dateString = formatter.format(currentTime);
|
|
|
|
|
|
for (int i = 0; i < photoArr.size(); i++) {
|
|
|
|
|
|
@@ -541,10 +554,11 @@ public class UpdateActivity extends AppCompatActivity implements UpdateAdapter.U
|
|
|
task.putString("url","");
|
|
|
task.putString("order",mOrderID);
|
|
|
task.putString("action",getTitle().toString());
|
|
|
+ task.putString("time",dateString);
|
|
|
+ task.putString("name",model.title);
|
|
|
+
|
|
|
|
|
|
Bundle params = new Bundle();
|
|
|
- params.putString("user",encryptUser);
|
|
|
- params.putString("password",encryptPwd);
|
|
|
params.putString("platform","android");
|
|
|
params.putString("serial", serial);
|
|
|
|
|
|
@@ -614,7 +628,7 @@ public class UpdateActivity extends AppCompatActivity implements UpdateAdapter.U
|
|
|
case UpdateBaseModel.UpdateTypePhoto: {
|
|
|
|
|
|
UpdatePhotoModel photoModel = (UpdatePhotoModel)baseModel;
|
|
|
- if (photoModel.photoPath != null && photoModel.key != null) {
|
|
|
+ if (photoModel.photoPath != null && photoModel.photoPath.length() > 0 && photoModel.key != null) {
|
|
|
params.putString(photoModel.key,photoModel.getPhotoName());
|
|
|
|
|
|
photoArr.add(photoModel);
|
|
|
@@ -638,6 +652,14 @@ public class UpdateActivity extends AppCompatActivity implements UpdateAdapter.U
|
|
|
if (model == null) {
|
|
|
return;
|
|
|
}
|
|
|
+
|
|
|
+ if (PermissionChecker.checkSelfPermission(mCtx,Manifest.permission.CAMERA)!= PermissionChecker.PERMISSION_GRANTED) {
|
|
|
+
|
|
|
+ Toast.makeText(mCtx,"please allow app use camera",Toast.LENGTH_LONG).show();
|
|
|
+
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
mInputModel = model;
|
|
|
|
|
|
Intent intent = new Intent();
|
|
|
@@ -669,6 +691,18 @@ public class UpdateActivity extends AppCompatActivity implements UpdateAdapter.U
|
|
|
private void startCamera()
|
|
|
{
|
|
|
|
|
|
+ boolean cameraPermission = PermissionChecker.checkSelfPermission(mCtx,Manifest.permission.CAMERA) == PermissionChecker.PERMISSION_GRANTED;
|
|
|
+ boolean storageReadPermission = PermissionChecker.checkSelfPermission(mCtx,Manifest.permission.READ_EXTERNAL_STORAGE) == PermissionChecker.PERMISSION_GRANTED;
|
|
|
+ boolean storageWritePermission = PermissionChecker.checkSelfPermission(mCtx,Manifest.permission.WRITE_EXTERNAL_STORAGE) == PermissionChecker.PERMISSION_GRANTED;
|
|
|
+
|
|
|
+ if (!cameraPermission || !storageReadPermission || !storageWritePermission) {
|
|
|
+
|
|
|
+ Toast.makeText(mCtx,"please allow app use camera and storage",Toast.LENGTH_LONG).show();
|
|
|
+
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
|
|
|
// Ensure that there's a camera activity to handle the intent
|
|
|
|