diff --git a/.gradle/5.4.1/executionHistory/executionHistory.bin b/.gradle/5.4.1/executionHistory/executionHistory.bin
index 798b2c1..b71f548 100644
Binary files a/.gradle/5.4.1/executionHistory/executionHistory.bin and b/.gradle/5.4.1/executionHistory/executionHistory.bin differ
diff --git a/.gradle/5.4.1/executionHistory/executionHistory.lock b/.gradle/5.4.1/executionHistory/executionHistory.lock
index b4bf239..1b8e46b 100644
Binary files a/.gradle/5.4.1/executionHistory/executionHistory.lock and b/.gradle/5.4.1/executionHistory/executionHistory.lock differ
diff --git a/.gradle/5.4.1/fileHashes/fileHashes.bin b/.gradle/5.4.1/fileHashes/fileHashes.bin
index abf2334..9ff9558 100644
Binary files a/.gradle/5.4.1/fileHashes/fileHashes.bin and b/.gradle/5.4.1/fileHashes/fileHashes.bin differ
diff --git a/.gradle/5.4.1/fileHashes/fileHashes.lock b/.gradle/5.4.1/fileHashes/fileHashes.lock
index b069111..b4fdedf 100644
Binary files a/.gradle/5.4.1/fileHashes/fileHashes.lock and b/.gradle/5.4.1/fileHashes/fileHashes.lock differ
diff --git a/.gradle/5.4.1/fileHashes/resourceHashesCache.bin b/.gradle/5.4.1/fileHashes/resourceHashesCache.bin
index 211a36c..718d3d6 100644
Binary files a/.gradle/5.4.1/fileHashes/resourceHashesCache.bin and b/.gradle/5.4.1/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/5.4.1/javaCompile/classAnalysis.bin b/.gradle/5.4.1/javaCompile/classAnalysis.bin
index d3a1c0f..38ce4a9 100644
Binary files a/.gradle/5.4.1/javaCompile/classAnalysis.bin and b/.gradle/5.4.1/javaCompile/classAnalysis.bin differ
diff --git a/.gradle/5.4.1/javaCompile/jarAnalysis.bin b/.gradle/5.4.1/javaCompile/jarAnalysis.bin
index aa1d18d..2aca582 100644
Binary files a/.gradle/5.4.1/javaCompile/jarAnalysis.bin and b/.gradle/5.4.1/javaCompile/jarAnalysis.bin differ
diff --git a/.gradle/5.4.1/javaCompile/javaCompile.lock b/.gradle/5.4.1/javaCompile/javaCompile.lock
index 1f56630..7fa81fe 100644
Binary files a/.gradle/5.4.1/javaCompile/javaCompile.lock and b/.gradle/5.4.1/javaCompile/javaCompile.lock differ
diff --git a/.gradle/5.4.1/javaCompile/taskHistory.bin b/.gradle/5.4.1/javaCompile/taskHistory.bin
index 5d3a8fd..ed388d2 100644
Binary files a/.gradle/5.4.1/javaCompile/taskHistory.bin and b/.gradle/5.4.1/javaCompile/taskHistory.bin differ
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index 562182b..41b8804 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin
index 80c8fe4..abaafdc 100644
Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 61a9130..fb7f4a8 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 4877ac9..93512f7 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -8,6 +8,7 @@
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c49333c..2e980e8 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -96,10 +96,13 @@
-
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/app/vn-delivery.app.iml b/.idea/modules/app/vn-delivery.app.iml
index eaa4acc..1eb37fb 100644
--- a/.idea/modules/app/vn-delivery.app.iml
+++ b/.idea/modules/app/vn-delivery.app.iml
@@ -33,10 +33,10 @@
-
+
-
+
diff --git a/.idea/modules/app/vn-delivery.app.main.iml b/.idea/modules/app/vn-delivery.app.main.iml
index c201235..b7642e6 100644
--- a/.idea/modules/app/vn-delivery.app.main.iml
+++ b/.idea/modules/app/vn-delivery.app.main.iml
@@ -8,7 +8,7 @@
-
+
@@ -18,10 +18,10 @@
-
+
-
+
@@ -47,6 +47,7 @@
+
@@ -58,6 +59,7 @@
+
diff --git a/.idea/modules/app/vn-delivery.app.unitTest.iml b/.idea/modules/app/vn-delivery.app.unitTest.iml
index c69c224..3b5ec3f 100644
--- a/.idea/modules/app/vn-delivery.app.unitTest.iml
+++ b/.idea/modules/app/vn-delivery.app.unitTest.iml
@@ -19,7 +19,7 @@
-
+
@@ -34,10 +34,10 @@
-
+
-
+
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index e569763..ba4fc41 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -52,33 +52,34 @@
-
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
-
+
@@ -87,6 +88,9 @@
+
+
+
@@ -94,6 +98,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -118,6 +140,11 @@
+
+
+
+
+
@@ -140,6 +167,9 @@
+
+
+
@@ -153,11 +183,15 @@
"ApkExportedModule": "vn-delivery.app",
"ExportApk.ApkPathForvn-delivery.app": "C:\\Users\\sergiodt\\AndroidStudioProjects\\vn-delivery\\",
"PROJECT_TRUSTED_KEY": "true",
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.cidr.known.project.marker": "true",
"android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-28/android/widget/AbsListView.java_SELECTED": "AbsListView",
"android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-28/android/widget/ListView.java_SELECTED": "ListView",
"cidr.known.project.marker": "true",
- "last_opened_file_path": "C:/Users/sergiodt/AndroidStudioProjects/vn-picture/platforms/android"
+ "com.google.services.firebase.aqiPopupShown": "true",
+ "last_opened_file_path": "C:/Users/sergiodt/AndroidStudioProjects/vn-picture/platforms/android",
+ "settings.editor.selected.configurable": "experimental"
},
"keyToStringList": {
"ExportApk.BuildVariants": [
@@ -367,9 +401,9 @@
-
+
file://$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/ExpeditionSummaryActivity.kt
- 319
+ 318
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f0be18b..a7af55a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -7,6 +7,8 @@
+
+
> getClients(@HeaderMap Map headers, @Body String[] route);
- @POST("/delivery/save_sign")
- Call saveSign(@HeaderMap Map headers, @Body Object[] args);
+ /*@POST("/delivery/save_sign")
+ Call saveSign(@HeaderMap Map headers, @Body Object[] args);*/
@POST("/delivery/update_routes")
Call saveConfig(@HeaderMap Map headers, @Body Object[] args);
diff --git a/app/src/main/java/verdnatura/es/repartoverdnatura/INTERFACES/RestClientSalix.java b/app/src/main/java/verdnatura/es/repartoverdnatura/INTERFACES/RestClientSalix.java
index 1969135..3ef2196 100644
--- a/app/src/main/java/verdnatura/es/repartoverdnatura/INTERFACES/RestClientSalix.java
+++ b/app/src/main/java/verdnatura/es/repartoverdnatura/INTERFACES/RestClientSalix.java
@@ -1,19 +1,27 @@
package verdnatura.es.repartoverdnatura.INTERFACES;
-
import java.util.Map;
+import okhttp3.MultipartBody;
import retrofit2.Call;
import retrofit2.http.Body;
+import retrofit2.http.Header;
import retrofit2.http.HeaderMap;
+import retrofit2.http.Multipart;
import retrofit2.http.POST;
+import retrofit2.http.Part;
+import retrofit2.http.QueryMap;
import verdnatura.es.repartoverdnatura.MODELS.LoginSalix;
-
public interface RestClientSalix{
@POST("/api/Accounts/login")
Call loginSalix(@HeaderMap Map headers, @Body LoginSalix userData);
+ @Multipart
+ @POST("/api/TicketDms/saveSign")
+ Call saveSign(@Header("Authorization") String token,
+ @Part MultipartBody.Part file,
+ @QueryMap(encoded=true) Map queryMap);
}
diff --git a/app/src/main/java/verdnatura/es/repartoverdnatura/LoginActivity.java b/app/src/main/java/verdnatura/es/repartoverdnatura/LoginActivity.java
index a17692c..bd25ffe 100644
--- a/app/src/main/java/verdnatura/es/repartoverdnatura/LoginActivity.java
+++ b/app/src/main/java/verdnatura/es/repartoverdnatura/LoginActivity.java
@@ -87,14 +87,14 @@ public class LoginActivity extends AppCompatActivity {
final LoginActivity that = this;
- restClientSalix.loginSalix(Utils.getMapSalix(user, password), ls).enqueue(new Callback() {
+ restClientSalix.loginSalix(Utils.getMapLoginSalix(user, password), ls).enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
Utils.progressBar.getDialog().dismiss();
if (response.isSuccessful()) {
Utils.saveUserPass(that, user, password);
- Utils.saveTokenUser(that, response.body().getToken());
+ Utils.saveTokenUser(getApplicationContext(), response.body().getToken());
worker_getId();
txtUser.setText("");
txtPassword.setText("");
@@ -109,7 +109,7 @@ public class LoginActivity extends AppCompatActivity {
@Override
public void onFailure(Call call, Throwable t) {
Utils.progressBar.getDialog().dismiss();
- Utils.showErrorDialog(that, that.getResources().getString(R.string.error_conexion));
+ Utils.showErrorDialog(that, that.getResources().getString(R.string.error_conexion) + t.getMessage());
}
});
diff --git a/app/src/main/java/verdnatura/es/repartoverdnatura/MODELS/SignDataUpload.java b/app/src/main/java/verdnatura/es/repartoverdnatura/MODELS/SignDataUpload.java
index aa852bd..f9e02a6 100644
--- a/app/src/main/java/verdnatura/es/repartoverdnatura/MODELS/SignDataUpload.java
+++ b/app/src/main/java/verdnatura/es/repartoverdnatura/MODELS/SignDataUpload.java
@@ -14,21 +14,18 @@ public class SignDataUpload {
private String clientName = "";
private String idClient = "";
private String signedTime;
- private String addressFk;
- public SignDataUpload(String sign, List tickets, verdnatura.es.repartoverdnatura.MODELS.Location location, String address) {
+ public SignDataUpload(String sign, List tickets, verdnatura.es.repartoverdnatura.MODELS.Location location) {
Sign = sign;
Tickets = tickets;
Location = location;
signedTime = new SimpleDateFormat("yyyy-LL-dd HH:mm", Locale.getDefault()).format(new Date());
- addressFk =address;
}
- public SignDataUpload(String sign, List tickets,String address) {
+ public SignDataUpload(String sign, List tickets) {
Sign = sign;
Tickets = tickets;
Location = null;
signedTime = new SimpleDateFormat("yyyy-LL-dd HH:mm", Locale.getDefault()).format(new Date());
- addressFk = address;
}
@@ -38,13 +35,6 @@ public class SignDataUpload {
public void setSignedTime(String signedTime) {
this.signedTime = signedTime;
}
- public String getAddressFk(){
- return addressFk;
- }
- public void setAddressFk(String address){
- addressFk=address;
- }
-
public String getSign() {
return Sign;
diff --git a/app/src/main/java/verdnatura/es/repartoverdnatura/MainActivity.java b/app/src/main/java/verdnatura/es/repartoverdnatura/MainActivity.java
index 939677c..75265c8 100644
--- a/app/src/main/java/verdnatura/es/repartoverdnatura/MainActivity.java
+++ b/app/src/main/java/verdnatura/es/repartoverdnatura/MainActivity.java
@@ -23,25 +23,33 @@ import android.widget.TextView;
import com.google.gson.Gson;
+import java.io.File;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Set;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import verdnatura.es.repartoverdnatura.ADAPTERS.PendingTickets;
import verdnatura.es.repartoverdnatura.ADAPTERS.RutaAdapter;
import verdnatura.es.repartoverdnatura.INTERFACES.RestClient;
+import verdnatura.es.repartoverdnatura.INTERFACES.RestClientSalix;
import verdnatura.es.repartoverdnatura.MODELS.Check;
import verdnatura.es.repartoverdnatura.MODELS.Ruta;
import verdnatura.es.repartoverdnatura.MODELS.SignDataUpload;
import verdnatura.es.repartoverdnatura.MODELS.Version;
import verdnatura.es.repartoverdnatura.UTILS.ApiUtils;
+import verdnatura.es.repartoverdnatura.UTILS.ApiUtilsSalix;
import verdnatura.es.repartoverdnatura.UTILS.LocalStorage;
import verdnatura.es.repartoverdnatura.UTILS.Utils;
@@ -55,6 +63,7 @@ public class MainActivity extends AppCompatActivity {
private PendingTickets pendingAdapter;
private int heightCellRoute;
private int heightCellHeader;
+ private RestClientSalix restClientSalix;
private RestClient restClient;
private DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
private Date date = new Date();
@@ -78,6 +87,7 @@ public class MainActivity extends AppCompatActivity {
setContentView(R.layout.activity_main);
restClient = ApiUtils.getAPIService();
+ restClientSalix = ApiUtilsSalix.getAPIService();
setViews();
getRoutes(null);
@@ -410,9 +420,16 @@ public class MainActivity extends AppCompatActivity {
public void confirmSave(final SignDataUpload data){
Utils.progressBar.show(this,getResources().getString(R.string.please_wait));
final MainActivity that = this;
- Object[] args = new Object[1];
- args[0] = data;
- restClient.saveSign(Utils.getMapWhitUser(this),args).enqueue(new Callback() {
+
+ String token = Utils.getTokenUser(getApplicationContext());
+ File file = new File(data.getSign());
+ MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", file.getName(), RequestBody.create(MediaType.parse("image/*"), file));
+ Map queryMap = new HashMap<>();
+ queryMap.put("tickets", data.getTickets().toString());
+ queryMap.put("location", new Gson().toJson(data.getLocation()));
+ queryMap.put("signedTime", data.getSignedTime());
+
+ restClientSalix.saveSign(token, filePart, queryMap).enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
Utils.progressBar.getDialog().dismiss();
@@ -450,9 +467,15 @@ public class MainActivity extends AppCompatActivity {
Utils.progressBar.show(this, getResources().getString(R.string.please_wait));
final SignDataUpload data = listaPendientes.get(0);
final MainActivity that = this;
- Object[] args = new Object[1];
- args[0] = data;
- restClient.saveSign(Utils.getMapWhitUser(this), args).enqueue(new Callback() {
+ String token = Utils.getTokenUser(getApplicationContext());
+ File file = new File(data.getSign());
+ MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", file.getName(), RequestBody.create(MediaType.parse("image/*"), file));
+ Map queryMap = new HashMap<>();
+ queryMap.put("tickets", data.getTickets().toString());
+ queryMap.put("location", new Gson().toJson(data.getLocation()));
+ queryMap.put("signedTime", data.getSignedTime());
+
+ restClientSalix.saveSign(token, filePart, queryMap).enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
diff --git a/app/src/main/java/verdnatura/es/repartoverdnatura/NetworkStateReveiver.java b/app/src/main/java/verdnatura/es/repartoverdnatura/NetworkStateReveiver.java
index 165807a..ad9fd05 100644
--- a/app/src/main/java/verdnatura/es/repartoverdnatura/NetworkStateReveiver.java
+++ b/app/src/main/java/verdnatura/es/repartoverdnatura/NetworkStateReveiver.java
@@ -9,21 +9,30 @@ import android.util.Log;
import com.google.gson.Gson;
+import java.io.File;
import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Set;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import verdnatura.es.repartoverdnatura.INTERFACES.RestClient;
+import verdnatura.es.repartoverdnatura.INTERFACES.RestClientSalix;
import verdnatura.es.repartoverdnatura.MODELS.SignDataUpload;
import verdnatura.es.repartoverdnatura.UTILS.ApiUtils;
+import verdnatura.es.repartoverdnatura.UTILS.ApiUtilsSalix;
import verdnatura.es.repartoverdnatura.UTILS.LocalStorage;
import verdnatura.es.repartoverdnatura.UTILS.Utils;
public class NetworkStateReveiver extends BroadcastReceiver {
public ArrayList listData = new ArrayList<>();
private RestClient restClient;
+ private RestClientSalix restClientSalix;
public Context context;
public void onReceive(Context context, Intent intent) {
@@ -37,6 +46,7 @@ public class NetworkStateReveiver extends BroadcastReceiver {
Set listPendientes = LocalStorage.getPendingSigns(context);
if (listPendientes.size() != 0){
restClient = ApiUtils.getAPIService();
+ restClientSalix = ApiUtilsSalix.getAPIService();
Gson gson = new Gson();
listData = new ArrayList<>();
for (String s : listPendientes){
@@ -56,9 +66,15 @@ public class NetworkStateReveiver extends BroadcastReceiver {
public void confirmSave(final int pos){
if (pos < listData.size()) {
//Utils.progressBar.show(this, getResources().getString(R.string.please_wait));
- Object[] args = new Object[1];
- args[0] = listData.get(pos);
- restClient.saveSign(Utils.getMapWhitUser(context), args).enqueue(new Callback() {
+ String token = Utils.getTokenUser(this.context);
+ File file = new File(listData.get(pos).getSign());
+ MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", file.getName(), RequestBody.create(MediaType.parse("image/*"), file));
+ Map queryMap = new HashMap<>();
+ queryMap.put("tickets", listData.get(pos).getTickets().toString());
+ queryMap.put("location", new Gson().toJson(listData.get(pos).getLocation()));
+ queryMap.put("signedTime", listData.get(pos).getSignedTime());
+
+ restClientSalix.saveSign(token, filePart, queryMap).enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
diff --git a/app/src/main/java/verdnatura/es/repartoverdnatura/SignActivity.java b/app/src/main/java/verdnatura/es/repartoverdnatura/SignActivity.java
index e9f72d3..c719088 100644
--- a/app/src/main/java/verdnatura/es/repartoverdnatura/SignActivity.java
+++ b/app/src/main/java/verdnatura/es/repartoverdnatura/SignActivity.java
@@ -20,23 +20,33 @@ import android.util.Log;
import android.view.View;
import android.widget.TextView;
+import com.google.gson.Gson;
import com.simplify.ink.InkView;
import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
+import okio.ByteString;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
-import verdnatura.es.repartoverdnatura.INTERFACES.RestClient;
+import retrofit2.http.QueryMap;
+import verdnatura.es.repartoverdnatura.INTERFACES.RestClientSalix;
import verdnatura.es.repartoverdnatura.MODELS.ClientTickets;
import verdnatura.es.repartoverdnatura.MODELS.SignDataUpload;
-import verdnatura.es.repartoverdnatura.UTILS.ApiUtils;
+import verdnatura.es.repartoverdnatura.UTILS.ApiUtilsSalix;
import verdnatura.es.repartoverdnatura.UTILS.LocalStorage;
import verdnatura.es.repartoverdnatura.UTILS.Utils;
@@ -45,7 +55,7 @@ public class SignActivity extends AppCompatActivity implements LocationListener{
private InkView ink;
public ClientTickets clientTickets;
private TextView txtTickets, txtPackages, txtCliente;
- private RestClient restClient;
+ private RestClientSalix restClientSalix;
public LocationManager locationManager;
public Location location;
public List tickets = new ArrayList<>();
@@ -56,7 +66,7 @@ public class SignActivity extends AppCompatActivity implements LocationListener{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign);
- restClient = ApiUtils.getAPIService();
+ restClientSalix = ApiUtilsSalix.getAPIService();
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, true);
@@ -153,7 +163,12 @@ public class SignActivity extends AppCompatActivity implements LocationListener{
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
- SignDataUpload data = new SignDataUpload(that.BitMapToString(drawing),tickets,new verdnatura.es.repartoverdnatura.MODELS.Location(clientTickets.getLongitude(),clientTickets.getLatitude()),clientTickets.getAddress());
+ SignDataUpload data = null;
+ try {
+ data = new SignDataUpload(that.BitMapToString(drawing, tickets),tickets,new verdnatura.es.repartoverdnatura.MODELS.Location(clientTickets.getLongitude(),clientTickets.getLatitude()));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
confirmSave(data);
}
@@ -162,7 +177,12 @@ public class SignActivity extends AppCompatActivity implements LocationListener{
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
- SignDataUpload data = new SignDataUpload(that.BitMapToString(drawing),tickets,new verdnatura.es.repartoverdnatura.MODELS.Location(String.valueOf(location.getLongitude()),String.valueOf(location.getLatitude())),clientTickets.getAddress());
+ SignDataUpload data = null;
+ try {
+ data = new SignDataUpload(that.BitMapToString(drawing, tickets),tickets,new verdnatura.es.repartoverdnatura.MODELS.Location(String.valueOf(location.getLongitude()),String.valueOf(location.getLatitude())));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
confirmSave(data);
}
@@ -172,21 +192,41 @@ public class SignActivity extends AppCompatActivity implements LocationListener{
}else{
//sergio: No subido para comprobar si location == null.
if (location==null) {
- SignDataUpload data = new SignDataUpload(that.BitMapToString(drawing), tickets,clientTickets.getAddress());
- // SignDataUpload data = new SignDataUpload(that.BitMapToString(drawing), tickets, new verdnatura.es.repartoverdnatura.MODELS.Location("0.0", "0.0"));
+ SignDataUpload data = null;
+ try {
+ data = new SignDataUpload(that.BitMapToString(drawing, tickets), tickets);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ // SignDataUpload data = new SignDataUpload(that.BitMapToString(drawing), tickets, new verdnatura.es.repartoverdnatura.MODELS.Location("0.0", "0.0"));
confirmSave(data);
}else{
- SignDataUpload data = new SignDataUpload(that.BitMapToString(drawing),tickets,new verdnatura.es.repartoverdnatura.MODELS.Location(String.valueOf(location.getLongitude()),String.valueOf(location.getLatitude())),clientTickets.getAddress());
+ SignDataUpload data = null;
+ try {
+ data = new SignDataUpload(that.BitMapToString(drawing, tickets),tickets,new verdnatura.es.repartoverdnatura.MODELS.Location(String.valueOf(location.getLongitude()),String.valueOf(location.getLatitude())));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
confirmSave(data);}
}
}else{
if (location != null){
- SignDataUpload data = new SignDataUpload(that.BitMapToString(drawing),tickets,new verdnatura.es.repartoverdnatura.MODELS.Location(String.valueOf(location.getLongitude()),String.valueOf(location.getLatitude())),clientTickets.getAddress());
+ SignDataUpload data = null;
+ try {
+ data = new SignDataUpload(that.BitMapToString(drawing, tickets),tickets,new verdnatura.es.repartoverdnatura.MODELS.Location(String.valueOf(location.getLongitude()),String.valueOf(location.getLatitude())));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
confirmSave(data);
}else{
//SignDataUpload data = new SignDataUpload(that.BitMapToString(drawing),tickets,new verdnatura.es.repartoverdnatura.MODELS.Location("0.0","0.0"));
- SignDataUpload data = new SignDataUpload(that.BitMapToString(drawing), tickets,clientTickets.getAddress());
+ SignDataUpload data = null;
+ try {
+ data = new SignDataUpload(that.BitMapToString(drawing, tickets), tickets);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
confirmSave(data);
}
@@ -202,24 +242,28 @@ public class SignActivity extends AppCompatActivity implements LocationListener{
}
public void confirmSave(final SignDataUpload data){
- /* Log.d("VERDNATURA::","La firma es "+data.getSignedTime());
- Log.d("VERDNATURA::","EL consig es "+data.getAddressFk());*/
+ Log.d("VERDNATURA::","La firma es "+data.getSignedTime());
Utils.progressBar.show(this,getResources().getString(R.string.please_wait));
final SignActivity that = this;
- Object[] args = new Object[1];
- args[0] = data;
+ String token = Utils.getTokenUser(getApplicationContext());
+ File file = new File(data.getSign());
+ MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", file.getName(), RequestBody.create(MediaType.parse("image/*"), file));
+ Map queryMap = new HashMap<>();
+ queryMap.put("tickets", data.getTickets().toString());
+ queryMap.put("location", new Gson().toJson(data.getLocation()));
+ queryMap.put("signedTime", data.getSignedTime());
- restClient.saveSign(Utils.getMapWhitUser(this),args).enqueue(new Callback() {
+ restClientSalix.saveSign(token, filePart, queryMap).enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
Utils.progressBar.getDialog().dismiss();
if(response.isSuccessful()){
// if (response.body().equals("OK")){
- //Log.i("INFO","guardado");
+
Intent returnIntent = new Intent();
returnIntent.putExtra("idCliente",clientTickets.getClient());
setResult(Activity.RESULT_OK,returnIntent);
@@ -237,6 +281,7 @@ public class SignActivity extends AppCompatActivity implements LocationListener{
@Override
public void onFailure(Call call, Throwable t) {
Utils.progressBar.getDialog().dismiss();
+ Utils.showErrorDialog(that,t.getMessage());
saveLocal(data);
}
});
@@ -251,12 +296,28 @@ public class SignActivity extends AppCompatActivity implements LocationListener{
finish();
}
- public String BitMapToString(Bitmap bitmap){
- ByteArrayOutputStream baos=new ByteArrayOutputStream();
+ public String BitMapToString(Bitmap bitmap, List tickets) throws IOException {
+ String fileNameSign = getBaseContext().getExternalCacheDir() + "/sign";
+ for (Integer ticket: tickets) {
+ fileNameSign += "_" + ticket.toString();
+ }
+
+ //Create a file to write bitmap data
+ File f = new File(fileNameSign + ".png");
+ f.createNewFile();
+
+ //Convert bitmap to byte array
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG,100, baos);
- byte [] b=baos.toByteArray();
- String temp=Base64.encodeToString(b, Base64.DEFAULT);
- return temp;
+ byte [] b = baos.toByteArray();
+
+ //write the bytes in file
+ FileOutputStream fos = new FileOutputStream(f);
+ fos.write(b);
+ fos.flush();
+ fos.close();
+
+ return fileNameSign + ".png";
}
public void clearSign(View v){
diff --git a/app/src/main/java/verdnatura/es/repartoverdnatura/Tickets.java b/app/src/main/java/verdnatura/es/repartoverdnatura/Tickets.java
index b6474d0..46882e2 100644
--- a/app/src/main/java/verdnatura/es/repartoverdnatura/Tickets.java
+++ b/app/src/main/java/verdnatura/es/repartoverdnatura/Tickets.java
@@ -24,23 +24,29 @@ import android.widget.Toast;
import com.google.gson.Gson;
+import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import verdnatura.es.repartoverdnatura.ADAPTERS.ClientAdapter;
import verdnatura.es.repartoverdnatura.ADAPTERS.PhonesAdapter;
import verdnatura.es.repartoverdnatura.INTERFACES.RestClient;
+import verdnatura.es.repartoverdnatura.INTERFACES.RestClientSalix;
import verdnatura.es.repartoverdnatura.MODELS.ClientTickets;
import verdnatura.es.repartoverdnatura.MODELS.Cliente;
import verdnatura.es.repartoverdnatura.MODELS.Ruta;
import verdnatura.es.repartoverdnatura.MODELS.SignDataUpload;
import verdnatura.es.repartoverdnatura.UTILS.ApiUtils;
+import verdnatura.es.repartoverdnatura.UTILS.ApiUtilsSalix;
import verdnatura.es.repartoverdnatura.UTILS.LocalStorage;
import verdnatura.es.repartoverdnatura.UTILS.Utils;
@@ -54,6 +60,7 @@ public class Tickets extends AppCompatActivity {
private ClientAdapter adapter;
public Ruta route;
private RestClient restClient;
+ private RestClientSalix restClientSalix;
private TextView txtZona, txtLines, btnVolver, txtClientsToSign, btnShowSigned;
private boolean isSignedShowed = false;
private ListView dialogListView;
@@ -69,6 +76,7 @@ public class Tickets extends AppCompatActivity {
Bundle bundle = intent.getExtras();
route = (Ruta) bundle.getSerializable("route");
restClient = ApiUtils.getAPIService();
+ restClientSalix = ApiUtilsSalix.getAPIService();
setViews();
checkPendingSigns();
//Log.i("VERDNATURA","Se le pasa la ruta "+route.getId());
@@ -104,9 +112,15 @@ public class Tickets extends AppCompatActivity {
if (pos < listData.size()) {
Utils.progressBar.show(this, getResources().getString(R.string.please_wait));
final Tickets that = this;
- Object[] args = new Object[1];
- args[0] = listData.get(pos);
- restClient.saveSign(Utils.getMapWhitUser(this), args).enqueue(new Callback() {
+ String token = Utils.getTokenUser(that);
+ File file = new File(listData.get(pos).getSign());
+ MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", file.getName(), RequestBody.create(MediaType.parse("image/png"), file));
+ Map queryMap = new HashMap<>();
+ queryMap.put("tickets", listData.get(pos).getTickets().toString());
+ queryMap.put("location", new Gson().toJson(listData.get(pos).getLocation()));
+ queryMap.put("signedTime", listData.get(pos).getSignedTime());
+
+ restClientSalix.saveSign(token, filePart, queryMap).enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
Utils.progressBar.getDialog().dismiss();
diff --git a/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/ApiUtils.java b/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/ApiUtils.java
index 894c35f..e46d9b5 100644
--- a/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/ApiUtils.java
+++ b/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/ApiUtils.java
@@ -7,9 +7,9 @@ public class ApiUtils {
//public static final String BASE_URL = "http://10.1.4.42:9000/";
//public static final String BASE_URL = "http://192.168.1.128:9000/";
- public static final String BASE_URL = "https://test-app.verdnatura.es/";
+ public static final String BASE_URL = "http://10.0.2.2:8080/";
- //public static final String BASE_URL = "https://app.verdnatura.es/";
+ //public static final String BASE_URL = "https://test-app.verdnatura.es/";
public static RestClient getAPIService() {
return RetrofitClient.getClient(BASE_URL).create(RestClient.class);
diff --git a/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/ApiUtilsSalix.java b/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/ApiUtilsSalix.java
index 24c6a38..772de4c 100644
--- a/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/ApiUtilsSalix.java
+++ b/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/ApiUtilsSalix.java
@@ -7,8 +7,8 @@ public class ApiUtilsSalix {
//public static final String BASE_URL_SALIX = "https://salix.verdnatura.es/";
- public static final String BASE_URL_SALIX = "https://test-salix.verdnatura.es/";
- // public static final String BASE_URL_SALIX = "http://localhost:3000/";
+ //public static final String BASE_URL_SALIX = "https://test-salix.verdnatura.es/";
+ public static final String BASE_URL_SALIX = "http://10.0.2.2:3000/";
public static RestClientSalix getAPIService() {
return RetrofitClientSalix.getClient(BASE_URL_SALIX).create(RestClientSalix.class);
}
diff --git a/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/Utils.java b/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/Utils.java
index 8ca4777..998ed5f 100644
--- a/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/Utils.java
+++ b/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/Utils.java
@@ -7,6 +7,7 @@ import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
+import android.preference.PreferenceManager;
import android.provider.Settings;
import android.support.v4.BuildConfig;
import android.text.InputType;
@@ -65,12 +66,20 @@ public class Utils {
return map;
}
- public static Map getMapSalix(String user, String password) {
- map.put("version", "1");
- map.put("aplicacion", "json");
- map.put("user", user);
- map.put("pass", password);
- map.put("Content-Type", "application/json");
+ public static Map getMapLoginSalix(String user, String password) {
+ mapSalix.put("version", "1");
+ mapSalix.put("aplicacion", "json");
+ mapSalix.put("user", user);
+ mapSalix.put("pass", password);
+ mapSalix.put("Content-Type", "application/json");
+ return mapSalix;
+ }
+
+ public static Map getMapSalix(String token) {
+ mapSalix.put("version", "1");
+ mapSalix.put("aplicacion", "json");
+ mapSalix.put("Authorization", token);
+ mapSalix.put("Content-Type", " multipart/form-data");
return mapSalix;
}
@@ -157,13 +166,18 @@ public static void showInputDialogExpedition(final Context context, String title
editor.commit();
}
- public static void saveTokenUser(Context context, String idUser) {
- sp = context.getSharedPreferences("delivery", Activity.MODE_PRIVATE);
+ public static void saveTokenUser(Context context, String token) {
+ sp = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = sp.edit();
- editor.putString("idToken", idUser);
+ editor.putString("idToken", token);
editor.commit();
}
+ public static String getTokenUser(Context context) {
+ sp = PreferenceManager.getDefaultSharedPreferences(context);
+ return sp.getString("idToken", "notoken");
+ }
+
public static void saveIdUserLogin(Context context, String idUser) {
sp = context.getSharedPreferences("deliveryLogin", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
@@ -171,8 +185,6 @@ public static void showInputDialogExpedition(final Context context, String title
editor.commit();
}
-
-
public static String getIdUserLogin(Context context) {
sp = context.getSharedPreferences("deliveryLogin", Activity.MODE_PRIVATE);
return sp.getString("idUserLogin", "nouser");
diff --git a/local.properties b/local.properties
index af2722f..65ecb3e 100644
--- a/local.properties
+++ b/local.properties
@@ -4,5 +4,5 @@
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
-#Thu May 06 17:26:13 CEST 2021
-sdk.dir=C\:\\Users\\sergiodt\\AppData\\Local\\Android\\Sdk
+#Wed Feb 15 07:35:16 CET 2023
+sdk.dir=C\:\\Users\\alexandre\\AppData\\Local\\Android\\Sdk