Versión 9.4 quitando conductores y modificando carga ruta cualquiera

This commit is contained in:
Sergio De la torre 2022-10-11 09:48:08 +02:00
parent c5b3e8ccf5
commit df82d1742a
52 changed files with 2058 additions and 548 deletions

View File

@ -14,7 +14,6 @@
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings>
</option>
</component>

View File

@ -1,5 +1,8 @@
<component name="libraryTable">
<library name="Gradle: junit:junit:4.12">
<ANNOTATIONS>
<root url="jar://$USER_HOME$/.m2/repository/org/jetbrains/externalAnnotations/junit/junit/4.12-an1/junit-4.12-an1-annotations.zip!/" />
</ANNOTATIONS>
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar!/" />
</CLASSES>

View File

@ -3,23 +3,49 @@
<component name="DesignSurface">
<option name="filePathToZoomLevelMap">
<map>
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/drawable-v24/ic_eye.xml" value="0.299" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" value="0.1640625" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/drawable/button_background.xml" value="0.2734375" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/drawable/check.xml" value="0.252" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/drawable/expedition_find.xml" value="0.239" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/drawable/ic_history.xml" value="0.2625" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/drawable/ic_launcher_background.xml" value="0.187" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/drawable/ic_launcher_foreground.xml" value="0.1640625" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/drawable/input_background.xml" value="0.2734375" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/drawable/pencil_edit.xml" value="0.2625" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/drawable/revision_icon.xml" value="0.187" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_cargar_bultos.xml" value="0.2078125" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_configure.xml" value="0.12512664640324214" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_expedition_info.xml" value="0.2" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_expedition_summary.xml" value="0.264" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_info.xml" value="0.4839816933638444" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_loaders.xml" value="0.2803442028985507" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_loadvan.xml" value="0.22" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_login.xml" value="0.1585144927536232" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_main.xml" value="0.3333333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_sign.xml" value="0.4466666666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_tickets.xml" value="0.3333333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_note.xml" value="0.13020833333333334" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_scan.xml" value="0.22604166666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_sign.xml" value="0.16666666666666666" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/activity_tickets.xml" value="0.26878612716763006" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/component_custom_edit_dialog.xml" value="0.22604166666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/header_route.xml" value="0.17806484295845998" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/phone_dialog.xml" value="0.2803442028985507" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/phone_row.xml" value="0.2803442028985507" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/previous_delete.xml" value="0.17806484295845998" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/progress_bar.xml" value="0.2803442028985507" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/revision_icon.xml" value="0.17806484295845998" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/row_check.xml" value="0.25271739130434784" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/row_expedition_info.xml" value="0.17806484295845998" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/row_expedition_summary.xml" value="0.365625" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/row_expeditionscanned.xml" value="0.20878623188405798" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/row_mensaje.xml" value="0.12512664640324214" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/row_route.xml" value="0.2427536231884058" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/row_routeSelected.xml" value="0.25271739130434784" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/row_route_consignatario.xml" value="0.24947916666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/row_routeselected.xml" value="0.15625" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/row_sub_ticket.xml" value="0.3333333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/row_ticket.xml" value="0.3333333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/row_worker.xml" value="0.15217391304347827" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-delivery/app/src/main/res/layout/ticket_pending_row.xml" value="0.3333333333333333" />
</map>
</option>

View File

@ -4,6 +4,9 @@
<modules>
<module fileurl="file://$PROJECT_DIR$/vn-delivery.iml" filepath="$PROJECT_DIR$/vn-delivery.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/vn-delivery.app.iml" filepath="$PROJECT_DIR$/.idea/modules/app/vn-delivery.app.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/vn-delivery.app.androidTest.iml" filepath="$PROJECT_DIR$/.idea/modules/app/vn-delivery.app.androidTest.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/vn-delivery.app.main.iml" filepath="$PROJECT_DIR$/.idea/modules/app/vn-delivery.app.main.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/vn-delivery.app.unitTest.iml" filepath="$PROJECT_DIR$/.idea/modules/app/vn-delivery.app.unitTest.iml" />
</modules>
</component>
</project>

View File

@ -54,118 +54,11 @@
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
<exclude-output />
<content url="file://$MODULE_DIR$/../../../app">
<sourceFolder url="file://$MODULE_DIR$/../../../app/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/ap_generated_sources/debug/out" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/src/main/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/res/google-services/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/res/resValues/debug" type="java-resource" />
<excludeFolder url="file://$MODULE_DIR$/../../../app/.gradle" />
<excludeFolder url="file://$MODULE_DIR$/../../../app/build" />
<excludeFolder url="file://$MODULE_DIR$/../../../app/out" />
</content>
<orderEntry type="jdk" jdkName="Android API 28 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: net.sf.kxml:kxml2:2.3.0" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.squareup:javawriter:2.1.1" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core:3.0.2@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner:1.0.2@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support:multidex-instrumentation:1.0.2@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:monitor:1.0.2@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource:3.0.2@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:collections:28.0.0" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:common:1.1.1" level="project" />
<orderEntry type="library" name="Gradle: android.arch.core:common:1.1.1" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-annotations:28.0.0" level="project" />
<orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout-solver:1.1.3" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.retrofit2:converter-gson:2.0.2" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.retrofit2:converter-scalars:2.3.0" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.retrofit2:retrofit:2.3.0" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.okhttp3:okhttp:3.8.0" level="project" />
<orderEntry type="library" name="Gradle: io.grpc:grpc-okhttp:1.12.0" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.okhttp:okhttp:2.7.5" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.okio:okio:1.13.0" level="project" />
<orderEntry type="library" name="Gradle: io.grpc:grpc-protobuf-lite:1.12.0" level="project" />
<orderEntry type="library" name="Gradle: io.grpc:grpc-stub:1.12.0" level="project" />
<orderEntry type="library" name="Gradle: io.grpc:grpc-core:1.12.0" level="project" />
<orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.7" level="project" />
<orderEntry type="library" name="Gradle: com.google.auto.value:auto-value-annotations:1.6" level="project" />
<orderEntry type="library" name="Gradle: com.google.dagger:dagger:2.13" level="project" />
<orderEntry type="library" name="Gradle: javax.inject:javax.inject:1" level="project" />
<orderEntry type="library" name="Gradle: com.google.code.findbugs:jsr305:3.0.1" level="project" />
<orderEntry type="library" name="Gradle: com.google.protobuf:protobuf-lite:3.0.1" level="project" />
<orderEntry type="library" name="Gradle: io.grpc:grpc-context:1.12.0" level="project" />
<orderEntry type="library" name="Gradle: com.google.guava:guava:20.0" level="project" />
<orderEntry type="library" name="Gradle: com.google.errorprone:error_prone_annotations:2.1.2" level="project" />
<orderEntry type="library" name="Gradle: io.opencensus:opencensus-contrib-grpc-metrics:0.11.0" level="project" />
<orderEntry type="library" name="Gradle: io.opencensus:opencensus-api:0.11.0" level="project" />
<orderEntry type="library" name="Gradle: io.reactivex.rxjava2:rxjava:2.1.14" level="project" />
<orderEntry type="library" name="Gradle: org.reactivestreams:reactive-streams:1.0.2" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.picasso:picasso:2.5.2" level="project" />
<orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.0" level="project" />
<orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib:1.4.0" level="project" />
<orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:1.4.0" level="project" />
<orderEntry type="library" name="Gradle: org.jetbrains:annotations:13.0" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:multidex:1.0.2@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.firebase:firebase-inappmessaging-display:17.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.dagger:dagger-android-support:2.13@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:appcompat-v7:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:recyclerview-v7:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.firebase:firebase-core:16.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.firebase:firebase-measurement-connector-impl:16.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.firebase:firebase-analytics:16.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.firebase:firebase-inappmessaging:17.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.firebase:firebase-analytics-impl:16.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.firebase:firebase-iid:16.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.firebase:firebase-common:16.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-stats:15.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.firebase:firebase-measurement-connector:17.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-clearcut:15.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-phenotype:15.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.firebase:firebase-iid-interop:16.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-base:15.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-tasks:15.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-ads-identifier:15.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-basement:15.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-v4:26.1.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-fragment:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:customtabs:27.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-core-ui:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-core-utils:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:loader:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:viewpager:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:coordinatorlayout:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:drawerlayout:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:slidingpanelayout:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:customview:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:swiperefreshlayout:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:asynclayoutinflater:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-media-compat:26.1.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-compat:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:versionedparcelable:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:cursoradapter:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime:1.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:documentfile:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:localbroadcastmanager:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:print:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:viewmodel:1.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:interpolator:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.dagger:dagger-android:2.13@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata:1.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.core:runtime:1.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout:1.1.3@aar" level="project" />
<orderEntry type="library" name="Gradle: com.simplify:ink:1.0.2@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-measurement-base:16.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.firebase:protolite-well-known-types:16.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: io.reactivex.rxjava2:rxandroid:2.0.2@aar" level="project" />
</component>
</module>

View File

@ -9,7 +9,7 @@
</shared>
</component>
<component name="AndroidLogFilters">
<option name="TOOL_WINDOW_CUSTOM_FILTER" value="verdnatura::" />
<option name="TOOL_WINDOW_CUSTOM_FILTER" value="VERDNATURA::" />
<option name="TOOL_WINDOW_LOG_LEVEL" value="debug" />
<option name="TOOL_WINDOW_CONFIGURED_FILTER" value="No Filters" />
</component>
@ -40,7 +40,9 @@
</configurations>
</component>
<component name="ChangeListManager">
<list default="true" id="3b8bed57-fcd9-4c4b-a644-0b0381aae011" name="Default" comment="">
<list default="true" id="3b8bed57-fcd9-4c4b-a644-0b0381aae011" name="Default" comment="Añadido carga y descarga de rutas. Añadida info actual. Cambiada checkversion.">
<change afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/LoadVanActivity.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/UnLoadVanActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/5.4.1/executionHistory/executionHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/executionHistory/executionHistory.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/5.4.1/executionHistory/executionHistory.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/executionHistory/executionHistory.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/5.4.1/fileHashes/fileHashes.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/fileHashes/fileHashes.bin" afterDir="false" />
@ -51,98 +53,35 @@
<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$/.idea/caches/build_file_checksums.ser" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/caches/build_file_checksums.ser" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/gradle.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/gradle.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/jarRepositories.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/jarRepositories.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_customtabs_27_1_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_customtabs_27_1_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_multidex_1_0_2_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_multidex_1_0_2_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_multidex_instrumentation_1_0_2_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_multidex_instrumentation_1_0_2_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_media_compat_26_1_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_media_compat_26_1_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_v4_26_1_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_v4_26_1_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_ads_identifier_15_0_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_ads_identifier_15_0_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_base_15_0_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_base_15_0_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_basement_15_0_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_basement_15_0_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_clearcut_15_0_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_clearcut_15_0_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_base_16_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_base_16_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_phenotype_15_0_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_phenotype_15_0_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_stats_15_0_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_stats_15_0_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_tasks_15_0_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_android_gms_play_services_tasks_15_0_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_dagger_dagger_android_2_13_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_dagger_dagger_android_2_13_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_dagger_dagger_android_support_2_13_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_dagger_dagger_android_support_2_13_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_analytics_16_0_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_analytics_16_0_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_analytics_impl_16_1_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_analytics_impl_16_1_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_common_16_0_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_common_16_0_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_core_16_0_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_core_16_0_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_iid_16_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_iid_16_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_iid_interop_16_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_iid_interop_16_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_inappmessaging_17_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_inappmessaging_17_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_inappmessaging_display_17_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_inappmessaging_display_17_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_measurement_connector_17_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_measurement_connector_17_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_measurement_connector_impl_16_0_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_firebase_measurement_connector_impl_16_0_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_protolite_well_known_types_16_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_firebase_protolite_well_known_types_16_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_simplify_ink_1_0_2_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_simplify_ink_1_0_2_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__io_reactivex_rxjava2_rxandroid_2_0_2_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__io_reactivex_rxjava2_rxandroid_2_0_2_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__junit_junit_4_12.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__junit_junit_4_12.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.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.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/runConfigurations.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/app/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/release/app-release.apk" beforeDir="false" afterPath="$PROJECT_DIR$/app/release/app-release.apk" afterDir="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/ADAPTERS/CheckAdapter.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/ADAPTERS/CheckAdapter.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/ADAPTERS/ClientAdapter.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/ADAPTERS/ClientAdapter.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/ADAPTERS/RutaAdapter.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/ADAPTERS/RutaAdapter.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/CargarBultosActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/CargarBultosActivity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/ConfigureActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/ConfigureActivity.java" 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/InfoActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/InfoActivity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/LoadersActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/LoadersActivity.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/Check.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/MODELS/Check.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/MODELS/Cliente.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/MODELS/Cliente.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/MODELS/Ruta.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/MODELS/Ruta.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/MODELS/Version.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/MODELS/Version.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/NoteActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/NoteActivity.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/LocalStorage.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/LocalStorage.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/RetrofitClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/verdnatura/es/repartoverdnatura/UTILS/RetrofitClient.java" 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$/app/src/main/res/layout/activity_info.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_info.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_login.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_login.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/row_check.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/row_check.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/row_route.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/row_route.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/row_sub_ticket.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/row_sub_ticket.xml" afterDir="false" />
@ -150,15 +89,9 @@
<change beforePath="$PROJECT_DIR$/app/src/main/res/values-en/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values-en/strings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/values/colors.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/colors.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/intermediates/lint-cache/maven.google/com/android/support/constraint/group-index.xml" beforeDir="false" afterPath="$PROJECT_DIR$/build/intermediates/lint-cache/maven.google/com/android/support/constraint/group-index.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/intermediates/lint-cache/maven.google/com/android/support/group-index.xml" beforeDir="false" afterPath="$PROJECT_DIR$/build/intermediates/lint-cache/maven.google/com/android/support/group-index.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/intermediates/lint-cache/maven.google/com/android/support/test/espresso/group-index.xml" beforeDir="false" afterPath="$PROJECT_DIR$/build/intermediates/lint-cache/maven.google/com/android/support/test/espresso/group-index.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/intermediates/lint-cache/maven.google/com/android/support/test/group-index.xml" beforeDir="false" afterPath="$PROJECT_DIR$/build/intermediates/lint-cache/maven.google/com/android/support/test/group-index.xml" 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$/build/intermediates/lint-cache/sdk-registry.xml/sdk-registry.xml" beforeDir="false" afterPath="$PROJECT_DIR$/build/intermediates/lint-cache/sdk-registry.xml/sdk-registry.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/local.properties" beforeDir="false" afterPath="$PROJECT_DIR$/local.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/vn-delivery.iml" beforeDir="false" afterPath="$PROJECT_DIR$/vn-delivery.iml" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
@ -166,7 +99,7 @@
<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[20211523021031]" />
<component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[21114523025303]" />
<component name="ExternalProjectsData">
<projectState path="$PROJECT_DIR$">
<ProjectState />
@ -182,17 +115,6 @@
<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="Dependencies" type="6de06a37:ExternalSystemViewDefaultContributor$MyDependenciesNode" />
</path>
</expand>
<select />
</tree_state>
@ -203,9 +125,10 @@
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Kotlin Class" />
<option value="layoutResourceFile" />
<option value="Kotlin Class" />
<option value="Class" />
<option value="valueResourceFile" />
</list>
</option>
</component>
@ -226,6 +149,13 @@
<filtered-out-file-type name="COMMIT_BY_MESSAGE" />
</file-type-list>
</component>
<component name="HighlightingSettingsPerFile">
<setting file="file://$PROJECT_DIR$/app/src/main/res/values/dimens.xml" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/app/src/main/res/values-xlarge/dimens.xml" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/app/src/main/res/values/preloaded_fonts.xml" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/app/src/main/res/values/ic_launcher_background.xml" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/app/src/main/res/values/font_certs.xml" root0="FORCE_HIGHLIGHTING" />
</component>
<component name="ProjectId" id="1bWCL859wVM8jZScmHvfw95Cjm4" />
<component name="ProjectLevelVcsManager">
<ConfirmationsSetting value="1" id="Add" />
@ -249,37 +179,55 @@
<property name="ExportApk.SignV2" value="true" />
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="RunOnceActivity.cidr.known.project.marker" value="true" />
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="SHOW_ALL_PROCESSES" value="false" />
<property name="android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-28/android/view/View.java_SELECTED" value="View" />
<property name="android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-28/android/widget/AdapterView.java_SELECTED" value="AdapterView" />
<property name="android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-28/android/widget/ImageView.java_SELECTED" value="ImageView" />
<property name="android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-28/android/widget/TextView.java_SELECTED" value="TextView" />
<property name="android.project.structure.last.selected" value="SDK Location" />
<property name="android.project.structure.proportion" value="0.15" />
<property name="android.sdk.path" value="$USER_HOME$/Library/Android/sdk" />
<property name="com.developerphil.adbidea.selecteddevices" value="19192521400686" />
<property name="cidr.known.project.marker" value="true" />
<property name="com.developerphil.adbidea.selecteddevices" value="20211523021031" />
<property name="device.picker.selection" value="3.2_QVGA_ADP2_API_19" />
<property name="last_directory_selection" value="$PROJECT_DIR$/app/src/main/res/drawable" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/app/src/main/res/drawable" />
<property name="last_directory_selection" value="$PROJECT_DIR$/app/src/main/res/values-en" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/app/src/main/res/drawable-v24" />
<property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.17" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="run.code.analysis.last.selected.profile" value="pProject Default" />
<property name="settings.editor.selected.configurable" value="AndroidSdkUpdater" />
<property name="sync.plugin.last.upgrade.timestamp" value="1557288635509" />
</component>
<component name="PsdUISettings">
<option name="MODULE_TAB" value="Signing Configs" />
<option name="LAST_EDITED_SIGNING_CONFIG" value="debug" />
</component>
<component name="RecentsManager">
<key name="android.template.packageName">
<recent name="verdnatura.es.repartoverdnatura" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-delivery\app\src\main\res\drawable" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-delivery\app\src\main\res\drawable-v24" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-delivery\app\src\main\res\layout" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-delivery\app\src\main\res\drawable" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-delivery\app\src\main\res" />
<recent name="$PROJECT_DIR$/app" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-delivery\app\src\main\res\drawable-v24" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-delivery\app\src\main\res" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-delivery\app\src\main\res\raw" />
<recent name="$PROJECT_DIR$/app/src/main/res/drawable" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-delivery\app\src\main\res\drawable-v24" />
</key>
<key name="CopyKotlinDeclarationDialog.RECENTS_KEY">
<recent name="verdnatura.es.repartoverdnatura" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="verdnatura.es.repartoverdnatura.UTILS" />
<recent name="verdnatura.es.repartoverdnatura.ADAPTERS" />
<recent name="verdnatura.es.repartoverdnatura.MODELS" />
</key>
</component>
@ -305,8 +253,7 @@
<option name="MODE" value="default_activity" />
<option name="CLEAR_LOGCAT" value="false" />
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
<option name="FORCE_STOP_RUNNING_APP" value="true" />
<option name="INSPECTION_WITHOUT_ACTIVITY_RESTART" value="false" />
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
@ -384,8 +331,26 @@
<option name="presentableId" value="Default" />
<updated>1546927317651</updated>
</task>
<task id="LOCAL-00001" summary="Añadido carga y descarga de rutas. Añadida info actual. Cambiada checkversion.">
<created>1646409844507</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1646409844507</updated>
</task>
<option name="localTasksCounter" value="2" />
<servers />
</component>
<component name="Vcs.Log.History.Properties">
<option name="COLUMN_ID_ORDER">
<list>
<option value="Default.Root" />
<option value="Default.Author" />
<option value="Default.Date" />
<option value="Default.Subject" />
</list>
</option>
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
@ -398,6 +363,10 @@
</option>
<option name="oldMeFiltersMigrated" value="true" />
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="Añadido carga y descarga de rutas. Añadida info actual. Cambiada checkversion." />
<option name="LAST_COMMIT_MESSAGE" value="Añadido carga y descarga de rutas. Añadida info actual. Cambiada checkversion." />
</component>
<component name="masterDetails">
<states>
<state key="ProjectJDKs.UI">

View File

@ -7,14 +7,15 @@ android {
applicationId "verdnatura.es.repartoverdnatura"
minSdkVersion 19
//targetSdkVersion 28
versionCode 24
versionName "9.4"
//versionName "9.3.2" // versionCode 23 (madrid)
//versionName "9.3.2" versionCode 21
//versionName "9.3.1" versionCode 20
//versionCode 19 //version 9.3
//versionName "9.3"
versionCode 12 // test de carga i descarga de furgo
//versionCode 11 // test de Cargar Furgo
//versionCode 10 es la versión 9.2
//versionCode 8
versionName "9.2"//versión soluciona fallo si quitamos gps y que no envíe la location 0,0
//versionName "9.1"//es la versión que se utiliza para comprar en bbdd
//versionName "1.8"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}

View File

@ -68,7 +68,18 @@
android:name=".UnLoadVanActivity"
android:configChanges="orientation"
android:screenOrientation="portrait" />
<activity
android:name=".ExpeditionScanActivity"
android:configChanges="orientation"
android:screenOrientation="portrait" />
<activity
android:name=".ExpeditionInfoActivity"
android:configChanges="orientation"
android:screenOrientation="portrait" />
<activity
android:name=".ExpeditionSummaryActivity"
android:configChanges="orientation"
android:screenOrientation="portrait" />
<receiver android:name=".NetworkStateReveiver">
<intent-filter>

View File

@ -1,6 +1,7 @@
package verdnatura.es.repartoverdnatura.ADAPTERS;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -13,18 +14,21 @@ import verdnatura.es.repartoverdnatura.MODELS.Check;
import verdnatura.es.repartoverdnatura.R;
public class CheckAdapter extends ArrayAdapter<Check> {
public CheckAdapter(Context context, List<Check> signs) {
super(context,0,signs);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Check c = getItem(position);
if (convertView == null){
convertView = LayoutInflater.from(getContext()).inflate(R.layout.row_check,parent,false);
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.row_check, parent, false);
}
TextView txtId = convertView.findViewById(R.id.txtId);
TextView txtAddress = convertView.findViewById(R.id.txtAddress);
// TextView txtWarehouse = convertView.findViewById(R.id.txtWarehouse);
@ -33,11 +37,13 @@ public class CheckAdapter extends ArrayAdapter<Check> {
TextView txtCheck = convertView.findViewById(R.id.txtCheck);
LinearLayout fondo = convertView.findViewById(R.id.fondo);
TextView txtConsignatario = convertView.findViewById(R.id.consignatarioId);
TextView txtItemPacking = convertView.findViewById(R.id.txtItemPacking );
TextView txtItemPacking = convertView.findViewById(R.id.txtItemPacking);
txtId.setText(c.getId());
txtAddress.setText(c.getStreet()+" "+c.getCity()+" "+c.getPostalCode());
txtAddress.setText(c.getStreet() + " " + c.getCity() + " " + c.getPostalCode());
//txtAddress.setText(c.getAddressFk()+" - "+c.getStreet()+" "+c.getCity()+" "+c.getPostalCode());
//txtWarehouse.setText(c.getWarehouse());
@ -45,9 +51,24 @@ public class CheckAdapter extends ArrayAdapter<Check> {
txtName.setText(c.getNickName());
txtConsignatario.setText(c.getAddressFk());
txtItemPacking.setText(c.getItemPackingTypeFk());
txtItemPacking.setText(c.getItemPackingTypeConcat());
if (c.getChecked().equals("1")){
/* if (c.getNickName().isEmpty()) {
txtName.setVisibility(convertView.GONE);
}
if (c.getStreet().isEmpty() || c.getCity().isEmpty() || c.getPostalCode().isEmpty()) {
txtAddress.setVisibility(convertView.GONE);
}
if (c.getAddressFk().isEmpty()) {
txtConsignatario.setVisibility(convertView.GONE);
}
if (c.getItemPackingTypeConcat().isEmpty()) {
txtItemPacking.setVisibility(convertView.GONE);
}*/
/*if (c.getChecked().equals("1")){
fondo.setBackgroundColor(getContext().getResources().getColor(R.color.verdnatura_pumpkin_orange));
txtCheck.setText("OK");
}else{
@ -61,8 +82,23 @@ public class CheckAdapter extends ArrayAdapter<Check> {
fondo.setBackgroundColor(getContext().getResources().getColor(R.color.verdnatura_dark_mint));
//txtCheck.setText(txtCheck.getText()+"Entregada");
}
}
}*/
// Log.d("VERDNATURA::","El code de " + c.getId() + ":"+c.getCode());
switch (c.getCode()){
case "ON DELIVERY":
fondo.setBackgroundColor(getContext().getResources().getColor(R.color.verdnatura_pumpkin_orange));
txtCheck.setText("OK");
break;
case "DELIVERED":
fondo.setBackgroundColor(getContext().getResources().getColor(R.color.verdnatura_dark_mint));
break;
default:
fondo.setBackgroundColor(getContext().getResources().getColor(R.color.colorMainHeader));
txtCheck.setText("NO");
break;
}
return convertView;
}
}

View File

@ -50,26 +50,22 @@ public class RutaAdapter extends ArrayAdapter<Ruta> {
TextView txtM3 = convertView.findViewById(R.id.txtM3);
TextView txtHour = convertView.findViewById(R.id.textView15);
TextView txtDriver = convertView.findViewById(R.id.txtDriver);
LinearLayout btnShow = convertView.findViewById(R.id.linearLayout);
TextView btnCargador = convertView.findViewById(R.id.btnCargadores);
LinearLayout btnShow = convertView.findViewById(R.id.linearLayoutShowTickets);
//TextView btnCargador = convertView.findViewById(R.id.btnCargadores);
TextView txtOnline = convertView.findViewById(R.id.txtOnline);
ImageView imgNoWeb = convertView.findViewById(R.id.imageView10);
ImageView loadVan = convertView.findViewById(R.id.imageLoadVan);
TextView loadVanTxt = convertView.findViewById(R.id.loadVanTxt);
LinearLayout loadVanLayout = convertView.findViewById(R.id.linearLayoutShowLoad);
if (!listaRutasCargadas.isEmpty()){
// Log.d("VERDNATURA::","La ruta no está vacía");
if (listaRutasCargadas.contains(ruta.getId())){
loadVan.setVisibility(View.GONE);
}
}
/* if (LocalStorage.loadRutaCargada(loadVan.getContext(),ruta.getId())){
loadVan.setVisibility(View.GONE);
}*/
txtIdRuta.setText(ruta.getId());
txtZona.setText(ruta.getAgency());
@ -105,14 +101,23 @@ public class RutaAdapter extends ArrayAdapter<Ruta> {
}
});
btnCargador.setOnClickListener(new View.OnClickListener() {
loadVanLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (getContext() instanceof MainActivity) {
((MainActivity) getContext()).onLoadSelected(position);
}
}
});
/* btnCargador.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (getContext() instanceof MainActivity) {
((MainActivity) getContext()).goToLoaders(position);
}
}
});
});*/
if (LocalStorage.isOfflineAviable(getContext(),ruta.getId())){
txtOnline.setText(getContext().getResources().getString(R.string.disponible_offline));

View File

@ -121,13 +121,12 @@ public class ConfigureActivity extends AppCompatActivity {
args[2] = txtKmFinish.getText().toString().trim();
args[3] = txtHourStart.getText().toString().trim();
args[4] = txtHourFinish.getText().toString().trim();
restClient.saveConfig(Utils.getMapWhitUser(this),args).enqueue(new Callback<String>() {
restClient.saveConfig(Utils.getMapWhitUser(this),args).enqueue(new Callback<Void>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
public void onResponse(Call<Void> call, Response<Void> response) {
Utils.progressBar.getDialog().dismiss();
if(response.isSuccessful()){
if (response.body().equals("Finish")){
Log.i("INFO","guardado");
// Log.i("INFO","guardado");
Intent returnIntent = new Intent();
route.setKmStart(txtKmStart.getText().toString().trim());
route.setKmEnd(txtKmFinish.getText().toString().trim());
@ -136,9 +135,6 @@ public class ConfigureActivity extends AppCompatActivity {
returnIntent.putExtra("route",route);
setResult(Activity.RESULT_OK,returnIntent);
finish();
}else{
Utils.showErrorDialog(that,that.getResources().getString(R.string.error_conexion));
}
}else{
Log.i("ERROR","error al guardar");
@ -147,7 +143,7 @@ public class ConfigureActivity extends AppCompatActivity {
}
@Override
public void onFailure(Call<String> call, Throwable t) {
public void onFailure(Call<Void> call, Throwable t) {
Utils.progressBar.getDialog().dismiss();
Utils.showErrorDialog(that,that.getResources().getString(R.string.error_conexion));
}

View File

@ -2,6 +2,7 @@ package verdnatura.es.repartoverdnatura.INTERFACES;
import java.util.List;
import java.util.Map;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.HeaderMap;
@ -9,73 +10,103 @@ import retrofit2.http.POST;
import verdnatura.es.repartoverdnatura.MODELS.Check;
import verdnatura.es.repartoverdnatura.MODELS.Cliente;
import verdnatura.es.repartoverdnatura.MODELS.DeliveryInfo;
import verdnatura.es.repartoverdnatura.MODELS.ExpeditionInfoLog;
import verdnatura.es.repartoverdnatura.MODELS.ExpeditionInfoSummary;
import verdnatura.es.repartoverdnatura.MODELS.Ruta;
import verdnatura.es.repartoverdnatura.MODELS.SectorItem;
import verdnatura.es.repartoverdnatura.MODELS.Version;
import verdnatura.es.repartoverdnatura.MODELS.Worker;
public interface RestClient {
@POST("/security/login")
Call<String> login(@HeaderMap Map<String,String> headers, @Body String[] userData);
/* @POST("/security/login")
Call<String> login(@HeaderMap Map<String,String> headers, @Body String[] userData);*/
//cambiada version porque se requería un objeto desde el servidor y solo devolvía un false
@POST("/security/getVersion")
Call<Version> getVersion(@HeaderMap Map<String,String> headers, @Body String[] userData);
// @POST("/delivery/get_version")
// Call<String> getVersion(@HeaderMap Map<String,String> headers, @Body String[] userData);
@POST("/security/getVersion")
Call<Version> getVersion(@HeaderMap Map<String, String> headers, @Body String[] userData);
@POST("/almacennew/worker_getId")
Call<String> worker_getId(@HeaderMap Map<String, String> headers);
@POST("/almacennew/deviceLog_add")
Call<Void> deviceLog_add(@HeaderMap Map<String, String> headers, @Body String[] data);
@POST("/delivery/get_routes")
Call<List<Ruta>> getRoutes(@HeaderMap Map<String,String> headers);
Call<List<Ruta>> getRoutes(@HeaderMap Map<String, String> headers);
@POST("/delivery/get_expeditions")
Call<List<Ruta>> getExpeditions(@HeaderMap Map<String,String> headers);
Call<List<Ruta>> getExpeditions(@HeaderMap Map<String, String> headers);
@POST("/delivery/get_tickets")
Call<List<Cliente>> getClients(@HeaderMap Map<String,String> headers, @Body String[] route);
Call<List<Cliente>> getClients(@HeaderMap Map<String, String> headers, @Body String[] route);
@POST("/delivery/save_sign")
Call<String> saveSign(@HeaderMap Map<String,String> headers,@Body Object[] args);
Call<String> saveSign(@HeaderMap Map<String, String> headers, @Body Object[] args);
@POST("/delivery/update_routes")
Call<String> saveConfig(@HeaderMap Map<String,String> headers,@Body Object[] args);
Call<Void> saveConfig(@HeaderMap Map<String, String> headers, @Body Object[] args);
@POST("/delivery/getWorkers")
Call<List<Worker>> getWorkers(@HeaderMap Map<String,String> headers);
Call<List<Worker>> getWorkers(@HeaderMap Map<String, String> headers);
@POST("/delivery/getExpeditionFromRoute")
Call<List<Check>> getExpeditionFromRoute(@HeaderMap Map<String,String> headers,@Body Object[] args);
Call<List<Check>> getExpeditionFromRoute(@HeaderMap Map<String, String> headers, @Body Object[] args);
@POST("/delivery/updateExpeditionChecked")
Call<String> updateExpeditionChecked(@HeaderMap Map<String,String> headers,@Body Object[] args);
Call<String> updateExpeditionChecked(@HeaderMap Map<String, String> headers, @Body Object[] args);
@POST("/delivery/setRouteOk")
Call<String> setRouteOk(@HeaderMap Map<String,String> headers,@Body Object[] args);
Call<String> setRouteOk(@HeaderMap Map<String, String> headers, @Body Object[] args);
@POST("/delivery/expeditionState_add")
Call<Void> expeditionState_add(@HeaderMap Map<String,String> headers,@Body Object[] args);
/* @POST("/delivery/expeditionState_add")
Call<Void> expeditionState_add(@HeaderMap Map<String,String> headers,@Body Object[] args);*/
@POST("/delivery/expeditionState_addByAdress")
/* @POST("/delivery/expeditionState_addByAdress")
Call<Void> expeditionState_addByAdress(@HeaderMap Map<String,String> headers,@Body Object[] args);
@POST("/delivery/expeditionState_addByExpedition")
Call<Void> expeditionState_addByExpedition(@HeaderMap Map<String,String> headers,@Body Object[] args);
Call<Void> expeditionState_addByExpedition(@HeaderMap Map<String,String> headers,@Body Object[] args);*/
@POST("/delivery/expeditionState_addByRoute")
Call<Void> expeditionState_addByRoute(@HeaderMap Map<String,String> headers,@Body Object[] args);
@POST("/delivery/expedition_getLog")
Call<List<ExpeditionInfoLog>> expedition_getLog(@HeaderMap Map<String, String> headers, @Body Object[] args);
@POST("/delivery/get_routesFromExpedition")
Call<List<Ruta>> get_routesFromExpedition(@HeaderMap Map<String, String> headers, @Body Object[] args);
@POST("/delivery/route_getExpeditionSummary")
Call<List<ExpeditionInfoSummary>> route_getExpeditionSummary(@HeaderMap Map<String, String> headers, @Body Object[] args);
@POST("/delivery/expeditionState_add")
Call<Void> expeditionState_addByExpeditionMulti(@HeaderMap Map<String, String> headers, @Body Object[] args);
/*@POST("/delivery/expeditionState_addByRoute")
Call<Void> expeditionState_addByRoute(@HeaderMap Map<String,String> headers,@Body Object[] args);*/
@POST("/delivery/saveLoadersWorkers")
Call<String> saveLoadersWorkers(@HeaderMap Map<String,String> headers,@Body Object[] args);
Call<String> saveLoadersWorkers(@HeaderMap Map<String, String> headers, @Body Object[] args);
@POST("/delivery/addNote")
Call<String> addNote(@HeaderMap Map<String,String> headers,@Body Object[] args);
Call<String> addNote(@HeaderMap Map<String, String> headers, @Body Object[] args);
@POST("/delivery/getInfo")
Call<List<DeliveryInfo>> getInfo(@HeaderMap Map<String,String> headers, @Body Object[] args);
Call<List<DeliveryInfo>> getInfo(@HeaderMap Map<String, String> headers, @Body Object[] args);
@POST("/delivery/getInfoCompany")
Call<List<DeliveryInfo>> getInfoCompany(@HeaderMap Map<String,String> headers, @Body Object[] args);
Call<List<DeliveryInfo>> getInfoCompany(@HeaderMap Map<String, String> headers, @Body Object[] args);
@POST("/delivery/getInfoFreelance")
Call<List<DeliveryInfo>> getInfoFreelance(@HeaderMap Map<String,String> headers, @Body Object[] args);
Call<List<DeliveryInfo>> getInfoFreelance(@HeaderMap Map<String, String> headers, @Body Object[] args);
@POST("/almacennew/worker_getSector")
Call<SectorItem> worker_getSector(@HeaderMap Map<String, String> headers);
@POST("/almacennew/sector_get")
Call<List<SectorItem>> sector_get(@HeaderMap Map<String, String> headers);
@POST("/almacennew/worker_updateSector")
Call<Void> worker_updateSector(@HeaderMap Map<String, String> headers, @Body Object[] args);
}

View File

@ -1,13 +1,19 @@
package verdnatura.es.repartoverdnatura;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import retrofit2.Call;
@ -17,16 +23,23 @@ import verdnatura.es.repartoverdnatura.ADAPTERS.WorkerAdapter;
import verdnatura.es.repartoverdnatura.INTERFACES.RestClient;
import verdnatura.es.repartoverdnatura.MODELS.DeliveryInfo;
import verdnatura.es.repartoverdnatura.MODELS.Ruta;
import verdnatura.es.repartoverdnatura.MODELS.SectorItem;
import verdnatura.es.repartoverdnatura.MODELS.Worker;
import verdnatura.es.repartoverdnatura.UTILS.ApiUtils;
import verdnatura.es.repartoverdnatura.UTILS.LocalStorage;
import verdnatura.es.repartoverdnatura.UTILS.Utils;
public class InfoActivity extends AppCompatActivity {
private TextView txtRazonSocial,txtNif, txtDireccionFiscal,txtMunicipio, txtCodigoPostal,txtNameCorp,txtNIFCorp,txtAdressCorp,txtVersion;
private TextView txtRazonSocial,txtNif, txtDireccionFiscal,txtMunicipio, txtCodigoPostal,txtNameCorp,txtNIFCorp,txtAdressCorp,txtVersion,txtSectorInfo;
private ImageView imgSectorEdit;
private RestClient restClient;
public Ruta route;
private Context Mycontext;
private ArrayList<SectorItem> sectors = new ArrayList<>();
final List<String> listSectors = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -44,6 +57,25 @@ public class InfoActivity extends AppCompatActivity {
txtVersion=(TextView) findViewById(R.id.textView43);
imgSectorEdit =(ImageView) findViewById(R.id.sectorEdit);
imgSectorEdit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showSectors(view.getContext());
}
});
txtSectorInfo =(TextView) findViewById(R.id.sectorInfo);
txtSectorInfo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showSectors(view.getContext());
}
});
restClient = ApiUtils.getAPIService();
Intent intent = this.getIntent();
@ -51,18 +83,29 @@ public class InfoActivity extends AppCompatActivity {
company_getInfo(Utils.getIdUserLogin(this));
freelance_getInfo(Utils.getIdUserLogin(this));
worker_getSector();
version_infoapp();
/*
if (bundle != null){
route = (Ruta) bundle.getSerializable("route");
if (route != null){
getInfo();
get_Sectors();
}
}else{
}*/
private void showSectors(final Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Selecciona sector");
builder.setItems(listSectors.toArray(new String[0]), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
worker_updateSector(sectors.get(which));
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
private void version_infoapp() {
@ -70,50 +113,77 @@ public class InfoActivity extends AppCompatActivity {
PackageManager packageManager = getApplicationContext().getPackageManager();
try {
txtVersion.setText(getString(R.string.version)+""+packageManager.getPackageInfo(context.getPackageName(), 0).versionName);
txtVersion.setText(getString(R.string.version)+packageManager.getPackageInfo(context.getPackageName(), 0).versionName);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
/*
private void getInfo(){
txtCodigoPostal.setText("");
txtDireccionFiscal.setText("");
txtMunicipio.setText("");
txtNif.setText("");
txtRazonSocial.setText("");
private void worker_updateSector(final SectorItem sector){
Utils.progressBar.show(this,getResources().getString(R.string.please_wait));
Object[] args = new Object[1];
args[0] = route.getId();
args[0] =sector.getId();
restClient.getInfo(Utils.getMapWhitUser(this),args).enqueue(new Callback<List<DeliveryInfo>>() {
restClient.worker_updateSector(Utils.getMapWhitUser(this),args).enqueue(new Callback<Void>() {
@Override
public void onResponse(Call<List<DeliveryInfo>> call, Response<List<DeliveryInfo>> response) {
public void onResponse(Call<Void> call, Response<Void> response) {
Utils.progressBar.getDialog().dismiss();
if (response.isSuccessful()) {
for (DeliveryInfo deliveryInfo : response.body()){
txtCodigoPostal.setText(deliveryInfo.getPostCode());
txtDireccionFiscal.setText(deliveryInfo.getStreet());
txtMunicipio.setText(deliveryInfo.getCity());
txtNif.setText(deliveryInfo.getNif());
txtRazonSocial.setText(deliveryInfo.getName());
LocalStorage.saveSector(getApplicationContext(), sector);
txtSectorInfo.setText(LocalStorage.getSectorDescrip(getApplicationContext()));
}
}else{
txtSectorInfo.setText(LocalStorage.getSectorDescrip(getApplicationContext()));
Utils.showErrorDialog(getBaseContext(), "Error al guarda. Pruebe de nuevo a seleccionar sector");
}
}
@Override
public void onFailure(Call<List<DeliveryInfo>> call, Throwable t) {
public void onFailure(Call<Void> call, Throwable t) {
Utils.progressBar.getDialog().dismiss();
Utils.showErrorDialog(getBaseContext(), "Error al guarda. Pruebe de nuevo a seleccionar sector");
txtSectorInfo.setText(LocalStorage.getSectorDescrip(getApplicationContext()));
}
});
}*/
}
private void worker_getSector(){
// Utils.progressBar.show(this,getResources().getString(R.string.please_wait));
Object[] args = new Object[1];
//args[0] =id;
restClient.worker_getSector(Utils.getMapWhitUser(this)).enqueue(new Callback<SectorItem>() {
@Override
public void onResponse(Call<SectorItem> call, Response<SectorItem> response) {
Utils.progressBar.getDialog().dismiss();
if (response.isSuccessful()) {
txtSectorInfo.setText(response.body().getDescription());
}else{
Utils.showErrorDialog(getBaseContext(), "Error al guarda. Pruebe de nuevo a seleccionar sector");
txtSectorInfo.setText(LocalStorage.getSectorDescrip(getApplicationContext()));
}
}
@Override
public void onFailure(Call<SectorItem> call, Throwable t) {
Utils.progressBar.getDialog().dismiss();
txtSectorInfo.setText(LocalStorage.getSectorDescrip(getApplicationContext()));
}
});
}
private void company_getInfo(String id){
@ -148,7 +218,7 @@ public class InfoActivity extends AppCompatActivity {
}
private void freelance_getInfo(String id){
// Utils.progressBar.show(this,getResources().getString(R.string.please_wait));
Object[] args = new Object[1];
args[0] =id;
restClient.getInfoFreelance(Utils.getMapWhitUser(this),args).enqueue(new Callback<List<DeliveryInfo>>() {
@ -177,4 +247,34 @@ public class InfoActivity extends AppCompatActivity {
}
private void get_Sectors(){
// Utils.progressBar.show(this,getResources().getString(R.string.please_wait));
Object[] args = new Object[1];
//args[0] =id;
restClient.sector_get(Utils.getMapWhitUser(this)).enqueue(new Callback<List<SectorItem>>() {
@Override
public void onResponse(Call<List<SectorItem>> call, Response<List<SectorItem>> response) {
Utils.progressBar.getDialog().dismiss();
if (response.isSuccessful()) {
for (SectorItem sectorInfo : response.body()){
// Log.d("VERDNATURA::","El sector es "+sectorInfo.getDescription()+"-"+sectorInfo.getWarehouseFk()+"-"+sectorInfo.getId());
sectors.add(sectorInfo);
listSectors.add(sectorInfo.getDescription());
}
imgSectorEdit.setVisibility(View.VISIBLE);
}
}
@Override
public void onFailure(Call<List<SectorItem>> call, Throwable t) {
Utils.progressBar.getDialog().dismiss();
}
});
}
}

View File

@ -0,0 +1,588 @@
package verdnatura.es.repartoverdnatura
import android.app.Activity
import android.content.Context
import android.media.MediaPlayer
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.util.Log
import android.view.View
import android.view.View.GONE
import android.view.View.OnFocusChangeListener
import android.view.inputmethod.InputMethodManager
import android.widget.*
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import verdnatura.es.repartoverdnatura.ADAPTERS.CheckAdapter
import verdnatura.es.repartoverdnatura.INTERFACES.RestClient
import verdnatura.es.repartoverdnatura.MODELS.Check
import verdnatura.es.repartoverdnatura.MODELS.Ruta
import verdnatura.es.repartoverdnatura.MainActivity.listaRutasCargadas
import verdnatura.es.repartoverdnatura.UTILS.ApiUtils
import verdnatura.es.repartoverdnatura.UTILS.LocalStorage
import verdnatura.es.repartoverdnatura.UTILS.Utils
class LoadVanActivity : AppCompatActivity() {
var mperror: MediaPlayer? = null
var mpok: MediaPlayer? = null
var mpErrorRepeat: MediaPlayer? = null
var listCheck = ArrayList<Check>()
var adapter: CheckAdapter? = null
var listView: ListView? = null
private var restClient: RestClient? = null
var txtRuta: EditText? = null
var txtEscaner: EditText? = null
var txtLineas: TextView? = null
var txtIdRuta: TextView? = null
var txtMessage: TextView? = null
var checked = 0
var totalChecks = 0
var routeLoaded = false
var totalSend = 0
var totalSendSuccessful = 0
private var routeOfLoad = ""
private lateinit var switchLoad: Switch
private var loadForAdressing = false
private var adressOfLoad = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_loadvan)
mperror = MediaPlayer.create((this), R.raw.error)
mpok = MediaPlayer.create((this), R.raw.ok)
mpErrorRepeat = MediaPlayer.create((this), R.raw.errorrepeat)
restClient = ApiUtils.getAPIService()
listView = findViewById(R.id.listRoute)
txtRuta = findViewById(R.id.txtRuta)
txtEscaner = findViewById(R.id.txtEscaner)
txtLineas = findViewById(R.id.txtLineas)
txtIdRuta = findViewById(R.id.textView41)
txtMessage = findViewById(R.id.textView3)
switchLoad = findViewById<View>(R.id.switchLoad) as Switch
setEvents()
fillRoutes()
}
override fun onBackPressed() {
// setRouteLoaded()
reviewLoad()
}
private fun reviewLoad() {
if (checked >= totalChecks) {
// sergio: se cierra porque es automática cuando se escanea y no es necesario hacer nada más
Toast.makeText(this, "Expediciones de la ruta cargadas", Toast.LENGTH_SHORT).show()
finish()
} else {
if (checked == 0) {
finish()
} else {
val alertDialog = android.app.AlertDialog.Builder(this).create()
alertDialog.setTitle("Información")
alertDialog.setMessage("El total de expediciones escaneadas es diferente al total de la ruta. ¿ Quieres guardar las expediciones escaneadas o buscar la/s expedición/es ?")
alertDialog.setButton(
android.app.AlertDialog.BUTTON_NEUTRAL, "GUARDAR "
) { dialog, which ->
setRouteLoaded()
for (check in listCheck.filter { it.routeFk == routeOfLoad }) {
if (check.code != "ON DELIVERY" && check.code != "FOUND") {
check.code = "LOST"
}
}
totalSend = 0
if (listCheck.filter { it.routeFk == routeOfLoad }
.filter { it.code == "ON DELIVERY" }.isNotEmpty()) {
totalSend = totalSend + 1
expeditionState_addByExpeditionMulti(listCheck.filter { it.routeFk == routeOfLoad }
.filter { it.code == "ON DELIVERY" }, "ON DELIVERY")
}
//Sergio:Diferenciamos dos cargas, la general y la por consignatario
if (loadForAdressing){
if (listCheck.filter { it.addressFk == adressOfLoad }.filter { it.routeFk == routeOfLoad }
.filter { it.code == "LOST" }.isNotEmpty()) {
totalSend = totalSend + 1
expeditionState_addByExpeditionMulti(listCheck. filter{ it.addressFk == adressOfLoad }.filter { it.routeFk == routeOfLoad }
.filter { it.code == "LOST" }, "LOST")
}
routeLoaded
}else{
if (listCheck.filter { it.routeFk == routeOfLoad }
.filter { it.code == "LOST" }.isNotEmpty()) {
totalSend = totalSend + 1
expeditionState_addByExpeditionMulti(listCheck.filter { it.routeFk == routeOfLoad }
.filter { it.code == "LOST" }, "LOST")
}
routeLoaded
}
}
alertDialog.setButton(
android.app.AlertDialog.BUTTON_POSITIVE, "BUSCAR"
) { dialog, which ->
if (!loadForAdressing) {
adapter = CheckAdapter(
this,
listCheck.sortedBy { it.checked }.filter { it.routeFk == routeOfLoad })
this.listView!!.adapter = adapter
adapter!!.notifyDataSetChanged()
}else{
adapter = CheckAdapter(
this,
listCheck.sortedBy { it.checked }.filter { it.addressFk == adressOfLoad }.filter { it.routeFk == routeOfLoad })
this.listView!!.adapter = adapter
adapter!!.notifyDataSetChanged()
} }
alertDialog.show()
}
}
}
private fun expeditionStateUnmarking_addByExpedition(expedition: String, state: String) {
val stateData: Array<String?> = arrayOfNulls(2)
stateData[0] = expedition
stateData[1] = state
restClient!!.expeditionState_addByExpeditionMulti(Utils.getMapWhitUser(this), stateData)
.enqueue(object : Callback<Void> {
override fun onResponse(call: Call<Void>, response: Response<Void>) {
Utils.progressBar.dialog.dismiss()
if (response.isSuccessful) {
Toast.makeText(baseContext, "Expedición descargada", Toast.LENGTH_SHORT)
.show()
mpok?.start()
adapter!!.notifyDataSetChanged()
}
}
override fun onFailure(call: Call<Void>, t: Throwable) {
Utils.progressBar.dialog.dismiss()
Utils.showErrorDialog(
this@LoadVanActivity,
resources.getString(R.string.error_conexion) + ".Vuelva a intentarlo de nuevo"
)
}
})
}
private fun expeditionState_addByExpeditionMulti(expeditions: List<Check>, state: String) {
// private fun expeditionState_addByExpeditionMulti(expeditions: List<String>, state:String){
val stateData: Array<Any?> = arrayOfNulls(2)
Utils.progressBar.show(this, getResources().getString(R.string.please_wait))
stateData[0] = expeditions
stateData[1] = state
//var listCheck = stateData[0] as ArrayList<String>
restClient!!.expeditionState_addByExpeditionMulti(Utils.getMapWhitUser(this), stateData)
.enqueue(object : Callback<Void> {
override fun onResponse(call: Call<Void>, response: Response<Void>) {
Utils.progressBar.dialog.dismiss()
if (response.isSuccessful) {
totalSendSuccessful += 1
if (totalSend == totalSendSuccessful) {
finish()
}
}
}
override fun onFailure(call: Call<Void>, t: Throwable) {
Utils.progressBar.dialog.dismiss()
Utils.showErrorDialog(
this@LoadVanActivity,
resources.getString(R.string.error_conexion) + ".Vuelva a intentarlo"
)
}
})
}
private fun fillRoutes() {
val intent = this.intent
val bundle = intent.extras
try {
//carga total
val route = bundle.getSerializable("route") as Ruta
routeOfLoad = route.id.toString()
txtRuta!!.setText(route.id.toString())
checks
} catch (e: Exception) {
//carga por consignatario
routeOfLoad = bundle.getString("routeId")
adressOfLoad = bundle.getString("adress")
txtRuta!!.setText(routeOfLoad)
loadForAdressing = true
checks
}
}
private fun setRouteLoaded() {
val intent = this.intent
val bundle = intent.extras
var route: Ruta? = null
try {
route = bundle.getSerializable("route") as Ruta
} catch (e: Exception) {
}
if (!loadForAdressing) {
listaRutasCargadas.add(route!!.id.toString())
LocalStorage.saveRutasCargadas(getApplicationContext(), listaRutasCargadas)
LocalStorage.saveRutaCargada(getApplicationContext(), route!!.id.toString())
}
}
private fun setEvents() {
var btnUpload = findViewById<ImageView>(R.id.imageVanLoaded)
btnUpload.setOnClickListener {
reviewLoad()
}
switchLoad.setOnClickListener({ showMessageInfo() })
val that = this
txtRuta!!.setOnEditorActionListener { textView, i, keyEvent ->
if (!routeLoaded) {
checks
} else {
findExpedition(txtRuta!!.text.toString())
}
// txtEscaner!!.requestFocus()
false
}
txtRuta!!.onFocusChangeListener = OnFocusChangeListener { view, b ->
if (b) {
txtRuta!!.setText("")
txtIdRuta!!.setText(R.string.esccaneaEtiqueta)
}
}
txtEscaner!!.setOnEditorActionListener { textView, i, keyEvent ->
checkList()
false
}
listView!!.setOnFocusChangeListener { view, b ->
txtRuta!!.requestFocus()
false
}
}
//sergio: nuevo para cargar furgos
private fun findExpedition(textScanned: String) {
var position: Int
if (loadForAdressing){
position = listCheck.filter{it.addressFk==adressOfLoad}.indexOfFirst { it.id == textScanned }
//se transforma el número de la position para la lista completa
if (position>=0){
Log.d("VERDNATURA::","Encontrado")
position= listCheck.indexOfFirst { it.id == textScanned }
}
}else{
position = listCheck.indexOfFirst { it.id == textScanned }
}
if (position >= 0 && listCheck[position].routeFk == routeOfLoad) {
if (switchLoad.isChecked) {
markExpeditionLoaded(position)
} else {
unMarkExpeditionLoaded(position)
}
} else {
mperror?.start()
}
txtRuta!!.requestFocus()
}
private fun markExpeditionLoaded(i: Int) {
if (listCheck[i].checked == "1") {
mpErrorRepeat?.start()
Toast.makeText(this, "Expedición ya cargada", Toast.LENGTH_SHORT).show()
} else {
mpok?.start()
listCheck[i].checked = "1"
listCheck[i].code = "ON DELIVERY"
checked += 1
}
adapter!!.notifyDataSetChanged()
txtLineas!!.text = checked.toString() + "/" + totalChecks + " cargadas"
if (checked >= totalChecks) {
if (loadForAdressing){
Toast.makeText(this, "Consignatario cargado", Toast.LENGTH_SHORT).show()
}else{
Toast.makeText(this, "Ruta cargada", Toast.LENGTH_SHORT).show()
}
totalSend = 1
expeditionState_addByExpeditionMulti(listCheck.filter { it.routeFk == routeOfLoad }
.filter { it.code == "ON DELIVERY" }, "ON DELIVERY")
setRouteLoaded()
}
txtRuta!!.requestFocus()
hideKeyboard()
}
private fun unMarkExpeditionLoaded(i: Int) {
if (listCheck[i].checked == "1") {
listCheck[i].checked = "0"
listCheck[i].code = "FOUND"
checked -= 1
Utils.progressBar.show(this, getResources().getString(R.string.please_wait));
expeditionStateUnmarking_addByExpedition(listCheck[i].id, "FOUND")
} else {
Toast.makeText(this, "Expedición no cargada", Toast.LENGTH_SHORT).show()
}
adapter!!.notifyDataSetChanged()
txtLineas!!.text = checked.toString() + "/" + totalChecks + " cargadas"
txtRuta!!.requestFocus()
hideKeyboard()
}
private fun checkList() {
val idCheck = txtEscaner!!.text.toString()
txtEscaner!!.setText("")
var pos = 0
var isFind = false
for (c in listCheck) {
if (c.checked == "1") {
checked += 1
}
if (c.id == idCheck && c.checked == "0") {
listCheck[pos].checked = "1"
adapter!!.notifyDataSetChanged()
checked += 1
isFind = true
listView!!.setSelection(pos)
Toast.makeText(this, "OK", Toast.LENGTH_SHORT).show()
break
} else if (c.id == idCheck && c.checked == "1") {
checked -= 1
listCheck[pos].checked = "0"
adapter!!.notifyDataSetChanged()
isFind = true
listView!!.setSelection(pos)
Toast.makeText(this, "OK", Toast.LENGTH_SHORT).show()
break
}
pos += 1
}
txtLineas!!.text = checked.toString() + "/" + listCheck.size + " cargadas"
if (!isFind) {
Toast.makeText(this, "No Encontrada", Toast.LENGTH_LONG).show()
}
if (checked >= listCheck.size) {
if (loadForAdressing){
Toast.makeText(this, "Consignatario cargado", Toast.LENGTH_SHORT).show()
}else{
Toast.makeText(this, "Ruta cargada", Toast.LENGTH_SHORT).show()
}
totalSend = 1
expeditionState_addByExpeditionMulti(listCheck.filter { it.routeFk == routeOfLoad }
.filter { it.code == "ON DELIVERY" }, "ON DELIVERY")
//setRouteOK()
}
}
private val checks: Unit
private get() {
// listCheck = ArrayList()
var listDownload = ArrayList<Check>()
listDownload = ArrayList()
val that = this
val idR = txtRuta!!.text.toString()
val routeData: Array<String?> = arrayOfNulls(1)
routeData[0] = idR
Utils.progressBar.show(this, resources.getString(R.string.please_wait))
restClient!!.getExpeditionFromRoute(Utils.getMapWhitUser(this), routeData)
.enqueue(object : Callback<List<Check>> {
override fun onResponse(
call: Call<List<Check>>,
response: Response<List<Check>>
) {
Utils.progressBar.dialog.dismiss()
if (response.isSuccessful) {
for (c in response.body()!!) {
//txtRuta!!.setText("")
//txtIdRuta!!.text = "Route ID"
if (!c.code.isNullOrBlank()) {
if (c.code.equals("ON DELIVERY")) {
c.checked = "1"
}
if (c.code.equals("DELIVERED")) {
c.delivered = "1"
}
}
listDownload.add(c)
}
LocalStorage.addExpeditionSave(that, listDownload)
getLocalDataExpedition(routeOfLoad)
} else {
Utils.progressBar.dialog.dismiss()
Utils.showErrorDialog(
that,
that.resources.getString(R.string.error_conexion)
)
}
}
override fun onFailure(call: Call<List<Check>>, t: Throwable) {
Utils.progressBar.dialog.dismiss()
Utils.showErrorDialog(
that,
that.resources.getString(R.string.error_conexion)
)
getLocalDataExpedition(routeOfLoad)
}
})
txtIdRuta!!.visibility = GONE
txtRuta!!.requestFocus()
}
fun Activity.hideKeyboard() {
hideKeyboard(currentFocus ?: View(this))
}
fun Context.hideKeyboard(view: View) {
val inputMethodManager =
getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0)
}
fun getLocalDataExpedition(route: String) {
val list: List<Check> = LocalStorage.getExpeditions(this)
if (loadForAdressing) {
listCheck = LocalStorage.getExpeditions(this)
if (list.size > 0) {
totalChecks =
list.filter { it.addressFk == adressOfLoad }.filter { it.routeFk == route }.size
checked =
list.filter { it.addressFk == adressOfLoad }.filter { it.routeFk == route }
.filter { it.checked == "1" || it.code == "ON DELIVERY" }.size
txtLineas!!.text = checked.toString() + "/" + totalChecks + " cargadas"
adapter = CheckAdapter(
this,
listCheck.filter { it.addressFk == adressOfLoad }
.filter { it.routeFk == route })
this.listView!!.adapter = adapter
txtIdRuta!!.visibility = GONE
routeLoaded = true
txtRuta!!.requestFocus()
hideKeyboard()
}
} else {
listCheck = LocalStorage.getExpeditions(this)
if (list.size > 0) {
totalChecks = list.filter { it.routeFk == route }.size
checked = list.filter { it.routeFk == route }
.filter { it.checked == "1" || it.code == "ON DELIVERY" }.size
//txtLineas!!.text = checked.toString() + "/" + listCheck.size + " cargadas"
txtLineas!!.text = checked.toString() + "/" + totalChecks + " cargadas"
adapter = CheckAdapter(this, listCheck.filter { it.routeFk == route })
this.listView!!.adapter = adapter
txtIdRuta!!.visibility = GONE
routeLoaded = true
txtRuta!!.requestFocus()
hideKeyboard()
}
}
}
fun showMessageInfo() {
if (!switchLoad.isChecked) {
Utils.showErrorDialog(
this@LoadVanActivity,
"Esta opción te permite descargar expediciones de la furgoneta."
)
txtMessage!!.setText("Descargando")
} else {
txtMessage!!.setText("Cargando furgo")
}
}
}

View File

@ -1,34 +1,24 @@
package verdnatura.es.repartoverdnatura;
import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Stream;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import verdnatura.es.repartoverdnatura.ADAPTERS.RutaAdapter;
import verdnatura.es.repartoverdnatura.ADAPTERS.WorkerAdapter;
import verdnatura.es.repartoverdnatura.INTERFACES.RestClient;
import verdnatura.es.repartoverdnatura.MODELS.Ruta;
import verdnatura.es.repartoverdnatura.MODELS.Worker;
import verdnatura.es.repartoverdnatura.MODELS.WorkerSave;
import verdnatura.es.repartoverdnatura.UTILS.ApiUtils;

View File

@ -1,35 +1,31 @@
package verdnatura.es.repartoverdnatura;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.InputType;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.util.Log;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import java.util.HashMap;
import java.util.Map;
import okhttp3.ResponseBody;
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.LoginSalix;
import verdnatura.es.repartoverdnatura.UTILS.ApiUtils;
import verdnatura.es.repartoverdnatura.UTILS.CustomProgressBar;
import verdnatura.es.repartoverdnatura.UTILS.ApiUtilsSalix;
import verdnatura.es.repartoverdnatura.UTILS.Utils;
public class LoginActivity extends AppCompatActivity {
private RestClient restClient;
private EditText txtUser,txtPassword;
private RestClientSalix restClientSalix;
private EditText txtUser, txtPassword;
private CheckBox checkVerPass;
@ -37,78 +33,160 @@ public class LoginActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
restClient = ApiUtils.getAPIService();
restClientSalix = ApiUtilsSalix.getAPIService();
setViews();
setEvents();
checkUser();
}
private void checkUser(){
if (!Utils.getIdUser(this).equals("nouser")){
startActivity(new Intent(this,MainActivity.class));
private void checkUser() {
if (!Utils.getIdUser(this).equals("nouser")) {
deviceLog_add();
//startActivity(new Intent(this, MainActivity.class));
}
}
private void setViews(){
private void setViews() {
txtUser = findViewById(R.id.txtUsuario);
txtPassword = findViewById(R.id.txtPassword);
checkVerPass = findViewById(R.id.checkVerPass);
}
private void setEvents(){
private void setEvents() {
checkVerPass.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
if(!isChecked){
if (!isChecked) {
txtPassword.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
}else{
} else {
txtPassword.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
}
}
});
}
public void logIn(View v){
Utils.progressBar.show(this,"Check user");
public void logInSalix(View v) {
Utils.progressBar.show(this, "Check user");
final String user = txtUser.getText().toString();
final String password = txtPassword.getText().toString();
String[] userData = new String[2];
LoginSalix ls = new LoginSalix(user, password, "", false, "");
final LoginActivity that = this;
restClient.login(Utils.getMap(user,password),userData).enqueue(new Callback<String>() {
restClientSalix.loginSalix(Utils.getMapSalix(user, password), ls).enqueue(new Callback<LoginSalix>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
public void onResponse(Call<LoginSalix> call, Response<LoginSalix> response) {
Utils.progressBar.getDialog().dismiss();
if(response.isSuccessful()){
Log.i("API","Respuesta: "+response.body());
Utils.saveIdUserLogin(that,response.body());
Utils.saveIdUser(that,response.body().toString());
Utils.saveUserPass(that,user,password);
startActivity(new Intent(that,MainActivity.class));
if (response.isSuccessful()) {
Utils.saveUserPass(that, user, password);
Utils.saveTokenUser(that, response.body().getToken());
worker_getId();
txtUser.setText("");
txtPassword.setText("");
}else{
Utils.showErrorDialog(that,that.getResources().getString(R.string.usuario_incorrecto));
Log.e("API", "Response is not successful "+response.message());
} else {
Utils.showErrorDialog(that, that.getResources().getString(R.string.usuario_incorrecto));
Log.e("API", "Response is not successful " + response.message());
}
}
@Override
public void onFailure(Call<String> call, Throwable t) {
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));
}
});
}
public void showPassword(View v){
public void worker_getId() {
Utils.progressBar.show(this, "Check user");
final String user = txtUser.getText().toString();
final String password = txtPassword.getText().toString();
final LoginActivity that = this;
restClient.worker_getId(Utils.getMap(user, password)).enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
Utils.progressBar.getDialog().dismiss();
if (response.isSuccessful()) {
Utils.saveIdUserLogin(that,response.body());
Utils.saveIdUser(that, response.body());
deviceLog_add();
txtUser.setText("");
txtPassword.setText("");
} else {
Utils.showErrorDialog(that, that.getResources().getString(R.string.workerId_incorrect));
Log.e("API", "Response is not successful " + response.message());
}
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Utils.progressBar.getDialog().dismiss();
Utils.showErrorDialog(that, that.getResources().getString(R.string.error_conexion));
}
});
}
public void deviceLog_add() {
Utils.progressBar.show(this, "Añadiendo log");
final String user = Utils.getUser(this);
final String password = Utils.getPass(this);
String data[] = new String[3];
data[0] = Utils.getAppName();
data[1] = Utils.getAppVersion(this);
data[2] = Utils.getAndroid_id(this);
final LoginActivity that = this;
restClient.deviceLog_add(Utils.getMap(user, password), data).enqueue(new Callback<Void>() {
@Override
public void onResponse(Call<Void> call, Response<Void> response) {
Utils.progressBar.getDialog().dismiss();
if (response.isSuccessful()) {
startActivity(new Intent(that, MainActivity.class));
txtUser.setText("");
txtPassword.setText("");
} else {
Utils.showErrorDialog(that, that.getResources().getString(R.string.log_incorrect));
//Utils.showErrorDialog(that,response.message().toString());
startActivity(new Intent(that, MainActivity.class));
}
}
@Override
public void onFailure(Call<Void> call, Throwable t) {
Utils.progressBar.getDialog().dismiss();
Utils.showErrorDialog(that, that.getResources().getString(R.string.error_conexion));
}
});
}
public void showPassword(View v) {
txtPassword.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
}
}

View File

@ -43,13 +43,21 @@ public class Check {
@SerializedName("nickname")
private String nickname;
@SerializedName("itemPackingTypeFk")
private String itemPackingTypeFk;
@SerializedName("itemPackingTypeConcat")
private String itemPackingTypeConcat;
@SerializedName("code")
private String code;
private String isSent;
public Check(String id, String ticketFk, String checked, String nickname,String address,String street,String city, String postalCode,
String alertLevel,String routeFK,String delivered,String itemPackingTypeFk) {
public Check(String id, String ticketFk, String checked, String nickname, String address, String street, String city, String postalCode,
String alertLevel, String routeFK, String delivered, String itemPackingTypeConcat, String isSent, String code) {
this.id = id;
this.ticketFk = ticketFk;
this.checked = checked;
@ -61,18 +69,41 @@ public class Check {
this.alertLevel = alertLevel;
this.routeFk =routeFK;
this.delivered = delivered;
this.itemPackingTypeFk =itemPackingTypeFk;
this.itemPackingTypeConcat = itemPackingTypeConcat;
this.isSent = isSent;
this.code = code;
//c.getStreet()+" "+c.getCity()+" "+c.getPostalCode()
}
public String getItemPackingTypeFk(){
return itemPackingTypeFk;
public String getItemPackingTypeConcat(){
return itemPackingTypeConcat;
}
public void setItemPackingTypeFk(String itemPackingTypeFk){
this.itemPackingTypeFk=itemPackingTypeFk;
public void setItemPackingTypeConcat(String itemPackingTypeConcat){
this.itemPackingTypeConcat=itemPackingTypeConcat;
}
public String getCode() {
return code;
}
public Check(String id){
this.id=id;
}
public void setCode(String code) {
this.code = code;
}
public void setSent(String sent) {
isSent = sent;
}
public String getSent(){
return isSent;
}
public String getBultos() {

View File

@ -2,7 +2,10 @@ package verdnatura.es.repartoverdnatura.MODELS;
import android.location.Location;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
public class SignDataUpload {
private String Sign;
@ -10,18 +13,39 @@ public class SignDataUpload {
private verdnatura.es.repartoverdnatura.MODELS.Location Location;
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) {
public SignDataUpload(String sign, List<Integer> tickets, verdnatura.es.repartoverdnatura.MODELS.Location location, String address) {
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) {
public SignDataUpload(String sign, List<Integer> tickets,String address) {
Sign = sign;
Tickets = tickets;
Location = null;
signedTime = new SimpleDateFormat("yyyy-LL-dd HH:mm", Locale.getDefault()).format(new Date());
addressFk = address;
}
public String getSignedTime(){
return signedTime;}
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

@ -1,7 +1,8 @@
package verdnatura.es.repartoverdnatura;
import static verdnatura.es.repartoverdnatura.UTILS.LocalStorage.clearPendingExpedition;
import android.Manifest;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
@ -11,10 +12,9 @@ import android.content.IntentFilter;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Parcelable;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
@ -24,14 +24,12 @@ import android.widget.TextView;
import com.google.gson.Gson;
import java.io.Serializable;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import retrofit2.Call;
@ -43,7 +41,6 @@ import verdnatura.es.repartoverdnatura.INTERFACES.RestClient;
import verdnatura.es.repartoverdnatura.MODELS.Check;
import verdnatura.es.repartoverdnatura.MODELS.Ruta;
import verdnatura.es.repartoverdnatura.MODELS.SignDataUpload;
import verdnatura.es.repartoverdnatura.MODELS.Ticket;
import verdnatura.es.repartoverdnatura.MODELS.Version;
import verdnatura.es.repartoverdnatura.UTILS.ApiUtils;
import verdnatura.es.repartoverdnatura.UTILS.LocalStorage;
@ -54,6 +51,9 @@ public class MainActivity<RouteLoaded> extends AppCompatActivity {
private ListView listViewRutas, listViewPendingTickets;
private ArrayList<Ruta> listaRutas = new ArrayList<>();
private ArrayList<SignDataUpload> listaPendientes = new ArrayList<>();
private RutaAdapter rutaAdapter;
private PendingTickets pendingAdapter;
private int heightCellRoute;
@ -74,18 +74,14 @@ public class MainActivity<RouteLoaded> extends AppCompatActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/* listaRutasCargadas.addAll(LocalStorage.loadRutasCargadas(this));
for (String i:listaRutasCargadas){
Log.d("VERDNATURA::","La ruta recuperada es onCreate es "+i);
}*/
//Log.d("VERDNATURA::","La ruta OnCreate es "+LocalStorage.loadRutaCargada(this,"IdRoute128623"));
restClient = ApiUtils.getAPIService();
setViews();
getRoutes(null);
getPending();
getPengingExpeditions();
registerReceiver(broadcastReceiver, new IntentFilter("UPDATEPENDING"));
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
@ -106,13 +102,10 @@ public class MainActivity<RouteLoaded> extends AppCompatActivity {
@Override
protected void onRestart() {
/* listaRutasCargadas= (ArrayList<String>) LocalStorage.loadRutasCargadas(this);
for (String ruta : listaRutasCargadas){
Log.d("VERDNATURA::","La rutas cargadas son :"+ruta);
}
*/
getRoutes(null);
getPending();
getPengingExpeditions();
super.onRestart();
}
@ -159,6 +152,7 @@ public class MainActivity<RouteLoaded> extends AppCompatActivity {
}
that.rutaAdapter = new RutaAdapter(that,listaRutas);
that.listViewRutas.setAdapter(that.rutaAdapter);
ViewGroup.LayoutParams params = listViewRutas.getLayoutParams();
@ -192,6 +186,14 @@ public class MainActivity<RouteLoaded> extends AppCompatActivity {
}
public void goToExpeditionInfo(View v){
Intent i = new Intent(this,ExpeditionInfoActivity.class);
startActivity(i);
}
public void getLocalData(){
List<Ruta> list = LocalStorage.getRutas(this);
if (list.size() > 0){
@ -234,7 +236,6 @@ public class MainActivity<RouteLoaded> extends AppCompatActivity {
try {
Log.d("VERDNATURA::","Las rutas son "+ruta.getId());
Log.d("VERDNATURA::","Las rutas son "+ruta.getDate());
} catch (Exception e) {
e.printStackTrace();
@ -253,7 +254,63 @@ public class MainActivity<RouteLoaded> extends AppCompatActivity {
}
private void getPengingExpeditions(){
ArrayList<Check>listExpeditionPending = new ArrayList<>();
Set<String> listPendientes = LocalStorage.getPendingExpeditions(this);
Gson gson = new Gson();
if (listPendientes.size() > 0 ){
for(String s : listPendientes){
listExpeditionPending.add(gson.fromJson(s,Check.class));
}
// Log.d("VERDNATURA::","Pendientes:"+ listExpeditionPending.size());
if (listExpeditionPending.size()>0) {
sendPengingExpeditionsList(listExpeditionPending,"DELIVERED");
}
}else{
// Log.d("VERDNATURA::","No hay Pendientes"+ listExpeditionPending.size());
}
}
public void sendPengingExpeditionsList(final List<Check> listPending, String state){
final MainActivity that = this;
Object[] stateData = new Object[2];
stateData[0]= listPending;
stateData[1]=state;
restClient.expeditionState_addByExpeditionMulti(Utils.getMapWhitUser(this),stateData).enqueue(new Callback<Void>() {
@Override
public void onResponse(Call<Void> call, Response<Void> response) {
Utils.progressBar.getDialog().dismiss();
if(response.isSuccessful()){
// Log.d("VERDNATURA::","enviados pendientes");
clearPendingExpedition(that);
}else{
Utils.progressBar.getDialog().dismiss();
}
}
@Override
public void onFailure(Call<Void> call, Throwable t) {
Utils.progressBar.getDialog().dismiss();
}
});
}
private void getPending(){
// Log.d("VERDNATURA::","Se ha cambiado la red");
listaPendientes = new ArrayList<>();
Set<String> listPendientes = LocalStorage.getPendingSigns(this);
Gson gson = new Gson();
@ -280,11 +337,14 @@ public class MainActivity<RouteLoaded> extends AppCompatActivity {
}
public void onLoadSelected(int pos){
Intent i = new Intent(this,LoadVanActivity.class);
// Intent i = new Intent(this,LoadVanActivity.class);
Intent i=new Intent(this,ExpeditionSummaryActivity.class);
i.putExtra("route",listaRutas.get(pos));
startActivity(i);
}
public void logOut(View v){
final MainActivity that = this;
@ -329,12 +389,14 @@ public class MainActivity<RouteLoaded> extends AppCompatActivity {
public void goToInfo(View v){
startActivity(new Intent(this,InfoActivity.class));
}
public void goToLoaders(int pos){
public void goToFound(View v){
startActivity(new Intent(this,ExpeditionScanActivity.class));
}
/* public void goToLoaders(int pos){
Intent i = new Intent(this,LoadersActivity.class);
i.putExtra("idRoute",listaRutas.get(pos).getId());
startActivity(i);
}
}*/
public void savePending(int pos){
SignDataUpload data = listaPendientes.get(pos);
@ -422,8 +484,6 @@ public class MainActivity<RouteLoaded> extends AppCompatActivity {
}
public void checkVersion(){
// //Log.i("VERDNATURA","entramos en checkVersion");
String[] userData = new String[1];
userData[0] = "delivery";
@ -494,6 +554,7 @@ public class MainActivity<RouteLoaded> extends AppCompatActivity {
@Override
public void onBackPressed() {
finish();
}
}

View File

@ -28,11 +28,11 @@ public class NetworkStateReveiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
this.context = context;
Log.d("app", "Network connectivity change");
Log.d("VERDNATURA::", "Network connectivity change");
if (intent.getExtras() != null) {
NetworkInfo ni = (NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
if (ni != null && ni.getState() == NetworkInfo.State.CONNECTED) {
Log.i("app", "Network " + ni.getTypeName() + " connected");
Log.i("VERDNATURA::", "Network " + ni.getTypeName() + " connected");
//TENEMOS INTERNET
Set<String> listPendientes = LocalStorage.getPendingSigns(context);
if (listPendientes.size() != 0){

View File

@ -121,9 +121,10 @@ public class NoteActivity extends AppCompatActivity {
public void onResponse(Call<String> call, Response<String> response) {
Utils.progressBar.getDialog().dismiss();
if (response.isSuccessful()){
if(response.body().equals("Finish")){
//sergio:modificat per llevar el "finish"
/* if(response.body().equals("Finish")){
finish();
}else{
}else{*/
clientTicket.setNote(response.body());
Intent returnIntent = new Intent();
returnIntent.putExtra("clientTicket",clientTicket);
@ -131,7 +132,7 @@ public class NoteActivity extends AppCompatActivity {
setResult(Activity.RESULT_OK,returnIntent);
finish();
}
// }
}else{
Utils.showErrorDialog(that,that.getResources().getString(R.string.error_conexion));
}

View File

@ -23,8 +23,11 @@ import android.widget.TextView;
import com.simplify.ink.InkView;
import java.io.ByteArrayOutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import retrofit2.Call;
@ -64,14 +67,20 @@ public class SignActivity extends AppCompatActivity implements LocationListener{
}else{
location = locationManager.getLastKnownLocation(provider);
}
try {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0, 0,this);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0, 0,this);
}
catch(Exception e) {
}
Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();
clientTickets = (ClientTickets) bundle.getSerializable("clientTicket");
// Log.d("VERDNATURA::","El consignatario es "+clientTickets.getAddress());
idRuta = bundle.getString("idRuta");
setViews();
setScreen();
@ -144,7 +153,7 @@ 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()));
SignDataUpload data = new SignDataUpload(that.BitMapToString(drawing),tickets,new verdnatura.es.repartoverdnatura.MODELS.Location(clientTickets.getLongitude(),clientTickets.getLatitude()),clientTickets.getAddress());
confirmSave(data);
}
@ -153,7 +162,7 @@ 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())));
SignDataUpload data = new SignDataUpload(that.BitMapToString(drawing),tickets,new verdnatura.es.repartoverdnatura.MODELS.Location(String.valueOf(location.getLongitude()),String.valueOf(location.getLatitude())),clientTickets.getAddress());
confirmSave(data);
}
@ -163,21 +172,21 @@ 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);
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"));
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())));
SignDataUpload data = new SignDataUpload(that.BitMapToString(drawing),tickets,new verdnatura.es.repartoverdnatura.MODELS.Location(String.valueOf(location.getLongitude()),String.valueOf(location.getLatitude())),clientTickets.getAddress());
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())));
SignDataUpload data = new SignDataUpload(that.BitMapToString(drawing),tickets,new verdnatura.es.repartoverdnatura.MODELS.Location(String.valueOf(location.getLongitude()),String.valueOf(location.getLatitude())),clientTickets.getAddress());
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);
SignDataUpload data = new SignDataUpload(that.BitMapToString(drawing), tickets,clientTickets.getAddress());
confirmSave(data);
}
@ -193,10 +202,20 @@ 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());
Utils.progressBar.show(this,getResources().getString(R.string.please_wait));
final SignActivity that = this;
Object[] args = new Object[1];
args[0] = data;
restClient.saveSign(Utils.getMapWhitUser(this),args).enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
@ -204,7 +223,7 @@ public class SignActivity extends AppCompatActivity implements LocationListener{
if(response.isSuccessful()){
if (response.body().equals("OK")){
Log.i("INFO","guardado");
//Log.i("INFO","guardado");
Intent returnIntent = new Intent();
returnIntent.putExtra("idCliente",clientTickets.getClient());
setResult(Activity.RESULT_OK,returnIntent);

View File

@ -74,6 +74,13 @@ public class Tickets extends AppCompatActivity {
}
@Override
protected void onRestart() {
super.onRestart();
setViews();
checkPendingSigns();
}
public void checkPendingSigns(){
Set<String> pendingSigns = LocalStorage.getPendingSigns(this);
if (pendingSigns.size() == 0){

View File

@ -5,12 +5,11 @@ import verdnatura.es.repartoverdnatura.INTERFACES.RestClient;
public class ApiUtils {
private ApiUtils() {}
//public static final String BASE_URL = "http://192.168.1.141:9000/";
// public static final String BASE_URL = "http://10.1.2.179:9000/";
public static final String BASE_URL = "https://app.verdnatura.es/";
public static final String BASE_URL = "http://10.1.4.42:9000/";
//public static final String BASE_URL = "http://192.168.1.132:9000/";
//public static final String BASE_URL = "https://test-app.verdnatura.es/";
//public static final String BASE_URL = "https://app.verdnatura.es/";
public static RestClient getAPIService() {
return RetrofitClient.getClient(BASE_URL).create(RestClient.class);

View File

@ -23,6 +23,7 @@ import java.util.concurrent.TimeUnit;
import verdnatura.es.repartoverdnatura.MODELS.Check;
import verdnatura.es.repartoverdnatura.MODELS.ClientTickets;
import verdnatura.es.repartoverdnatura.MODELS.Ruta;
import verdnatura.es.repartoverdnatura.MODELS.SectorItem;
import verdnatura.es.repartoverdnatura.MODELS.SignDataUpload;
public class LocalStorage {
@ -55,12 +56,31 @@ public class LocalStorage {
editor.commit();
}
public static void addExpeditionSave(Context context, List<Check> checks){
sp = context.getSharedPreferences("expedition",Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
ArrayList<Check> listCheckSaved=getExpeditions(context);
//sergio: modificar para borrar las expediciones con un criterio concreto si no se quedan sin borrar hasta que entren en la otra ruta.
ArrayList<Check> listDeleting = new ArrayList<>();
for (Check c: checks ){
for (Check l:listCheckSaved){
if (l.getId().equals(c.getId())){
listDeleting.add(l);
}
}
}
listCheckSaved.removeAll(listDeleting);
listCheckSaved.addAll(checks);
Gson gson = new Gson();
@ -158,7 +178,9 @@ public class LocalStorage {
((list.get(i) == null) || (list.get(i).get("alertLevel") == null) ? "" : list.get(i).get("alertLevel")).toString(),
((list.get(i) == null) || (list.get(i).get("routeFk") == null) ? "" : list.get(i).get("routeFk")).toString(),
((list.get(i) == null) || (list.get(i).get("delivered") == null) ? "" : list.get(i).get("delivered")).toString(),
((list.get(i) == null) || (list.get(i).get("itemPackingTypeFk") == null) ? "" : list.get(i).get("itemPackingTypeFk").toString()
((list.get(i) == null) || (list.get(i).get("itemPackingTypeConcat") == null) ? "" : list.get(i).get("itemPackingTypeConcat")).toString(),
((list.get(i) == null) || (list.get(i).get("isSent") == null) ? "" : list.get(i).get("isSent")).toString(),
((list.get(i) == null) || (list.get(i).get("code") == null) ? "" : list.get(i).get("code").toString()
)));
}
@ -355,6 +377,8 @@ public class LocalStorage {
}
public static void saveSign(Context context,SignDataUpload data, String clientName,String idRuta){
sp = context.getSharedPreferences("delivery",Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
@ -401,6 +425,34 @@ public class LocalStorage {
sp = context.getSharedPreferences("delivery",Activity.MODE_PRIVATE);
return sp.getStringSet("listSigns",new HashSet<String>());
}
public static Set<String> getPendingExpeditions(Context context){
sp = context.getSharedPreferences("deliveryexpedition",Activity.MODE_PRIVATE);
return sp.getStringSet("expeditionsPendings",new HashSet<String>());
}
public static void clearPendingExpedition(Context context){
sp = context.getSharedPreferences("deliveryexpedition",Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.remove("expeditionsPendings");
editor.commit();
}
public static void savePendingExpedition(Context context, List<Check> checks){
sp = context.getSharedPreferences("deliveryexpedition",Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
Set<String> listString = new HashSet<>();
Gson gson = new Gson();
for(Check s : checks){
listString.add(gson.toJson(s));
}
editor.putStringSet("expeditionsPendings",listString);
editor.commit();
}
public static void udpatePendingSigns(Context context,ArrayList<SignDataUpload> list,String idRuta){
for(SignDataUpload s : list){
saveSign(context,s,s.getClientName(),idRuta);
@ -465,14 +517,29 @@ public class LocalStorage {
String daydownloaded =sp.getString("datedownload", "1900-01-01");
if (getDateDiff(new SimpleDateFormat("yyyy-MM-dd"),today,daydownloaded)> 1) {
if (getDateDiff(new SimpleDateFormat("yyyy-MM-dd"),today,daydownloaded)> 0) {
clearExpeditions(context);
}
// Log.d("VERDNATURA::","DateOfdownload"+sp.getString("datedownload","1900-01-01") + "-today:"+today+"-difrence"+getDateDiff(new SimpleDateFormat("yyyy-MM-dd"),today,daydownloaded));
saveDateOfDownload(context);
}
public static void saveSector(Context context, SectorItem sector) {
sp = context.getSharedPreferences("sector",Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("sectorId",sector.getId());
editor.putString("sectorDescrip",sector.getDescription());
editor.putInt("sectorWarehouse",sector.getWarehouseFk());
editor.commit();
}
public static String getSectorDescrip(Context context) {
sp = context.getSharedPreferences("sector",Activity.MODE_PRIVATE);
return sp.getString("sectorDescrip","Sin sector");
}
}

View File

@ -17,3 +17,4 @@ public class RetrofitClient {
return retrofit;
}
}

View File

@ -5,16 +5,23 @@ import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.provider.Settings;
import android.support.v4.BuildConfig;
import android.util.Log;
import java.util.HashMap;
import java.util.Map;
import verdnatura.es.repartoverdnatura.R;
public class Utils {
static SharedPreferences sp;
static Map<String, String> map = new HashMap<>();
static Map<String, String> mapSalix = new HashMap<>();
public static CustomProgressBar progressBar = new CustomProgressBar();
public static CustomProgressBar progressBar_info = new CustomProgressBar();
@ -23,7 +30,31 @@ public class Utils {
return (int) (dips * context.getResources().getDisplayMetrics().density + 0.5f);
}
public static Map<String, String> getMap(String user,String password){
public static String getAppName() {
/* ApplicationInfo applicationInfo = context.getApplicationInfo();
int stringId = applicationInfo.labelRes;
return stringId == 0 ? applicationInfo.nonLocalizedLabel.toString() : context.getString(stringId);*/
return "delivery";
}
public static String getAppVersion(Context context) {
PackageManager packageManager = context.getPackageManager();
String version="";
try {
version=packageManager.getPackageInfo(context.getPackageName(), 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return version;
}
public static String getAndroid_id(Context context) {
return Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
}
public static Map<String, String> getMap(String user, String password) {
map.put("version", "1");
map.put("aplicacion", "json");
map.put("user", user);
@ -32,20 +63,30 @@ public class Utils {
return map;
}
public static Map<String, String> getMapWhitUser(Context context){
sp = context.getSharedPreferences("delivery",Activity.MODE_PRIVATE);
String user = sp.getString("user","");
String password = sp.getString("pass","");
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");
return mapSalix;
}
public static Map<String, String> getMapWhitUser(Context context) {
sp = context.getSharedPreferences("delivery", Activity.MODE_PRIVATE);
String user = sp.getString("user", "");
String password = sp.getString("pass", "");
map.put("version", "1");
map.put("aplicacion", "json");
map.put("user", user);
map.put("pass", password);
map.put("Content-Type", "application/x-www-form-urlencoded");
////Log.i("VERDNATURA","Mapeado"+map);
return map;
}
public static void showErrorDialog(Context context,String mensaje){
public static void showErrorDialog(Context context, String mensaje) {
AlertDialog.Builder builder1 = new AlertDialog.Builder(context);
builder1.setMessage(mensaje);
builder1.setCancelable(true);
@ -62,7 +103,8 @@ public class Utils {
AlertDialog alert11 = builder1.create();
alert11.show();
}
public static void showErrorDialogAndFinish(final Context context, String mensaje){
public static void showErrorDialogAndFinish(final Context context, String mensaje) {
AlertDialog.Builder builder1 = new AlertDialog.Builder(context);
builder1.setMessage(mensaje);
builder1.setCancelable(true);
@ -81,41 +123,59 @@ public class Utils {
alert11.show();
}
public static void saveIdUser(Context context,String idUser){
sp = context.getSharedPreferences("delivery",Activity.MODE_PRIVATE);
public static void saveIdUser(Context context, String idUser) {
sp = context.getSharedPreferences("delivery", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("idUser",idUser);
editor.putString("idUser", idUser);
editor.commit();
}
public static void saveTokenUser(Context context, String idUser) {
sp = context.getSharedPreferences("delivery", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("idToken", idUser);
editor.commit();
}
public static void saveIdUserLogin(Context context, String idUser) {
sp = context.getSharedPreferences("deliveryLogin", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("idUserLogin", idUser);
editor.commit();
}
public static void saveIdUserLogin(Context context,String idUser){
sp = context.getSharedPreferences("deliveryLogin",Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("idUserLogin",idUser);
editor.commit();
}
public static String getIdUserLogin(Context context){
sp = context.getSharedPreferences("deliveryLogin",Activity.MODE_PRIVATE);
return sp.getString("idUserLogin","nouser");
public static String getIdUserLogin(Context context) {
sp = context.getSharedPreferences("deliveryLogin", Activity.MODE_PRIVATE);
return sp.getString("idUserLogin", "nouser");
}
public static void saveUserPass(Context context,String user,String pass){
sp = context.getSharedPreferences("delivery",Activity.MODE_PRIVATE);
public static void saveUserPass(Context context, String user, String pass) {
sp = context.getSharedPreferences("delivery", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("user",user);
editor.putString("pass",pass);
editor.putString("user", user);
editor.putString("pass", pass);
editor.commit();
}
public static String getIdUser(Context context){
sp = context.getSharedPreferences("delivery",Activity.MODE_PRIVATE);
return sp.getString("idUser","nouser");
public static String getUser(Context context) {
sp = context.getSharedPreferences("delivery", Activity.MODE_PRIVATE);
return sp.getString("user", "nouser");
}
public static String getPass(Context context) {
sp = context.getSharedPreferences("delivery", Activity.MODE_PRIVATE);
return sp.getString("pass", "");
}
public static String getIdUser(Context context) {
sp = context.getSharedPreferences("delivery", Activity.MODE_PRIVATE);
return sp.getString("idUser", "nouser");
}
public static void logOut(Context context){
sp = context.getSharedPreferences("delivery",Activity.MODE_PRIVATE);
public static void logOut(Context context) {
sp = context.getSharedPreferences("delivery", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.clear();
editor.commit();

View File

@ -0,0 +1,364 @@
package verdnatura.es.repartoverdnatura
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.media.MediaPlayer
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.util.Log
import android.view.View
import android.view.View.GONE
import android.view.View.OnFocusChangeListener
import android.view.inputmethod.InputMethodManager
import android.widget.*
import com.google.gson.Gson
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import verdnatura.es.repartoverdnatura.ADAPTERS.CheckAdapter
import verdnatura.es.repartoverdnatura.INTERFACES.RestClient
import verdnatura.es.repartoverdnatura.MODELS.Check
import verdnatura.es.repartoverdnatura.UTILS.ApiUtils
import verdnatura.es.repartoverdnatura.UTILS.LocalStorage
import verdnatura.es.repartoverdnatura.UTILS.Utils
class UnLoadVanActivity : AppCompatActivity() {
var mperror: MediaPlayer? = null
var mpok: MediaPlayer? = null
var mpErrorRepeat: MediaPlayer? = null
var listCheck = ArrayList<Check>()
var adapter: CheckAdapter? = null
var listView: ListView? = null
private var restClient: RestClient? = null
var txtRuta: EditText? = null
var txtEscaner: EditText? = null
var txtLineas: TextView? = null
var txtIdRuta: TextView? = null
var txtTitle: TextView? = null
var delivered = 0
var routeLoaded=false
private var routeOfLoad = ""
private var adressToExpeditions=""
private lateinit var switchLoad:Switch
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_loadvan)
mperror = MediaPlayer.create((this), R.raw.error)
mpok = MediaPlayer.create((this), R.raw.ok)
mpErrorRepeat = MediaPlayer.create((this), R.raw.errorrepeat)
restClient = ApiUtils.getAPIService()
listView = findViewById(R.id.listRoute)
txtRuta = findViewById(R.id.txtRuta)
txtEscaner = findViewById(R.id.txtEscaner)
txtLineas = findViewById(R.id.txtLineas)
txtIdRuta = findViewById(R.id.textView41)
txtTitle = findViewById(R.id.textView3)
setEvents()
fillRoutes()
}
override fun onBackPressed() {
// setRouteLoaded()
reviewLoad()
}
private fun reviewLoad(){
//sergio:último cambio después de que Felipe diera el ok
if (delivered >= (listCheck.filter{it.addressFk==adressToExpeditions}.filter{it.routeFk==routeOfLoad}).size){
Toast.makeText(this,"Expediciones de la ruta y cliente escaneada",Toast.LENGTH_SHORT).show()
goSign()
} else{
val alertDialog = android.app.AlertDialog.Builder(this).create()
alertDialog.setTitle("Información")
alertDialog.setMessage("El total de expediciones escaneadas es diferente al total a entregar. ¿ Quieres guardar las expediciones escaneadas o buscar la/s expedición/es ?")
alertDialog.setButton(
android.app.AlertDialog.BUTTON_NEUTRAL,"GUARDAR"
) { dialog, which ->
if (listCheck.filter{it.addressFk==adressToExpeditions}.filter{it.code=="DELIVERED"}.isEmpty()){
goSign()
}else{
Utils.progressBar.show(this,getResources().getString(R.string.please_wait))
expeditionState_addByExpeditionMulti(listCheck.filter{it.addressFk==adressToExpeditions}.filter{it.code=="DELIVERED"},"DELIVERED")
routeLoaded}
}
alertDialog.setButton(
android.app.AlertDialog.BUTTON_POSITIVE,"BUSCAR"
) { dialog, which ->
adapter = CheckAdapter(
this,
listCheck.sortedBy { it.delivered }.filter { it.addressFk == adressToExpeditions })
this.listView!!.adapter = adapter
adapter!!.notifyDataSetChanged()
}
alertDialog.show()
}
}
private fun expeditionState_addByExpeditionMulti(expeditions: List<Check>, state:String){
val stateData: Array<Any?> = arrayOfNulls(2)
stateData[0]=expeditions
stateData[1]=state
restClient!!.expeditionState_addByExpeditionMulti(Utils.getMapWhitUser(this), stateData)
.enqueue(object : Callback<Void> {
override fun onResponse(call: Call<Void>, response: Response<Void>) {
Utils.progressBar.dialog.dismiss()
if (response.isSuccessful ) {
goSign()
}else{
showMessageError()
}
}
override fun onFailure(call: Call<Void>, t: Throwable) {
showMessageError()
}
})
}
private fun showMessageError(){
Utils.progressBar.dialog.dismiss()
Toast.makeText(this@UnLoadVanActivity, "Error al enviar. Se queda guardado para enviar más tarde", Toast.LENGTH_SHORT).show()
saveExpeditionPendings()
goSign()
}
private fun goSign(){
val bundle = intent.extras
val i = Intent(this, SignActivity::class.java)
i.putExtra("clientTicket", bundle.getSerializable("clientTicket"))
i.putExtra("idRuta", bundle.getString("idRuta"))
startActivity(i)
finish()
}
private fun saveExpeditionPendings() {
LocalStorage.savePendingExpedition(this, listCheck.filter { it.addressFk==adressToExpeditions }.filter{it.code=="DELIVERED"})
var listaPendientes = ArrayList<Check>()
val listPendientes = LocalStorage.getPendingExpeditions(this)
val gson = Gson()
for (s in listPendientes) {
listaPendientes.add(gson.fromJson(s, Check::class.java))
}
}
private fun fillRoutes() {
val intent = this.intent
val bundle = intent.extras
try {
adressToExpeditions = bundle.getString("adress")
routeOfLoad= bundle.getString("routeId")
}catch(e:Exception){}
checks_new
}
private fun setEvents() {
switchLoad = findViewById<View>(R.id.switchLoad) as Switch
switchLoad.visibility=GONE
txtTitle!!.setText("Escáner entregado")
var btnUpload = findViewById<ImageView>(R.id.imageVanLoaded)
btnUpload.setOnClickListener{
reviewLoad()
}
btnUpload.setImageResource(R.drawable.firmar)
txtRuta!!.setOnEditorActionListener { textView, i, keyEvent ->
if (!routeLoaded){
checks_new
}
else{
findExpedition(txtRuta!!.text.toString())
}
false
}
txtRuta!!.onFocusChangeListener = OnFocusChangeListener { view, b ->
if (b) {
txtRuta!!.setText("")
txtIdRuta!!.setText(R.string.esccaneaEtiqueta)
}
}
/* txtEscaner!!.setOnEditorActionListener { textView, i, keyEvent ->
// checkList()
false
}*/
listView!!.setOnFocusChangeListener { view, b ->
txtRuta!!.requestFocus()
false
}
}
//sergio: nuevo para cargar furgos
private fun findExpedition(textScanned: String) {
var position = listCheck.indexOfFirst{it.id==textScanned}
if (position>=0 && listCheck[position].addressFk==adressToExpeditions){
markExpeditionUnLoaded(position)
} else{
mperror?.start()
}
txtRuta!!.requestFocus()
}
private fun markExpeditionUnLoaded(i:Int){
if (listCheck[i].delivered == "1") {
mpErrorRepeat?.start()
Toast.makeText(this, "Expedición ya escaneada para entrega", Toast.LENGTH_SHORT).show()
} else {
mpok?.start()
listCheck[i].delivered = "1"
delivered = delivered + 1
listCheck[i].code = "DELIVERED"
//solo guarda las expediciones para tenerlas al día
setCheck(listCheck[i])
}
adapter!!.notifyDataSetChanged()
txtLineas!!.text = delivered.toString() + "/" + listCheck.filter { it.addressFk==adressToExpeditions }.filter{it.routeFk==routeOfLoad}.size + " entregadas"
if (delivered >= listCheck.filter { it.addressFk==adressToExpeditions }.filter{it.routeFk==routeOfLoad}.size) {
Toast.makeText(this, "Escaneo a entregar completo", Toast.LENGTH_SHORT).show()
expeditionState_addByExpeditionMulti(listCheck.filter{it.routeFk==routeOfLoad}.filter{it.addressFk==adressToExpeditions }.filter{it.code=="DELIVERED"},"DELIVERED")
}
txtRuta!!.requestFocus()
hideKeyboard()
}
private fun setCheck(c: Check) {
LocalStorage.saveExpeditions(this,listCheck)
}
private val checks_new: Unit
private get() {
// listCheck = ArrayList()
var listDownload = ArrayList<Check>()
listDownload = ArrayList()
val that = this
val routeData: Array<String?> = arrayOfNulls(1)
routeData[0] = routeOfLoad
Utils.progressBar.show(this, resources.getString(R.string.please_wait))
restClient!!.getExpeditionFromRoute(Utils.getMapWhitUser(this), routeData)
.enqueue(object : Callback<List<Check>> {
override fun onResponse(
call: Call<List<Check>>,
response: Response<List<Check>>
) {
Utils.progressBar.dialog.dismiss()
if (response.isSuccessful) {
for (c in response.body()!!) {
if (!c.code.isNullOrBlank()){
if (c.code.equals("ON DELIVERY")){
c.checked="1"
}
if (c.code.equals("DELIVERED")){
c.delivered="1"
}
}
listDownload.add(c)
}
LocalStorage.addExpeditionSave(that,listDownload)
getLocalDataExpedition(adressToExpeditions)
}else{
}
}
override fun onFailure(call: Call<List<Check>>, t: Throwable) {
Utils.progressBar.dialog.dismiss()
Utils.showErrorDialog(
that,
that.resources.getString(R.string.error_conexion)
)
getLocalDataExpedition(adressToExpeditions)
}
})
txtIdRuta!!.visibility= GONE
txtRuta!!.requestFocus()
}
fun Activity.hideKeyboard() {
hideKeyboard(currentFocus ?: View(this))
}
fun Context.hideKeyboard(view: View) {
val inputMethodManager = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0)
}
fun getLocalDataExpedition(adress:String) {
val list: List<Check> = LocalStorage.getExpeditions(this)
listCheck=LocalStorage.getExpeditions(this)
if (list.size > 0) {
delivered = list.filter { it.addressFk == adress }
.filter { it.delivered == "1"}.filter{it.routeFk==routeOfLoad}.size
txtLineas!!.text = delivered.toString() + "/" + (listCheck.filter { it.addressFk==adress }.filter{it.routeFk==routeOfLoad}).size + " escaneadas"
//adapter = CheckAdapter(this, this.listCheck)
adapter = CheckAdapter(this, listCheck.filter { it.addressFk==adress }.filter{it.routeFk==routeOfLoad})
this.listView!!.adapter = adapter
routeLoaded=true
txtIdRuta!!.visibility= GONE
txtRuta!!.requestFocus()
hideKeyboard()
}
}
}

View File

@ -18,18 +18,41 @@
<TextView
android:id="@+id/textView3"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="100dp"
android:fontFamily="@font/roboto"
android:text="@string/info"
android:textColor="@color/colorMainBg"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/textView43"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/sectorInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/roboto"
android:text="@string/info"
android:textColor="@color/colorAccent"
android:textSize="14sp"
android:layout_marginStart="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/textView3"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/sectorEdit"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginStart="8dp"
android:padding="0dp"
android:textColor="@color/colorAccent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/sectorInfo"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/pencil_edit" />
<TextView
android:id="@+id/textView43"

View File

@ -84,7 +84,7 @@
android:layout_height="wrap_content"
android:background="@drawable/button_background"
android:fontFamily="@font/roboto_bold"
android:onClick="logIn"
android:onClick="logInSalix"
android:text="@string/login"
android:textColor="@color/colorWhite" />
</LinearLayout>

View File

@ -41,26 +41,40 @@
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/exit"
android:padding="5dp"
android:onClick="logOut"/>
android:onClick="logOut"
android:visibility="gone"/>
<ImageView
android:id="@+id/imageViewFind"
android:layout_width="30dp"
android:layout_height="0dp"
android:layout_marginEnd="2dp"
android:padding="2dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/imageView3"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
app:srcCompat="@drawable/expedition_find"
android:onClick="goToFound"/>
<ImageView
android:id="@+id/imageView7"
android:layout_width="30dp"
android:layout_height="0dp"
android:layout_marginEnd="24dp"
android:padding="5dp"
android:layout_marginEnd="14dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/imageView3"
app:layout_constraintEnd_toStartOf="@+id/imageViewFind"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
app:srcCompat="@drawable/ficha"
android:onClick="goToInfo"/>
app:srcCompat="@drawable/ic_history"
android:onClick="goToExpeditionInfo"/>
<ImageView
android:id="@+id/imageView8"
android:layout_width="30dp"
android:layout_height="0dp"
android:layout_marginEnd="24dp"
android:layout_marginEnd="14dp"
android:onClick="getRoutes"
android:padding="5dp"
app:layout_constraintBottom_toBottomOf="parent"
@ -68,11 +82,23 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
app:srcCompat="@drawable/update" />
<ImageView
android:id="@+id/imageView9"
android:layout_width="40dp"
android:layout_height="0dp"
android:layout_marginEnd="14dp"
android:onClick="goToInfo"
android:padding="9dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/imageView8"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
app:srcCompat="@drawable/ficha"
android:visibility="visible"/>
<ImageView
android:id="@+id/imageView119"
android:layout_width="40dp"
android:layout_height="0dp"
android:layout_marginEnd="24dp"
android:onClick="goToCargarBultos"
android:padding="5dp"

View File

@ -15,7 +15,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:background="@color/colorMainHeader"
android:padding="8dp">
android:padding="2dp">
<LinearLayout
android:layout_width="match_parent"
@ -28,9 +28,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Exped.: "
android:text="Exped: "
android:textColor="@color/colorMainBg"
android:textSize="18sp" />
android:textSize="13sp" />
<TextView
android:id="@+id/txtId"
@ -39,16 +39,16 @@
android:layout_weight="1"
android:text="698658"
android:textColor="@color/colorMainBg"
android:textSize="20sp"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/consignatario"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Consignatario: "
android:text="@string/consignatorioAbrev"
android:textColor="@color/colorMainBg"
android:textSize="18sp" />
android:textSize="13sp" />
<TextView
android:id="@+id/consignatarioId"
@ -57,9 +57,11 @@
android:layout_weight="1"
android:text="698658"
android:textColor="@color/colorMainBg"
android:textSize="20sp"
android:textSize="24sp"
android:textAlignment="viewEnd"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -97,7 +99,7 @@
android:layout_weight="1"
android:text="Sergio de la Torre"
android:textColor="@color/colorMainBg"
android:textSize="20sp"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
@ -175,6 +177,7 @@
android:layout_height="wrap_content"
android:text="Cargada: "
android:textColor="@color/colorMainBg"
android:visibility="gone"
android:textSize="18sp" />
<TextView
@ -184,6 +187,7 @@
android:layout_weight="1"
android:text="OK"
android:textColor="@color/colorMainBg"
android:visibility="gone"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>

View File

@ -8,7 +8,7 @@
<LinearLayout
android:layout_width="0dp"
android:layout_height="160dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -25,8 +25,12 @@
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp">
android:layout_height="145dp"
android:paddingTop="1dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
>
<LinearLayout
android:layout_width="0dp"
@ -146,7 +150,9 @@
android:text="@string/cargadores"
android:textColor="@color/colorPrimary"
android:textSize="18sp"
android:textStyle="bold" />
android:visibility="gone"
android:textStyle="bold"
tools:visibility="visible"/>
</LinearLayout>
<LinearLayout
@ -159,6 +165,16 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:id="@+id/linearLayoutShowLoad"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/imageLoadVan"
android:layout_width="match_parent"
@ -174,9 +190,19 @@
android:fontFamily="@font/roboto"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:text="Cargar furgo"
android:text="Escáner reparto"
android:textColor="@color/colorPrimary"/>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayoutShowTickets"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/imageView10"
android:layout_width="match_parent"
@ -185,14 +211,15 @@
android:layout_marginTop="0dp"
android:layout_marginBottom="5dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/roboto"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:padding="5dp"
android:text="@string/ver_tickets"
android:textColor="@color/colorPrimary"/>
android:textAlignment="center"
android:textColor="@color/colorPrimary" />
<TextView
android:id="@+id/txtOnline"
@ -204,6 +231,7 @@
android:textColor="@color/colorGray"
android:visibility="gone"/>
</LinearLayout>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
</LinearLayout>
</android.support.constraint.ConstraintLayout>

View File

@ -49,7 +49,11 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
android:orientation="horizontal"
android:gravity="right"
android:textAlignment="gravity"
>
<TextView
android:id="@+id/textView32"
@ -59,7 +63,10 @@
android:layout_weight="0"
android:fontFamily="@font/roboto"
android:text="@string/packages"
android:textColor="@color/colorGray" />
android:textColor="@color/colorGray"
android:textSize="20sp"
/>
<TextView
android:id="@+id/textView31"
@ -68,13 +75,28 @@
android:layout_weight="0"
android:fontFamily="@font/roboto"
android:text="2"
android:textColor="@color/colorMainBg" />
android:textSize="20sp"
android:textColor="@color/colorMainBg"
/>
<TextView
android:id="@+id/packingtype"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:fontFamily="@font/roboto"
android:text="H o V"
android:visibility="visible"
android:textSize="20sp"
android:textColor="@color/colorMainBg"
android:layout_marginLeft="5dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
android:orientation="horizontal"
android:gravity="right"
android:textAlignment="gravity">
<TextView
android:id="@+id/textView34"
@ -107,10 +129,12 @@
android:layout_weight="0"
android:fontFamily="@font/roboto"
android:text="@string/packingType"
android:visibility="visible"
android:textColor="@color/colorGray" />
android:visibility="gone"
android:textColor="@color/colorGray"
android:textSize="18sp"
/>
<TextView
<!-- <TextView
android:id="@+id/packingtype"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -118,7 +142,9 @@
android:fontFamily="@font/roboto"
android:text="H o V"
android:visibility="visible"
android:textSize="18sp"
android:textColor="@color/colorMainBg" />
-->
</LinearLayout>

View File

@ -37,44 +37,52 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="5dp"
android:paddingLeft="2dp"
android:paddingTop="5dp"
android:paddingRight="5dp"
android:paddingRight="1dp"
android:gravity="center_vertical">
<TextView
android:id="@+id/textView23"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:autoSizeMaxTextSize="12sp"
android:autoSizeMinTextSize="12sp"
android:autoSizeTextType="none"
android:autoSizeStepGranularity="2sp"
android:layout_marginRight="2dp"
android:fontFamily="@font/roboto"
android:text="@string/cliente"
android:layout_weight="1"
android:textColor="@color/colorGray" />
<TextView
android:id="@+id/textView21"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:fontFamily="@font/roboto"
android:text="5036"
app:autoSizeMaxTextSize="18sp"
android:textSize="18sp"
android:layout_weight="1"
android:textColor="@color/colorMainBg" />
<TextView
android:id="@+id/textView18"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:autoSizeMaxTextSize="13sp"
android:autoSizeMinTextSize="12sp"
android:autoSizeTextType="none"
android:autoSizeStepGranularity="2sp"
android:layout_weight="0.1"
android:fontFamily="@font/roboto"
android:text="@string/consignatorio"
android:textAlignment="viewEnd"
android:text="@string/consignatorioAbrev"
android:textColor="@color/colorGray"
android:layout_weight="1"
android:layout_marginLeft="18dp"/>
/>
<TextView
android:id="@+id/textView17"
@ -84,6 +92,11 @@
android:fontFamily="@font/roboto"
android:text="24820"
android:textAlignment="center"
android:maxLines="1"
android:autoSizeMaxTextSize="28sp"
android:autoSizeMinTextSize="16sp"
android:autoSizeTextType="uniform"
android:autoSizeStepGranularity="2sp"
android:textColor="@color/colorMainBg"
android:textSize="28sp"
android:textStyle="bold" />

View File

@ -59,4 +59,9 @@
<string name="errorBulto">This package belongs to a ticket that is not ready, consult a responsible</string>
<string name="version">Version app:</string>
<string name="packingType">Packing type:</string>
<string name="scanLoad">Scan delivery</string>
<string name="workerId_incorrect">It\'s not possilble to get worker id</string>
<string name="log_incorrect">It\'s not possilble to log the session</string>
<string name="summaryRouteTitle">Resumen carga ruta:</string>
<string name="consignatorioAbrev">Address:</string>
</resources>

View File

@ -11,6 +11,7 @@
<color name="colorGreen">#30D961</color>
<color name="darkclear">#7B7B7B</color>
<color name="verdnatura_pumpkin_orange">#f7931e</color>
<color name="verdnatura_pumpkin_light">#f77956</color>
<color name="verdnatura_black">#000000</color>
<color name="verdnatura_black_1">#1d1d1d</color>
<color name="verdnatura_black_2">#171717</color>

View File

@ -17,7 +17,8 @@
<string name="tickets_por_firmar">Clientes por firmar</string>
<string name="ver_firmados">ver firmados</string>
<string name="cliente">Cliente</string>
<string name="consignatorio">Consignatorio</string>
<string name="consignatorio">Consignatario</string>
<string name="consignatorioAbrev">Consign:</string>
<string name="pc" translatable="false">PC</string>
<string name="ticket" translatable="false">Ticket</string>
<string name="packages" translatable="false">Bultos</string>
@ -26,6 +27,8 @@
<string name="please_wait">trabajando</string>
<string name="error_conexion">error de conexión</string>
<string name="usuario_incorrecto">Usuario o contraseña incorrectos</string>
<string name="workerId_incorrect">No se ha podido obtener el id del trabajador</string>
<string name="log_incorrect">No se ha podido realizar el log</string>
<string name="clientes_firmados">Clientes firmados</string>
<string name="ver_por_firmar">ver por firmar</string>
<string name="telefono">Teléfono</string>
@ -60,8 +63,10 @@
<string name="no_disponible">DESCARGAR</string>
<string name="hora">Hora</string>
<string name="loadbultos">Cargar furgo</string>
<string name="scanLoad">Escáner reparto</string>
<string name="esccaneaEtiqueta">Esccanea una etiqueta para obtener ruta</string>
<string name="errorBulto">Este bulto pertenece a un ticket que no está preaprado, consulta con un responsable</string>
<string name="version">Versión app:</string>
<string name="packingType">Tipo embalaje:</string>
<string name="summaryRouteTitle">Resumen carga ruta:</string>
</resources>

View File

@ -1,86 +1,91 @@
<?xml version='1.0' encoding='UTF-8'?>
<com.google.firebase>
<crash-plugin versions="1.1.2,1.1.3,1.1.4,1.1.5"/>
<firebase-abt versions="15.0.0,15.0.1,16.0.0,16.0.1,17.1.0,17.1.1,18.0.0,18.0.1,19.0.0,19.0.1,19.1.0,20.0.0,21.0.0"/>
<firebase-ads versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.1,16.0.1,17.0.0,17.1.0,17.1.1,17.1.2,17.1.3,17.2.0,17.2.1,18.0.0,18.1.0,18.1.1,18.2.0,18.3.0,19.0.0,19.0.1,19.1.0,19.2.0,19.3.0,19.4.0,19.5.0,19.6.0,19.7.0,19.8.0,20.0.0,20.1.0,20.2.0,20.3.0,20.4.0,20.5.0,20.6.0"/>
<firebase-ads-lite versions="15.0.0,15.0.1,16.0.1,17.0.0,17.1.0,17.1.1,17.1.2,17.1.3,17.2.0,17.2.1,18.0.0,18.1.0,18.1.1,18.2.0,18.3.0,19.0.0,19.0.1,19.1.0,19.2.0,19.3.0,19.4.0,19.5.0,19.6.0,19.7.0,19.8.0,20.0.0,20.1.0,20.2.0,20.3.0,20.4.0,20.5.0,20.6.0"/>
<firebase-analytics versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,16.0.0,16.0.1,16.0.3,16.0.4,16.0.5,16.0.6,16.3.0,16.4.0,16.5.0,17.0.0,17.0.1,17.1.0,17.2.0,17.2.1,17.2.2,17.2.3,17.3.0,17.4.0,17.4.1,17.4.2,17.4.3,17.4.4,17.5.0,17.6.0,18.0.0,18.0.1,18.0.2,18.0.3,19.0.0,19.0.1,19.0.2,20.0.0,20.0.1,20.0.2,20.1.0"/>
<firebase-abt versions="15.0.0,15.0.1,16.0.0,16.0.1,17.1.0,17.1.1,18.0.0,18.0.1,19.0.0,19.0.1,19.1.0,20.0.0,21.0.0,21.0.1"/>
<firebase-ads versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.1,16.0.1,17.0.0,17.1.0,17.1.1,17.1.2,17.1.3,17.2.0,17.2.1,18.0.0,18.1.0,18.1.1,18.2.0,18.3.0,19.0.0,19.0.1,19.1.0,19.2.0,19.3.0,19.4.0,19.5.0,19.6.0,19.7.0,19.8.0,20.0.0,20.1.0,20.2.0,20.3.0,20.4.0,20.5.0,20.6.0,21.0.0,21.1.0"/>
<firebase-ads-lite versions="15.0.0,15.0.1,16.0.1,17.0.0,17.1.0,17.1.1,17.1.2,17.1.3,17.2.0,17.2.1,18.0.0,18.1.0,18.1.1,18.2.0,18.3.0,19.0.0,19.0.1,19.1.0,19.2.0,19.3.0,19.4.0,19.5.0,19.6.0,19.7.0,19.8.0,20.0.0,20.1.0,20.2.0,20.3.0,20.4.0,20.5.0,20.6.0,21.0.0,21.1.0"/>
<firebase-analytics versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,16.0.0,16.0.1,16.0.3,16.0.4,16.0.5,16.0.6,16.3.0,16.4.0,16.5.0,17.0.0,17.0.1,17.1.0,17.2.0,17.2.1,17.2.2,17.2.3,17.3.0,17.4.0,17.4.1,17.4.2,17.4.3,17.4.4,17.5.0,17.6.0,18.0.0,18.0.1,18.0.2,18.0.3,19.0.0,19.0.1,19.0.2,20.0.0,20.0.1,20.0.2,20.1.0,20.1.1,20.1.2,21.0.0,21.1.0"/>
<firebase-analytics-impl versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,16.0.0,16.1.1,16.2.1,16.2.2,16.2.3,16.2.4,16.3.0"/>
<firebase-analytics-impl-license versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<firebase-analytics-ktx versions="17.3.0,17.4.0,17.4.1,17.4.2,17.4.3,17.4.4,17.5.0,17.6.0,18.0.0,18.0.1,18.0.2,18.0.3,19.0.0,19.0.1,19.0.2,20.0.0,20.0.1,20.0.2,20.1.0"/>
<firebase-analytics-ktx versions="17.3.0,17.4.0,17.4.1,17.4.2,17.4.3,17.4.4,17.5.0,17.6.0,18.0.0,18.0.1,18.0.2,18.0.3,19.0.0,19.0.1,19.0.2,20.0.0,20.0.1,20.0.2,20.1.0,20.1.1,20.1.2,21.0.0,21.1.0"/>
<firebase-analytics-license versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<firebase-annotations versions="16.0.0"/>
<firebase-appcheck versions="16.0.0-beta01,16.0.0-beta02,16.0.0-beta03,16.0.0-beta04"/>
<firebase-appcheck-debug versions="16.0.0-beta01,16.0.0-beta02,16.0.0-beta03,16.0.0-beta04"/>
<firebase-appcheck-debug-testing versions="16.0.0-beta01,16.0.0-beta02,16.0.0-beta03,16.0.0-beta04"/>
<firebase-appcheck-interop versions="16.0.0-beta01,16.0.0-beta02,16.0.0-beta03,16.0.0-beta04"/>
<firebase-appcheck-safetynet versions="16.0.0-beta01,16.0.0-beta02,16.0.0-beta03,16.0.0-beta04"/>
<firebase-appdistribution-gradle versions="0.2.0,0.2.1,0.2.2,0.2.3,1.0.0,1.1.0,1.2.0,1.3.0,1.3.1,1.4.0,1.4.1,2.0.0,2.0.1,2.1.0,2.1.1,2.1.2,2.1.3,2.2.0,3.0.0"/>
<firebase-annotations versions="16.0.0,16.1.0"/>
<firebase-appcheck versions="16.0.0-beta01,16.0.0-beta02,16.0.0-beta03,16.0.0-beta04,16.0.0-beta05,16.0.0-beta06,16.0.0"/>
<firebase-appcheck-debug versions="16.0.0-beta01,16.0.0-beta02,16.0.0-beta03,16.0.0-beta04,16.0.0-beta05,16.0.0-beta06,16.0.0"/>
<firebase-appcheck-debug-testing versions="16.0.0-beta01,16.0.0-beta02,16.0.0-beta03,16.0.0-beta04,16.0.0-beta05,16.0.0-beta06,16.0.0"/>
<firebase-appcheck-interop versions="16.0.0-beta01,16.0.0-beta02,16.0.0-beta03,16.0.0-beta04,16.0.0-beta05,16.0.0-beta06,16.0.0"/>
<firebase-appcheck-playintegrity versions="16.0.0"/>
<firebase-appcheck-safetynet versions="16.0.0-beta01,16.0.0-beta02,16.0.0-beta03,16.0.0-beta04,16.0.0-beta05,16.0.0-beta06,16.0.0"/>
<firebase-appdistribution versions="16.0.0-beta01,16.0.0-beta02,16.0.0-beta03"/>
<firebase-appdistribution-api versions="16.0.0-beta03"/>
<firebase-appdistribution-api-ktx versions="16.0.0-beta03"/>
<firebase-appdistribution-gradle versions="0.2.0,0.2.1,0.2.2,0.2.3,1.0.0,1.1.0,1.2.0,1.3.0,1.3.1,1.4.0,1.4.1,2.0.0,2.0.1,2.1.0,2.1.1,2.1.2,2.1.3,2.2.0,3.0.0,3.0.1,3.0.2,3.0.3"/>
<firebase-appdistribution-ktx versions="16.0.0-beta01,16.0.0-beta02"/>
<firebase-appindexing versions="10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.1,16.0.1,16.0.2,17.1.0,18.0.0,19.0.0,19.1.0,19.2.0,20.0.0"/>
<firebase-appindexing-license versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<firebase-auth versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.1.0,16.0.1,16.0.2,16.0.3,16.0.4,16.0.5,16.1.0,16.2.0,16.2.1,17.0.0,18.0.0,18.1.0,19.0.0,19.1.0,19.2.0,19.3.0,19.3.1,19.3.2,19.4.0,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,21.0.0,21.0.1"/>
<firebase-auth versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.1.0,16.0.1,16.0.2,16.0.3,16.0.4,16.0.5,16.1.0,16.2.0,16.2.1,17.0.0,18.0.0,18.1.0,19.0.0,19.1.0,19.2.0,19.3.0,19.3.1,19.3.2,19.4.0,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,21.0.0,21.0.1,21.0.2,21.0.3,21.0.4,21.0.5,21.0.6,21.0.7"/>
<firebase-auth-common versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0"/>
<firebase-auth-impl versions="11.0.0,16.1.0"/>
<firebase-auth-interop versions="15.0.2,16.0.0,16.0.1,17.0.0,18.0.0,19.0.0,19.0.1,19.0.2,20.0.0"/>
<firebase-auth-ktx versions="19.3.1,19.3.2,19.4.0,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,21.0.0,21.0.1"/>
<firebase-auth-ktx versions="19.3.1,19.3.2,19.4.0,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,21.0.0,21.0.1,21.0.2,21.0.3,21.0.4,21.0.5,21.0.6,21.0.7"/>
<firebase-auth-license versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<firebase-auth-module versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0"/>
<firebase-bom versions="16.0.0,17.0.0,17.1.0,18.0.0,18.1.0,19.0.0,20.0.0,20.0.1,20.1.0,21.0.0,21.1.0,22.0.0,22.1.0,22.2.0,22.2.1,22.3.0,23.0.0,24.0.0,24.0.1,24.0.2,24.1.0,24.2.0,24.3.0,24.4.0,24.5.0,24.6.0,24.7.0,24.7.1,25.0.0,25.1.0,25.1.1,25.2.0,25.2.1,25.2.2,25.3.0,25.3.1,25.4.0,25.4.1,25.5.0,25.6.0,25.6.1,25.7.0,25.8.0,25.9.0,25.10.0,25.11.0,25.12.0,25.13.0,26.0.0,26.1.0,26.1.1,26.2.0,26.3.0,26.4.0,26.5.0,26.6.0,26.7.0,26.8.0,27.0.0,27.1.0,28.0.0,28.0.1,28.1.0,28.2.0,28.2.1,28.3.0,28.3.1,28.4.0,28.4.1,28.4.2,29.0.0,29.0.1,29.0.2,29.0.3,29.0.4,29.1.0"/>
<firebase-common versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.1,16.0.0,16.0.1,16.0.2,16.0.3,16.0.4,16.1.0,17.0.0,17.1.0,18.0.0,19.0.0,19.1.0,19.2.0,19.3.0,19.3.1,19.4.0,19.5.0,20.0.0"/>
<firebase-common-ktx versions="16.1.0,17.0.0,18.0.0,19.0.0,19.1.0,19.2.0,19.3.0,19.3.1,19.4.0,19.5.0,20.0.0"/>
<firebase-bom versions="16.0.0,17.0.0,17.1.0,18.0.0,18.1.0,19.0.0,20.0.0,20.0.1,20.1.0,21.0.0,21.1.0,22.0.0,22.1.0,22.2.0,22.2.1,22.3.0,23.0.0,24.0.0,24.0.1,24.0.2,24.1.0,24.2.0,24.3.0,24.4.0,24.5.0,24.6.0,24.7.0,24.7.1,25.0.0,25.1.0,25.1.1,25.2.0,25.2.1,25.2.2,25.3.0,25.3.1,25.4.0,25.4.1,25.5.0,25.6.0,25.6.1,25.7.0,25.8.0,25.9.0,25.10.0,25.11.0,25.12.0,25.13.0,26.0.0,26.1.0,26.1.1,26.2.0,26.3.0,26.4.0,26.5.0,26.6.0,26.7.0,26.8.0,27.0.0,27.1.0,28.0.0,28.0.1,28.1.0,28.2.0,28.2.1,28.3.0,28.3.1,28.4.0,28.4.1,28.4.2,29.0.0,29.0.1,29.0.2,29.0.3,29.0.4,29.1.0,29.2.0,29.2.1,29.3.0,29.3.1,30.0.0,30.0.1,30.0.2,30.1.0,30.2.0,30.3.0,30.3.1,30.3.2"/>
<firebase-common versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.1,16.0.0,16.0.1,16.0.2,16.0.3,16.0.4,16.1.0,17.0.0,17.1.0,18.0.0,19.0.0,19.1.0,19.2.0,19.3.0,19.3.1,19.4.0,19.5.0,20.0.0,20.1.0,20.1.1"/>
<firebase-common-ktx versions="16.1.0,17.0.0,18.0.0,19.0.0,19.1.0,19.2.0,19.3.0,19.3.1,19.4.0,19.5.0,20.0.0,20.1.0,20.1.1"/>
<firebase-common-license versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<firebase-components versions="16.0.0,16.0.1,16.1.0,17.0.0"/>
<firebase-config versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,16.0.0,16.0.1,16.1.0,16.1.2,16.1.3,16.3.0,16.4.0,16.4.1,16.5.0,17.0.0,18.0.0,19.0.0,19.0.1,19.0.2,19.0.3,19.0.4,19.1.0,19.1.1,19.1.2,19.1.3,19.1.4,19.2.0,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,21.0.0,21.0.1"/>
<firebase-config-ktx versions="19.0.2,19.0.3,19.0.4,19.1.0,19.1.1,19.1.2,19.1.3,19.1.4,19.2.0,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,21.0.0,21.0.1"/>
<firebase-config versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,16.0.0,16.0.1,16.1.0,16.1.2,16.1.3,16.3.0,16.4.0,16.4.1,16.5.0,17.0.0,18.0.0,19.0.0,19.0.1,19.0.2,19.0.3,19.0.4,19.1.0,19.1.1,19.1.2,19.1.3,19.1.4,19.2.0,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,21.0.0,21.0.1,21.0.2,21.1.0,21.1.1"/>
<firebase-config-ktx versions="19.0.2,19.0.3,19.0.4,19.1.0,19.1.1,19.1.2,19.1.3,19.1.4,19.2.0,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,21.0.0,21.0.1,21.0.2,21.1.0,21.1.1"/>
<firebase-config-license versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<firebase-core versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,16.0.0,16.0.1,16.0.3,16.0.4,16.0.5,16.0.6,16.0.7,16.0.8,16.0.9,17.0.0,17.0.1,17.1.0,17.2.0,17.2.1,17.2.2,17.2.3,17.3.0,17.4.0,17.4.1,17.4.2,17.4.3,17.4.4,17.5.0,17.5.1,18.0.0,18.0.1,18.0.2,18.0.3,19.0.0,19.0.1,19.0.2,20.0.0,20.0.1,20.0.2,20.1.0"/>
<firebase-core versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,16.0.0,16.0.1,16.0.3,16.0.4,16.0.5,16.0.6,16.0.7,16.0.8,16.0.9,17.0.0,17.0.1,17.1.0,17.2.0,17.2.1,17.2.2,17.2.3,17.3.0,17.4.0,17.4.1,17.4.2,17.4.3,17.4.4,17.5.0,17.5.1,18.0.0,18.0.1,18.0.2,18.0.3,19.0.0,19.0.1,19.0.2,20.0.0,20.0.1,20.0.2,20.1.0,20.1.1,20.1.2,21.0.0,21.1.0"/>
<firebase-crash versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,16.0.0,16.0.1,16.2.0,16.2.1"/>
<firebase-crash-license versions="11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<firebase-crashlytics versions="17.0.0-beta01,17.0.0-beta02,17.0.0-beta03,17.0.0-beta04,17.0.0,17.0.1,17.1.0,17.1.1,17.2.1,17.2.2,17.3.0,17.3.1,17.4.0,17.4.1,18.0.0,18.0.1,18.1.0,18.2.0,18.2.1,18.2.3,18.2.4,18.2.5,18.2.6,18.2.7,18.2.8"/>
<firebase-crashlytics-buildtools versions="2.0.0-beta01,2.0.0-beta02,2.0.0-beta03,2.0.0-beta04,2.0.0,2.1.0,2.1.1,2.2.0,2.2.1,2.3.0,2.4.0,2.4.1,2.5.0,2.5.1,2.5.2,2.6.0,2.6.1,2.7.0,2.7.1,2.8.0,2.8.1"/>
<firebase-crashlytics-gradle versions="2.0.0-beta01,2.0.0-beta02,2.0.0-beta03,2.0.0-beta04,2.0.0,2.1.0,2.1.1,2.2.0,2.2.1,2.3.0,2.4.0,2.4.1,2.5.0,2.5.1,2.5.2,2.6.0,2.6.1,2.7.0,2.7.1,2.8.0,2.8.1"/>
<firebase-crashlytics-ktx versions="17.1.0,17.1.1,17.2.1,17.2.2,17.3.0,17.3.1,17.4.0,17.4.1,18.0.0,18.0.1,18.1.0,18.2.0,18.2.1,18.2.3,18.2.4,18.2.5,18.2.6,18.2.7,18.2.8"/>
<firebase-crashlytics-ndk versions="17.0.0-beta01,17.0.0-beta03,17.0.0-beta04,17.0.0,17.0.1,17.1.0,17.1.1,17.2.1,17.2.2,17.3.0,17.3.1,17.4.0,17.4.1,18.0.0,18.0.1,18.1.0,18.2.0,18.2.1,18.2.3,18.2.4,18.2.5,18.2.6,18.2.7,18.2.8"/>
<firebase-database versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.1,16.0.1,16.0.2,16.0.3,16.0.4,16.0.5,16.0.6,16.1.0,17.0.0,18.0.0,18.0.1,19.0.0,19.1.0,19.2.0,19.2.1,19.3.0,19.3.1,19.4.0,19.5.0,19.5.1,19.6.0,19.7.0,20.0.0,20.0.1,20.0.2,20.0.3"/>
<firebase-database-collection versions="15.0.0,15.0.1,16.0.0,16.0.1,17.0.0,17.0.1,18.0.0"/>
<firebase-crashlytics versions="17.0.0-beta01,17.0.0-beta02,17.0.0-beta03,17.0.0-beta04,17.0.0,17.0.1,17.1.0,17.1.1,17.2.1,17.2.2,17.3.0,17.3.1,17.4.0,17.4.1,18.0.0,18.0.1,18.1.0,18.2.0,18.2.1,18.2.3,18.2.4,18.2.5,18.2.6,18.2.7,18.2.8,18.2.9,18.2.10,18.2.11,18.2.12"/>
<firebase-crashlytics-buildtools versions="2.0.0-beta01,2.0.0-beta02,2.0.0-beta03,2.0.0-beta04,2.0.0,2.1.0,2.1.1,2.2.0,2.2.1,2.3.0,2.4.0,2.4.1,2.5.0,2.5.1,2.5.2,2.6.0,2.6.1,2.7.0,2.7.1,2.8.0,2.8.1,2.9.0,2.9.1"/>
<firebase-crashlytics-gradle versions="2.0.0-beta01,2.0.0-beta02,2.0.0-beta03,2.0.0-beta04,2.0.0,2.1.0,2.1.1,2.2.0,2.2.1,2.3.0,2.4.0,2.4.1,2.5.0,2.5.1,2.5.2,2.6.0,2.6.1,2.7.0,2.7.1,2.8.0,2.8.1,2.9.0,2.9.1"/>
<firebase-crashlytics-ktx versions="17.1.0,17.1.1,17.2.1,17.2.2,17.3.0,17.3.1,17.4.0,17.4.1,18.0.0,18.0.1,18.1.0,18.2.0,18.2.1,18.2.3,18.2.4,18.2.5,18.2.6,18.2.7,18.2.8,18.2.9,18.2.10,18.2.11,18.2.12"/>
<firebase-crashlytics-ndk versions="17.0.0-beta01,17.0.0-beta03,17.0.0-beta04,17.0.0,17.0.1,17.1.0,17.1.1,17.2.1,17.2.2,17.3.0,17.3.1,17.4.0,17.4.1,18.0.0,18.0.1,18.1.0,18.2.0,18.2.1,18.2.3,18.2.4,18.2.5,18.2.6,18.2.7,18.2.8,18.2.9,18.2.10,18.2.11,18.2.12"/>
<firebase-database versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.1,16.0.1,16.0.2,16.0.3,16.0.4,16.0.5,16.0.6,16.1.0,17.0.0,18.0.0,18.0.1,19.0.0,19.1.0,19.2.0,19.2.1,19.3.0,19.3.1,19.4.0,19.5.0,19.5.1,19.6.0,19.7.0,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,20.0.5"/>
<firebase-database-collection versions="15.0.0,15.0.1,16.0.0,16.0.1,17.0.0,17.0.1,18.0.0,18.0.1"/>
<firebase-database-connection versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.1,16.0.1,16.0.2"/>
<firebase-database-connection-license versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<firebase-database-ktx versions="19.2.0,19.2.1,19.3.0,19.3.1,19.4.0,19.5.0,19.5.1,19.6.0,19.7.0,20.0.0,20.0.1,20.0.2,20.0.3"/>
<firebase-database-ktx versions="19.2.0,19.2.1,19.3.0,19.3.1,19.4.0,19.5.0,19.5.1,19.6.0,19.7.0,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,20.0.5"/>
<firebase-database-license versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<firebase-datatransport versions="16.0.0,17.0.0,17.0.1,17.0.2,17.0.3,17.0.4,17.0.5,17.0.6,17.0.7,17.0.8,17.0.9,17.0.10,17.0.11,18.0.0,18.0.1,18.1.0,18.1.1"/>
<firebase-dynamic-links versions="11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,16.0.0,16.0.1,16.1.1,16.1.2,16.1.3,16.1.5,16.1.7,16.1.8,17.0.0,18.0.0,19.0.0,19.1.0,19.1.1,20.0.0,20.1.0,20.1.1,21.0.0"/>
<firebase-dynamic-links-ktx versions="19.1.0,19.1.1,20.0.0,20.1.0,20.1.1,21.0.0"/>
<firebase-datatransport versions="16.0.0,17.0.0,17.0.1,17.0.2,17.0.3,17.0.4,17.0.5,17.0.6,17.0.7,17.0.8,17.0.9,17.0.10,17.0.11,18.0.0,18.0.1,18.1.0,18.1.1,18.1.2,18.1.3,18.1.4,18.1.5,18.1.6"/>
<firebase-dynamic-links versions="11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,16.0.0,16.0.1,16.1.1,16.1.2,16.1.3,16.1.5,16.1.7,16.1.8,17.0.0,18.0.0,19.0.0,19.1.0,19.1.1,20.0.0,20.1.0,20.1.1,21.0.0,21.0.1"/>
<firebase-dynamic-links-ktx versions="19.1.0,19.1.1,20.0.0,20.1.0,20.1.1,21.0.0,21.0.1"/>
<firebase-dynamic-links-license versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<firebase-dynamic-module-support versions="16.0.0-beta01"/>
<firebase-dynamic-module-support versions="16.0.0-beta01,16.0.0-beta02"/>
<firebase-encoders versions="16.0.0,16.1.0,17.0.0"/>
<firebase-encoders-json versions="16.0.0,16.1.0,17.0.0,17.1.0,18.0.0"/>
<firebase-encoders-proto versions="16.0.0"/>
<firebase-firestore versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,16.0.0,17.0.1,17.0.2,17.0.3,17.0.4,17.0.5,17.1.0,17.1.1,17.1.2,17.1.3,17.1.4,17.1.5,18.0.0,18.0.1,18.1.0,18.2.0,19.0.0,19.0.1,19.0.2,20.0.0,20.1.0,20.2.0,21.0.0,21.1.0,21.1.1,21.2.0,21.2.1,21.3.0,21.3.1,21.4.0,21.4.1,21.4.2,21.4.3,21.5.0,21.6.0,21.7.0,21.7.1,22.0.0,22.0.1,22.0.2,22.1.0,22.1.1,22.1.2,23.0.0,23.0.1,23.0.2,23.0.3,23.0.4,24.0.0,24.0.1"/>
<firebase-firestore-ktx versions="18.2.0,19.0.0,20.0.0,20.1.0,20.2.0,21.0.0,21.1.0,21.1.1,21.2.0,21.2.1,21.3.0,21.3.1,21.4.0,21.4.1,21.4.2,21.4.3,21.5.0,21.6.0,21.7.0,21.7.1,22.0.0,22.0.1,22.0.2,22.1.0,22.1.1,22.1.2,23.0.0,23.0.1,23.0.2,23.0.3,23.0.4,24.0.0,24.0.1"/>
<firebase-functions versions="12.0.0,12.0.1,15.0.0,16.0.1,16.1.0,16.1.1,16.1.2,16.1.3,16.2.0,16.3.0,17.0.0,18.0.0,18.1.0,19.0.0,19.0.1,19.0.2,19.1.0,19.2.0,20.0.0,20.0.1"/>
<firebase-functions-ktx versions="19.0.1,19.0.2,19.1.0,19.2.0,20.0.0,20.0.1"/>
<firebase-firestore versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,16.0.0,17.0.1,17.0.2,17.0.3,17.0.4,17.0.5,17.1.0,17.1.1,17.1.2,17.1.3,17.1.4,17.1.5,18.0.0,18.0.1,18.1.0,18.2.0,19.0.0,19.0.1,19.0.2,20.0.0,20.1.0,20.2.0,21.0.0,21.1.0,21.1.1,21.2.0,21.2.1,21.3.0,21.3.1,21.4.0,21.4.1,21.4.2,21.4.3,21.5.0,21.6.0,21.7.0,21.7.1,22.0.0,22.0.1,22.0.2,22.1.0,22.1.1,22.1.2,23.0.0,23.0.1,23.0.2,23.0.3,23.0.4,24.0.0,24.0.1,24.0.2,24.1.0,24.1.1,24.1.2,24.2.0,24.2.1,24.2.2"/>
<firebase-firestore-ktx versions="18.2.0,19.0.0,20.0.0,20.1.0,20.2.0,21.0.0,21.1.0,21.1.1,21.2.0,21.2.1,21.3.0,21.3.1,21.4.0,21.4.1,21.4.2,21.4.3,21.5.0,21.6.0,21.7.0,21.7.1,22.0.0,22.0.1,22.0.2,22.1.0,22.1.1,22.1.2,23.0.0,23.0.1,23.0.2,23.0.3,23.0.4,24.0.0,24.0.1,24.0.2,24.1.0,24.1.1,24.1.2,24.2.0,24.2.1,24.2.2"/>
<firebase-functions versions="12.0.0,12.0.1,15.0.0,16.0.1,16.1.0,16.1.1,16.1.2,16.1.3,16.2.0,16.3.0,17.0.0,18.0.0,18.1.0,19.0.0,19.0.1,19.0.2,19.1.0,19.2.0,20.0.0,20.0.1,20.0.2,20.1.0"/>
<firebase-functions-ktx versions="19.0.1,19.0.2,19.1.0,19.2.0,20.0.0,20.0.1,20.0.2,20.1.0"/>
<firebase-functions-license versions="12.0.0,12.0.1"/>
<firebase-iid versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.1.0,16.0.0,16.2.0,17.0.0,17.0.1,17.0.2,17.0.3,17.0.4,17.1.0,17.1.1,17.1.2,18.0.0,19.0.0,19.0.1,20.0.0,20.0.1,20.0.2,20.1.0,20.1.1,20.1.2,20.1.4,20.1.5,20.1.6,20.1.7,20.2.0,20.2.1,20.2.2,20.2.3,20.2.4,20.3.0,21.0.0,21.0.1,21.1.0"/>
<firebase-iid-interop versions="15.0.0,16.0.0,16.0.1,17.0.0,17.1.0"/>
<firebase-iid-license versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<firebase-inappmessaging versions="17.0.0,17.0.1,17.0.2,17.0.3,17.0.4,17.0.5,17.1.0,17.1.1,17.2.0,18.0.0,18.0.1,18.0.2,19.0.0,19.0.1,19.0.2,19.0.3,19.0.4,19.0.5,19.0.6,19.0.7,19.1.0,19.1.1,19.1.2,19.1.3,19.1.4,19.1.5,20.0.0,20.1.0,20.1.1"/>
<firebase-inappmessaging-display versions="17.0.0,17.0.1,17.0.2,17.0.3,17.0.4,17.0.5,17.1.0,17.1.1,17.2.0,18.0.0,18.0.1,18.0.2,19.0.0,19.0.1,19.0.2,19.0.3,19.0.4,19.0.5,19.0.6,19.0.7,19.1.0,19.1.1,19.1.2,19.1.3,19.1.4,19.1.5,20.0.0,20.1.0,20.1.1"/>
<firebase-inappmessaging-display-ktx versions="19.0.2,19.0.3,19.0.4,19.0.5,19.0.6,19.0.7,19.1.0,19.1.1,19.1.2,19.1.3,19.1.4,19.1.5,20.0.0,20.1.0,20.1.1"/>
<firebase-inappmessaging-ktx versions="19.0.2,19.0.3,19.0.4,19.0.5,19.0.6,19.0.7,19.1.0,19.1.1,19.1.2,19.1.3,19.1.4,19.1.5,20.0.0,20.1.0,20.1.1"/>
<firebase-installations versions="16.0.0,16.1.0,16.2.0,16.2.1,16.2.2,16.3.0,16.3.1,16.3.2,16.3.3,16.3.4,16.3.5,17.0.0"/>
<firebase-installations-interop versions="16.0.0,16.0.1,17.0.0"/>
<firebase-installations-ktx versions="16.3.3,16.3.4,16.3.5,17.0.0"/>
<firebase-inappmessaging versions="17.0.0,17.0.1,17.0.2,17.0.3,17.0.4,17.0.5,17.1.0,17.1.1,17.2.0,18.0.0,18.0.1,18.0.2,19.0.0,19.0.1,19.0.2,19.0.3,19.0.4,19.0.5,19.0.6,19.0.7,19.1.0,19.1.1,19.1.2,19.1.3,19.1.4,19.1.5,20.0.0,20.1.0,20.1.1,20.1.2"/>
<firebase-inappmessaging-display versions="17.0.0,17.0.1,17.0.2,17.0.3,17.0.4,17.0.5,17.1.0,17.1.1,17.2.0,18.0.0,18.0.1,18.0.2,19.0.0,19.0.1,19.0.2,19.0.3,19.0.4,19.0.5,19.0.6,19.0.7,19.1.0,19.1.1,19.1.2,19.1.3,19.1.4,19.1.5,20.0.0,20.1.0,20.1.1,20.1.2"/>
<firebase-inappmessaging-display-ktx versions="19.0.2,19.0.3,19.0.4,19.0.5,19.0.6,19.0.7,19.1.0,19.1.1,19.1.2,19.1.3,19.1.4,19.1.5,20.0.0,20.1.0,20.1.1,20.1.2"/>
<firebase-inappmessaging-ktx versions="19.0.2,19.0.3,19.0.4,19.0.5,19.0.6,19.0.7,19.1.0,19.1.1,19.1.2,19.1.3,19.1.4,19.1.5,20.0.0,20.1.0,20.1.1,20.1.2"/>
<firebase-installations versions="16.0.0,16.1.0,16.2.0,16.2.1,16.2.2,16.3.0,16.3.1,16.3.2,16.3.3,16.3.4,16.3.5,17.0.0,17.0.1"/>
<firebase-installations-interop versions="16.0.0,16.0.1,17.0.0,17.0.1"/>
<firebase-installations-ktx versions="16.3.3,16.3.4,16.3.5,17.0.0,17.0.1"/>
<firebase-invites versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.1,16.0.0,16.0.1,16.0.3,16.0.4,16.0.5,16.0.6,16.1.0,16.1.1,17.0.0"/>
<firebase-measurement-connector versions="15.0.0,16.0.0,17.0.0,17.0.1,18.0.0,18.0.1,18.0.2,19.0.0,20.0.0"/>
<firebase-measurement-connector-impl versions="15.0.0,16.0.0,16.0.1,17.0.1,17.0.2,17.0.3,17.0.4,17.0.5"/>
<firebase-messaging versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,17.0.0,17.1.0,17.3.0,17.3.1,17.3.2,17.3.3,17.3.4,17.4.0,17.5.0,17.6.0,18.0.0,19.0.0,19.0.1,20.0.0,20.0.1,20.1.0,20.1.1,20.1.2,20.1.3,20.1.4,20.1.5,20.1.6,20.1.7,20.2.0,20.2.1,20.2.2,20.2.3,20.2.4,20.3.0,21.0.0,21.0.1,21.1.0,22.0.0,23.0.0"/>
<firebase-messaging-directboot versions="20.2.0,20.2.1,20.2.2,20.2.3,20.2.4,20.3.0,21.0.0,21.0.1,21.1.0,22.0.0,23.0.0"/>
<firebase-messaging-ktx versions="20.3.0,21.0.0,21.0.1,22.0.0,23.0.0"/>
<firebase-messaging versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,17.0.0,17.1.0,17.3.0,17.3.1,17.3.2,17.3.3,17.3.4,17.4.0,17.5.0,17.6.0,18.0.0,19.0.0,19.0.1,20.0.0,20.0.1,20.1.0,20.1.1,20.1.2,20.1.3,20.1.4,20.1.5,20.1.6,20.1.7,20.2.0,20.2.1,20.2.2,20.2.3,20.2.4,20.3.0,21.0.0,21.0.1,21.1.0,22.0.0,23.0.0,23.0.1,23.0.2,23.0.3,23.0.4,23.0.5,23.0.6,23.0.7"/>
<firebase-messaging-directboot versions="20.2.0,20.2.1,20.2.2,20.2.3,20.2.4,20.3.0,21.0.0,21.0.1,21.1.0,22.0.0,23.0.0,23.0.1,23.0.2,23.0.3,23.0.4,23.0.5,23.0.6,23.0.7"/>
<firebase-messaging-ktx versions="20.3.0,21.0.0,21.0.1,22.0.0,23.0.0,23.0.1,23.0.2,23.0.3,23.0.4,23.0.5,23.0.6,23.0.7"/>
<firebase-messaging-license versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<firebase-ml-common versions="15.0.0,16.0.0,16.1.2,16.1.4,16.1.5,16.1.6,16.2.1,16.2.3,17.0.0,19.0.0,20.0.0,20.0.1,21.0.0,22.0.0,22.0.1,22.1.0,22.1.1,22.1.2"/>
<firebase-ml-model-interpreter versions="15.0.0,16.0.0,16.2.0,16.2.2,16.2.3,16.2.4,17.0.1,17.0.3,18.0.0,19.0.0,20.0.0,20.0.1,21.0.0,22.0.0,22.0.1,22.0.2,22.0.3,22.0.4"/>
<firebase-ml-modeldownloader versions="23.0.0,23.0.1,24.0.0,24.0.1,24.0.2"/>
<firebase-ml-modeldownloader-ktx versions="23.0.1,24.0.0,24.0.1,24.0.2"/>
<firebase-ml-modeldownloader versions="23.0.0,23.0.1,24.0.0,24.0.1,24.0.2,24.0.3,24.0.4"/>
<firebase-ml-modeldownloader-ktx versions="23.0.1,24.0.0,24.0.1,24.0.2,24.0.3,24.0.4"/>
<firebase-ml-natural-language versions="18.0.0,18.1.1,18.2.0,19.0.0,19.0.1,20.0.0,20.0.1,20.0.2,21.0.0,21.0.1,21.0.2,21.0.3,22.0.0,22.0.1"/>
<firebase-ml-natural-language-language-id-model versions="18.0.0,18.0.2,18.0.3,19.0.0,19.0.1,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,20.0.5,20.0.6,20.0.7,20.0.8"/>
<firebase-ml-natural-language-smart-reply versions="16.3.6,17.0.0,17.0.1,18.0.0,18.0.1,18.0.2,18.0.3,18.0.4,18.0.5,18.0.6,18.0.7,18.0.8"/>
@ -94,14 +99,14 @@
<firebase-ml-vision-image-label-model versions="15.0.0,16.2.0,17.0.2,18.0.0,19.0.0,20.0.0,20.0.1,20.0.2"/>
<firebase-ml-vision-internal-vkp versions="16.0.0,16.0.1,16.0.2,17.0.0,17.0.1,17.0.2"/>
<firebase-ml-vision-object-detection-model versions="16.0.0,17.0.0,18.0.0,19.0.1,19.0.2,19.0.3,19.0.4,19.0.5,19.0.6"/>
<firebase-perf versions="10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.1.0,15.2.0,16.0.0,16.1.0,16.1.2,16.2.0,16.2.1,16.2.2,16.2.3,16.2.4,16.2.5,17.0.0,17.0.2,18.0.0,18.0.1,19.0.0,19.0.1,19.0.2,19.0.3,19.0.4,19.0.5,19.0.6,19.0.7,19.0.8,19.0.9,19.0.10,19.0.11,19.1.0,19.1.1,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,20.0.5"/>
<firebase-perf-ktx versions="19.0.9,19.0.10,19.0.11,19.1.0,19.1.1,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,20.0.5"/>
<firebase-perf versions="10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.1.0,15.2.0,16.0.0,16.1.0,16.1.2,16.2.0,16.2.1,16.2.2,16.2.3,16.2.4,16.2.5,17.0.0,17.0.2,18.0.0,18.0.1,19.0.0,19.0.1,19.0.2,19.0.3,19.0.4,19.0.5,19.0.6,19.0.7,19.0.8,19.0.9,19.0.10,19.0.11,19.1.0,19.1.1,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,20.0.5,20.0.6,20.1.0"/>
<firebase-perf-ktx versions="19.0.9,19.0.10,19.0.11,19.1.0,19.1.1,20.0.0,20.0.1,20.0.2,20.0.3,20.0.4,20.0.5,20.0.6,20.1.0"/>
<firebase-perf-license versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<firebase-plugins versions="1.1.2,1.1.3,1.1.4,1.1.5,1.2.0,2.0.0"/>
<firebase-storage versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,16.0.1,16.0.2,16.0.3,16.0.4,16.0.5,16.1.0,17.0.0,18.0.0,18.1.0,18.1.1,19.0.0,19.0.1,19.1.0,19.1.1,19.2.0,19.2.1,19.2.2,20.0.0"/>
<firebase-storage versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,16.0.1,16.0.2,16.0.3,16.0.4,16.0.5,16.1.0,17.0.0,18.0.0,18.1.0,18.1.1,19.0.0,19.0.1,19.1.0,19.1.1,19.2.0,19.2.1,19.2.2,20.0.0,20.0.1"/>
<firebase-storage-common versions="9.0.0,9.0.1,9.0.2,9.2.0,9.2.1,9.4.0,9.6.0,9.6.1,9.8.0,10.0.0,10.0.1,10.2.0,10.2.1,10.2.4,10.2.6,11.0.0,11.0.1,11.0.2,11.0.4,11.2.0,11.2.2,11.4.0,11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1,15.0.0,15.0.2,16.0.1,16.0.2,17.0.0"/>
<firebase-storage-common-license versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<firebase-storage-ktx versions="19.1.0,19.1.1,19.2.0,19.2.1,19.2.2,20.0.0"/>
<firebase-storage-ktx versions="19.1.0,19.1.1,19.2.0,19.2.1,19.2.2,20.0.0,20.0.1"/>
<firebase-storage-license versions="11.4.2,11.6.0,11.6.2,11.8.0,12.0.0,12.0.1"/>
<perf-plugin versions="1.1.2,1.1.3,1.1.4,1.1.5,1.2.0,1.2.1,1.3.0,1.3.1,1.3.2,1.3.3,1.3.4,1.3.5,1.4.0,1.4.1"/>
<protolite-well-known-types versions="15.0.0,16.0.0,16.0.1,17.0.0,17.1.0,17.1.1,18.0.0"/>

View File

@ -36,6 +36,7 @@
<androidx.contentpager/>
<androidx.coordinatorlayout/>
<androidx.core/>
<androidx.core.uwb/>
<androidx.cursoradapter/>
<androidx.customview/>
<androidx.databinding/>
@ -118,15 +119,20 @@
<com.android.asset-pack/>
<com.android.asset-pack-bundle/>
<com.android.billingclient/>
<com.android.car.setupwizardlib/>
<com.android.car.ui/>
<com.android.databinding/>
<com.android.dynamic-feature/>
<com.android.fused-library/>
<com.android.installreferrer/>
<com.android.internal.settings/>
<com.android.java.tools.build/>
<com.android.library/>
<com.android.lint/>
<com.android.ndk.thirdparty/>
<com.android.privacy-sandbox-sdk/>
<com.android.reporting/>
<com.android.settings/>
<com.android.support/>
<com.android.support.constraint/>
<com.android.support.test/>
@ -161,6 +167,7 @@
<com.google.android.ads/>
<com.google.android.ads.consent/>
<com.google.android.apps.common.testing.accessibility.framework/>
<com.google.android.car.connectionservice/>
<com.google.android.datatransport/>
<com.google.android.enterprise.connectedapps/>
<com.google.android.exoplayer/>
@ -177,6 +184,7 @@
<com.google.android.libraries.maps/>
<com.google.android.libraries.mapsplatform.secrets-gradle-plugin/>
<com.google.android.libraries.places/>
<com.google.android.libraries.play.games/>
<com.google.android.material/>
<com.google.android.mediahome/>
<com.google.android.odml/>
@ -191,6 +199,7 @@
<com.google.ar.sceneform.ux/>
<com.google.assistant.appactions/>
<com.google.assistant.suggestion/>
<com.google.camerax.effects/>
<com.google.chromeos/>
<com.google.devtools.ksp/>
<com.google.fhir/>
@ -203,6 +212,7 @@
<com.google.jacquard/>
<com.google.mediapipe/>
<com.google.mlkit/>
<com.google.net.cronet/>
<com.google.oboe/>
<com.google.prefab/>
<com.google.test.platform/>

View File

@ -110,6 +110,9 @@
<versions from="9.0.1" />
<versions from="9.0.0" />
</library>
<library groupId="com.google.firebase" artifactId="firebase-config">
<versions from="21.1.0" to="21.1.0" status="deprecated" description="Bug affecting some locales causing HTTP errors" url="https://firebase.google.com/docs/remote-config/get-started?platform=android" />
</library>
<library groupId="com.google.firebase" artifactId="firebase-crashlytics" recommended-version="17.2.2">
<versions from="17.0.0-beta01" to="17.0.0-beta01" status="deprecated" description="The Firebase Crashlytics beta SDK is now deprecated and will continue reporting your app's crashes only until November 15, 2020. To continue getting crash reports in the Firebase console, make sure you upgrade to the generally available Firebase Crashlytics SDK version 17.0.0+.&#13;&#10;For more information, visit https://firebase.google.com/docs/crashlytics/get-started" url="https://firebase.google.com/docs/crashlytics/get-started?platform=android" />
<versions from="17.0.0-beta02" to="17.0.0-beta02" status="deprecated" description="The Firebase Crashlytics beta SDK is now deprecated and will continue reporting your app's crashes only until November 15, 2020. To continue getting crash reports in the Firebase console, make sure you upgrade to the generally available Firebase Crashlytics SDK version 17.0.0+.&#13;&#10;For more information, visit https://firebase.google.com/docs/crashlytics/get-started" url="https://firebase.google.com/docs/crashlytics/get-started?platform=android" />

View File

@ -7,9 +7,7 @@
</configuration>
</facet>
</component>
<component name="NewModuleRootManager">
<output url="file://$MODULE_DIR$/out/production/classes" />
<output-test url="file://$MODULE_DIR$/out/test/classes" />
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.gradle" />