refs #4632 refactor endpoint SaveSign from silex to salix

This commit is contained in:
Alexandre Riera 2023-02-27 07:21:43 +01:00
parent 18d8bc34b2
commit 62d1badea3
32 changed files with 260 additions and 95 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="1.8" />
<bytecodeTargetLevel target="11" />
</component>
</project>

View File

@ -8,6 +8,7 @@
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="Embedded JDK" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />

View File

@ -96,10 +96,13 @@
</value>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="jbr-11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
<component name="SuppressKotlinCodeStyleNotification">
<option name="disableForAll" value="true" />
</component>
</project>

View File

@ -33,10 +33,10 @@
<option name="jvmTarget" value="1.6" />
<option name="languageVersion" value="1.4" />
<option name="apiVersion" value="1.4" />
<option name="pluginOptions">
<option name="pluginClasspaths">
<array />
</option>
<option name="pluginClasspaths">
<option name="pluginOptions">
<array />
</option>
<option name="errors">

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -52,33 +52,34 @@
<change beforePath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/taskHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/taskHistory.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.hgignore" beforeDir="false" afterPath="$PROJECT_DIR$/.hgignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/deploymentTargetDropDown.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/gradle.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/gradle.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules/app/vn-delivery.app.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules/app/vn-delivery.app.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules/app/vn-delivery.app.main.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules/app/vn-delivery.app.main.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules/app/vn-delivery.app.unitTest.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules/app/vn-delivery.app.unitTest.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/apk/release/output.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/app/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/google-services.json" beforeDir="false" afterPath="$PROJECT_DIR$/app/google-services.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/release/app-release.apk" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/release/output.json" beforeDir="false" afterPath="$PROJECT_DIR$/app/release/output.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/ExpeditionSummaryActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/ExpeditionSummaryActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/INTERFACES/RestClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/INTERFACES/RestClient.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/INTERFACES/RestClientSalix.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/INTERFACES/RestClientSalix.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/LoginActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/LoginActivity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/MODELS/SignDataUpload.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/MODELS/SignDataUpload.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/MainActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/MainActivity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/NetworkStateReveiver.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/NetworkStateReveiver.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/SignActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/SignActivity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/Tickets.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/Tickets.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/ApiUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/ApiUtils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/ApiUtilsSalix.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/ApiUtilsSalix.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/intermediates/lint-cache/maven.google/com/google/firebase/group-index.xml" beforeDir="false" afterPath="$PROJECT_DIR$/build/intermediates/lint-cache/maven.google/com/google/firebase/group-index.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/intermediates/lint-cache/maven.google/master-index.xml" beforeDir="false" afterPath="$PROJECT_DIR$/build/intermediates/lint-cache/maven.google/master-index.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/vn-delivery.iml" beforeDir="false" afterPath="$PROJECT_DIR$/vn-delivery.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/Utils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/local.properties" beforeDir="false" afterPath="$PROJECT_DIR$/local.properties" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[C:\Users\sergiodt\.android\avd\Pixel_2_API_24.avd]" />
<component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[C:\Users\alexandre\.android\avd\Pixel_5_API_30.avd]" />
<component name="ExternalProjectsData">
<projectState path="$PROJECT_DIR$">
<ProjectState />
@ -87,6 +88,9 @@
<component name="ExternalProjectsManager">
<system id="GRADLE">
<state>
<task path="$PROJECT_DIR$/app">
<activation />
</task>
<projects_view>
<tree_state>
<expand>
@ -94,6 +98,24 @@
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="vn-delivery" type="f1a62948:ProjectNode" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="vn-delivery" type="f1a62948:ProjectNode" />
<item name="app" type="2d1252cf:ModuleNode" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="vn-delivery" type="f1a62948:ProjectNode" />
<item name="app" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="vn-delivery" type="f1a62948:ProjectNode" />
<item name="app" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" />
<item name="other" type="c8890929:TasksNode$1" />
</path>
</expand>
<select />
</tree_state>
@ -118,6 +140,11 @@
<option name="BUILD_TARGET_KEY" value="apk" />
</component>
<component name="Git.Settings">
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="test" />
</map>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="GitSEFilterConfiguration">
@ -140,6 +167,9 @@
<component name="MarkdownSettingsMigration">
<option name="stateVersion" value="1" />
</component>
<component name="ProblemsViewState">
<option name="selectedTabId" value="CurrentFile" />
</component>
<component name="ProjectId" id="1bWCL859wVM8jZScmHvfw95Cjm4" />
<component name="ProjectLevelVcsManager">
<ConfirmationsSetting value="1" id="Add" />
@ -153,11 +183,15 @@
&quot;ApkExportedModule&quot;: &quot;vn-delivery.app&quot;,
&quot;ExportApk.ApkPathForvn-delivery.app&quot;: &quot;C:\\Users\\sergiodt\\AndroidStudioProjects\\vn-delivery\\&quot;,
&quot;PROJECT_TRUSTED_KEY&quot;: &quot;true&quot;,
&quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.cidr.known.project.marker&quot;: &quot;true&quot;,
&quot;android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-28/android/widget/AbsListView.java_SELECTED&quot;: &quot;AbsListView&quot;,
&quot;android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-28/android/widget/ListView.java_SELECTED&quot;: &quot;ListView&quot;,
&quot;cidr.known.project.marker&quot;: &quot;true&quot;,
&quot;last_opened_file_path&quot;: &quot;C:/Users/sergiodt/AndroidStudioProjects/vn-picture/platforms/android&quot;
&quot;com.google.services.firebase.aqiPopupShown&quot;: &quot;true&quot;,
&quot;last_opened_file_path&quot;: &quot;C:/Users/sergiodt/AndroidStudioProjects/vn-picture/platforms/android&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;experimental&quot;
},
&quot;keyToStringList&quot;: {
&quot;ExportApk.BuildVariants&quot;: [
@ -367,9 +401,9 @@
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="kotlin-line">
<line-breakpoint type="kotlin-line">
<url>file://$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/ExpeditionSummaryActivity.kt</url>
<line>319</line>
<line>318</line>
<option name="timeStamp" value="5" />
</line-breakpoint>
</breakpoints>

View File

@ -7,6 +7,8 @@
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"

View File

@ -6,7 +6,6 @@ import android.content.Intent
import android.media.MediaPlayer
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.util.Log.d
import android.view.View
import android.view.inputmethod.InputMethodManager
import android.widget.*

View File

@ -41,8 +41,8 @@ public interface RestClient {
@POST("/delivery/get_tickets")
Call<List<Cliente>> getClients(@HeaderMap Map<String, String> headers, @Body String[] route);
@POST("/delivery/save_sign")
Call<Void> saveSign(@HeaderMap Map<String, String> headers, @Body Object[] args);
/*@POST("/delivery/save_sign")
Call<Void> saveSign(@HeaderMap Map<String, String> headers, @Body Object[] args);*/
@POST("/delivery/update_routes")
Call<Void> saveConfig(@HeaderMap Map<String, String> headers, @Body Object[] args);

View File

@ -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> loginSalix(@HeaderMap Map<String,String> headers, @Body LoginSalix userData);
@Multipart
@POST("/api/TicketDms/saveSign")
Call<Void> saveSign(@Header("Authorization") String token,
@Part MultipartBody.Part file,
@QueryMap(encoded=true) Map<String, String> queryMap);
}

View File

@ -87,14 +87,14 @@ public class LoginActivity extends AppCompatActivity {
final LoginActivity that = this;
restClientSalix.loginSalix(Utils.getMapSalix(user, password), ls).enqueue(new Callback<LoginSalix>() {
restClientSalix.loginSalix(Utils.getMapLoginSalix(user, password), ls).enqueue(new Callback<LoginSalix>() {
@Override
public void onResponse(Call<LoginSalix> call, Response<LoginSalix> 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<LoginSalix> 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());
}
});

View File

@ -14,21 +14,18 @@ public class SignDataUpload {
private String clientName = "";
private String idClient = "";
private String signedTime;
private String addressFk;
public SignDataUpload(String sign, List<Integer> tickets, verdnatura.es.repartoverdnatura.MODELS.Location location, String address) {
public SignDataUpload(String sign, List<Integer> 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<Integer> tickets,String address) {
public SignDataUpload(String sign, List<Integer> 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;

View File

@ -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<RouteLoaded> 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<RouteLoaded> extends AppCompatActivity {
setContentView(R.layout.activity_main);
restClient = ApiUtils.getAPIService();
restClientSalix = ApiUtilsSalix.getAPIService();
setViews();
getRoutes(null);
@ -410,9 +420,16 @@ public class MainActivity<RouteLoaded> 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<Void>() {
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<String, String> 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<Void>() {
@Override
public void onResponse(Call<Void> call, Response<Void> response) {
Utils.progressBar.getDialog().dismiss();
@ -450,9 +467,15 @@ public class MainActivity<RouteLoaded> 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<Void>() {
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<String, String> 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<Void>() {
@Override
public void onResponse(Call<Void> call, Response<Void> response) {

View File

@ -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<SignDataUpload> 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<String> 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<Void>() {
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<String, String> 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<Void>() {
@Override
public void onResponse(Call<Void> call, Response<Void> response) {

View File

@ -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<Integer> 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<String, String> 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<Void>() {
restClientSalix.saveSign(token, filePart, queryMap).enqueue(new Callback<Void>() {
@Override
public void onResponse(Call<Void> call, Response<Void> 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<Void> 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<Integer> 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){

View File

@ -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<Void>() {
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<String, String> 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<Void>() {
@Override
public void onResponse(Call<Void> call, Response<Void> response) {
Utils.progressBar.getDialog().dismiss();

View File

@ -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);

View File

@ -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);
}

View File

@ -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<String, String> 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<String, String> 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<String, String> 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");

View File

@ -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