From 4abe0cdd7a7338bf01876996b0ee44f37dd36709 Mon Sep 17 00:00:00 2001 From: Danilo Santos Nascimento Date: Tue, 2 Jun 2020 13:00:48 -0300 Subject: [PATCH 1/2] 02/06/2020 Desafio concluido Nexaas --- APPDESAFIO/.gitignore | 14 + APPDESAFIO/.idea/.name | 1 + APPDESAFIO/.idea/codeStyles/Project.xml | 122 +++++++++ .../.idea/codeStyles/codeStyleConfig.xml | 5 + APPDESAFIO/.idea/gradle.xml | 20 ++ APPDESAFIO/.idea/misc.xml | 9 + APPDESAFIO/.idea/runConfigurations.xml | 12 + APPDESAFIO/.idea/vcs.xml | 6 + APPDESAFIO/.project | 17 ++ .../org.eclipse.buildship.core.prefs | 13 + APPDESAFIO/README.md | 12 + APPDESAFIO/app/.classpath | 6 + APPDESAFIO/app/.gitignore | 1 + APPDESAFIO/app/.project | 23 ++ .../org.eclipse.buildship.core.prefs | 13 + APPDESAFIO/app/build.gradle | 59 +++++ APPDESAFIO/app/proguard-rules.pro | 21 ++ .../cart/ExampleInstrumentedTest.kt | 24 ++ .../com/appdesafio/cart/VerificaPrincipais.kt | 30 +++ APPDESAFIO/app/src/main/AndroidManifest.xml | 23 ++ .../app/src/main/ic_launcher-playstore.png | Bin 0 -> 26660 bytes .../appdesafio/cart/Validators/Validator.kt | 36 +++ .../java/com/appdesafio/cart/model/DaoProd.kt | 35 +++ .../com/appdesafio/cart/model/DbHelper.kt | 27 ++ .../java/com/appdesafio/cart/model/Produto.kt | 17 ++ .../appdesafio/cart/model/ProdutoFactory.kt | 10 + .../com/appdesafio/cart/model/ProdutoModel.kt | 30 +++ .../com/appdesafio/cart/model/Repositorio.kt | 63 +++++ .../com/appdesafio/cart/services/ApiConfig.kt | 39 +++ .../com/appdesafio/cart/services/ApiData.kt | 9 + .../com/appdesafio/cart/services/Network.kt | 29 +++ .../appdesafio/cart/ui/Activities/Holder.kt | 40 +++ .../ui/Activities/ListaProdutosActivity.kt | 16 ++ .../cart/ui/Activities/ProdutosActivity.kt | 93 +++++++ .../ui/Activities/detalhesProdutosActivity.kt | 80 ++++++ .../cart/ui/adapters/ProdutoAdapter.kt | 30 +++ .../material/bottomappbar/BottomAppBar.java | 19 ++ .../app/src/main/res/anim/anima_item.xml | 26 ++ .../src/main/res/anim/anima_tela_inicial.xml | 7 + .../res/drawable-v24/ic_close_black_24dp.xml | 9 + .../drawable-v24/ic_favorite_black_24dp.xml | 9 + .../drawable-v24/ic_favorite_white_24dp.xml | 5 + .../drawable-v24/ic_launcher_background.xml | 170 ++++++++++++ .../drawable-v24/ic_launcher_foreground.xml | 30 +++ .../res/drawable-v24/ic_menu_black_24dp.xml | 9 + .../drawable-v24/ic_more_vert_white_24dp.xml | 5 + .../res/drawable-v24/ic_search_black_24dp.xml | 9 + .../res/drawable-v24/ic_search_white_24dp.xml | 5 + .../app/src/main/res/drawable-v24/produto.jpg | Bin 0 -> 3939 bytes .../res/drawable/ic_launcher_background.xml | 76 ++++++ .../main/res/drawable/ic_menu_white_24dp.xml | 5 + .../res/drawable/ic_more_vert_black_24dp.xml | 9 + APPDESAFIO/app/src/main/res/drawable/logo.png | Bin 0 -> 9085 bytes .../app/src/main/res/layout/activity_main.xml | 23 ++ .../src/main/res/layout/detalhes_produtos.xml | 116 +++++++++ APPDESAFIO/app/src/main/res/layout/item.xml | 56 ++++ .../app/src/main/res/layout/produtos.xml | 241 ++++++++++++++++++ APPDESAFIO/app/src/main/res/menu/menu.xml | 25 ++ .../app/src/main/res/menu/menu_produtos.xml | 18 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 1852 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 2696 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 3732 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1171 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 1564 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2246 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 2727 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 3893 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 5599 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 4409 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 6646 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 9094 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 6505 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 10362 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 13240 bytes .../main/res/navigation/transicao_telas.xml | 34 +++ APPDESAFIO/app/src/main/res/values/colors.xml | 12 + .../res/values/ic_launcher_background.xml | 4 + .../app/src/main/res/values/strings.xml | 21 ++ APPDESAFIO/app/src/main/res/values/styles.xml | 25 ++ .../com/appdesafio/cart/ExampleUnitTest.kt | 17 ++ APPDESAFIO/build.gradle | 29 +++ APPDESAFIO/gradle.properties | 21 ++ APPDESAFIO/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54329 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + APPDESAFIO/gradlew | 172 +++++++++++++ APPDESAFIO/gradlew.bat | 84 ++++++ APPDESAFIO/settings.gradle | 2 + 89 files changed, 2294 insertions(+) create mode 100644 APPDESAFIO/.gitignore create mode 100644 APPDESAFIO/.idea/.name create mode 100644 APPDESAFIO/.idea/codeStyles/Project.xml create mode 100644 APPDESAFIO/.idea/codeStyles/codeStyleConfig.xml create mode 100644 APPDESAFIO/.idea/gradle.xml create mode 100644 APPDESAFIO/.idea/misc.xml create mode 100644 APPDESAFIO/.idea/runConfigurations.xml create mode 100644 APPDESAFIO/.idea/vcs.xml create mode 100644 APPDESAFIO/.project create mode 100644 APPDESAFIO/.settings/org.eclipse.buildship.core.prefs create mode 100644 APPDESAFIO/README.md create mode 100644 APPDESAFIO/app/.classpath create mode 100644 APPDESAFIO/app/.gitignore create mode 100644 APPDESAFIO/app/.project create mode 100644 APPDESAFIO/app/.settings/org.eclipse.buildship.core.prefs create mode 100644 APPDESAFIO/app/build.gradle create mode 100644 APPDESAFIO/app/proguard-rules.pro create mode 100644 APPDESAFIO/app/src/androidTest/java/com/appdesafio/cart/ExampleInstrumentedTest.kt create mode 100644 APPDESAFIO/app/src/androidTest/java/com/appdesafio/cart/VerificaPrincipais.kt create mode 100644 APPDESAFIO/app/src/main/AndroidManifest.xml create mode 100644 APPDESAFIO/app/src/main/ic_launcher-playstore.png create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/Validators/Validator.kt create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/DaoProd.kt create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/DbHelper.kt create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/Produto.kt create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/ProdutoFactory.kt create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/ProdutoModel.kt create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/Repositorio.kt create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/services/ApiConfig.kt create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/services/ApiData.kt create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/services/Network.kt create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/Holder.kt create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/ListaProdutosActivity.kt create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/ProdutosActivity.kt create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/detalhesProdutosActivity.kt create mode 100644 APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/adapters/ProdutoAdapter.kt create mode 100644 APPDESAFIO/app/src/main/java/com/google/android/material/bottomappbar/BottomAppBar.java create mode 100644 APPDESAFIO/app/src/main/res/anim/anima_item.xml create mode 100644 APPDESAFIO/app/src/main/res/anim/anima_tela_inicial.xml create mode 100644 APPDESAFIO/app/src/main/res/drawable-v24/ic_close_black_24dp.xml create mode 100644 APPDESAFIO/app/src/main/res/drawable-v24/ic_favorite_black_24dp.xml create mode 100644 APPDESAFIO/app/src/main/res/drawable-v24/ic_favorite_white_24dp.xml create mode 100644 APPDESAFIO/app/src/main/res/drawable-v24/ic_launcher_background.xml create mode 100644 APPDESAFIO/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 APPDESAFIO/app/src/main/res/drawable-v24/ic_menu_black_24dp.xml create mode 100644 APPDESAFIO/app/src/main/res/drawable-v24/ic_more_vert_white_24dp.xml create mode 100644 APPDESAFIO/app/src/main/res/drawable-v24/ic_search_black_24dp.xml create mode 100644 APPDESAFIO/app/src/main/res/drawable-v24/ic_search_white_24dp.xml create mode 100644 APPDESAFIO/app/src/main/res/drawable-v24/produto.jpg create mode 100644 APPDESAFIO/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 APPDESAFIO/app/src/main/res/drawable/ic_menu_white_24dp.xml create mode 100644 APPDESAFIO/app/src/main/res/drawable/ic_more_vert_black_24dp.xml create mode 100644 APPDESAFIO/app/src/main/res/drawable/logo.png create mode 100644 APPDESAFIO/app/src/main/res/layout/activity_main.xml create mode 100644 APPDESAFIO/app/src/main/res/layout/detalhes_produtos.xml create mode 100644 APPDESAFIO/app/src/main/res/layout/item.xml create mode 100644 APPDESAFIO/app/src/main/res/layout/produtos.xml create mode 100644 APPDESAFIO/app/src/main/res/menu/menu.xml create mode 100644 APPDESAFIO/app/src/main/res/menu/menu_produtos.xml create mode 100644 APPDESAFIO/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 APPDESAFIO/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 APPDESAFIO/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 APPDESAFIO/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 APPDESAFIO/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 APPDESAFIO/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 APPDESAFIO/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 APPDESAFIO/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 APPDESAFIO/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 APPDESAFIO/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 APPDESAFIO/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 APPDESAFIO/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 APPDESAFIO/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 APPDESAFIO/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 APPDESAFIO/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 APPDESAFIO/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 APPDESAFIO/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 APPDESAFIO/app/src/main/res/navigation/transicao_telas.xml create mode 100644 APPDESAFIO/app/src/main/res/values/colors.xml create mode 100644 APPDESAFIO/app/src/main/res/values/ic_launcher_background.xml create mode 100644 APPDESAFIO/app/src/main/res/values/strings.xml create mode 100644 APPDESAFIO/app/src/main/res/values/styles.xml create mode 100644 APPDESAFIO/app/src/test/java/com/appdesafio/cart/ExampleUnitTest.kt create mode 100644 APPDESAFIO/build.gradle create mode 100644 APPDESAFIO/gradle.properties create mode 100644 APPDESAFIO/gradle/wrapper/gradle-wrapper.jar create mode 100644 APPDESAFIO/gradle/wrapper/gradle-wrapper.properties create mode 100644 APPDESAFIO/gradlew create mode 100644 APPDESAFIO/gradlew.bat create mode 100644 APPDESAFIO/settings.gradle diff --git a/APPDESAFIO/.gitignore b/APPDESAFIO/.gitignore new file mode 100644 index 00000000..603b1407 --- /dev/null +++ b/APPDESAFIO/.gitignore @@ -0,0 +1,14 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx diff --git a/APPDESAFIO/.idea/.name b/APPDESAFIO/.idea/.name new file mode 100644 index 00000000..91348b3e --- /dev/null +++ b/APPDESAFIO/.idea/.name @@ -0,0 +1 @@ +Cart \ No newline at end of file diff --git a/APPDESAFIO/.idea/codeStyles/Project.xml b/APPDESAFIO/.idea/codeStyles/Project.xml new file mode 100644 index 00000000..88ea3aa1 --- /dev/null +++ b/APPDESAFIO/.idea/codeStyles/Project.xml @@ -0,0 +1,122 @@ + + + + + + + + + +
+ + + + xmlns:android + + ^$ + + + +
+
+ + + + xmlns:.* + + ^$ + + + BY_NAME + +
+
+ + + + .*:id + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + .*:name + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + name + + ^$ + + + +
+
+ + + + style + + ^$ + + + +
+
+ + + + .* + + ^$ + + + BY_NAME + +
+
+ + + + .* + + http://schemas.android.com/apk/res/android + + + ANDROID_ATTRIBUTE_ORDER + +
+
+ + + + .* + + .* + + + BY_NAME + +
+
+
+
+ + +
+
\ No newline at end of file diff --git a/APPDESAFIO/.idea/codeStyles/codeStyleConfig.xml b/APPDESAFIO/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 00000000..79ee123c --- /dev/null +++ b/APPDESAFIO/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/APPDESAFIO/.idea/gradle.xml b/APPDESAFIO/.idea/gradle.xml new file mode 100644 index 00000000..5cd135a0 --- /dev/null +++ b/APPDESAFIO/.idea/gradle.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/APPDESAFIO/.idea/misc.xml b/APPDESAFIO/.idea/misc.xml new file mode 100644 index 00000000..b6ea2b11 --- /dev/null +++ b/APPDESAFIO/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/APPDESAFIO/.idea/runConfigurations.xml b/APPDESAFIO/.idea/runConfigurations.xml new file mode 100644 index 00000000..7f68460d --- /dev/null +++ b/APPDESAFIO/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/APPDESAFIO/.idea/vcs.xml b/APPDESAFIO/.idea/vcs.xml new file mode 100644 index 00000000..6c0b8635 --- /dev/null +++ b/APPDESAFIO/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/APPDESAFIO/.project b/APPDESAFIO/.project new file mode 100644 index 00000000..72771151 --- /dev/null +++ b/APPDESAFIO/.project @@ -0,0 +1,17 @@ + + + Cart + Project APPDESAFIO created by Buildship. + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + + org.eclipse.buildship.core.gradleprojectnature + + diff --git a/APPDESAFIO/.settings/org.eclipse.buildship.core.prefs b/APPDESAFIO/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 00000000..1f1c02fc --- /dev/null +++ b/APPDESAFIO/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,13 @@ +arguments= +auto.sync=false +build.scans.enabled=false +connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) +connection.project.dir= +eclipse.preferences.version=1 +gradle.user.home= +java.home=C\:/Program Files/Java/jdk1.8.0_221 +jvm.arguments= +offline.mode=false +override.workspace.settings=true +show.console.view=true +show.executions.view=true diff --git a/APPDESAFIO/README.md b/APPDESAFIO/README.md new file mode 100644 index 00000000..311a1a22 --- /dev/null +++ b/APPDESAFIO/README.md @@ -0,0 +1,12 @@ + + +Bom nesse projeto procurei minimizar o desenvolvimento , utilizando a arquitertura mvvm, porém separando por funcionalidade , tipo um ddd, utilizo nos projetos pessoais, além AAC, e outros pedidos,em relação a teste unitarios , só coloquei um healthcheck para simplificar a entrega, foi utilizado + +#RxJava +#Testes unitários - healthcheck +#Cache de imagens - Room +#Tratamentos de erros - Padrão +#Padrão de Projeto e boas práticas de Orientação a Objetos. - Mvvm +#Google AAC (Android Architecture Components) - Livedata, Room, ViewModel + + diff --git a/APPDESAFIO/app/.classpath b/APPDESAFIO/app/.classpath new file mode 100644 index 00000000..eb19361b --- /dev/null +++ b/APPDESAFIO/app/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/APPDESAFIO/app/.gitignore b/APPDESAFIO/app/.gitignore new file mode 100644 index 00000000..796b96d1 --- /dev/null +++ b/APPDESAFIO/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/APPDESAFIO/app/.project b/APPDESAFIO/app/.project new file mode 100644 index 00000000..ac485d7c --- /dev/null +++ b/APPDESAFIO/app/.project @@ -0,0 +1,23 @@ + + + app + Project app created by Buildship. + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.buildship.core.gradleprojectnature + + diff --git a/APPDESAFIO/app/.settings/org.eclipse.buildship.core.prefs b/APPDESAFIO/app/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 00000000..2f9b61ea --- /dev/null +++ b/APPDESAFIO/app/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,13 @@ +arguments= +auto.sync=false +build.scans.enabled=false +connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(6.3)) +connection.project.dir=.. +eclipse.preferences.version=1 +gradle.user.home= +java.home=C\:/Program Files/Java/jdk1.8.0_221 +jvm.arguments= +offline.mode=false +override.workspace.settings=true +show.console.view=true +show.executions.view=true diff --git a/APPDESAFIO/app/build.gradle b/APPDESAFIO/app/build.gradle new file mode 100644 index 00000000..90eba3e6 --- /dev/null +++ b/APPDESAFIO/app/build.gradle @@ -0,0 +1,59 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-kapt' + +android { + compileSdkVersion 29 + buildToolsVersion "29.0.3" + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + defaultConfig { + applicationId "com.appdesafio.cart" + minSdkVersion 21 + targetSdkVersion 29 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.core:core-ktx:1.3.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + testImplementation 'junit:junit:4.13' + androidTestImplementation 'androidx.test.ext:junit:1.1.1' + kapt "androidx.room:room-compiler:2.2.5" + implementation 'androidx.navigation:navigation-fragment-ktx:2.2.2' + implementation 'androidx.navigation:navigation-ui-ktx:2.2.2' + implementation 'com.squareup.retrofit2:retrofit:2.7.0' + implementation 'com.squareup.retrofit2:converter-gson:2.7.0' + implementation 'com.squareup.retrofit2:adapter-rxjava2:2.6.1' + implementation 'io.reactivex.rxjava2:rxjava:2.2.10' + implementation 'io.reactivex.rxjava2:rxkotlin:2.4.0' + implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' + implementation "androidx.room:room-rxjava2:2.2.5" + implementation 'androidx.recyclerview:recyclerview:1.1.0' + implementation 'androidx.cardview:cardview:1.0.0' + implementation "com.squareup.okhttp3:logging-interceptor:4.5.0" + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.0-alpha03' + implementation 'com.github.bumptech.glide:glide:4.11.0' + implementation "androidx.room:room-runtime:2.2.5" + implementation "androidx.room:room-ktx:2.2.5" + implementation 'com.google.android.material:material:1.2.0-beta01' +} diff --git a/APPDESAFIO/app/proguard-rules.pro b/APPDESAFIO/app/proguard-rules.pro new file mode 100644 index 00000000..f1b42451 --- /dev/null +++ b/APPDESAFIO/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/APPDESAFIO/app/src/androidTest/java/com/appdesafio/cart/ExampleInstrumentedTest.kt b/APPDESAFIO/app/src/androidTest/java/com/appdesafio/cart/ExampleInstrumentedTest.kt new file mode 100644 index 00000000..1d56f2c4 --- /dev/null +++ b/APPDESAFIO/app/src/androidTest/java/com/appdesafio/cart/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.appdesafio.cart + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.appdesafio.cart", appContext.packageName) + } +} diff --git a/APPDESAFIO/app/src/androidTest/java/com/appdesafio/cart/VerificaPrincipais.kt b/APPDESAFIO/app/src/androidTest/java/com/appdesafio/cart/VerificaPrincipais.kt new file mode 100644 index 00000000..e493f689 --- /dev/null +++ b/APPDESAFIO/app/src/androidTest/java/com/appdesafio/cart/VerificaPrincipais.kt @@ -0,0 +1,30 @@ +package com.appdesafio.cart +import org.junit.Assert.* +import org.junit.Test +import com.appdesafio.cart.services.ApiConfig.Companion.url +import java.io.IOException +import java.net.URL +import java.net.HttpURLConnection + +class VerificaPrincipais { + @Test + fun getStatusApi(urlPath:String) { + try + { val urlCheck = URL(url) + val conn = urlCheck.openConnection() as HttpURLConnection + conn.setRequestMethod("GET") + conn.connect() + var result:Boolean + if (conn.getResponseCode() === 200) { + result = true + assertTrue(result) + }else{ + result = false + assertFalse(result) + } + } + catch (e: IOException) { + throw RuntimeException(e) + } + } +} diff --git a/APPDESAFIO/app/src/main/AndroidManifest.xml b/APPDESAFIO/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..4cf36a55 --- /dev/null +++ b/APPDESAFIO/app/src/main/AndroidManifest.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/ic_launcher-playstore.png b/APPDESAFIO/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..631da3976264975852321565722f438f7db146e5 GIT binary patch literal 26660 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 : MutableLiveData() { + companion object { + private val TAG = "Validator" + } + private val live = AtomicBoolean(false) + @MainThread + override fun observe(owner: LifecycleOwner, observer: Observer) { + if (hasActiveObservers()) { + Log.w(TAG, "Erro Observe MultiLivedata") + } + super.observe(owner, Observer { t -> + if (live.compareAndSet(true, false)) { + observer.onChanged(t) + } + }) + } + @MainThread + override fun setValue(t: T?) { + live.set(true) + super.setValue(t) + } + @MainThread + fun call() { + value = null + } +} \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/DaoProd.kt b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/DaoProd.kt new file mode 100644 index 00000000..264b0ef5 --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/DaoProd.kt @@ -0,0 +1,35 @@ +package com.appdesafio.cart.model +import io.reactivex.Observable +import androidx.room.* + +@Dao +interface DaoProd { + @Transaction + fun refatorarBD(produtos: List) { + delete() + save(produtos) + } + @Query("DELETE" + + " FROM " + + " produtos" + ) + fun delete() + @Insert(onConflict = OnConflictStrategy.REPLACE) + fun save(produtos: List) + @Query( + "SELECT" + + " *" + + " FROM" + + " produtos " + + " WHERE ID=:id" + ) + fun getProdutoById(id: String): Observable + + @Query( + "SELECT" + + " *" + + " FROM" + + " produtos" + ) + fun getProdutos(): Observable> +} \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/DbHelper.kt b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/DbHelper.kt new file mode 100644 index 00000000..d8b2517e --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/DbHelper.kt @@ -0,0 +1,27 @@ +package com.appdesafio.cart.model +import android.content.Context +import android.util.Log +import androidx.room.* +import java.io.IOException + +@Database( + entities = [Produto::class], + version = 1 +) +abstract class DbHelper : RoomDatabase(){ + abstract fun daoProd(): DaoProd + companion object { + fun create(context: Context): DbHelper { + try{ + return Room.databaseBuilder( + context, + DbHelper::class.java, + "produtos" + ).build() + }catch (e: IOException) { + Log.e("ERRO Dbhelper", "Erro ao salvar dados") + throw RuntimeException(e) + } + } + } +} \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/Produto.kt b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/Produto.kt new file mode 100644 index 00000000..a0298047 --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/Produto.kt @@ -0,0 +1,17 @@ +package com.appdesafio.cart.model +import androidx.room.* +import com.google.gson.annotations.SerializedName + +@Entity(tableName = "produtos") +data class Produto( + @PrimaryKey(autoGenerate = true) + @field:SerializedName("id") var id: Int = 0, + @field:SerializedName("shipping") val shipping: Int, + @field:SerializedName("description") val descricao: String, + @field:SerializedName("name") val nome: String, + @field:SerializedName("quantity") val quantidade: Int, + @field:SerializedName("stock") val estoque: Int, + @field:SerializedName("image_url") val imageUrl: String, + @field:SerializedName("price") val preco: Int, + @field:SerializedName("tax") val taxa: Int +){} \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/ProdutoFactory.kt b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/ProdutoFactory.kt new file mode 100644 index 00000000..ba44d6a9 --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/ProdutoFactory.kt @@ -0,0 +1,10 @@ +package com.appdesafio.cart.model +import androidx.lifecycle.* + +class ProdutoFactory( private val repo: Repositorio ) : + ViewModelProvider.Factory { + override fun + create(modelClass: Class): T { + return ProdutoModel(repo) as T + } +} diff --git a/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/ProdutoModel.kt b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/ProdutoModel.kt new file mode 100644 index 00000000..4123dfa2 --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/ProdutoModel.kt @@ -0,0 +1,30 @@ +package com.appdesafio.cart.model +import com.appdesafio.cart.Validators.Validator +import androidx.lifecycle.* + +import android.util.Log + +private const val TAG = "ERRO AO BUSCAR PRODUTOS" + +class ProdutoModel(private val repo: Repositorio) : ViewModel() { + var onLoadFinished = Validator() + var onError = Validator() + var prod: MutableLiveData> = MutableLiveData() + fun getProdutos() { + repo.getProdutos( + onSuccess = { data -> + this.prod.value = data + onLoadFinished.call() + }, + onError = { erro -> + onError.value = erro + onError.call() + onLoadFinished.call() + Log.e(TAG, "Ocorreu erro inesperado ao buscar produtos") + }, + showOfflineProducts = { off -> + prod.value = off + } + ) + } +} diff --git a/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/Repositorio.kt b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/Repositorio.kt new file mode 100644 index 00000000..8b1ac4f3 --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/model/Repositorio.kt @@ -0,0 +1,63 @@ +package com.appdesafio.cart.model +import android.annotation.SuppressLint +import android.util.Log +import io.reactivex.* +import com.appdesafio.cart.services.Network +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.disposables.Disposable +import io.reactivex.schedulers.Schedulers + +open class Repositorio( + private val db: DaoProd +) { + @SuppressLint("CheckResult") + private fun getProdutosDB( + onSuccess: (produtos: List) -> Unit, + onError: (error: String) -> Unit + ) { + db.getProdutos() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ data -> + onSuccess(data) + }, { + onError(it.message.toString()) + }) + } + + private fun update(produtos: List) { + Completable.fromAction { + db.refatorarBD(produtos) + }.subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : CompletableObserver { + override fun onComplete() { + Log.i("Salva Produto Local", "Produto Salvo") + } + override fun onSubscribe(d: Disposable) { + } + override fun onError(e: Throwable) { + } + }) + } + + fun getProdutos( + showOfflineProducts: (produtos: List) -> Unit, + onSuccess: (produtos: List) -> Unit, + onError: (error: String) -> Unit + ) { + Network.getProdutosService( + onSuccess = { productsResponse -> + update(productsResponse) + getProdutosDB(onSuccess, onError) + }, + onError = { erro -> + onError(erro.message.toString()) + getProdutosDB(onSuccess = { + showOfflineProducts(it) + }, onError = { + }) + } + ) + } +} \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/java/com/appdesafio/cart/services/ApiConfig.kt b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/services/ApiConfig.kt new file mode 100644 index 00000000..f0d745de --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/services/ApiConfig.kt @@ -0,0 +1,39 @@ +package com.appdesafio.cart.services +import okhttp3.OkHttpClient +import okhttp3.logging.HttpLoggingInterceptor +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory +import java.util.concurrent.TimeUnit + +import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory + +const val produtoId = "produtoId" +abstract class ApiConfig { + object httpOk { + private fun getClientBuilder(loggingLevel: HttpLoggingInterceptor.Level): OkHttpClient.Builder { + val okHttpBuilder = OkHttpClient.Builder() + with(okHttpBuilder) { + connectTimeout(15, TimeUnit.SECONDS) + writeTimeout(45, TimeUnit.SECONDS) + readTimeout(80, TimeUnit.SECONDS) + } + return okHttpBuilder + } + val defaultOkHttpClient: OkHttpClient = getClientBuilder( + HttpLoggingInterceptor.Level.BODY + ).build() + } + companion object { + const val url ="https://raw.githubusercontent.com/myfreecomm/desafio-mobile-android/master/api/" + } + protected fun getRetrofitBuilder(): Retrofit.Builder { + val retrofitBuilder = Retrofit.Builder() + with(retrofitBuilder) { + baseUrl(url) + addConverterFactory(GsonConverterFactory.create()) + addCallAdapterFactory(RxJava2CallAdapterFactory.create()) + client(httpOk.defaultOkHttpClient) + } + return retrofitBuilder + } +} \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/java/com/appdesafio/cart/services/ApiData.kt b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/services/ApiData.kt new file mode 100644 index 00000000..f13dc9f1 --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/services/ApiData.kt @@ -0,0 +1,9 @@ +package com.appdesafio.cart.services +import retrofit2.http.GET +import com.appdesafio.cart.model.Produto +import com.appdesafio.cart.services.ApiConfig.Companion.url +import io.reactivex.Observable + +interface ApiData { + @GET("$url/data.json") fun getDataProdutos(): Observable> +} \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/java/com/appdesafio/cart/services/Network.kt b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/services/Network.kt new file mode 100644 index 00000000..adaa1ae6 --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/services/Network.kt @@ -0,0 +1,29 @@ +package com.appdesafio.cart.services +import android.annotation.SuppressLint +import com.appdesafio.cart.model.Produto +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.schedulers.Schedulers + +object Network : ApiConfig() { + private val apiConfig by lazy { + getRetrofitBuilder() + .build() + .create(ApiData::class.java) + } + @SuppressLint("CheckResult") + fun getProdutosService( + onSuccess: (productsResponse: List) -> Unit, + onError: (error: Throwable) -> Unit + ) { + apiConfig.getDataProdutos() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ data -> + data?.let { + onSuccess(it) + } + }, { erro -> + onError(erro) + }) + } +} \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/Holder.kt b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/Holder.kt new file mode 100644 index 00000000..d389f02a --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/Holder.kt @@ -0,0 +1,40 @@ +package com.appdesafio.cart.ui.activities + +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.recyclerview.widget.RecyclerView +import com.appdesafio.cart.model.Produto +import com.appdesafio.cart.R +import com.bumptech.glide.Glide +import kotlinx.android.synthetic.main.item.view.* +import java.text.DecimalFormat + +class Holder(private val view: View) : RecyclerView.ViewHolder(view) { + + fun carragaProdutos( + produto: Produto, + clickListener: (produtoId: Int) -> Unit + ) { + with(view) { + setOnClickListener { clickListener(produto.id) } + txtEstItemId.text = when(produto.estoque) { + 0 -> resources.getString(R.string.out_stock) + 1 -> resources.getString(R.string.only_one) + else -> resources.getString(R.string.in_stock) + } + + txtItemId.text = produto.nome + val dec = DecimalFormat("#,##") + val valor = dec.format(produto.preco) + precoId.text = "$" + "${valor}" + Glide.with(this) + .load(produto.imageUrl) + .placeholder(R.drawable.produto) + .override( + ConstraintLayout.LayoutParams.WRAP_CONTENT, + ConstraintLayout.LayoutParams.WRAP_CONTENT + ) + .into(imagemProdId) + } + } +} \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/ListaProdutosActivity.kt b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/ListaProdutosActivity.kt new file mode 100644 index 00000000..284a7cd1 --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/ListaProdutosActivity.kt @@ -0,0 +1,16 @@ +package com.appdesafio.cart.ui.activities + +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import com.appdesafio.cart.R + +class ListaProdutosActivity : AppCompatActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_main) + } + + override fun onBackPressed() { + } +} diff --git a/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/ProdutosActivity.kt b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/ProdutosActivity.kt new file mode 100644 index 00000000..c5d0516d --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/ProdutosActivity.kt @@ -0,0 +1,93 @@ +package com.appdesafio.cart.ui.activities + +import android.os.Bundle +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.view.animation.AnimationUtils +import android.widget.Toast +import androidx.fragment.app.Fragment +import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProvider +import androidx.navigation.fragment.findNavController +import com.appdesafio.cart.model.DbHelper +import com.appdesafio.cart.model.Repositorio +import com.appdesafio.cart.model.ProdutoModel +import com.appdesafio.cart.R +import com.appdesafio.cart.services.produtoId +import com.appdesafio.cart.ui.adapters.ProdutoAdapter +import com.appdesafio.cart.model.ProdutoFactory +import kotlinx.android.synthetic.main.produtos.* + +class ProdutosActivity : Fragment() { + private lateinit var Padapter: ProdutoAdapter + private lateinit var model: ProdutoModel + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + return inflater.inflate(R.layout.produtos, container, false) + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + Padapter = + ProdutoAdapter( + clickListener = { + val data = Bundle() + data.putString(produtoId, it.toString()) + findNavController().navigate( + R.id.transicaoParaDetalhesId,data) + } + ) + setmodel() + setRview() + UiSubs() + } + + override fun onResume() { + super.onResume() + model.getProdutos() + } + fun setmodel() { + val db = DbHelper.create(requireContext()).daoProd() + model = ViewModelProvider( + requireActivity(), + ProdutoFactory( + Repositorio(db) + ) + ).get(ProdutoModel::class.java) + } + fun setRview() { + with(listarProdutosView) { + setHasFixedSize(true) + adapter = Padapter + layoutAnimation = + AnimationUtils + .loadLayoutAnimation(this.context, R.anim.anima_tela_inicial) + } + } + fun UiSubs() { + with(model) { + + onLoadFinished.observe(viewLifecycleOwner, + Observer { + loadingLayout.visibility = View.GONE + contentLayout.visibility = View.VISIBLE + }) + onError.observe(viewLifecycleOwner, + Observer { erro -> + Toast.makeText(context, "não foi possivel atualizar informações", Toast.LENGTH_SHORT) + .show() + Log.e("ERRO UiSubs", "Erro ao buscar produtos: $erro") + }) + + prod.observe(viewLifecycleOwner, + Observer { data -> + Padapter.update(data) + textProductsQtd.text = getString(R.string.qtdProds) + }) + } + } + +} diff --git a/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/detalhesProdutosActivity.kt b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/detalhesProdutosActivity.kt new file mode 100644 index 00000000..b9665183 --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/Activities/detalhesProdutosActivity.kt @@ -0,0 +1,80 @@ +package com.appdesafio.cart.ui.activities + +import android.annotation.SuppressLint +import android.os.Bundle +import android.util.Log +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import android.view.View +import android.view.ViewGroup +import com.appdesafio.cart.model.DbHelper +import androidx.fragment.app.Fragment +import androidx.navigation.fragment.findNavController +import com.appdesafio.cart.model.Produto +import com.appdesafio.cart.R +import com.appdesafio.cart.services.produtoId +import com.bumptech.glide.Glide +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.schedulers.Schedulers +import kotlinx.android.synthetic.main.detalhes_produtos.* +import java.text.DecimalFormat + +class detalhesProdutosActivity : Fragment() { + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + return inflater.inflate( + R.layout.detalhes_produtos, + container, + false + ) + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + verDetalhes() + detalhesProdutos() + } + fun detalhesProdutos() { + materialToolbar.setNavigationOnClickListener { + findNavController().navigate( + R.id.transicaoVerProdutosId + ) + } + } + fun setProduto(produto: Produto?) { + txt_detalheId.text = produto?.nome + txtEstoqueId.text = when (produto?.estoque) { + 0 -> resources.getString(R.string.out_stock) + 1 -> resources.getString(R.string.only_one) + else -> resources.getString(R.string.in_stock) + } + val dec = DecimalFormat("#,##") + val valor = dec.format(produto?.preco) + txtPreco + .text = "$" + "${valor}" + txt_descricao + .text = produto?.descricao + Glide.with(this) + .load(produto?.imageUrl) + .override( + ConstraintLayout.LayoutParams.WRAP_CONTENT, + 300 + ) + .into(ImageId) + } + @SuppressLint("CheckResult") + fun verDetalhes() { + val produtoId: String = arguments?.getString(produtoId) ?: "CARREGANDO..." + val db = DbHelper.create(requireContext()).daoProd() + db.getProdutoById(produtoId) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ data -> + setProduto(data) + }, { + Log.e("Erro Ver detalhes", it.message.toString()) + }) + } +} diff --git a/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/adapters/ProdutoAdapter.kt b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/adapters/ProdutoAdapter.kt new file mode 100644 index 00000000..58d1ca9b --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/appdesafio/cart/ui/adapters/ProdutoAdapter.kt @@ -0,0 +1,30 @@ +package com.appdesafio.cart.ui.adapters + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.appdesafio.cart.model.Produto +import com.appdesafio.cart.R +import com.appdesafio.cart.ui.activities.Holder + +class ProdutoAdapter( + private val clickListener: (produtoId: Int) -> Unit +) : RecyclerView.Adapter() { + private var produtos: List = emptyList() + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item, parent, false) + return Holder(view) + } + + override fun getItemCount(): Int { + return produtos.size + } + override fun onBindViewHolder(holder: Holder, position: Int) { + holder.carragaProdutos(produtos[position], clickListener) + } + + fun update(produtos: List) { + this.produtos = produtos + notifyDataSetChanged() + } +} \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/java/com/google/android/material/bottomappbar/BottomAppBar.java b/APPDESAFIO/app/src/main/java/com/google/android/material/bottomappbar/BottomAppBar.java new file mode 100644 index 00000000..c8967133 --- /dev/null +++ b/APPDESAFIO/app/src/main/java/com/google/android/material/bottomappbar/BottomAppBar.java @@ -0,0 +1,19 @@ +package com.google.android.material.bottomappbar; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; + +class BottomAppBar extends View { + public BottomAppBar(Context context) { + this(context, null); + } + + public BottomAppBar(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public BottomAppBar(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } +} diff --git a/APPDESAFIO/app/src/main/res/anim/anima_item.xml b/APPDESAFIO/app/src/main/res/anim/anima_item.xml new file mode 100644 index 00000000..0e32165e --- /dev/null +++ b/APPDESAFIO/app/src/main/res/anim/anima_item.xml @@ -0,0 +1,26 @@ + + + + + + + + + \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/res/anim/anima_tela_inicial.xml b/APPDESAFIO/app/src/main/res/anim/anima_tela_inicial.xml new file mode 100644 index 00000000..4f9e6425 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/anim/anima_tela_inicial.xml @@ -0,0 +1,7 @@ + + \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/res/drawable-v24/ic_close_black_24dp.xml b/APPDESAFIO/app/src/main/res/drawable-v24/ic_close_black_24dp.xml new file mode 100644 index 00000000..ede4b710 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/drawable-v24/ic_close_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/APPDESAFIO/app/src/main/res/drawable-v24/ic_favorite_black_24dp.xml b/APPDESAFIO/app/src/main/res/drawable-v24/ic_favorite_black_24dp.xml new file mode 100644 index 00000000..cfba5d84 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/drawable-v24/ic_favorite_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/APPDESAFIO/app/src/main/res/drawable-v24/ic_favorite_white_24dp.xml b/APPDESAFIO/app/src/main/res/drawable-v24/ic_favorite_white_24dp.xml new file mode 100644 index 00000000..67a25e71 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/drawable-v24/ic_favorite_white_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/APPDESAFIO/app/src/main/res/drawable-v24/ic_launcher_background.xml b/APPDESAFIO/app/src/main/res/drawable-v24/ic_launcher_background.xml new file mode 100644 index 00000000..07d5da9c --- /dev/null +++ b/APPDESAFIO/app/src/main/res/drawable-v24/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/APPDESAFIO/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/APPDESAFIO/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 00000000..2b068d11 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/res/drawable-v24/ic_menu_black_24dp.xml b/APPDESAFIO/app/src/main/res/drawable-v24/ic_menu_black_24dp.xml new file mode 100644 index 00000000..6d9343b3 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/drawable-v24/ic_menu_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/APPDESAFIO/app/src/main/res/drawable-v24/ic_more_vert_white_24dp.xml b/APPDESAFIO/app/src/main/res/drawable-v24/ic_more_vert_white_24dp.xml new file mode 100644 index 00000000..c097d3e4 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/drawable-v24/ic_more_vert_white_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/APPDESAFIO/app/src/main/res/drawable-v24/ic_search_black_24dp.xml b/APPDESAFIO/app/src/main/res/drawable-v24/ic_search_black_24dp.xml new file mode 100644 index 00000000..affc7ba2 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/drawable-v24/ic_search_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/APPDESAFIO/app/src/main/res/drawable-v24/ic_search_white_24dp.xml b/APPDESAFIO/app/src/main/res/drawable-v24/ic_search_white_24dp.xml new file mode 100644 index 00000000..be5ad99c --- /dev/null +++ b/APPDESAFIO/app/src/main/res/drawable-v24/ic_search_white_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/APPDESAFIO/app/src/main/res/drawable-v24/produto.jpg b/APPDESAFIO/app/src/main/res/drawable-v24/produto.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7f9d34e598399d209b69092d0707709343f4d089 GIT binary patch literal 3939 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 literal 0 HcmV?d00001 diff --git a/APPDESAFIO/app/src/main/res/drawable/ic_launcher_background.xml b/APPDESAFIO/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 00000000..1191ded6 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/APPDESAFIO/app/src/main/res/drawable/ic_menu_white_24dp.xml b/APPDESAFIO/app/src/main/res/drawable/ic_menu_white_24dp.xml new file mode 100644 index 00000000..de103a67 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/drawable/ic_menu_white_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/APPDESAFIO/app/src/main/res/drawable/ic_more_vert_black_24dp.xml b/APPDESAFIO/app/src/main/res/drawable/ic_more_vert_black_24dp.xml new file mode 100644 index 00000000..5176d8a4 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/drawable/ic_more_vert_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/APPDESAFIO/app/src/main/res/drawable/logo.png b/APPDESAFIO/app/src/main/res/drawable/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7dd3ab82d044f7f8266c8876514783d97e2dbd18 GIT binary patch literal 9085 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 tSoYBCyk4F;c_Vk)*npYi + + + + + \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/res/layout/detalhes_produtos.xml b/APPDESAFIO/app/src/main/res/layout/detalhes_produtos.xml new file mode 100644 index 00000000..f08ad218 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/layout/detalhes_produtos.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/res/layout/item.xml b/APPDESAFIO/app/src/main/res/layout/item.xml new file mode 100644 index 00000000..5ce0d7e3 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/layout/item.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/res/layout/produtos.xml b/APPDESAFIO/app/src/main/res/layout/produtos.xml new file mode 100644 index 00000000..7aa9ec86 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/layout/produtos.xml @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/APPDESAFIO/app/src/main/res/menu/menu.xml b/APPDESAFIO/app/src/main/res/menu/menu.xml new file mode 100644 index 00000000..887e78fe --- /dev/null +++ b/APPDESAFIO/app/src/main/res/menu/menu.xml @@ -0,0 +1,25 @@ + + + + + + + + + \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/res/menu/menu_produtos.xml b/APPDESAFIO/app/src/main/res/menu/menu_produtos.xml new file mode 100644 index 00000000..209cdfc5 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/menu/menu_produtos.xml @@ -0,0 +1,18 @@ + + + + + + + + \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/APPDESAFIO/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 00000000..036d09bc --- /dev/null +++ b/APPDESAFIO/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/APPDESAFIO/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 00000000..036d09bc --- /dev/null +++ b/APPDESAFIO/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/res/mipmap-hdpi/ic_launcher.png b/APPDESAFIO/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ccb64645432bb7de70a14645bc256be6902eaaa6 GIT binary patch literal 1852 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 literal 0 HcmV?d00001 diff --git a/APPDESAFIO/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/APPDESAFIO/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..5a073f997bf0e315bd0a3f7dbda29bbee1b8cb67 GIT binary patch literal 3732 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 literal 0 HcmV?d00001 diff --git a/APPDESAFIO/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/APPDESAFIO/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..3d0150fedf20bc6ab704f9ee4c4ae9905134c5ae GIT binary patch literal 2246 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 literal 0 HcmV?d00001 diff --git a/APPDESAFIO/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/APPDESAFIO/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..fa76d7ea7bbd54f42f64a49e59392d90404f2061 GIT binary patch literal 3893 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

2H?>6V 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 literal 0 HcmV?d00001 diff --git a/APPDESAFIO/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/APPDESAFIO/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..ee463ea7c8b48e87ac715e23669b18dbcbc042c7 GIT binary patch literal 6646 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 BHs=5U literal 0 HcmV?d00001 diff --git a/APPDESAFIO/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/APPDESAFIO/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..e4729111f73be6dab4b3b27b77785d0be39f4543 GIT binary patch literal 9094 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 literal 0 HcmV?d00001 diff --git a/APPDESAFIO/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/APPDESAFIO/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..c9509a1fc13a084fd455d9d027ba34755ee7b8ca GIT binary patch literal 10362 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 literal 0 HcmV?d00001 diff --git a/APPDESAFIO/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/APPDESAFIO/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..825b53acca9101832f1d65517c348b9d391685b5 GIT binary patch literal 13240 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 LWyxA`lfeH0t}s#F literal 0 HcmV?d00001 diff --git a/APPDESAFIO/app/src/main/res/navigation/transicao_telas.xml b/APPDESAFIO/app/src/main/res/navigation/transicao_telas.xml new file mode 100644 index 00000000..568a4b2d --- /dev/null +++ b/APPDESAFIO/app/src/main/res/navigation/transicao_telas.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/res/values/colors.xml b/APPDESAFIO/app/src/main/res/values/colors.xml new file mode 100644 index 00000000..39fe2303 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/values/colors.xml @@ -0,0 +1,12 @@ + + + #03DAC5 + #03DAC5 + #03DAC5 + #80000032 + #FFE3E3E3 + #FF383838 + #CC000000 + #FF687575 + #656535 + diff --git a/APPDESAFIO/app/src/main/res/values/ic_launcher_background.xml b/APPDESAFIO/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 00000000..c5d5899f --- /dev/null +++ b/APPDESAFIO/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/APPDESAFIO/app/src/main/res/values/strings.xml b/APPDESAFIO/app/src/main/res/values/strings.xml new file mode 100644 index 00000000..d9f849a4 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/values/strings.xml @@ -0,0 +1,21 @@ + + Cart + Search + Search Content + CHECKOUT + REMOVE FROM CART + 4 items in your cart + Favorite + Favorite Content + More + More Content + Cart + 3.24 + Shipping + $41.24 + total + out stock + only 1 left in stock + in stock + + diff --git a/APPDESAFIO/app/src/main/res/values/styles.xml b/APPDESAFIO/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..d126f811 --- /dev/null +++ b/APPDESAFIO/app/src/main/res/values/styles.xml @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/APPDESAFIO/app/src/test/java/com/appdesafio/cart/ExampleUnitTest.kt b/APPDESAFIO/app/src/test/java/com/appdesafio/cart/ExampleUnitTest.kt new file mode 100644 index 00000000..31a3d660 --- /dev/null +++ b/APPDESAFIO/app/src/test/java/com/appdesafio/cart/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.appdesafio.cart + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} diff --git a/APPDESAFIO/build.gradle b/APPDESAFIO/build.gradle new file mode 100644 index 00000000..84b783e5 --- /dev/null +++ b/APPDESAFIO/build.gradle @@ -0,0 +1,29 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + ext.kotlin_version = '1.3.72' + repositories { + google() + jcenter() + + } + dependencies { + classpath 'com.android.tools.build:gradle:3.6.3' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + jcenter() + + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/APPDESAFIO/gradle.properties b/APPDESAFIO/gradle.properties new file mode 100644 index 00000000..23339e0d --- /dev/null +++ b/APPDESAFIO/gradle.properties @@ -0,0 +1,21 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official diff --git a/APPDESAFIO/gradle/wrapper/gradle-wrapper.jar b/APPDESAFIO/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..f6b961fd5a86aa5fbfe90f707c3138408be7c718 GIT binary patch literal 54329 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

<5G2M1WZP5 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 F{|7XC?P&l2 literal 0 HcmV?d00001 diff --git a/APPDESAFIO/gradle/wrapper/gradle-wrapper.properties b/APPDESAFIO/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..9c0cdc61 --- /dev/null +++ b/APPDESAFIO/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri May 29 17:16:21 BRT 2020 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip diff --git a/APPDESAFIO/gradlew b/APPDESAFIO/gradlew new file mode 100644 index 00000000..cccdd3d5 --- /dev/null +++ b/APPDESAFIO/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/APPDESAFIO/gradlew.bat b/APPDESAFIO/gradlew.bat new file mode 100644 index 00000000..f9553162 --- /dev/null +++ b/APPDESAFIO/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/APPDESAFIO/settings.gradle b/APPDESAFIO/settings.gradle new file mode 100644 index 00000000..93350c5b --- /dev/null +++ b/APPDESAFIO/settings.gradle @@ -0,0 +1,2 @@ +rootProject.name='Cart' +include ':app' From cf136f368b58e6dc2754d8ca32cecaa0837e0bff Mon Sep 17 00:00:00 2001 From: Danilo Santos Nascimento <41460453+DaniloDev@users.noreply.github.com> Date: Tue, 2 Jun 2020 13:35:47 -0300 Subject: [PATCH 2/2] Update colors.xml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cor do botão Checkout --- APPDESAFIO/app/src/main/res/values/colors.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/APPDESAFIO/app/src/main/res/values/colors.xml b/APPDESAFIO/app/src/main/res/values/colors.xml index 39fe2303..4e68c922 100644 --- a/APPDESAFIO/app/src/main/res/values/colors.xml +++ b/APPDESAFIO/app/src/main/res/values/colors.xml @@ -4,7 +4,7 @@ #03DAC5 #03DAC5 #80000032 - #FFE3E3E3 + #FFFFFF #FF383838 #CC000000 #FF687575