From 2d5277324d1ceacb72bd87f2d0c2c97c0c204192 Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Wed, 10 Jul 2019 14:00:02 +0300 Subject: [PATCH 01/13] HW-54223. Started separating --- settings.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/settings.gradle b/settings.gradle index 905f2e4e9..f0129ca86 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,2 @@ include ':ui', ':common', ':receipt' +//add libraries here From aac90f847a23c11f583eebda2ebc53e688aebb1f Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Wed, 10 Jul 2019 15:16:15 +0300 Subject: [PATCH 02/13] HW-54223. Updated .gradle files --- android-library.gradle | 2 -- build.gradle | 2 +- common/build.gradle | 77 --------------------------------------- receipt/build.gradle | 82 +----------------------------------------- ui/build.gradle | 6 ++-- 5 files changed, 6 insertions(+), 163 deletions(-) diff --git a/android-library.gradle b/android-library.gradle index 620173287..4099585f2 100644 --- a/android-library.gradle +++ b/android-library.gradle @@ -1,6 +1,4 @@ apply plugin: 'com.android.library' -apply plugin: 'maven-publish' -apply plugin: 'signing' apply plugin: 'org.sonarqube' apply from: "$projectDir/config/jacoco-settings.gradle" diff --git a/build.gradle b/build.gradle index baab4fd0d..cf6d27824 100644 --- a/build.gradle +++ b/build.gradle @@ -38,7 +38,7 @@ subprojects { targetVersion = 28 codeVersion = 1 - hyperwalletCoreVersion = '1.0.0-beta03-SNAPSHOT' + hyperwalletCoreVersion = '1.0.0-beta03' // androidMaterialVersion = '1.0.0' appcompatVersion = '1.0.2' diff --git a/common/build.gradle b/common/build.gradle index cf60c3f49..11d5ca77a 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -1,82 +1,5 @@ apply from: "$rootProject.projectDir/android-library.gradle" - -def aarFile = file("$buildDir/outputs/aar/common-$version" + ".aar") -def aarArtifact = artifacts.add('archives', aarFile) { - type 'aar' -} - -def isReleaseVersion = !version.endsWith('SNAPSHOT') - -publishing { - - repositories { - maven { - def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" - def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots" - url = isReleaseVersion ? releasesRepoUrl : snapshotsRepoUrl - credentials { - username sonatypeUsername - password sonatypePassword - } - } - } - - publications { - hyperwalletCommonUi(MavenPublication) { - groupId = hyperwalletGroupId - artifactId = 'common' - version = version - - artifact(sourcesJar) - artifact(javadocsJar) - artifact(aarArtifact) - - pom { - name = 'Hyperwallet Android Common UI SDK' - description = 'Hyperwallet Common UI SDK for Android to integrate with Hyperwallet Platform' - url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' - pom.withXml { - def dependenciesNode = asNode().appendNode('dependencies') - configurations.implementation.allDependencies.each { - def dependencyNode = dependenciesNode.appendNode('dependency') - dependencyNode.appendNode('groupId', it.group) - dependencyNode.appendNode('artifactId', it.name) - dependencyNode.appendNode('version', it.version) - } - } - licenses { - license { - name = 'MIT License' - url = 'http://www.opensource.org/licenses/MIT' - } - } - developers { - developer { - id = 'devs' - name = 'Hyperwallet Developers' - } - } - scm { - connection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' - developerConnection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' - url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' - } - } - } - } -} - -tasks.withType(Sign) { - onlyIf { - isReleaseVersion && sonatypeUsername?.trim() && sonatypePassword?.trim() - } -} - -signing { - sign publishing.publications.hyperwalletCommonUi -} - sonarqube { properties { def libraries = project.android.sdkDirectory.getPath() + "/platforms/android-28/android.jar" diff --git a/receipt/build.gradle b/receipt/build.gradle index cff209c86..706528e2b 100644 --- a/receipt/build.gradle +++ b/receipt/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootProject.projectDir/android-library.gradle" dependencies { - api project(":common") + implementation project(":common") implementation "com.google.android.material:material:$androidMaterialVersion" implementation "androidx.constraintlayout:constraintlayout:$constraintlayoutVersion" @@ -20,86 +20,6 @@ dependencies { androidTestImplementation "com.squareup.leakcanary:leakcanary-support-fragment:$leakcanaryVersion" } -def aarFile = file("$buildDir/outputs/aar/receipt-$version" + ".aar") -def aarArtifact = artifacts.add('archives', aarFile) { - type 'aar' -} - -def isReleaseVersion = !version.endsWith('SNAPSHOT') - -publishing { - - repositories { - maven { - def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" - def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots" - url = isReleaseVersion ? releasesRepoUrl : snapshotsRepoUrl - credentials { - username sonatypeUsername - password sonatypePassword - } - } - } - - publications { - hyperwalletReceiptUi(MavenPublication) { - groupId = hyperwalletGroupId - artifactId = 'receipt' - version = version - - artifact(sourcesJar) - artifact(javadocsJar) - artifact(aarArtifact) - - pom { - name = 'Hyperwallet Android Receipt UI SDK' - description = 'Hyperwallet Receipt UI SDK for Android to integrate with Hyperwallet Platform' - url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' - pom.withXml { - def dependenciesNode = asNode().appendNode('dependencies') - configurations.implementation.allDependencies.each { - def dependencyNode = dependenciesNode.appendNode('dependency') - if (it.group == "hyperwallet-android-ui-sdk") { - dependencyNode.appendNode('groupId', "com.hyperwallet.android.ui") - } else { - dependencyNode.appendNode('groupId', it.group) - } - dependencyNode.appendNode('artifactId', it.name) - dependencyNode.appendNode('version', it.version) - } - } - licenses { - license { - name = 'MIT License' - url = 'http://www.opensource.org/licenses/MIT' - } - } - developers { - developer { - id = 'devs' - name = 'Hyperwallet Developers' - } - } - scm { - connection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' - developerConnection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' - url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' - } - } - } - } -} - -tasks.withType(Sign) { - onlyIf { - isReleaseVersion && sonatypeUsername?.trim() && sonatypePassword?.trim() - } -} - -signing { - sign publishing.publications.hyperwalletReceiptUi -} - sonarqube { properties { def libraries = project.android.sdkDirectory.getPath() + "/platforms/android-28/android.jar" diff --git a/ui/build.gradle b/ui/build.gradle index bc6fa3a49..a7edbb7a1 100644 --- a/ui/build.gradle +++ b/ui/build.gradle @@ -1,3 +1,5 @@ +apply plugin: 'maven-publish' +apply plugin: 'signing' apply from: "$rootProject.projectDir/android-library.gradle" dependencies { @@ -7,8 +9,8 @@ dependencies { implementation "androidx.legacy:legacy-support-v4:$legacySupportV4Version" implementation "androidx.recyclerview:recyclerview:$recycleViewVersion" - api project(":common") - api project(":receipt") + implementation project(":common") + implementation project(":receipt") androidTestImplementation "androidx.test:rules:$testRulesVersion" androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion" From 6947f76941b1c921bbd6d096037cb3b8584307f6 Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Mon, 15 Jul 2019 12:13:23 +0300 Subject: [PATCH 03/13] Revert "HW-54223. Updated .gradle files" This reverts commit aac90f847a23c11f583eebda2ebc53e688aebb1f. --- android-library.gradle | 2 ++ build.gradle | 2 +- common/build.gradle | 77 +++++++++++++++++++++++++++++++++++++++ receipt/build.gradle | 82 +++++++++++++++++++++++++++++++++++++++++- ui/build.gradle | 6 ++-- 5 files changed, 163 insertions(+), 6 deletions(-) diff --git a/android-library.gradle b/android-library.gradle index 4099585f2..620173287 100644 --- a/android-library.gradle +++ b/android-library.gradle @@ -1,4 +1,6 @@ apply plugin: 'com.android.library' +apply plugin: 'maven-publish' +apply plugin: 'signing' apply plugin: 'org.sonarqube' apply from: "$projectDir/config/jacoco-settings.gradle" diff --git a/build.gradle b/build.gradle index cf6d27824..baab4fd0d 100644 --- a/build.gradle +++ b/build.gradle @@ -38,7 +38,7 @@ subprojects { targetVersion = 28 codeVersion = 1 - hyperwalletCoreVersion = '1.0.0-beta03' + hyperwalletCoreVersion = '1.0.0-beta03-SNAPSHOT' // androidMaterialVersion = '1.0.0' appcompatVersion = '1.0.2' diff --git a/common/build.gradle b/common/build.gradle index 11d5ca77a..cf60c3f49 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -1,5 +1,82 @@ apply from: "$rootProject.projectDir/android-library.gradle" + +def aarFile = file("$buildDir/outputs/aar/common-$version" + ".aar") +def aarArtifact = artifacts.add('archives', aarFile) { + type 'aar' +} + +def isReleaseVersion = !version.endsWith('SNAPSHOT') + +publishing { + + repositories { + maven { + def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" + def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots" + url = isReleaseVersion ? releasesRepoUrl : snapshotsRepoUrl + credentials { + username sonatypeUsername + password sonatypePassword + } + } + } + + publications { + hyperwalletCommonUi(MavenPublication) { + groupId = hyperwalletGroupId + artifactId = 'common' + version = version + + artifact(sourcesJar) + artifact(javadocsJar) + artifact(aarArtifact) + + pom { + name = 'Hyperwallet Android Common UI SDK' + description = 'Hyperwallet Common UI SDK for Android to integrate with Hyperwallet Platform' + url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' + pom.withXml { + def dependenciesNode = asNode().appendNode('dependencies') + configurations.implementation.allDependencies.each { + def dependencyNode = dependenciesNode.appendNode('dependency') + dependencyNode.appendNode('groupId', it.group) + dependencyNode.appendNode('artifactId', it.name) + dependencyNode.appendNode('version', it.version) + } + } + licenses { + license { + name = 'MIT License' + url = 'http://www.opensource.org/licenses/MIT' + } + } + developers { + developer { + id = 'devs' + name = 'Hyperwallet Developers' + } + } + scm { + connection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' + developerConnection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' + url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' + } + } + } + } +} + +tasks.withType(Sign) { + onlyIf { + isReleaseVersion && sonatypeUsername?.trim() && sonatypePassword?.trim() + } +} + +signing { + sign publishing.publications.hyperwalletCommonUi +} + sonarqube { properties { def libraries = project.android.sdkDirectory.getPath() + "/platforms/android-28/android.jar" diff --git a/receipt/build.gradle b/receipt/build.gradle index 706528e2b..cff209c86 100644 --- a/receipt/build.gradle +++ b/receipt/build.gradle @@ -1,7 +1,7 @@ apply from: "$rootProject.projectDir/android-library.gradle" dependencies { - implementation project(":common") + api project(":common") implementation "com.google.android.material:material:$androidMaterialVersion" implementation "androidx.constraintlayout:constraintlayout:$constraintlayoutVersion" @@ -20,6 +20,86 @@ dependencies { androidTestImplementation "com.squareup.leakcanary:leakcanary-support-fragment:$leakcanaryVersion" } +def aarFile = file("$buildDir/outputs/aar/receipt-$version" + ".aar") +def aarArtifact = artifacts.add('archives', aarFile) { + type 'aar' +} + +def isReleaseVersion = !version.endsWith('SNAPSHOT') + +publishing { + + repositories { + maven { + def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" + def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots" + url = isReleaseVersion ? releasesRepoUrl : snapshotsRepoUrl + credentials { + username sonatypeUsername + password sonatypePassword + } + } + } + + publications { + hyperwalletReceiptUi(MavenPublication) { + groupId = hyperwalletGroupId + artifactId = 'receipt' + version = version + + artifact(sourcesJar) + artifact(javadocsJar) + artifact(aarArtifact) + + pom { + name = 'Hyperwallet Android Receipt UI SDK' + description = 'Hyperwallet Receipt UI SDK for Android to integrate with Hyperwallet Platform' + url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' + pom.withXml { + def dependenciesNode = asNode().appendNode('dependencies') + configurations.implementation.allDependencies.each { + def dependencyNode = dependenciesNode.appendNode('dependency') + if (it.group == "hyperwallet-android-ui-sdk") { + dependencyNode.appendNode('groupId', "com.hyperwallet.android.ui") + } else { + dependencyNode.appendNode('groupId', it.group) + } + dependencyNode.appendNode('artifactId', it.name) + dependencyNode.appendNode('version', it.version) + } + } + licenses { + license { + name = 'MIT License' + url = 'http://www.opensource.org/licenses/MIT' + } + } + developers { + developer { + id = 'devs' + name = 'Hyperwallet Developers' + } + } + scm { + connection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' + developerConnection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' + url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' + } + } + } + } +} + +tasks.withType(Sign) { + onlyIf { + isReleaseVersion && sonatypeUsername?.trim() && sonatypePassword?.trim() + } +} + +signing { + sign publishing.publications.hyperwalletReceiptUi +} + sonarqube { properties { def libraries = project.android.sdkDirectory.getPath() + "/platforms/android-28/android.jar" diff --git a/ui/build.gradle b/ui/build.gradle index a7edbb7a1..bc6fa3a49 100644 --- a/ui/build.gradle +++ b/ui/build.gradle @@ -1,5 +1,3 @@ -apply plugin: 'maven-publish' -apply plugin: 'signing' apply from: "$rootProject.projectDir/android-library.gradle" dependencies { @@ -9,8 +7,8 @@ dependencies { implementation "androidx.legacy:legacy-support-v4:$legacySupportV4Version" implementation "androidx.recyclerview:recyclerview:$recycleViewVersion" - implementation project(":common") - implementation project(":receipt") + api project(":common") + api project(":receipt") androidTestImplementation "androidx.test:rules:$testRulesVersion" androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion" From 701aeb1892390823eb6ff620e7813937b79d2999 Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Tue, 16 Jul 2019 13:03:35 +0300 Subject: [PATCH 04/13] HW-54223. Removed "snapshot" for core version, fixed package --- build.gradle | 2 +- .../android/ui/rule/HyperwalletExternalResourceManager.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index baab4fd0d..cf6d27824 100644 --- a/build.gradle +++ b/build.gradle @@ -38,7 +38,7 @@ subprojects { targetVersion = 28 codeVersion = 1 - hyperwalletCoreVersion = '1.0.0-beta03-SNAPSHOT' + hyperwalletCoreVersion = '1.0.0-beta03' // androidMaterialVersion = '1.0.0' appcompatVersion = '1.0.2' diff --git a/receipt/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java b/receipt/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java index 9061af9b8..8d935bb85 100644 --- a/receipt/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java +++ b/receipt/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.rule; +package com.hyperwallet.android.ui.rule; import org.junit.rules.TestWatcher; import org.junit.runner.Description; From 01a5feb6542c4c80e4e502b1e5ced70181855615 Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Tue, 16 Jul 2019 13:26:16 +0300 Subject: [PATCH 05/13] HW-54223. Fixed imports --- .../receipt/repository/PrepaidCardReceiptDataSourceTest.java | 3 +-- .../ui/receipt/repository/UserReceiptDataSourceTest.java | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java b/receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java index e9cf99b89..166367b00 100644 --- a/receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java +++ b/receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java @@ -29,11 +29,10 @@ import com.hyperwallet.android.model.paging.HyperwalletPageList; import com.hyperwallet.android.model.receipt.Receipt; import com.hyperwallet.android.model.receipt.ReceiptQueryParam; -import com.hyperwallet.android.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; import com.hyperwallet.android.util.DateUtil; import org.hamcrest.Matchers; -import org.json.JSONException; import org.json.JSONObject; import org.junit.Before; import org.junit.Rule; diff --git a/receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java b/receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java index e61646e32..3dd246965 100644 --- a/receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java +++ b/receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java @@ -27,7 +27,7 @@ import com.hyperwallet.android.model.paging.HyperwalletPageList; import com.hyperwallet.android.model.receipt.Receipt; import com.hyperwallet.android.model.receipt.ReceiptQueryParam; -import com.hyperwallet.android.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; import org.hamcrest.Matchers; import org.json.JSONObject; From 24d7f94327a7d798ec045f7fbe3b466698b1a3b4 Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Thu, 18 Jul 2019 14:28:11 +0300 Subject: [PATCH 06/13] HW-54223. Extracted publish task to file --- common/build.gradle | 88 +---------------------------------------- publish.gradle | 94 ++++++++++++++++++++++++++++++++++++++++++++ receipt/build.gradle | 91 +----------------------------------------- ui/build.gradle | 94 +------------------------------------------- 4 files changed, 98 insertions(+), 269 deletions(-) create mode 100644 publish.gradle diff --git a/common/build.gradle b/common/build.gradle index cf60c3f49..da20265c3 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -1,88 +1,2 @@ apply from: "$rootProject.projectDir/android-library.gradle" - - -def aarFile = file("$buildDir/outputs/aar/common-$version" + ".aar") -def aarArtifact = artifacts.add('archives', aarFile) { - type 'aar' -} - -def isReleaseVersion = !version.endsWith('SNAPSHOT') - -publishing { - - repositories { - maven { - def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" - def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots" - url = isReleaseVersion ? releasesRepoUrl : snapshotsRepoUrl - credentials { - username sonatypeUsername - password sonatypePassword - } - } - } - - publications { - hyperwalletCommonUi(MavenPublication) { - groupId = hyperwalletGroupId - artifactId = 'common' - version = version - - artifact(sourcesJar) - artifact(javadocsJar) - artifact(aarArtifact) - - pom { - name = 'Hyperwallet Android Common UI SDK' - description = 'Hyperwallet Common UI SDK for Android to integrate with Hyperwallet Platform' - url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' - pom.withXml { - def dependenciesNode = asNode().appendNode('dependencies') - configurations.implementation.allDependencies.each { - def dependencyNode = dependenciesNode.appendNode('dependency') - dependencyNode.appendNode('groupId', it.group) - dependencyNode.appendNode('artifactId', it.name) - dependencyNode.appendNode('version', it.version) - } - } - licenses { - license { - name = 'MIT License' - url = 'http://www.opensource.org/licenses/MIT' - } - } - developers { - developer { - id = 'devs' - name = 'Hyperwallet Developers' - } - } - scm { - connection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' - developerConnection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' - url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' - } - } - } - } -} - -tasks.withType(Sign) { - onlyIf { - isReleaseVersion && sonatypeUsername?.trim() && sonatypePassword?.trim() - } -} - -signing { - sign publishing.publications.hyperwalletCommonUi -} - -sonarqube { - properties { - def libraries = project.android.sdkDirectory.getPath() + "/platforms/android-28/android.jar" - property "sonar.sources", "src/main/java" - property "sonar.binaries", "build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/hyperwallet/android/ui" - property "sonar.libraries", libraries - property "sonar.projectName", "android-ui-sdk-common" - } -} \ No newline at end of file +apply from: "$rootProject.projectDir/publish.gradle" \ No newline at end of file diff --git a/publish.gradle b/publish.gradle new file mode 100644 index 000000000..46779ff5c --- /dev/null +++ b/publish.gradle @@ -0,0 +1,94 @@ +def aarFile = file("$buildDir/outputs/aar/$project.name-$version" + ".aar") +def aarArtifact = artifacts.add('archives', aarFile) { + type 'aar' +} + +def isReleaseVersion = !version.endsWith('SNAPSHOT') + +publishing { + + repositories { + maven { + def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" + def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots" + url = isReleaseVersion ? releasesRepoUrl : snapshotsRepoUrl + credentials { + username sonatypeUsername + password sonatypePassword + } + } + } + + publications { + hyperwalletUiPublish(MavenPublication) { + groupId = hyperwalletGroupId + if (project.name == "ui") { + artifactId = "ui-sdk" + } else { + artifactId = project.name + } + + version = version + + artifact(sourcesJar) + artifact(javadocsJar) + artifact(aarArtifact) + + pom { + name = 'Hyperwallet Android Receipt UI SDK' + description = 'Hyperwallet Receipt UI SDK for Android to integrate with Hyperwallet Platform' + url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' + pom.withXml { + def dependenciesNode = asNode().appendNode('dependencies') + configurations.implementation.allDependencies.each { + def dependencyNode = dependenciesNode.appendNode('dependency') + if (it.group == "hyperwallet-android-ui-sdk") { + dependencyNode.appendNode('groupId', "com.hyperwallet.android.ui") + } else { + dependencyNode.appendNode('groupId', it.group) + } + dependencyNode.appendNode('artifactId', it.name) + dependencyNode.appendNode('version', it.version) + } + } + licenses { + license { + name = 'MIT License' + url = 'http://www.opensource.org/licenses/MIT' + } + } + developers { + developer { + id = 'devs' + name = 'Hyperwallet Developers' + } + } + scm { + connection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' + developerConnection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' + url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' + } + } + } + } +} + +tasks.withType(Sign) { + onlyIf { + isReleaseVersion && sonatypeUsername?.trim() && sonatypePassword?.trim() + } +} + +signing { + sign publishing.publications.hyperwalletUiPublish +} + +sonarqube { + properties { + def libraries = project.android.sdkDirectory.getPath() + "/platforms/android-28/android.jar" + property "sonar.sources", "src/main/java" + property "sonar.binaries", "build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/hyperwallet/android/ui" + property "sonar.libraries", libraries + property "sonar.projectName", "android-ui-sdk-$project.name" + } +} \ No newline at end of file diff --git a/receipt/build.gradle b/receipt/build.gradle index cff209c86..c6118c864 100644 --- a/receipt/build.gradle +++ b/receipt/build.gradle @@ -1,4 +1,5 @@ apply from: "$rootProject.projectDir/android-library.gradle" +apply from: "$rootProject.projectDir/publish.gradle" dependencies { api project(":common") @@ -19,93 +20,3 @@ dependencies { androidTestImplementation "com.squareup.leakcanary:leakcanary-android-instrumentation:$leakcanaryVersion" androidTestImplementation "com.squareup.leakcanary:leakcanary-support-fragment:$leakcanaryVersion" } - -def aarFile = file("$buildDir/outputs/aar/receipt-$version" + ".aar") -def aarArtifact = artifacts.add('archives', aarFile) { - type 'aar' -} - -def isReleaseVersion = !version.endsWith('SNAPSHOT') - -publishing { - - repositories { - maven { - def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" - def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots" - url = isReleaseVersion ? releasesRepoUrl : snapshotsRepoUrl - credentials { - username sonatypeUsername - password sonatypePassword - } - } - } - - publications { - hyperwalletReceiptUi(MavenPublication) { - groupId = hyperwalletGroupId - artifactId = 'receipt' - version = version - - artifact(sourcesJar) - artifact(javadocsJar) - artifact(aarArtifact) - - pom { - name = 'Hyperwallet Android Receipt UI SDK' - description = 'Hyperwallet Receipt UI SDK for Android to integrate with Hyperwallet Platform' - url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' - pom.withXml { - def dependenciesNode = asNode().appendNode('dependencies') - configurations.implementation.allDependencies.each { - def dependencyNode = dependenciesNode.appendNode('dependency') - if (it.group == "hyperwallet-android-ui-sdk") { - dependencyNode.appendNode('groupId', "com.hyperwallet.android.ui") - } else { - dependencyNode.appendNode('groupId', it.group) - } - dependencyNode.appendNode('artifactId', it.name) - dependencyNode.appendNode('version', it.version) - } - } - licenses { - license { - name = 'MIT License' - url = 'http://www.opensource.org/licenses/MIT' - } - } - developers { - developer { - id = 'devs' - name = 'Hyperwallet Developers' - } - } - scm { - connection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' - developerConnection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' - url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' - } - } - } - } -} - -tasks.withType(Sign) { - onlyIf { - isReleaseVersion && sonatypeUsername?.trim() && sonatypePassword?.trim() - } -} - -signing { - sign publishing.publications.hyperwalletReceiptUi -} - -sonarqube { - properties { - def libraries = project.android.sdkDirectory.getPath() + "/platforms/android-28/android.jar" - property "sonar.sources", "src/main/java" - property "sonar.binaries", "build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/hyperwallet/android/ui" - property "sonar.libraries", libraries - property "sonar.projectName", "android-ui-sdk-receipt" - } -} diff --git a/ui/build.gradle b/ui/build.gradle index bc6fa3a49..79964c4ca 100644 --- a/ui/build.gradle +++ b/ui/build.gradle @@ -1,4 +1,5 @@ apply from: "$rootProject.projectDir/android-library.gradle" +apply from: "$rootProject.projectDir/publish.gradle" dependencies { @@ -19,95 +20,4 @@ dependencies { testImplementation "org.robolectric:robolectric:$robolectricVersion" testImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion" -} - - -def aarFile = file("$buildDir/outputs/aar/ui-$version" + ".aar") -def aarArtifact = artifacts.add('archives', aarFile) { - type 'aar' -} - -def isReleaseVersion = !version.endsWith('SNAPSHOT') - -publishing { - - repositories { - maven { - def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" - def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots" - url = isReleaseVersion ? releasesRepoUrl : snapshotsRepoUrl - credentials { - username sonatypeUsername - password sonatypePassword - } - } - } - - publications { - hyperwalletUi(MavenPublication) { - groupId = hyperwalletGroupId - artifactId = 'ui-sdk' - version = version - - artifact(sourcesJar) - artifact(javadocsJar) - artifact(aarArtifact) - - pom { - name = 'Hyperwallet Android UI SDK' - description = 'Hyperwallet UI SDK for Android to integrate with Hyperwallet Platform' - url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' - pom.withXml { - def dependenciesNode = asNode().appendNode('dependencies') - configurations.implementation.allDependencies.each { - def dependencyNode = dependenciesNode.appendNode('dependency') - if (it.group == "hyperwallet-android-ui-sdk") { - dependencyNode.appendNode('groupId', "com.hyperwallet.android.ui") - } else { - dependencyNode.appendNode('groupId', it.group) - } - dependencyNode.appendNode('artifactId', it.name) - dependencyNode.appendNode('version', it.version) - } - } - licenses { - license { - name = 'MIT License' - url = 'http://www.opensource.org/licenses/MIT' - } - } - developers { - developer { - id = 'devs' - name = 'Hyperwallet Developers' - } - } - scm { - connection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' - developerConnection = 'scm:git:git://github.com/hyperwallet/hyperwallet-android-ui-sdk.git' - url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' - } - } - } - } -} - -tasks.withType(Sign) { - onlyIf { - isReleaseVersion && sonatypeUsername?.trim() && sonatypePassword?.trim() - } -} - -signing { - sign publishing.publications.hyperwalletUi -} - -sonarqube { - properties { - def libraries = project.android.sdkDirectory.getPath() + "/platforms/android-28/android.jar" - property "sonar.sources", "src/main/java" - property "sonar.binaries", "build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/hyperwallet/android/ui" - property "sonar.libraries", libraries - property "sonar.projectName", "android-ui-sdk" - } -} +} \ No newline at end of file From 7cb80a60a97f76c12fbda0d3f4e830718dbe4bb5 Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Thu, 18 Jul 2019 14:31:54 +0300 Subject: [PATCH 07/13] HW-54223. Deprecated RepositoryFactory --- .../com/hyperwallet/android/ui/repository/RepositoryFactory.java | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java b/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java index 8ae21ee6d..efd0f0f9c 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java @@ -27,6 +27,7 @@ package com.hyperwallet.android.ui.repository; +@Deprecated public class RepositoryFactory { private static RepositoryFactory sInstance; private TransferMethodConfigurationRepository mTransferMethodConfigurationRepository; From f5761bb8737685444bfbeda1bca66cd6f24e16af Mon Sep 17 00:00:00 2001 From: Anna <48258136+azakrevska-epam@users.noreply.github.com> Date: Thu, 18 Jul 2019 20:48:41 +0300 Subject: [PATCH 08/13] HW-54224. Extracted user repository (#58) HW-54224. Extracted user repository --- settings.gradle | 2 +- ui/build.gradle | 1 + .../ui/repository/RepositoryFactory.java | 5 -- .../SelectTransferMethodFragment.java | 4 +- .../SelectTransferMethodPresenter.java | 2 +- .../SelectTransferMethodPresenterTest.java | 4 +- userrepository/.gitignore | 1 + userrepository/build.gradle | 8 ++ userrepository/config/jacoco-settings.gradle | 78 +++++++++++++++++++ userrepository/config/lint.xml | 6 ++ userrepository/proguard-rules.pro | 21 +++++ userrepository/src/main/AndroidManifest.xml | 2 + .../ui/user}/repository/UserRepository.java | 2 +- .../repository/UserRepositoryFactory.java | 25 ++++++ .../user}/repository/UserRepositoryImpl.java | 2 +- .../repository/UserRepositoryFactoryTest.java | 34 ++++++++ .../repository/UserRepositoryImplTest.java | 8 +- 17 files changed, 189 insertions(+), 16 deletions(-) create mode 100644 userrepository/.gitignore create mode 100644 userrepository/build.gradle create mode 100644 userrepository/config/jacoco-settings.gradle create mode 100644 userrepository/config/lint.xml create mode 100644 userrepository/proguard-rules.pro create mode 100644 userrepository/src/main/AndroidManifest.xml rename {ui/src/main/java/com/hyperwallet/android/ui => userrepository/src/main/java/com/hyperwallet/android/ui/user}/repository/UserRepository.java (97%) create mode 100644 userrepository/src/main/java/com/hyperwallet/android/ui/user/repository/UserRepositoryFactory.java rename {ui/src/main/java/com/hyperwallet/android/ui => userrepository/src/main/java/com/hyperwallet/android/ui/user}/repository/UserRepositoryImpl.java (98%) create mode 100644 userrepository/src/test/java/com/hyperwallet/android/ui/user/repository/UserRepositoryFactoryTest.java rename {ui/src/test/java/com/hyperwallet/android/ui => userrepository/src/test/java/com/hyperwallet/android/ui/user}/repository/UserRepositoryImplTest.java (97%) diff --git a/settings.gradle b/settings.gradle index f0129ca86..35f8b65f3 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,2 @@ -include ':ui', ':common', ':receipt' +include ':ui', ':common', ':receipt', ':userrepository' //add libraries here diff --git a/ui/build.gradle b/ui/build.gradle index 79964c4ca..16c16fe83 100644 --- a/ui/build.gradle +++ b/ui/build.gradle @@ -10,6 +10,7 @@ dependencies { api project(":common") api project(":receipt") + api project(":userrepository") androidTestImplementation "androidx.test:rules:$testRulesVersion" androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion" diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java b/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java index efd0f0f9c..7095b6110 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java @@ -32,12 +32,10 @@ public class RepositoryFactory { private static RepositoryFactory sInstance; private TransferMethodConfigurationRepository mTransferMethodConfigurationRepository; private TransferMethodRepository mTransferMethodRepository; - private UserRepository mUserRepository; private RepositoryFactory() { mTransferMethodConfigurationRepository = new TransferMethodConfigurationRepositoryImpl(); mTransferMethodRepository = new TransferMethodRepositoryImpl(); - mUserRepository = new UserRepositoryImpl(); } public static synchronized RepositoryFactory getInstance() { @@ -59,7 +57,4 @@ public TransferMethodRepository getTransferMethodRepository() { return mTransferMethodRepository; } - public UserRepository getUserRepository() { - return mUserRepository; - } } diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodFragment.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodFragment.java index c0e67af51..19fa3484d 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodFragment.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodFragment.java @@ -43,6 +43,7 @@ import com.hyperwallet.android.ui.common.view.HorizontalDividerItemDecorator; import com.hyperwallet.android.ui.common.view.OneClickListener; import com.hyperwallet.android.ui.repository.RepositoryFactory; +import com.hyperwallet.android.ui.user.repository.UserRepositoryFactory; import com.hyperwallet.android.ui.view.CountrySelectionDialogFragment; import com.hyperwallet.android.ui.view.CurrencySelectionDialogFragment; @@ -185,10 +186,11 @@ public void onTransferMethodSelected(TransferMethodSelectionItem transferMethodT @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); + UserRepositoryFactory userRepositoryFactory = UserRepositoryFactory.getInstance(); RepositoryFactory factory = RepositoryFactory.getInstance(); mPresenter = new SelectTransferMethodPresenter(this, factory.getTransferMethodConfigurationRepository(), - factory.getUserRepository()); + userRepositoryFactory.getUserRepository()); } diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenter.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenter.java index 015fa8bfa..bc6305bb3 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenter.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenter.java @@ -32,7 +32,7 @@ import com.hyperwallet.android.model.graphql.keyed.HyperwalletTransferMethodType; import com.hyperwallet.android.model.user.HyperwalletUser; import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepository; -import com.hyperwallet.android.ui.repository.UserRepository; +import com.hyperwallet.android.ui.user.repository.UserRepository; import java.util.ArrayList; import java.util.Arrays; diff --git a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenterTest.java b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenterTest.java index d90192572..ba504577f 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenterTest.java +++ b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenterTest.java @@ -23,9 +23,9 @@ import com.hyperwallet.android.model.user.HyperwalletUser; import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepository; import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepositoryImpl; -import com.hyperwallet.android.ui.repository.UserRepository; -import com.hyperwallet.android.ui.repository.UserRepositoryImpl; import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.user.repository.UserRepository; +import com.hyperwallet.android.ui.user.repository.UserRepositoryImpl; import org.hamcrest.Matchers; import org.json.JSONObject; diff --git a/userrepository/.gitignore b/userrepository/.gitignore new file mode 100644 index 000000000..796b96d1c --- /dev/null +++ b/userrepository/.gitignore @@ -0,0 +1 @@ +/build diff --git a/userrepository/build.gradle b/userrepository/build.gradle new file mode 100644 index 000000000..9b4e16079 --- /dev/null +++ b/userrepository/build.gradle @@ -0,0 +1,8 @@ +apply from: "$rootProject.projectDir/android-library.gradle" +apply from: "$rootProject.projectDir/publish.gradle" + +dependencies { + androidTestImplementation "androidx.test:rules:$testRulesVersion" + testImplementation "org.robolectric:robolectric:$robolectricVersion" + testImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion" +} diff --git a/userrepository/config/jacoco-settings.gradle b/userrepository/config/jacoco-settings.gradle new file mode 100644 index 000000000..66eb192b2 --- /dev/null +++ b/userrepository/config/jacoco-settings.gradle @@ -0,0 +1,78 @@ +apply plugin: 'jacoco' + +final def jacocoVersion = "0.8.2" + +jacoco { + toolVersion = jacocoVersion +} + +android { + testOptions { + unitTests { + includeAndroidResources = true + returnDefaultValues = true + } + unitTests.all { + jacoco { + includeNoLocationClasses = true + } + } + } +} + +def fileFilter = ['**/BuildConfig.*'] +def debugClassPaths = [ + '**/intermediates/javac/debug/*/classes/**' +] + +final def coverageSourceDirs = ["$project.projectDir/src/main/java/*"] + +task jacocoTestReport(type: JacocoReport, dependsOn: 'testDebugUnitTest') { + + group = 'Reporting' + description = 'Generate Jacoco coverage reports.' + + reports { + html { + enabled = true + destination file("$buildDir/reports/jacoco") + } + } + + classDirectories = fileTree( + dir: "${buildDir}", + includes: debugClassPaths, + excludes: fileFilter + ) + + additionalSourceDirs = files(coverageSourceDirs) + sourceDirectories = files(coverageSourceDirs) + executionData = files("${buildDir}/jacoco/testDebugUnitTest.exec") +} + +task jacocoTestCoverageVerification(type: JacocoCoverageVerification, dependsOn: 'jacocoTestReport') { + + group = 'Verification' + classDirectories = fileTree( + dir: "${buildDir}", + includes: debugClassPaths, + excludes: fileFilter + ) + additionalSourceDirs = files(coverageSourceDirs) + sourceDirectories = files(coverageSourceDirs) + executionData = files("${buildDir}/jacoco/testDebugUnitTest.exec") + + violationRules { + setFailOnViolation(true) + + rule { + element = 'CLASS' + limit { + value = 'COVEREDRATIO' + counter = 'BRANCH' + minimum = 0.65 + } + } + } +} + diff --git a/userrepository/config/lint.xml b/userrepository/config/lint.xml new file mode 100644 index 000000000..9242eccb2 --- /dev/null +++ b/userrepository/config/lint.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/userrepository/proguard-rules.pro b/userrepository/proguard-rules.pro new file mode 100644 index 000000000..f1b424510 --- /dev/null +++ b/userrepository/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/userrepository/src/main/AndroidManifest.xml b/userrepository/src/main/AndroidManifest.xml new file mode 100644 index 000000000..3ad5d3779 --- /dev/null +++ b/userrepository/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/UserRepository.java b/userrepository/src/main/java/com/hyperwallet/android/ui/user/repository/UserRepository.java similarity index 97% rename from ui/src/main/java/com/hyperwallet/android/ui/repository/UserRepository.java rename to userrepository/src/main/java/com/hyperwallet/android/ui/user/repository/UserRepository.java index 777b7583a..3f994cd96 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/UserRepository.java +++ b/userrepository/src/main/java/com/hyperwallet/android/ui/user/repository/UserRepository.java @@ -16,7 +16,7 @@ * THE SOFTWARE. */ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.user.repository; import androidx.annotation.NonNull; diff --git a/userrepository/src/main/java/com/hyperwallet/android/ui/user/repository/UserRepositoryFactory.java b/userrepository/src/main/java/com/hyperwallet/android/ui/user/repository/UserRepositoryFactory.java new file mode 100644 index 000000000..2a117e981 --- /dev/null +++ b/userrepository/src/main/java/com/hyperwallet/android/ui/user/repository/UserRepositoryFactory.java @@ -0,0 +1,25 @@ +package com.hyperwallet.android.ui.user.repository; + +public class UserRepositoryFactory { + private static UserRepositoryFactory sInstance; + private UserRepository mUserRepository; + + private UserRepositoryFactory() { + mUserRepository = new UserRepositoryImpl(); + } + + public static synchronized UserRepositoryFactory getInstance() { + if (sInstance == null) { + sInstance = new UserRepositoryFactory(); + } + return sInstance; + } + + public static void clearInstance() { + sInstance = null; + } + + public UserRepository getUserRepository() { + return mUserRepository; + } +} diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/UserRepositoryImpl.java b/userrepository/src/main/java/com/hyperwallet/android/ui/user/repository/UserRepositoryImpl.java similarity index 98% rename from ui/src/main/java/com/hyperwallet/android/ui/repository/UserRepositoryImpl.java rename to userrepository/src/main/java/com/hyperwallet/android/ui/user/repository/UserRepositoryImpl.java index 524849db2..af6d47b82 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/UserRepositoryImpl.java +++ b/userrepository/src/main/java/com/hyperwallet/android/ui/user/repository/UserRepositoryImpl.java @@ -16,7 +16,7 @@ * THE SOFTWARE. */ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.user.repository; import android.os.Handler; diff --git a/userrepository/src/test/java/com/hyperwallet/android/ui/user/repository/UserRepositoryFactoryTest.java b/userrepository/src/test/java/com/hyperwallet/android/ui/user/repository/UserRepositoryFactoryTest.java new file mode 100644 index 000000000..a320a6e1a --- /dev/null +++ b/userrepository/src/test/java/com/hyperwallet/android/ui/user/repository/UserRepositoryFactoryTest.java @@ -0,0 +1,34 @@ +package com.hyperwallet.android.ui.user.repository; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.notNullValue; + +import org.junit.Test; + +public class UserRepositoryFactoryTest { + + @Test + public void testGetInstance_verifyRepositoriesInitialized() { + UserRepositoryFactory userRepositoryFactory = UserRepositoryFactory.getInstance(); + assertThat(userRepositoryFactory, is(notNullValue())); + assertThat(userRepositoryFactory.getUserRepository(), is(notNullValue())); + } + + @Test + public void testClearInstance_verifyRepositoriesCleared() { + UserRepositoryFactory userRepositoryFactory = UserRepositoryFactory.getInstance(); + + UserRepository userConfigurationRepository = userRepositoryFactory.getUserRepository(); + + UserRepositoryFactory currentRepositoryFactory = UserRepositoryFactory.getInstance(); + assertThat(userRepositoryFactory, is(currentRepositoryFactory)); + + UserRepositoryFactory.clearInstance(); + + UserRepositoryFactory anotherRepositoryFactory = UserRepositoryFactory.getInstance(); + assertThat(userRepositoryFactory, is(not(anotherRepositoryFactory))); + assertThat(userConfigurationRepository, is(not(anotherRepositoryFactory.getUserRepository()))); + } +} diff --git a/ui/src/test/java/com/hyperwallet/android/ui/repository/UserRepositoryImplTest.java b/userrepository/src/test/java/com/hyperwallet/android/ui/user/repository/UserRepositoryImplTest.java similarity index 97% rename from ui/src/test/java/com/hyperwallet/android/ui/repository/UserRepositoryImplTest.java rename to userrepository/src/test/java/com/hyperwallet/android/ui/user/repository/UserRepositoryImplTest.java index d35c7fa3a..c693c773d 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/repository/UserRepositoryImplTest.java +++ b/userrepository/src/test/java/com/hyperwallet/android/ui/user/repository/UserRepositoryImplTest.java @@ -1,9 +1,8 @@ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.user.repository; +import static org.hamcrest.CoreMatchers.hasItem; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.hasItem; -import static org.hamcrest.Matchers.nullValue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; @@ -22,6 +21,7 @@ import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.user.HyperwalletUser; +import org.hamcrest.Matchers; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -135,7 +135,7 @@ public Object answer(InvocationOnMock invocation) { verify(mMockCallback, never()).onError(any(HyperwalletErrors.class)); HyperwalletUser user = mUserCaptor.getValue(); - assertThat(user, is(nullValue())); + assertThat(user, is(Matchers.nullValue())); } From fb2c7a35026dcfd2f714918850e427c33e18c9d3 Mon Sep 17 00:00:00 2001 From: Anna <48258136+azakrevska-epam@users.noreply.github.com> Date: Thu, 18 Jul 2019 22:11:45 +0300 Subject: [PATCH 09/13] HW-54226. Extracted transfer method repository (#59) HW-54226. Extracted transfer method repository --- settings.gradle | 2 +- transfermethodrepository/.gitignore | 1 + transfermethodrepository/build.gradle | 8 + .../config/jacoco-settings.gradle | 78 + transfermethodrepository/config/lint.xml | 6 + transfermethodrepository/proguard-rules.pro | 21 + .../src/main/AndroidManifest.xml | 2 + ...TransferMethodConfigurationRepository.java | 2 +- ...sferMethodConfigurationRepositoryImpl.java | 7 +- .../repository/TransferMethodRepository.java | 2 +- .../TransferMethodRepositoryFactory.java | 31 + .../TransferMethodRepositoryImpl.java | 2 +- .../util/EspressoIdlingResource.java | 24 + .../repository/FieldMapKeyTest.java | 4 +- ...MethodConfigurationRepositoryImplTest.java | 4 +- .../TransferMethodRepositoryFactoryTest.java | 39 + .../TransferMethodRepositoryImplTest.java | 2 +- .../HyperwalletExternalResourceManager.java | 74 + .../resources/error_tmc_keys_response.json | 13 + ...sful_tmc_fields_bank_account_response.json | 1250 +++++++++++++++++ .../successful_tmc_keys_response.json | 412 ++++++ ui/build.gradle | 1 + .../ui/repository/RepositoryFactory.java | 5 + .../AddTransferMethodFragment.java | 3 +- .../AddTransferMethodPresenter.java | 4 +- .../ListTransferMethodFragment.java | 4 +- .../ListTransferMethodPresenter.java | 2 +- .../SelectTransferMethodPresenter.java | 2 +- .../ui/repository/RepositoryFactoryTest.java | 3 + .../AddTransferMethodPresenterTest.java | 4 +- .../ListTransferMethodPresenterTest.java | 2 +- .../SelectTransferMethodPresenterTest.java | 6 +- 32 files changed, 1996 insertions(+), 24 deletions(-) create mode 100644 transfermethodrepository/.gitignore create mode 100644 transfermethodrepository/build.gradle create mode 100644 transfermethodrepository/config/jacoco-settings.gradle create mode 100644 transfermethodrepository/config/lint.xml create mode 100644 transfermethodrepository/proguard-rules.pro create mode 100644 transfermethodrepository/src/main/AndroidManifest.xml rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod}/repository/TransferMethodConfigurationRepository.java (97%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod}/repository/TransferMethodConfigurationRepositoryImpl.java (96%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod}/repository/TransferMethodRepository.java (98%) create mode 100644 transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod}/repository/TransferMethodRepositoryImpl.java (99%) create mode 100644 transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java rename {ui/src/test/java/com/hyperwallet/android/ui => transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod}/repository/FieldMapKeyTest.java (89%) rename {ui/src/test/java/com/hyperwallet/android/ui => transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod}/repository/TransferMethodConfigurationRepositoryImplTest.java (98%) create mode 100644 transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java rename {ui/src/test/java/com/hyperwallet/android/ui => transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod}/repository/TransferMethodRepositoryImplTest.java (99%) create mode 100644 transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/rule/HyperwalletExternalResourceManager.java create mode 100644 transfermethodrepository/src/test/resources/error_tmc_keys_response.json create mode 100644 transfermethodrepository/src/test/resources/successful_tmc_fields_bank_account_response.json create mode 100644 transfermethodrepository/src/test/resources/successful_tmc_keys_response.json diff --git a/settings.gradle b/settings.gradle index 35f8b65f3..3f286eb1e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,2 @@ -include ':ui', ':common', ':receipt', ':userrepository' +include ':ui', ':common', ':receipt', ':userrepository', ':transfermethodrepository' //add libraries here diff --git a/transfermethodrepository/.gitignore b/transfermethodrepository/.gitignore new file mode 100644 index 000000000..796b96d1c --- /dev/null +++ b/transfermethodrepository/.gitignore @@ -0,0 +1 @@ +/build diff --git a/transfermethodrepository/build.gradle b/transfermethodrepository/build.gradle new file mode 100644 index 000000000..fcf28601b --- /dev/null +++ b/transfermethodrepository/build.gradle @@ -0,0 +1,8 @@ +apply from: "$rootProject.projectDir/android-library.gradle" +apply from: "$rootProject.projectDir/publish.gradle" + +dependencies { + androidTestImplementation "androidx.test:rules:$testRulesVersion" + testImplementation "org.robolectric:robolectric:$robolectricVersion" + testImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion" +} \ No newline at end of file diff --git a/transfermethodrepository/config/jacoco-settings.gradle b/transfermethodrepository/config/jacoco-settings.gradle new file mode 100644 index 000000000..f1b0a7c45 --- /dev/null +++ b/transfermethodrepository/config/jacoco-settings.gradle @@ -0,0 +1,78 @@ +apply plugin: 'jacoco' + +final def jacocoVersion = "0.8.2" + +jacoco { + toolVersion = jacocoVersion +} + +android { + testOptions { + unitTests { + includeAndroidResources = true + returnDefaultValues = true + } + unitTests.all { + jacoco { + includeNoLocationClasses = true + } + } + } +} + +def fileFilter = ['**/BuildConfig.*'] + +def debugClassPaths = [ + '**/intermediates/javac/debug/*/classes/**' +] + +final def coverageSourceDirs = ["$project.projectDir/src/main/java/*"] + +task jacocoTestReport(type: JacocoReport, dependsOn: 'testDebugUnitTest') { + + group = 'Reporting' + description = 'Generate Jacoco coverage reports.' + reports { + html { + enabled = true + destination file("$project.buildDir/reports/jacoco") + } + } + + classDirectories = fileTree( + dir: "${buildDir}", + includes: debugClassPaths, + excludes: fileFilter + ) + + additionalSourceDirs = files(coverageSourceDirs) + sourceDirectories = files(coverageSourceDirs) + executionData = files("${project.buildDir}/jacoco/testDebugUnitTest.exec") +} + +task jacocoTestCoverageVerification(type: JacocoCoverageVerification, dependsOn: 'jacocoTestReport') { + + group = 'Verification' + classDirectories = fileTree( + dir: "${buildDir}", + includes: debugClassPaths, + excludes: fileFilter + ) + additionalSourceDirs = files(coverageSourceDirs) + sourceDirectories = files(coverageSourceDirs) + executionData = files("${project.buildDir}/jacoco/testDebugUnitTest.exec") + + violationRules { + setFailOnViolation(true) + + rule { + element = 'CLASS' + limit { + value = 'COVEREDRATIO' + counter = 'BRANCH' + minimum = 0.65 + } + } + } +} + diff --git a/transfermethodrepository/config/lint.xml b/transfermethodrepository/config/lint.xml new file mode 100644 index 000000000..9242eccb2 --- /dev/null +++ b/transfermethodrepository/config/lint.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/transfermethodrepository/proguard-rules.pro b/transfermethodrepository/proguard-rules.pro new file mode 100644 index 000000000..f1b424510 --- /dev/null +++ b/transfermethodrepository/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/transfermethodrepository/src/main/AndroidManifest.xml b/transfermethodrepository/src/main/AndroidManifest.xml new file mode 100644 index 000000000..dfdab902d --- /dev/null +++ b/transfermethodrepository/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepository.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepository.java similarity index 97% rename from ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepository.java rename to transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepository.java index 08c9694e3..31389ee50 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepository.java +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepository.java @@ -24,7 +24,7 @@ * USE OR OTHER DEALINGS * IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.transfermethod.repository; import androidx.annotation.NonNull; import androidx.annotation.Nullable; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepositoryImpl.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java similarity index 96% rename from ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepositoryImpl.java rename to transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java index b8384793f..abf89e227 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepositoryImpl.java +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java @@ -24,7 +24,7 @@ * USE OR OTHER DEALINGS * IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.transfermethod.repository; import android.os.Handler; @@ -39,7 +39,7 @@ import com.hyperwallet.android.model.graphql.HyperwalletTransferMethodConfigurationKey; import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationFieldQuery; import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationKeysQuery; -import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; +import com.hyperwallet.android.ui.transfermethod.repository.util.EspressoIdlingResource; import java.util.HashMap; import java.util.Map; @@ -50,7 +50,8 @@ public class TransferMethodConfigurationRepositoryImpl implements TransferMethod private final Map mFieldMap; private HyperwalletTransferMethodConfigurationKey mTransferMethodConfigurationKey; - TransferMethodConfigurationRepositoryImpl() { + //todo use default modifier after RepositoryFactory is removed + public TransferMethodConfigurationRepositoryImpl() { mHandler = new Handler(); mFieldMap = new HashMap<>(); } diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepository.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepository.java similarity index 98% rename from ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepository.java rename to transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepository.java index 37baebfc9..dce02d886 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepository.java +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepository.java @@ -14,7 +14,7 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.transfermethod.repository; import androidx.annotation.NonNull; diff --git a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java new file mode 100644 index 000000000..5cada16b2 --- /dev/null +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java @@ -0,0 +1,31 @@ +package com.hyperwallet.android.ui.transfermethod.repository; + +public class TransferMethodRepositoryFactory { + private static TransferMethodRepositoryFactory sInstance; + private TransferMethodRepository mTransferMethodRepository; + private TransferMethodConfigurationRepository mTransferMethodConfigurationRepository; + + private TransferMethodRepositoryFactory() { + mTransferMethodRepository = new TransferMethodRepositoryImpl(); + mTransferMethodConfigurationRepository = new TransferMethodConfigurationRepositoryImpl(); + } + + public static synchronized TransferMethodRepositoryFactory getInstance() { + if (sInstance == null) { + sInstance = new TransferMethodRepositoryFactory(); + } + return sInstance; + } + + public static void clearInstance() { + sInstance = null; + } + + public TransferMethodRepository getTransferMethodRepository() { + return mTransferMethodRepository; + } + + public TransferMethodConfigurationRepository getTransferMethodConfigurationRepository() { + return mTransferMethodConfigurationRepository; + } +} diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImpl.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryImpl.java similarity index 99% rename from ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImpl.java rename to transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryImpl.java index 17aab2028..69f450ec2 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImpl.java +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryImpl.java @@ -14,7 +14,7 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.transfermethod.repository; import static com.hyperwallet.android.model.HyperwalletStatusTransition.StatusDefinition.ACTIVATED; import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodFields.TOKEN; diff --git a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java new file mode 100644 index 000000000..75dacbae7 --- /dev/null +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java @@ -0,0 +1,24 @@ +package com.hyperwallet.android.ui.transfermethod.repository.util; + +import androidx.test.espresso.IdlingResource; +import androidx.test.espresso.idling.CountingIdlingResource; + +public class EspressoIdlingResource { + + private static final String RESOURCE = "GLOBAL"; + + private static CountingIdlingResource mCountingIdlingResource = + new CountingIdlingResource(RESOURCE); + + public static void increment() { + mCountingIdlingResource.increment(); + } + + public static void decrement() { + mCountingIdlingResource.decrement(); + } + + public static IdlingResource getIdlingResource() { + return mCountingIdlingResource; + } +} diff --git a/ui/src/test/java/com/hyperwallet/android/ui/repository/FieldMapKeyTest.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/FieldMapKeyTest.java similarity index 89% rename from ui/src/test/java/com/hyperwallet/android/ui/repository/FieldMapKeyTest.java rename to transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/FieldMapKeyTest.java index 297575fa0..1c0f53d8d 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/repository/FieldMapKeyTest.java +++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/FieldMapKeyTest.java @@ -1,8 +1,10 @@ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.transfermethod.repository; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; +import com.hyperwallet.android.ui.transfermethod.repository.FieldMapKey; + import org.junit.Test; public class FieldMapKeyTest { diff --git a/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepositoryImplTest.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImplTest.java similarity index 98% rename from ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepositoryImplTest.java rename to transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImplTest.java index 7bcc36886..77d19b782 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodConfigurationRepositoryImplTest.java +++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImplTest.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.transfermethod.repository; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; @@ -32,7 +32,7 @@ import com.hyperwallet.android.model.graphql.keyed.HyperwalletTransferMethodConfigurationKeyResult; import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationFieldQuery; import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationKeysQuery; -import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.transfermethod.repository.rule.HyperwalletExternalResourceManager; import com.hyperwallet.android.util.JsonUtils; import org.hamcrest.collection.IsEmptyCollection; diff --git a/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java new file mode 100644 index 000000000..7e89c5a03 --- /dev/null +++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java @@ -0,0 +1,39 @@ +package com.hyperwallet.android.ui.transfermethod.repository; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.MatcherAssert.assertThat; + +import org.junit.Test; + +public class TransferMethodRepositoryFactoryTest { + @Test + public void testGetInstance_verifyRepositoriesInitialized() { + TransferMethodRepositoryFactory repositoryFactory = TransferMethodRepositoryFactory.getInstance(); + assertThat(repositoryFactory, is(notNullValue())); + assertThat(repositoryFactory.getTransferMethodRepository(), is(notNullValue())); + assertThat(repositoryFactory.getTransferMethodConfigurationRepository(), is(notNullValue())); + } + + @Test + public void testClearInstance_verifyRepositoryCleared() { + TransferMethodRepositoryFactory repositoryFactory = TransferMethodRepositoryFactory.getInstance(); + + TransferMethodRepository transferMethodRepository = repositoryFactory.getTransferMethodRepository(); + TransferMethodConfigurationRepository configurationRepository = + repositoryFactory.getTransferMethodConfigurationRepository(); + TransferMethodRepositoryFactory currentRepositoryFactory = TransferMethodRepositoryFactory.getInstance(); + assertThat(repositoryFactory, is(currentRepositoryFactory)); + assertThat(transferMethodRepository, is(currentRepositoryFactory.getTransferMethodRepository())); + assertThat(configurationRepository, is(currentRepositoryFactory.getTransferMethodConfigurationRepository())); + + TransferMethodRepositoryFactory.clearInstance(); + + TransferMethodRepositoryFactory anotherRepositoryFactory = TransferMethodRepositoryFactory.getInstance(); + assertThat(repositoryFactory, is(not(anotherRepositoryFactory))); + assertThat(transferMethodRepository, is(not(anotherRepositoryFactory.getTransferMethodRepository()))); + assertThat(configurationRepository, + is(not(anotherRepositoryFactory.getTransferMethodConfigurationRepository()))); + } +} \ No newline at end of file diff --git a/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImplTest.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryImplTest.java similarity index 99% rename from ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImplTest.java rename to transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryImplTest.java index 59c3d3ee9..0e7b396c0 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImplTest.java +++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryImplTest.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.ui.repository; +package com.hyperwallet.android.ui.transfermethod.repository; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; diff --git a/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/rule/HyperwalletExternalResourceManager.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/rule/HyperwalletExternalResourceManager.java new file mode 100644 index 000000000..423bf796e --- /dev/null +++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/rule/HyperwalletExternalResourceManager.java @@ -0,0 +1,74 @@ +package com.hyperwallet.android.ui.transfermethod.repository.rule; + +import org.junit.rules.TestWatcher; +import org.junit.runner.Description; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.StringWriter; +import java.io.Writer; +import java.net.URL; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class HyperwalletExternalResourceManager extends TestWatcher { + + private static final String EMPTY = ""; + private ClassLoader classLoader; + private Logger logger; + + @Override + protected void starting(Description description) { + super.starting(description); + classLoader = description.getTestClass().getClassLoader(); + logger = Logger.getLogger(description.getTestClass().getName()); + } + + + public String getResourceContent(final String resourceName) { + if (resourceName == null) { + throw new IllegalArgumentException("Parameter resourceName cannot be null"); + } + + return getContent(resourceName); + } + + private String getContent(final String resourceName) { + + URL resource = classLoader.getResource(resourceName); + InputStream inputStream = null; + Writer writer = new StringWriter(); + String resourceContent = EMPTY; + if (resource != null) { + try { + inputStream = resource.openStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); + String line = reader.readLine(); + while (line != null) { + writer.write(line); + line = reader.readLine(); + } + resourceContent = writer.toString(); + + } catch (Exception e) { + logger.log(Level.WARNING, "There was an error loading an external resource", e); + } finally { + try { + if (inputStream != null) { + inputStream.close(); + } + } catch (Exception e) { + logger.log(Level.SEVERE, "There was an error closing input stream", e); + } + try { + writer.close(); + } catch (IOException e) { + logger.log(Level.SEVERE, "There was an error closing writer", e); + } + } + } + return resourceContent; + } +} diff --git a/transfermethodrepository/src/test/resources/error_tmc_keys_response.json b/transfermethodrepository/src/test/resources/error_tmc_keys_response.json new file mode 100644 index 000000000..3f28d6252 --- /dev/null +++ b/transfermethodrepository/src/test/resources/error_tmc_keys_response.json @@ -0,0 +1,13 @@ +{ + "errors": [ + { + "message": "Validation error of type FieldUndefined: Field 'nodess' in type 'TransferMethodConfigurationConnection' is undefined @ 'transferMethodConfigurations/nodess'", + "locations": [ + { + "line": 4, + "column": 3 + } + ] + } + ] +} \ No newline at end of file diff --git a/transfermethodrepository/src/test/resources/successful_tmc_fields_bank_account_response.json b/transfermethodrepository/src/test/resources/successful_tmc_fields_bank_account_response.json new file mode 100644 index 000000000..238492d0b --- /dev/null +++ b/transfermethodrepository/src/test/resources/successful_tmc_fields_bank_account_response.json @@ -0,0 +1,1250 @@ +{ + "data": { + "transferMethodUIConfigurations": { + "nodes": [ + { + "country": "US", + "currency": "USD", + "transferMethodType": "BANK_ACCOUNT", + "profile": "INDIVIDUAL", + "fieldGroups": { + "nodes": [ + { + "group": "ACCOUNT_INFORMATION", + "fields": [ + { + "category": "ACCOUNT", + "dataType": "NUMBER", + "isEditable": true, + "label": "Routing Number", + "maxLength": 9, + "minLength": 9, + "name": "branchId", + "placeholder": "", + "regularExpression": "^[0-9]{9}$", + "isRequired": true, + "validationMessage": { + "length": "The exact length of this field is 9.", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "ACCOUNT", + "dataType": "NUMBER", + "isEditable": true, + "label": "Account Number", + "maxLength": 17, + "minLength": 4, + "name": "bankAccountId", + "placeholder": "", + "regularExpression": "^(?![0-]+$)[0-9-]{4,17}$", + "isRequired": true, + "validationMessage": { + "length": "The minimum length of this field is 4 and maximum length is 17.", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "ACCOUNT", + "dataType": "SELECTION", + "isEditable": true, + "fieldSelectionOptions": [ + { + "label": "Checking", + "value": "Checking" + }, + { + "label": "Savings", + "value": "Savings" + } + ], + "label": "Account Type", + "name": "bankAccountPurpose", + "placeholder": "", + "isRequired": true, + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + } + ] + }, + { + "group": "INTERMEDIARY_ACCOUNT", + "fields": [ + { + "category": "ACCOUNT", + "dataType": "SELECTION", + "isEditable": true, + "fieldSelectionOptions": [ + { + "label": "Self", + "value": "SELF" + } + ], + "label": "Relationship", + "name": "bankAccountRelationship", + "placeholder": "", + "isRequired": true, + "value": "SELF", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + } + ] + }, + { + "group": "ACCOUNT_HOLDER", + "fields": [ + { + "category": "PROFILE", + "dataType": "TEXT", + "isEditable": false, + "label": "First Name", + "name": "firstName", + "placeholder": "", + "regularExpression": "^[\\sa-zA-Z0-9\\-.,'\\u00C0-\\u00FF\\u0100-\\u017F\\u0180-\\u024F]{1,50}$", + "isRequired": true, + "value": "Brody", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "PROFILE", + "dataType": "TEXT", + "isEditable": true, + "label": "Middle Name", + "name": "middleName", + "placeholder": "", + "regularExpression": "^[\\sa-zA-Z0-9\\-.,'\\u00C0-\\u00FF\\u0100-\\u017F\\u0180-\\u024F]{1,50}$", + "isRequired": false, + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "PROFILE", + "dataType": "TEXT", + "isEditable": true, + "label": "Last Name", + "name": "lastName", + "placeholder": "", + "regularExpression": "^[\\sa-zA-Z0-9\\-.,'\\u00C0-\\u00FF\\u0100-\\u017F\\u0180-\\u024F]{1,50}$", + "isRequired": true, + "value": "Nehru", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "PROFILE", + "dataType": "DATE", + "isEditable": true, + "label": "Date of Birth", + "name": "dateOfBirth", + "placeholder": "", + "isRequired": false, + "value": "2000-01-01", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + } + ] + }, + { + "group": "CONTACT_INFORMATION", + "fields": [ + { + "category": "PROFILE", + "dataType": "PHONE", + "isEditable": true, + "label": "Phone Number", + "name": "phoneNumber", + "placeholder": "", + "regularExpression": "^(?=.{7,17}$)[\\+]{0,1}[0-9\\(\\)\\ \\.\\-]{1,}$", + "isRequired": false, + "value": "+1 604 6666666", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "PROFILE", + "dataType": "PHONE", + "isEditable": true, + "label": "Mobile Number", + "name": "mobileNumber", + "placeholder": "", + "regularExpression": "^(?=.{7,17}$)[\\+]{0,1}[0-9\\(\\)\\ \\.\\-]{1,}$", + "isRequired": false, + "value": "604 666 6666", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + } + ] + }, + { + "group": "ADDRESS", + "fields": [ + { + "category": "ADDRESS", + "dataType": "SELECTION", + "isEditable": false, + "fieldSelectionOptions": [ + { + "label": "Afghanistan", + "value": "AF" + }, + { + "label": "\u00c5land Islands", + "value": "AX" + }, + { + "label": "Albania", + "value": "AL" + }, + { + "label": "Algeria", + "value": "DZ" + }, + { + "label": "American Samoa", + "value": "AS" + }, + { + "label": "Andorra", + "value": "AD" + }, + { + "label": "Angola", + "value": "AO" + }, + { + "label": "Anguilla", + "value": "AI" + }, + { + "label": "Antarctica", + "value": "AQ" + }, + { + "label": "Antigua and Barbuda", + "value": "AG" + }, + { + "label": "Argentina", + "value": "AR" + }, + { + "label": "Armenia", + "value": "AM" + }, + { + "label": "Aruba", + "value": "AW" + }, + { + "label": "Australia", + "value": "AU" + }, + { + "label": "Austria", + "value": "AT" + }, + { + "label": "Azerbaijan", + "value": "AZ" + }, + { + "label": "Bahamas", + "value": "BS" + }, + { + "label": "Bahrain", + "value": "BH" + }, + { + "label": "Bangladesh", + "value": "BD" + }, + { + "label": "Barbados", + "value": "BB" + }, + { + "label": "Belgium", + "value": "BE" + }, + { + "label": "Belize", + "value": "BZ" + }, + { + "label": "Benin", + "value": "BJ" + }, + { + "label": "Bermuda", + "value": "BM" + }, + { + "label": "Bhutan", + "value": "BT" + }, + { + "label": "Bolivia", + "value": "BO" + }, + { + "label": "Caribbean Netherlands", + "value": "BQ" + }, + { + "label": "Bosnia and Herzegovina", + "value": "BA" + }, + { + "label": "Botswana", + "value": "BW" + }, + { + "label": "Bouvet Island", + "value": "BV" + }, + { + "label": "Brazil", + "value": "BR" + }, + { + "label": "British Indian Ocean Territory", + "value": "IO" + }, + { + "label": "Brunei", + "value": "BN" + }, + { + "label": "Bulgaria", + "value": "BG" + }, + { + "label": "Burkina Faso", + "value": "BF" + }, + { + "label": "Burundi", + "value": "BI" + }, + { + "label": "Cambodia", + "value": "KH" + }, + { + "label": "Cameroon", + "value": "CM" + }, + { + "label": "Canada", + "value": "CA" + }, + { + "label": "Cape Verde", + "value": "CV" + }, + { + "label": "Cayman Islands", + "value": "KY" + }, + { + "label": "Chad", + "value": "TD" + }, + { + "label": "Chile", + "value": "CL" + }, + { + "label": "China", + "value": "CN" + }, + { + "label": "Christmas Island", + "value": "CX" + }, + { + "label": "Cocos [Keeling] Islands", + "value": "CC" + }, + { + "label": "Colombia", + "value": "CO" + }, + { + "label": "Comoros", + "value": "KM" + }, + { + "label": "Congo - Brazzaville", + "value": "CG" + }, + { + "label": "Cook Islands", + "value": "CK" + }, + { + "label": "Costa Rica", + "value": "CR" + }, + { + "label": "C\u00f4te d\u2019Ivoire", + "value": "CI" + }, + { + "label": "Croatia", + "value": "HR" + }, + { + "label": "Cura\u00e7ao", + "value": "CW" + }, + { + "label": "Cyprus", + "value": "CY" + }, + { + "label": "Czech Republic", + "value": "CZ" + }, + { + "label": "Denmark", + "value": "DK" + }, + { + "label": "Djibouti", + "value": "DJ" + }, + { + "label": "Dominica", + "value": "DM" + }, + { + "label": "Dominican Republic", + "value": "DO" + }, + { + "label": "Timor-Leste", + "value": "TL" + }, + { + "label": "Ecuador", + "value": "EC" + }, + { + "label": "Egypt", + "value": "EG" + }, + { + "label": "El Salvador", + "value": "SV" + }, + { + "label": "Equatorial Guinea", + "value": "GQ" + }, + { + "label": "Estonia", + "value": "EE" + }, + { + "label": "Ethiopia", + "value": "ET" + }, + { + "label": "Falkland Islands", + "value": "FK" + }, + { + "label": "Faroe Islands", + "value": "FO" + }, + { + "label": "Fiji", + "value": "FJ" + }, + { + "label": "Finland", + "value": "FI" + }, + { + "label": "France", + "value": "FR" + }, + { + "label": "French Guiana", + "value": "GF" + }, + { + "label": "French Polynesia", + "value": "PF" + }, + { + "label": "French Southern Territories", + "value": "TF" + }, + { + "label": "Gabon", + "value": "GA" + }, + { + "label": "Gambia", + "value": "GM" + }, + { + "label": "Georgia", + "value": "GE" + }, + { + "label": "Germany", + "value": "DE" + }, + { + "label": "Ghana", + "value": "GH" + }, + { + "label": "Gibraltar", + "value": "GI" + }, + { + "label": "Greece", + "value": "GR" + }, + { + "label": "Greenland", + "value": "GL" + }, + { + "label": "Grenada", + "value": "GD" + }, + { + "label": "Guadeloupe", + "value": "GP" + }, + { + "label": "Guam", + "value": "GU" + }, + { + "label": "Guatemala", + "value": "GT" + }, + { + "label": "Guernsey", + "value": "GG" + }, + { + "label": "Guinea", + "value": "GN" + }, + { + "label": "Guyana", + "value": "GY" + }, + { + "label": "Haiti", + "value": "HT" + }, + { + "label": "Heard Island and McDonald Islands", + "value": "HM" + }, + { + "label": "Honduras", + "value": "HN" + }, + { + "label": "Hong Kong SAR China", + "value": "HK" + }, + { + "label": "Hungary", + "value": "HU" + }, + { + "label": "Iceland", + "value": "IS" + }, + { + "label": "India", + "value": "IN" + }, + { + "label": "Indonesia", + "value": "ID" + }, + { + "label": "Ireland", + "value": "IE" + }, + { + "label": "Isle of Man", + "value": "IM" + }, + { + "label": "Israel", + "value": "IL" + }, + { + "label": "Italy", + "value": "IT" + }, + { + "label": "Jamaica", + "value": "JM" + }, + { + "label": "Japan", + "value": "JP" + }, + { + "label": "Jersey", + "value": "JE" + }, + { + "label": "Jordan", + "value": "JO" + }, + { + "label": "Kazakhstan", + "value": "KZ" + }, + { + "label": "Kenya", + "value": "KE" + }, + { + "label": "Kiribati", + "value": "KI" + }, + { + "label": "South Korea", + "value": "KR" + }, + { + "label": "Kosovo", + "value": "XK" + }, + { + "label": "Kuwait", + "value": "KW" + }, + { + "label": "Kyrgyzstan", + "value": "KG" + }, + { + "label": "Laos", + "value": "LA" + }, + { + "label": "Latvia", + "value": "LV" + }, + { + "label": "Lesotho", + "value": "LS" + }, + { + "label": "Liechtenstein", + "value": "LI" + }, + { + "label": "Lithuania", + "value": "LT" + }, + { + "label": "Luxembourg", + "value": "LU" + }, + { + "label": "Macau SAR China", + "value": "MO" + }, + { + "label": "Macedonia", + "value": "MK" + }, + { + "label": "Madagascar", + "value": "MG" + }, + { + "label": "Malawi", + "value": "MW" + }, + { + "label": "Malaysia", + "value": "MY" + }, + { + "label": "Maldives", + "value": "MV" + }, + { + "label": "Mali", + "value": "ML" + }, + { + "label": "Malta", + "value": "MT" + }, + { + "label": "Marshall Islands", + "value": "MH" + }, + { + "label": "Martinique", + "value": "MQ" + }, + { + "label": "Mauritania", + "value": "MR" + }, + { + "label": "Mauritius", + "value": "MU" + }, + { + "label": "Mayotte", + "value": "YT" + }, + { + "label": "Mexico", + "value": "MX" + }, + { + "label": "Micronesia", + "value": "FM" + }, + { + "label": "Moldova", + "value": "MD" + }, + { + "label": "Monaco", + "value": "MC" + }, + { + "label": "Mongolia", + "value": "MN" + }, + { + "label": "Montenegro", + "value": "ME" + }, + { + "label": "Montserrat", + "value": "MS" + }, + { + "label": "Morocco", + "value": "MA" + }, + { + "label": "Mozambique", + "value": "MZ" + }, + { + "label": "Namibia", + "value": "NA" + }, + { + "label": "Nauru", + "value": "NR" + }, + { + "label": "Nepal", + "value": "NP" + }, + { + "label": "Netherlands", + "value": "NL" + }, + { + "label": "Netherlands Antilles", + "value": "AN" + }, + { + "label": "New Caledonia", + "value": "NC" + }, + { + "label": "New Zealand", + "value": "NZ" + }, + { + "label": "Nicaragua", + "value": "NI" + }, + { + "label": "Niger", + "value": "NE" + }, + { + "label": "Nigeria", + "value": "NG" + }, + { + "label": "Niue", + "value": "NU" + }, + { + "label": "Norfolk Island", + "value": "NF" + }, + { + "label": "Northern Mariana Islands", + "value": "MP" + }, + { + "label": "Norway", + "value": "NO" + }, + { + "label": "Oman", + "value": "OM" + }, + { + "label": "Pakistan", + "value": "PK" + }, + { + "label": "Palau", + "value": "PW" + }, + { + "label": "Palestinian Territories", + "value": "PS" + }, + { + "label": "Panama", + "value": "PA" + }, + { + "label": "Papua New Guinea", + "value": "PG" + }, + { + "label": "Paraguay", + "value": "PY" + }, + { + "label": "Peru", + "value": "PE" + }, + { + "label": "Philippines", + "value": "PH" + }, + { + "label": "Pitcairn Islands", + "value": "PN" + }, + { + "label": "Poland", + "value": "PL" + }, + { + "label": "Portugal", + "value": "PT" + }, + { + "label": "Puerto Rico", + "value": "PR" + }, + { + "label": "Qatar", + "value": "QA" + }, + { + "label": "R\u00e9union", + "value": "RE" + }, + { + "label": "Romania", + "value": "RO" + }, + { + "label": "Russia", + "value": "RU" + }, + { + "label": "Rwanda", + "value": "RW" + }, + { + "label": "Saint Kitts and Nevis", + "value": "KN" + }, + { + "label": "Saint Lucia", + "value": "LC" + }, + { + "label": "Saint Martin", + "value": "MF" + }, + { + "label": "Saint Vincent and the Grenadines", + "value": "VC" + }, + { + "label": "Samoa", + "value": "WS" + }, + { + "label": "San Marino", + "value": "SM" + }, + { + "label": "S\u00e3o Tom\u00e9 and Pr\u00edncipe", + "value": "ST" + }, + { + "label": "Saudi Arabia", + "value": "SA" + }, + { + "label": "Senegal", + "value": "SN" + }, + { + "label": "Serbia", + "value": "RS" + }, + { + "label": "Seychelles", + "value": "SC" + }, + { + "label": "Sierra Leone", + "value": "SL" + }, + { + "label": "Singapore", + "value": "SG" + }, + { + "label": "Sint Maarten", + "value": "SX" + }, + { + "label": "Slovakia", + "value": "SK" + }, + { + "label": "Slovenia", + "value": "SI" + }, + { + "label": "Solomon Islands", + "value": "SB" + }, + { + "label": "South Africa", + "value": "ZA" + }, + { + "label": "South Georgia and the South Sandwich Islands", + "value": "GS" + }, + { + "label": "South Sudan", + "value": "SS" + }, + { + "label": "Spain", + "value": "ES" + }, + { + "label": "Sri Lanka", + "value": "LK" + }, + { + "label": "Saint Barth\u00e9lemy", + "value": "BL" + }, + { + "label": "Saint Helena", + "value": "SH" + }, + { + "label": "Saint Pierre and Miquelon", + "value": "PM" + }, + { + "label": "Suriname", + "value": "SR" + }, + { + "label": "Svalbard and Jan Mayen", + "value": "SJ" + }, + { + "label": "Swaziland", + "value": "SZ" + }, + { + "label": "Sweden", + "value": "SE" + }, + { + "label": "Switzerland", + "value": "CH" + }, + { + "label": "Taiwan", + "value": "TW" + }, + { + "label": "Tajikistan", + "value": "TJ" + }, + { + "label": "Tanzania", + "value": "TZ" + }, + { + "label": "Thailand", + "value": "TH" + }, + { + "label": "Togo", + "value": "TG" + }, + { + "label": "Tokelau", + "value": "TK" + }, + { + "label": "Tonga", + "value": "TO" + }, + { + "label": "Trinidad and Tobago", + "value": "TT" + }, + { + "label": "Tunisia", + "value": "TN" + }, + { + "label": "Turkey", + "value": "TR" + }, + { + "label": "Turkmenistan", + "value": "TM" + }, + { + "label": "Turks and Caicos Islands", + "value": "TC" + }, + { + "label": "Tuvalu", + "value": "TV" + }, + { + "label": "Uganda", + "value": "UG" + }, + { + "label": "Ukraine", + "value": "UA" + }, + { + "label": "United Arab Emirates", + "value": "AE" + }, + { + "label": "United Kingdom", + "value": "GB" + }, + { + "label": "United States", + "value": "US" + }, + { + "label": "U.S. Outlying Islands", + "value": "UM" + }, + { + "label": "Uruguay", + "value": "UY" + }, + { + "label": "Uzbekistan", + "value": "UZ" + }, + { + "label": "Vanuatu", + "value": "VU" + }, + { + "label": "Vatican City", + "value": "VA" + }, + { + "label": "Venezuela", + "value": "VE" + }, + { + "label": "Vietnam", + "value": "VN" + }, + { + "label": "British Virgin Islands", + "value": "VG" + }, + { + "label": "U.S. Virgin Islands", + "value": "VI" + }, + { + "label": "Wallis and Futuna", + "value": "WF" + }, + { + "label": "Western Sahara", + "value": "EH" + }, + { + "label": "Zambia", + "value": "ZM" + } + ], + "label": "Country", + "name": "country", + "placeholder": "", + "isRequired": true, + "value": "CA", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "ADDRESS", + "dataType": "TEXT", + "isEditable": true, + "label": "State\/Province", + "name": "stateProvince", + "placeholder": "", + "regularExpression": "^[\\sa-zA-Z0-9\\-().,'\\u00C0-\\u00FF\\u0100-\\u017F\\u0180-\\u024F]{2,50}$", + "isRequired": true, + "value": "BC", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "ADDRESS", + "dataType": "TEXT", + "isEditable": true, + "label": "Street", + "name": "addressLine1", + "placeholder": "", + "regularExpression": "^[\\sa-zA-Z0-9\\\/\\-:().,#;'\u00b0&\\u00C0-\\u00FF\\u0100-\\u017F\\u0180-\\u024F]{2,100}$", + "isRequired": true, + "value": "950 Granville Street", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "ADDRESS", + "dataType": "TEXT", + "isEditable": true, + "label": "City", + "name": "city", + "placeholder": "", + "regularExpression": "^[\\sa-zA-Z0-9\\-().,'\\u00C0-\\u00FF\\u0100-\\u017F\\u0180-\\u024F]{2,50}$", + "isRequired": true, + "value": "Vancouver", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + }, + { + "category": "ADDRESS", + "dataType": "TEXT", + "isEditable": true, + "label": "Zip\/Postal Code", + "name": "postalCode", + "placeholder": "", + "regularExpression": "^(?![\\-]+$)[\\sa-zA-Z0-9\\-]{2,16}$", + "isRequired": true, + "value": "V6Z1L2", + "validationMessage": { + "length": "", + "pattern": "is invalid length or format.", + "empty": "You must provide a value for this field" + } + } + ] + } + ] + } + } + ] + }, + "fees": { + "nodes": [ + { + "country": "US", + "currency": "USD", + "transferMethodType": "BANK_ACCOUNT", + "value": "2.00", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "country": "US", + "currency": "USD", + "transferMethodType": "BANK_ACCOUNT", + "value": "1-2 Business days" + } + ] + } + } +} \ No newline at end of file diff --git a/transfermethodrepository/src/test/resources/successful_tmc_keys_response.json b/transfermethodrepository/src/test/resources/successful_tmc_keys_response.json new file mode 100644 index 000000000..64d4c6d00 --- /dev/null +++ b/transfermethodrepository/src/test/resources/successful_tmc_keys_response.json @@ -0,0 +1,412 @@ +{ + "data": { + "countries": { + "nodes": [ + { + "code": "CA", + "name": "Canada", + "currencies": { + "nodes": [ + { + "code": "CAD", + "name": "Canadian Dollar", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "CA", + "currency": "CAD", + "transferMethodType": "BANK_ACCOUNT", + "value": "2.20", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "1-2 Business days", + "country": "CA", + "currency": "CAD", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + }, + { + "code": "PAYPAL_ACCOUNT", + "name": "PayPal Account", + "fees": { + "nodes": [ + { + "country": "CA", + "currency": "CAD", + "transferMethodType": "PAYPAL_ACCOUNT", + "value": "0.25", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "IMMEDIATE", + "country": "CA", + "currency": "CAD", + "transferMethodType": "PAYPAL_ACCOUNT" + } + ] + } + } + ] + } + }, + { + "code": "USD", + "name": "United States Dollar", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "CA", + "currency": "USD", + "transferMethodType": "BANK_ACCOUNT", + "value": "2.00", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "1-2 Business days", + "country": "CA", + "currency": "USD", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + } + ] + } + } + ] + } + }, + { + "code": "HR", + "name": "Croatia", + "currencies": { + "nodes": [ + { + "code": "EUR", + "name": "Euro", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "HR", + "currency": "EUR", + "transferMethodType": "BANK_ACCOUNT", + "value": "1.50", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "2-3 Business days", + "country": "HR", + "currency": "EUR", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + } + ] + } + }, + { + "code": "HRK", + "name": "Croatian Kuna", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "HR", + "currency": "HRK", + "transferMethodType": "BANK_ACCOUNT", + "value": "1.50", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "1-2 Business days", + "country": "HR", + "currency": "HRK", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + } + ] + } + } + ] + } + }, + { + "code": "MX", + "name": "Mexico", + "currencies": { + "nodes": [ + { + "code": "MXN", + "name": "Mexican Peso", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "MX", + "currency": "MXN", + "transferMethodType": "BANK_ACCOUNT", + "value": "26.15", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "1-2 Business days", + "country": "MX", + "currency": "MXN", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + } + ] + } + } + ] + } + }, + { + "code": "GB", + "name": "United Kingdom", + "currencies": { + "nodes": [ + { + "code": "EUR", + "name": "Euro", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "GB", + "currency": "EUR", + "transferMethodType": "BANK_ACCOUNT", + "value": "1.50", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "2-4 Business days", + "country": "GB", + "currency": "EUR", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + } + ] + } + }, + { + "code": "GBP", + "name": "British Pound", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "GB", + "currency": "GBP", + "transferMethodType": "BANK_ACCOUNT", + "value": "1.20", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "1-2 Business days", + "country": "GB", + "currency": "GBP", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + } + ] + } + } + ] + } + }, + { + "code": "US", + "name": "United States", + "currencies": { + "nodes": [ + { + "code": "USD", + "name": "United States Dollar", + "transferMethodTypes": { + "nodes": [ + { + "code": "BANK_ACCOUNT", + "name": "Bank Account", + "fees": { + "nodes": [ + { + "country": "US", + "currency": "USD", + "transferMethodType": "BANK_ACCOUNT", + "value": "2.00", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "1-2 Business days", + "country": "US", + "currency": "USD", + "transferMethodType": "BANK_ACCOUNT" + } + ] + } + }, + { + "code": "BANK_CARD", + "name": "Debit Card", + "fees": { + "nodes": [ + { + "country": "US", + "currency": "USD", + "transferMethodType": "BANK_CARD", + "value": "1.75", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "IMMEDIATE", + "country": "US", + "currency": "USD", + "transferMethodType": "BANK_CARD" + } + ] + } + }, + { + "code": "WIRE_ACCOUNT", + "name": "Wire Transfer", + "fees": { + "nodes": [ + { + "country": "US", + "currency": "USD", + "transferMethodType": "WIRE_ACCOUNT", + "value": "20.00", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "1-3 Business days", + "country": "US", + "currency": "USD", + "transferMethodType": "WIRE_ACCOUNT" + } + ] + } + }, + { + "code": "PAYPAL_ACCOUNT", + "name": "PayPal Account", + "fees": { + "nodes": [ + { + "country": "US", + "currency": "USD", + "transferMethodType": "PAYPAL_ACCOUNT", + "value": "0.25", + "feeRateType": "FLAT" + } + ] + }, + "processingTimes": { + "nodes": [ + { + "value": "IMMEDIATE", + "country": "US", + "currency": "USD", + "transferMethodType": "PAYPAL_ACCOUNT" + } + ] + } + } + ] + } + } + ] + } + } + ] + } + } +} \ No newline at end of file diff --git a/ui/build.gradle b/ui/build.gradle index 16c16fe83..99aa02b2b 100644 --- a/ui/build.gradle +++ b/ui/build.gradle @@ -11,6 +11,7 @@ dependencies { api project(":common") api project(":receipt") api project(":userrepository") + api project(":transfermethodrepository") androidTestImplementation "androidx.test:rules:$testRulesVersion" androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion" diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java b/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java index 7095b6110..a8f35dafa 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java @@ -27,6 +27,11 @@ package com.hyperwallet.android.ui.repository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepositoryImpl; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryImpl; + @Deprecated public class RepositoryFactory { private static RepositoryFactory sInstance; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java index 447624e31..a18ee00e6 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java @@ -58,6 +58,7 @@ import com.hyperwallet.android.ui.HyperwalletLocalBroadcast; import com.hyperwallet.android.ui.R; import com.hyperwallet.android.ui.repository.RepositoryFactory; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; import com.hyperwallet.android.ui.view.WidgetDateDialogFragment; import com.hyperwallet.android.ui.view.WidgetSelectionDialogFragment; import com.hyperwallet.android.ui.view.widget.AbstractWidget; @@ -202,7 +203,7 @@ public void onClick(View v) { public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - RepositoryFactory factory = RepositoryFactory.getInstance(); + TransferMethodRepositoryFactory factory = TransferMethodRepositoryFactory.getInstance(); mPresenter = new AddTransferMethodPresenter(this, factory.getTransferMethodConfigurationRepository(), factory.getTransferMethodRepository()); diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java index d0fd40750..bcccca6e2 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java @@ -21,8 +21,8 @@ import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.graphql.HyperwalletTransferMethodConfigurationField; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; -import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepository; -import com.hyperwallet.android.ui.repository.TransferMethodRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; public class AddTransferMethodPresenter implements AddTransferMethodContract.Presenter { diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodFragment.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodFragment.java index e38385540..306776f4d 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodFragment.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodFragment.java @@ -50,7 +50,7 @@ import com.hyperwallet.android.ui.R; import com.hyperwallet.android.ui.common.view.HorizontalDividerItemDecorator; import com.hyperwallet.android.ui.common.view.OneClickListener; -import com.hyperwallet.android.ui.repository.RepositoryFactory; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; import java.util.ArrayList; import java.util.List; @@ -179,7 +179,7 @@ public void onOneClick(View v) { @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - RepositoryFactory factory = RepositoryFactory.getInstance(); + TransferMethodRepositoryFactory factory = TransferMethodRepositoryFactory.getInstance(); mPresenter = new ListTransferMethodPresenter(factory.getTransferMethodRepository(), this); } diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenter.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenter.java index 4ad64b5d1..1a84893b3 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenter.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenter.java @@ -21,7 +21,7 @@ import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.HyperwalletStatusTransition; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; -import com.hyperwallet.android.ui.repository.TransferMethodRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; import java.util.List; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenter.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenter.java index bc6305bb3..61f13fff5 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenter.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenter.java @@ -31,7 +31,7 @@ import com.hyperwallet.android.model.graphql.keyed.Currency; import com.hyperwallet.android.model.graphql.keyed.HyperwalletTransferMethodType; import com.hyperwallet.android.model.user.HyperwalletUser; -import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepository; import com.hyperwallet.android.ui.user.repository.UserRepository; import java.util.ArrayList; diff --git a/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java b/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java index 050534fc8..65fa4d4fa 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java +++ b/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java @@ -5,6 +5,9 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.notNullValue; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; + import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; diff --git a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenterTest.java b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenterTest.java index 399c188bb..ba80af20c 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenterTest.java +++ b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenterTest.java @@ -24,9 +24,9 @@ import com.hyperwallet.android.model.graphql.field.HyperwalletTransferMethodConfiguration; import com.hyperwallet.android.model.transfermethod.HyperwalletBankAccount; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; -import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepository; -import com.hyperwallet.android.ui.repository.TransferMethodRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepository; import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; import org.json.JSONObject; import org.junit.Before; diff --git a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenterTest.java b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenterTest.java index b1d95f838..7db248566 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenterTest.java +++ b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenterTest.java @@ -38,7 +38,7 @@ import com.hyperwallet.android.model.HyperwalletStatusTransition; import com.hyperwallet.android.model.transfermethod.HyperwalletBankAccount; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; -import com.hyperwallet.android.ui.repository.TransferMethodRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; import org.junit.Before; import org.junit.Rule; diff --git a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenterTest.java b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenterTest.java index ba504577f..479d02882 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenterTest.java +++ b/ui/src/test/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenterTest.java @@ -21,11 +21,11 @@ import com.hyperwallet.android.model.graphql.keyed.HyperwalletTransferMethodConfigurationKeyResult; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; import com.hyperwallet.android.model.user.HyperwalletUser; -import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepository; -import com.hyperwallet.android.ui.repository.TransferMethodConfigurationRepositoryImpl; -import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepository; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepositoryImpl; import com.hyperwallet.android.ui.user.repository.UserRepository; import com.hyperwallet.android.ui.user.repository.UserRepositoryImpl; +import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; import org.hamcrest.Matchers; import org.json.JSONObject; From 52037ef3c02070ea728fd7b7b996ddc47c42eda5 Mon Sep 17 00:00:00 2001 From: vshcherbyna-epam <48257687+vshcherbyna-epam@users.noreply.github.com> Date: Thu, 18 Jul 2019 22:45:00 +0300 Subject: [PATCH 10/13] HW-54227: Create receiptrepository module (#64) HW-54227: Create receiptrepository module --- android-library.gradle | 7 +- receiptrepository/build.gradle | 15 ++++ .../config/jacoco-settings.gradle | 79 +++++++++++++++++++ .../config/lint.xml | 0 .../src/main/AndroidManifest.xml | 4 + .../PrepaidCardReceiptDataSource.java | 0 .../PrepaidCardReceiptDataSourceFactory.java | 0 .../PrepaidCardReceiptRepository.java | 0 .../PrepaidCardReceiptRepositoryImpl.java | 0 .../repository/UserReceiptDataSource.java | 0 .../UserReceiptDataSourceFactory.java | 0 .../repository/UserReceiptRepository.java | 0 .../repository/UserReceiptRepositoryImpl.java | 0 ...epaidCardReceiptDataSourceFactoryTest.java | 0 .../PrepaidCardReceiptDataSourceTest.java | 0 .../PrepaidCardReceiptRepositoryImplTest.java | 0 .../UserReceiptDataSourceFactoryTest.java | 0 .../repository/UserReceiptDataSourceTest.java | 0 .../UserReceiptRepositoryImplTest.java | 0 .../HyperwalletExternalResourceManager.java | 0 .../authentication_token_response.json | 0 .../prepaid_card_receipt_credit_response.json | 0 .../prepaid_card_receipt_debit_response.json | 0 .../prepaid_card_receipt_list_response.json | 0 ...id_card_receipt_unknown_type_response.json | 0 .../resources/receipt_credit_response.json | 0 .../resources/receipt_debit_response.json | 0 .../receipt_list_date_grouping_response.json | 0 .../receipt_list_paged_last_response.json | 0 .../receipt_list_paged_response.json | 0 .../receipt_list_paged_second_response.json | 0 .../receipt_list_paged_third_response.json | 0 .../test/resources/receipt_list_response.json | 0 .../receipt_unknown_type_response.json | 0 {receipt => receiptui}/.gitignore | 0 {receipt => receiptui}/build.gradle | 5 +- .../config/jacoco-settings.gradle | 3 +- receiptui/config/lint.xml | 10 +++ {receipt => receiptui}/proguard-rules.pro | 0 .../src/androidTest/AndroidManifest.xml | 0 ...yperwalletInstrumentedTestApplication.java | 0 .../receipt/ListPrepaidCardReceiptsTest.java | 0 .../ui/receipt/ListUserReceiptsTest.java | 0 .../HyperwalletExternalResourceManager.java | 0 .../rule/HyperwalletMockWebServer.java | 0 .../ui/receipt/util/EspressoUtils.java | 0 .../ui/receipt/util/NestedScrollToAction.java | 0 .../util/RecyclerViewCountAssertion.java | 0 .../util/TestAuthenticationProvider.java | 0 .../src/main/AndroidManifest.xml | 0 .../view/ListPrepaidCardReceiptActivity.java | 0 .../ui/receipt/view/ListReceiptFragment.java | 0 .../receipt/view/ListUserReceiptActivity.java | 0 .../receipt/view/ReceiptDetailActivity.java | 0 .../receipt/view/ReceiptDetailFragment.java | 0 .../view/ReceiptItemDividerDecorator.java | 0 .../ListPrepaidCardReceiptViewModel.java | 0 .../viewmodel/ListUserReceiptViewModel.java | 0 .../viewmodel/ReceiptDetailViewModel.java | 0 .../receipt/viewmodel/ReceiptViewModel.java | 0 .../src/main/res/drawable/circle_negative.xml | 0 .../src/main/res/drawable/circle_positive.xml | 0 .../main/res/drawable/item_view_border.xml | 0 .../res/drawable/item_view_border_header.xml | 0 .../activity_list_prepaid_card_receipt.xml | 0 .../res/layout/activity_list_user_receipt.xml | 0 .../res/layout/activity_receipt_detail.xml | 0 .../main/res/layout/fragment_list_receipt.xml | 0 .../res/layout/fragment_receipt_detail.xml | 0 .../src/main/res/layout/item_receipt.xml | 0 .../res/layout/item_receipt_with_header.xml | 0 .../src/main/res/layout/receipt.xml | 0 .../src/main/res/values/colors.xml | 0 .../src/main/res/values/dimens.xml | 0 .../src/main/res/values/strings.xml | 0 .../src/main/res/values/styles.xml | 0 .../main/res/xml/network_security_config.xml | 0 settings.gradle | 2 +- ui/build.gradle | 3 +- 79 files changed, 116 insertions(+), 12 deletions(-) create mode 100644 receiptrepository/build.gradle create mode 100644 receiptrepository/config/jacoco-settings.gradle rename {receipt => receiptrepository}/config/lint.xml (100%) create mode 100644 receiptrepository/src/main/AndroidManifest.xml rename {receipt => receiptrepository}/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSource.java (100%) rename {receipt => receiptrepository}/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceFactory.java (100%) rename {receipt => receiptrepository}/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepository.java (100%) rename {receipt => receiptrepository}/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImpl.java (100%) rename {receipt => receiptrepository}/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSource.java (100%) rename {receipt => receiptrepository}/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceFactory.java (100%) rename {receipt => receiptrepository}/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepository.java (100%) rename {receipt => receiptrepository}/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImpl.java (100%) rename {receipt => receiptrepository}/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceFactoryTest.java (100%) rename {receipt => receiptrepository}/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java (100%) rename {receipt => receiptrepository}/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImplTest.java (100%) rename {receipt => receiptrepository}/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceFactoryTest.java (100%) rename {receipt => receiptrepository}/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java (100%) rename {receipt => receiptrepository}/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImplTest.java (100%) rename {receipt => receiptrepository}/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java (100%) rename {receipt => receiptrepository}/src/test/resources/authentication_token_response.json (100%) rename {receipt => receiptrepository}/src/test/resources/prepaid_card_receipt_credit_response.json (100%) rename {receipt => receiptrepository}/src/test/resources/prepaid_card_receipt_debit_response.json (100%) rename {receipt => receiptrepository}/src/test/resources/prepaid_card_receipt_list_response.json (100%) rename {receipt => receiptrepository}/src/test/resources/prepaid_card_receipt_unknown_type_response.json (100%) rename {receipt => receiptrepository}/src/test/resources/receipt_credit_response.json (100%) rename {receipt => receiptrepository}/src/test/resources/receipt_debit_response.json (100%) rename {receipt => receiptrepository}/src/test/resources/receipt_list_date_grouping_response.json (100%) rename {receipt => receiptrepository}/src/test/resources/receipt_list_paged_last_response.json (100%) rename {receipt => receiptrepository}/src/test/resources/receipt_list_paged_response.json (100%) rename {receipt => receiptrepository}/src/test/resources/receipt_list_paged_second_response.json (100%) rename {receipt => receiptrepository}/src/test/resources/receipt_list_paged_third_response.json (100%) rename {receipt => receiptrepository}/src/test/resources/receipt_list_response.json (100%) rename {receipt => receiptrepository}/src/test/resources/receipt_unknown_type_response.json (100%) rename {receipt => receiptui}/.gitignore (100%) rename {receipt => receiptui}/build.gradle (92%) rename {receipt => receiptui}/config/jacoco-settings.gradle (95%) create mode 100644 receiptui/config/lint.xml rename {receipt => receiptui}/proguard-rules.pro (100%) rename {receipt => receiptui}/src/androidTest/AndroidManifest.xml (100%) rename {receipt => receiptui}/src/androidTest/java/com/hyperwallet/android/ui/receipt/HyperwalletInstrumentedTestApplication.java (100%) rename {receipt => receiptui}/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListPrepaidCardReceiptsTest.java (100%) rename {receipt => receiptui}/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java (100%) rename {receipt => receiptui}/src/androidTest/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletExternalResourceManager.java (100%) rename {receipt => receiptui}/src/androidTest/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletMockWebServer.java (100%) rename {receipt => receiptui}/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/EspressoUtils.java (100%) rename {receipt => receiptui}/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/NestedScrollToAction.java (100%) rename {receipt => receiptui}/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/RecyclerViewCountAssertion.java (100%) rename {receipt => receiptui}/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/TestAuthenticationProvider.java (100%) rename {receipt => receiptui}/src/main/AndroidManifest.xml (100%) rename {receipt => receiptui}/src/main/java/com/hyperwallet/android/ui/receipt/view/ListPrepaidCardReceiptActivity.java (100%) rename {receipt => receiptui}/src/main/java/com/hyperwallet/android/ui/receipt/view/ListReceiptFragment.java (100%) rename {receipt => receiptui}/src/main/java/com/hyperwallet/android/ui/receipt/view/ListUserReceiptActivity.java (100%) rename {receipt => receiptui}/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailActivity.java (100%) rename {receipt => receiptui}/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailFragment.java (100%) rename {receipt => receiptui}/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptItemDividerDecorator.java (100%) rename {receipt => receiptui}/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListPrepaidCardReceiptViewModel.java (100%) rename {receipt => receiptui}/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListUserReceiptViewModel.java (100%) rename {receipt => receiptui}/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptDetailViewModel.java (100%) rename {receipt => receiptui}/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptViewModel.java (100%) rename {receipt => receiptui}/src/main/res/drawable/circle_negative.xml (100%) rename {receipt => receiptui}/src/main/res/drawable/circle_positive.xml (100%) rename {receipt => receiptui}/src/main/res/drawable/item_view_border.xml (100%) rename {receipt => receiptui}/src/main/res/drawable/item_view_border_header.xml (100%) rename {receipt => receiptui}/src/main/res/layout/activity_list_prepaid_card_receipt.xml (100%) rename {receipt => receiptui}/src/main/res/layout/activity_list_user_receipt.xml (100%) rename {receipt => receiptui}/src/main/res/layout/activity_receipt_detail.xml (100%) rename {receipt => receiptui}/src/main/res/layout/fragment_list_receipt.xml (100%) rename {receipt => receiptui}/src/main/res/layout/fragment_receipt_detail.xml (100%) rename {receipt => receiptui}/src/main/res/layout/item_receipt.xml (100%) rename {receipt => receiptui}/src/main/res/layout/item_receipt_with_header.xml (100%) rename {receipt => receiptui}/src/main/res/layout/receipt.xml (100%) rename {receipt => receiptui}/src/main/res/values/colors.xml (100%) rename {receipt => receiptui}/src/main/res/values/dimens.xml (100%) rename {receipt => receiptui}/src/main/res/values/strings.xml (100%) rename {receipt => receiptui}/src/main/res/values/styles.xml (100%) rename {receipt => receiptui}/src/main/res/xml/network_security_config.xml (100%) diff --git a/android-library.gradle b/android-library.gradle index 620173287..0d8012de0 100644 --- a/android-library.gradle +++ b/android-library.gradle @@ -56,7 +56,7 @@ task sourcesJar(type: Jar) { dependencies { implementation "com.google.android.material:material:$androidMaterialVersion" - api "com.hyperwallet.android:core-sdk:$hyperwalletCoreVersion" + implementation "com.hyperwallet.android:core-sdk:$hyperwalletCoreVersion" implementation "androidx.test.espresso:espresso-idling-resource:$espressoVersion" @@ -66,7 +66,4 @@ dependencies { testImplementation group: 'org.mockito', name: 'mockito-core', version: "$mockitoVersion" testImplementation group: 'pl.pragmatists', name: 'JUnitParams', version: "$junitParamsVersion" -} - - - +} \ No newline at end of file diff --git a/receiptrepository/build.gradle b/receiptrepository/build.gradle new file mode 100644 index 000000000..a1207b8f1 --- /dev/null +++ b/receiptrepository/build.gradle @@ -0,0 +1,15 @@ +apply from: "$rootProject.projectDir/android-library.gradle" +apply from: "$rootProject.projectDir/publish.gradle" + +dependencies { + implementation project(":common") + implementation "androidx.legacy:legacy-support-v4:$legacySupportV4Version" + implementation "androidx.paging:paging-runtime:$pagingRuntimeVersion" + + testImplementation "org.robolectric:robolectric:$robolectricVersion" + + androidTestImplementation "androidx.test:rules:$testRulesVersion" + androidTestImplementation "com.squareup.okhttp3:mockwebserver:$mockServerVersion" + androidTestImplementation "com.squareup.leakcanary:leakcanary-android-instrumentation:$leakcanaryVersion" + androidTestImplementation "com.squareup.leakcanary:leakcanary-support-fragment:$leakcanaryVersion" +} \ No newline at end of file diff --git a/receiptrepository/config/jacoco-settings.gradle b/receiptrepository/config/jacoco-settings.gradle new file mode 100644 index 000000000..bb4ffa228 --- /dev/null +++ b/receiptrepository/config/jacoco-settings.gradle @@ -0,0 +1,79 @@ +apply plugin: 'jacoco' + +final def jacocoVersion = "0.8.2" + +jacoco { + toolVersion = jacocoVersion +} + +android { + testOptions { + unitTests { + includeAndroidResources = true + returnDefaultValues = true + } + unitTests.all { + jacoco { + includeNoLocationClasses = true + } + } + } +} + +def fileFilter = ['**/BuildConfig.*' +] + +def debugClassPaths = [ + '**/intermediates/javac/debug/*/classes/**' +] + +final def coverageSourceDirs = ["$project.projectDir/src/main/java/*"] + +task jacocoTestReport(type: JacocoReport, dependsOn: 'testDebugUnitTest') { + + group = 'Reporting' + description = 'Generate Jacoco coverage reports.' + reports { + html { + enabled = true + destination file("$project.buildDir/reports/jacoco") + } + } + + classDirectories = fileTree( + dir: "${buildDir}", + includes: debugClassPaths, + excludes: fileFilter + ) + + additionalSourceDirs = files(coverageSourceDirs) + sourceDirectories = files(coverageSourceDirs) + executionData = files("${project.buildDir}/jacoco/testDebugUnitTest.exec") +} + +task jacocoTestCoverageVerification(type: JacocoCoverageVerification, dependsOn: 'jacocoTestReport') { + + group = 'Verification' + classDirectories = fileTree( + dir: "${buildDir}", + includes: debugClassPaths, + excludes: fileFilter + ) + additionalSourceDirs = files(coverageSourceDirs) + sourceDirectories = files(coverageSourceDirs) + executionData = files("${project.buildDir}/jacoco/testDebugUnitTest.exec") + + violationRules { + setFailOnViolation(true) + + rule { + element = 'CLASS' + limit { + value = 'COVEREDRATIO' + counter = 'BRANCH' + minimum = 0.65 + } + } + } +} + diff --git a/receipt/config/lint.xml b/receiptrepository/config/lint.xml similarity index 100% rename from receipt/config/lint.xml rename to receiptrepository/config/lint.xml diff --git a/receiptrepository/src/main/AndroidManifest.xml b/receiptrepository/src/main/AndroidManifest.xml new file mode 100644 index 000000000..25d33e545 --- /dev/null +++ b/receiptrepository/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSource.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSource.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSource.java rename to receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSource.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceFactory.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceFactory.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceFactory.java rename to receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceFactory.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepository.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepository.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepository.java rename to receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepository.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImpl.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImpl.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImpl.java rename to receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImpl.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSource.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSource.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSource.java rename to receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSource.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceFactory.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceFactory.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceFactory.java rename to receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceFactory.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepository.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepository.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepository.java rename to receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepository.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImpl.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImpl.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImpl.java rename to receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImpl.java diff --git a/receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceFactoryTest.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceFactoryTest.java similarity index 100% rename from receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceFactoryTest.java rename to receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceFactoryTest.java diff --git a/receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java similarity index 100% rename from receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java rename to receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java diff --git a/receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImplTest.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImplTest.java similarity index 100% rename from receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImplTest.java rename to receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImplTest.java diff --git a/receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceFactoryTest.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceFactoryTest.java similarity index 100% rename from receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceFactoryTest.java rename to receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceFactoryTest.java diff --git a/receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java similarity index 100% rename from receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java rename to receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java diff --git a/receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImplTest.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImplTest.java similarity index 100% rename from receipt/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImplTest.java rename to receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImplTest.java diff --git a/receipt/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java similarity index 100% rename from receipt/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java rename to receiptrepository/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java diff --git a/receipt/src/test/resources/authentication_token_response.json b/receiptrepository/src/test/resources/authentication_token_response.json similarity index 100% rename from receipt/src/test/resources/authentication_token_response.json rename to receiptrepository/src/test/resources/authentication_token_response.json diff --git a/receipt/src/test/resources/prepaid_card_receipt_credit_response.json b/receiptrepository/src/test/resources/prepaid_card_receipt_credit_response.json similarity index 100% rename from receipt/src/test/resources/prepaid_card_receipt_credit_response.json rename to receiptrepository/src/test/resources/prepaid_card_receipt_credit_response.json diff --git a/receipt/src/test/resources/prepaid_card_receipt_debit_response.json b/receiptrepository/src/test/resources/prepaid_card_receipt_debit_response.json similarity index 100% rename from receipt/src/test/resources/prepaid_card_receipt_debit_response.json rename to receiptrepository/src/test/resources/prepaid_card_receipt_debit_response.json diff --git a/receipt/src/test/resources/prepaid_card_receipt_list_response.json b/receiptrepository/src/test/resources/prepaid_card_receipt_list_response.json similarity index 100% rename from receipt/src/test/resources/prepaid_card_receipt_list_response.json rename to receiptrepository/src/test/resources/prepaid_card_receipt_list_response.json diff --git a/receipt/src/test/resources/prepaid_card_receipt_unknown_type_response.json b/receiptrepository/src/test/resources/prepaid_card_receipt_unknown_type_response.json similarity index 100% rename from receipt/src/test/resources/prepaid_card_receipt_unknown_type_response.json rename to receiptrepository/src/test/resources/prepaid_card_receipt_unknown_type_response.json diff --git a/receipt/src/test/resources/receipt_credit_response.json b/receiptrepository/src/test/resources/receipt_credit_response.json similarity index 100% rename from receipt/src/test/resources/receipt_credit_response.json rename to receiptrepository/src/test/resources/receipt_credit_response.json diff --git a/receipt/src/test/resources/receipt_debit_response.json b/receiptrepository/src/test/resources/receipt_debit_response.json similarity index 100% rename from receipt/src/test/resources/receipt_debit_response.json rename to receiptrepository/src/test/resources/receipt_debit_response.json diff --git a/receipt/src/test/resources/receipt_list_date_grouping_response.json b/receiptrepository/src/test/resources/receipt_list_date_grouping_response.json similarity index 100% rename from receipt/src/test/resources/receipt_list_date_grouping_response.json rename to receiptrepository/src/test/resources/receipt_list_date_grouping_response.json diff --git a/receipt/src/test/resources/receipt_list_paged_last_response.json b/receiptrepository/src/test/resources/receipt_list_paged_last_response.json similarity index 100% rename from receipt/src/test/resources/receipt_list_paged_last_response.json rename to receiptrepository/src/test/resources/receipt_list_paged_last_response.json diff --git a/receipt/src/test/resources/receipt_list_paged_response.json b/receiptrepository/src/test/resources/receipt_list_paged_response.json similarity index 100% rename from receipt/src/test/resources/receipt_list_paged_response.json rename to receiptrepository/src/test/resources/receipt_list_paged_response.json diff --git a/receipt/src/test/resources/receipt_list_paged_second_response.json b/receiptrepository/src/test/resources/receipt_list_paged_second_response.json similarity index 100% rename from receipt/src/test/resources/receipt_list_paged_second_response.json rename to receiptrepository/src/test/resources/receipt_list_paged_second_response.json diff --git a/receipt/src/test/resources/receipt_list_paged_third_response.json b/receiptrepository/src/test/resources/receipt_list_paged_third_response.json similarity index 100% rename from receipt/src/test/resources/receipt_list_paged_third_response.json rename to receiptrepository/src/test/resources/receipt_list_paged_third_response.json diff --git a/receipt/src/test/resources/receipt_list_response.json b/receiptrepository/src/test/resources/receipt_list_response.json similarity index 100% rename from receipt/src/test/resources/receipt_list_response.json rename to receiptrepository/src/test/resources/receipt_list_response.json diff --git a/receipt/src/test/resources/receipt_unknown_type_response.json b/receiptrepository/src/test/resources/receipt_unknown_type_response.json similarity index 100% rename from receipt/src/test/resources/receipt_unknown_type_response.json rename to receiptrepository/src/test/resources/receipt_unknown_type_response.json diff --git a/receipt/.gitignore b/receiptui/.gitignore similarity index 100% rename from receipt/.gitignore rename to receiptui/.gitignore diff --git a/receipt/build.gradle b/receiptui/build.gradle similarity index 92% rename from receipt/build.gradle rename to receiptui/build.gradle index c6118c864..b6836a649 100644 --- a/receipt/build.gradle +++ b/receiptui/build.gradle @@ -2,7 +2,8 @@ apply from: "$rootProject.projectDir/android-library.gradle" apply from: "$rootProject.projectDir/publish.gradle" dependencies { - api project(":common") + implementation project(":common") + implementation project(":receiptrepository") implementation "com.google.android.material:material:$androidMaterialVersion" implementation "androidx.constraintlayout:constraintlayout:$constraintlayoutVersion" @@ -11,8 +12,6 @@ dependencies { implementation "androidx.lifecycle:lifecycle-extensions:$lifecycleExtensionsVersion" implementation "androidx.paging:paging-runtime:$pagingRuntimeVersion" - testImplementation "org.robolectric:robolectric:$robolectricVersion" - androidTestImplementation "androidx.test:rules:$testRulesVersion" androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion" diff --git a/receipt/config/jacoco-settings.gradle b/receiptui/config/jacoco-settings.gradle similarity index 95% rename from receipt/config/jacoco-settings.gradle rename to receiptui/config/jacoco-settings.gradle index e0bb22486..7dbc462e6 100644 --- a/receipt/config/jacoco-settings.gradle +++ b/receiptui/config/jacoco-settings.gradle @@ -22,8 +22,7 @@ android { def fileFilter = ['**/BuildConfig.*', '**/com/hyperwallet/android/ui/receipt/view/*.*', - '**/com/hyperwallet/android/ui/receipt/viewmodel/*.*', - '**/com/hyperwallet/android/ui/receipt/repository/ReceiptRepositoryImpl.*' + '**/com/hyperwallet/android/ui/receipt/viewmodel/*.*' ] def debugClassPaths = [ diff --git a/receiptui/config/lint.xml b/receiptui/config/lint.xml new file mode 100644 index 000000000..ff446fa9e --- /dev/null +++ b/receiptui/config/lint.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/receipt/proguard-rules.pro b/receiptui/proguard-rules.pro similarity index 100% rename from receipt/proguard-rules.pro rename to receiptui/proguard-rules.pro diff --git a/receipt/src/androidTest/AndroidManifest.xml b/receiptui/src/androidTest/AndroidManifest.xml similarity index 100% rename from receipt/src/androidTest/AndroidManifest.xml rename to receiptui/src/androidTest/AndroidManifest.xml diff --git a/receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/HyperwalletInstrumentedTestApplication.java b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/HyperwalletInstrumentedTestApplication.java similarity index 100% rename from receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/HyperwalletInstrumentedTestApplication.java rename to receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/HyperwalletInstrumentedTestApplication.java diff --git a/receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListPrepaidCardReceiptsTest.java b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListPrepaidCardReceiptsTest.java similarity index 100% rename from receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListPrepaidCardReceiptsTest.java rename to receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListPrepaidCardReceiptsTest.java diff --git a/receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java similarity index 100% rename from receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java rename to receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java diff --git a/receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletExternalResourceManager.java b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletExternalResourceManager.java similarity index 100% rename from receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletExternalResourceManager.java rename to receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletExternalResourceManager.java diff --git a/receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletMockWebServer.java b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletMockWebServer.java similarity index 100% rename from receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletMockWebServer.java rename to receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletMockWebServer.java diff --git a/receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/EspressoUtils.java b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/EspressoUtils.java similarity index 100% rename from receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/EspressoUtils.java rename to receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/EspressoUtils.java diff --git a/receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/NestedScrollToAction.java b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/NestedScrollToAction.java similarity index 100% rename from receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/NestedScrollToAction.java rename to receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/NestedScrollToAction.java diff --git a/receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/RecyclerViewCountAssertion.java b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/RecyclerViewCountAssertion.java similarity index 100% rename from receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/RecyclerViewCountAssertion.java rename to receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/RecyclerViewCountAssertion.java diff --git a/receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/TestAuthenticationProvider.java b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/TestAuthenticationProvider.java similarity index 100% rename from receipt/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/TestAuthenticationProvider.java rename to receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/util/TestAuthenticationProvider.java diff --git a/receipt/src/main/AndroidManifest.xml b/receiptui/src/main/AndroidManifest.xml similarity index 100% rename from receipt/src/main/AndroidManifest.xml rename to receiptui/src/main/AndroidManifest.xml diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/view/ListPrepaidCardReceiptActivity.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListPrepaidCardReceiptActivity.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/view/ListPrepaidCardReceiptActivity.java rename to receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListPrepaidCardReceiptActivity.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/view/ListReceiptFragment.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListReceiptFragment.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/view/ListReceiptFragment.java rename to receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListReceiptFragment.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/view/ListUserReceiptActivity.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListUserReceiptActivity.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/view/ListUserReceiptActivity.java rename to receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListUserReceiptActivity.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailActivity.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailActivity.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailActivity.java rename to receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailActivity.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailFragment.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailFragment.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailFragment.java rename to receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptDetailFragment.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptItemDividerDecorator.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptItemDividerDecorator.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptItemDividerDecorator.java rename to receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ReceiptItemDividerDecorator.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListPrepaidCardReceiptViewModel.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListPrepaidCardReceiptViewModel.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListPrepaidCardReceiptViewModel.java rename to receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListPrepaidCardReceiptViewModel.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListUserReceiptViewModel.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListUserReceiptViewModel.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListUserReceiptViewModel.java rename to receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListUserReceiptViewModel.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptDetailViewModel.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptDetailViewModel.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptDetailViewModel.java rename to receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptDetailViewModel.java diff --git a/receipt/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptViewModel.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptViewModel.java similarity index 100% rename from receipt/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptViewModel.java rename to receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptViewModel.java diff --git a/receipt/src/main/res/drawable/circle_negative.xml b/receiptui/src/main/res/drawable/circle_negative.xml similarity index 100% rename from receipt/src/main/res/drawable/circle_negative.xml rename to receiptui/src/main/res/drawable/circle_negative.xml diff --git a/receipt/src/main/res/drawable/circle_positive.xml b/receiptui/src/main/res/drawable/circle_positive.xml similarity index 100% rename from receipt/src/main/res/drawable/circle_positive.xml rename to receiptui/src/main/res/drawable/circle_positive.xml diff --git a/receipt/src/main/res/drawable/item_view_border.xml b/receiptui/src/main/res/drawable/item_view_border.xml similarity index 100% rename from receipt/src/main/res/drawable/item_view_border.xml rename to receiptui/src/main/res/drawable/item_view_border.xml diff --git a/receipt/src/main/res/drawable/item_view_border_header.xml b/receiptui/src/main/res/drawable/item_view_border_header.xml similarity index 100% rename from receipt/src/main/res/drawable/item_view_border_header.xml rename to receiptui/src/main/res/drawable/item_view_border_header.xml diff --git a/receipt/src/main/res/layout/activity_list_prepaid_card_receipt.xml b/receiptui/src/main/res/layout/activity_list_prepaid_card_receipt.xml similarity index 100% rename from receipt/src/main/res/layout/activity_list_prepaid_card_receipt.xml rename to receiptui/src/main/res/layout/activity_list_prepaid_card_receipt.xml diff --git a/receipt/src/main/res/layout/activity_list_user_receipt.xml b/receiptui/src/main/res/layout/activity_list_user_receipt.xml similarity index 100% rename from receipt/src/main/res/layout/activity_list_user_receipt.xml rename to receiptui/src/main/res/layout/activity_list_user_receipt.xml diff --git a/receipt/src/main/res/layout/activity_receipt_detail.xml b/receiptui/src/main/res/layout/activity_receipt_detail.xml similarity index 100% rename from receipt/src/main/res/layout/activity_receipt_detail.xml rename to receiptui/src/main/res/layout/activity_receipt_detail.xml diff --git a/receipt/src/main/res/layout/fragment_list_receipt.xml b/receiptui/src/main/res/layout/fragment_list_receipt.xml similarity index 100% rename from receipt/src/main/res/layout/fragment_list_receipt.xml rename to receiptui/src/main/res/layout/fragment_list_receipt.xml diff --git a/receipt/src/main/res/layout/fragment_receipt_detail.xml b/receiptui/src/main/res/layout/fragment_receipt_detail.xml similarity index 100% rename from receipt/src/main/res/layout/fragment_receipt_detail.xml rename to receiptui/src/main/res/layout/fragment_receipt_detail.xml diff --git a/receipt/src/main/res/layout/item_receipt.xml b/receiptui/src/main/res/layout/item_receipt.xml similarity index 100% rename from receipt/src/main/res/layout/item_receipt.xml rename to receiptui/src/main/res/layout/item_receipt.xml diff --git a/receipt/src/main/res/layout/item_receipt_with_header.xml b/receiptui/src/main/res/layout/item_receipt_with_header.xml similarity index 100% rename from receipt/src/main/res/layout/item_receipt_with_header.xml rename to receiptui/src/main/res/layout/item_receipt_with_header.xml diff --git a/receipt/src/main/res/layout/receipt.xml b/receiptui/src/main/res/layout/receipt.xml similarity index 100% rename from receipt/src/main/res/layout/receipt.xml rename to receiptui/src/main/res/layout/receipt.xml diff --git a/receipt/src/main/res/values/colors.xml b/receiptui/src/main/res/values/colors.xml similarity index 100% rename from receipt/src/main/res/values/colors.xml rename to receiptui/src/main/res/values/colors.xml diff --git a/receipt/src/main/res/values/dimens.xml b/receiptui/src/main/res/values/dimens.xml similarity index 100% rename from receipt/src/main/res/values/dimens.xml rename to receiptui/src/main/res/values/dimens.xml diff --git a/receipt/src/main/res/values/strings.xml b/receiptui/src/main/res/values/strings.xml similarity index 100% rename from receipt/src/main/res/values/strings.xml rename to receiptui/src/main/res/values/strings.xml diff --git a/receipt/src/main/res/values/styles.xml b/receiptui/src/main/res/values/styles.xml similarity index 100% rename from receipt/src/main/res/values/styles.xml rename to receiptui/src/main/res/values/styles.xml diff --git a/receipt/src/main/res/xml/network_security_config.xml b/receiptui/src/main/res/xml/network_security_config.xml similarity index 100% rename from receipt/src/main/res/xml/network_security_config.xml rename to receiptui/src/main/res/xml/network_security_config.xml diff --git a/settings.gradle b/settings.gradle index 3f286eb1e..541265fa1 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,2 @@ -include ':ui', ':common', ':receipt', ':userrepository', ':transfermethodrepository' +include ':ui', ':common', ':receiptui', ':receiptrepository', ':userrepository', ':transfermethodrepository' //add libraries here diff --git a/ui/build.gradle b/ui/build.gradle index 99aa02b2b..89945f32d 100644 --- a/ui/build.gradle +++ b/ui/build.gradle @@ -9,10 +9,11 @@ dependencies { implementation "androidx.recyclerview:recyclerview:$recycleViewVersion" api project(":common") - api project(":receipt") + api project(':receiptui') api project(":userrepository") api project(":transfermethodrepository") + androidTestImplementation "androidx.test:rules:$testRulesVersion" androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion" From 6f7eed935c19441ff79cbadea9c6fa39a9c1d2e4 Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Fri, 19 Jul 2019 13:26:16 +0300 Subject: [PATCH 11/13] HW-54223. Deleted RepositoryFactory --- .../transfermethod/AddTransferMethodTest.java | 4 +- .../ui/transfermethod/BankAccountTest.java | 4 +- .../ui/transfermethod/BankCardTest.java | 4 +- .../ListTransferMethodTest.java | 4 +- .../android/ui/transfermethod/PayPalTest.java | 4 +- .../SelectTransferMethodTest.java | 4 +- .../ui/repository/RepositoryFactory.java | 65 ------------------- .../AddTransferMethodFragment.java | 1 - .../SelectTransferMethodFragment.java | 6 +- .../ui/repository/RepositoryFactoryTest.java | 46 ------------- 10 files changed, 15 insertions(+), 127 deletions(-) delete mode 100644 ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java delete mode 100644 ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java b/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java index 18989446a..9729e3ad1 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java +++ b/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java @@ -38,9 +38,9 @@ import com.hyperwallet.android.ui.R; import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; import com.hyperwallet.android.ui.common.view.error.DefaultErrorDialogFragment; -import com.hyperwallet.android.ui.repository.RepositoryFactory; import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; import com.hyperwallet.android.ui.util.TestAuthenticationProvider; import org.junit.After; @@ -87,7 +87,7 @@ public void setup() { @After public void cleanup() { - RepositoryFactory.clearInstance(); + TransferMethodRepositoryFactory.clearInstance(); } @Before diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java b/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java index 4ac416f78..29200fdff 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java +++ b/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java @@ -48,9 +48,9 @@ import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; import com.hyperwallet.android.ui.R; import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; -import com.hyperwallet.android.ui.repository.RepositoryFactory; import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; import com.hyperwallet.android.ui.util.RecyclerViewCountAssertion; import com.hyperwallet.android.ui.util.TestAuthenticationProvider; @@ -101,7 +101,7 @@ public void setup() { @After public void cleanup() { - RepositoryFactory.clearInstance(); + TransferMethodRepositoryFactory.clearInstance(); } @Before diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java b/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java index 44ea7393f..20616743f 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java +++ b/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java @@ -45,9 +45,9 @@ import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; import com.hyperwallet.android.ui.R; import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; -import com.hyperwallet.android.ui.repository.RepositoryFactory; import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; import com.hyperwallet.android.ui.util.TestAuthenticationProvider; import org.junit.After; @@ -105,7 +105,7 @@ public void setup() { @After public void cleanup() { - RepositoryFactory.clearInstance(); + TransferMethodRepositoryFactory.clearInstance(); } @Before diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java b/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java index 01e3e1d29..3a40d0164 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java +++ b/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java @@ -40,9 +40,9 @@ import com.hyperwallet.android.Hyperwallet; import com.hyperwallet.android.model.HyperwalletStatusTransition; import com.hyperwallet.android.ui.R; -import com.hyperwallet.android.ui.repository.RepositoryFactory; import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; import com.hyperwallet.android.ui.util.RecyclerViewCountAssertion; import com.hyperwallet.android.ui.util.TestAuthenticationProvider; @@ -77,7 +77,7 @@ public void setup() { @After public void cleanup() { - RepositoryFactory.clearInstance(); + TransferMethodRepositoryFactory.clearInstance(); } @Test diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java b/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java index ebf34101b..4e1511625 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java +++ b/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java @@ -47,9 +47,9 @@ import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; import com.hyperwallet.android.ui.R; import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; -import com.hyperwallet.android.ui.repository.RepositoryFactory; import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; import com.hyperwallet.android.ui.util.TestAuthenticationProvider; import org.junit.After; @@ -95,7 +95,7 @@ public void setup() { @After public void cleanup() { - RepositoryFactory.clearInstance(); + TransferMethodRepositoryFactory.clearInstance(); } @Before diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java b/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java index 5c3ace145..81023a3a3 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java +++ b/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java @@ -44,9 +44,9 @@ import com.hyperwallet.android.Hyperwallet; import com.hyperwallet.android.ui.R; import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; -import com.hyperwallet.android.ui.repository.RepositoryFactory; import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; import com.hyperwallet.android.ui.util.RecyclerViewCountAssertion; import com.hyperwallet.android.ui.util.TestAuthenticationProvider; @@ -81,7 +81,7 @@ public void setup() { @After public void cleanup() { - RepositoryFactory.clearInstance(); + TransferMethodRepositoryFactory.clearInstance(); } @Before diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java b/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java deleted file mode 100644 index a8f35dafa..000000000 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/RepositoryFactory.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2018 Hyperwallet - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software - * and associated - * documentation files (the "Software"), to deal in the Software without restriction, including - * without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and - * to permit persons to whom the Software is furnished to do so, subject to the following - * conditions: - * - * The above copyright notice and this permission notice shall be included in all copies or - * substantial portions of - * the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - * BUT NOT LIMITED TO - * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO - * EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - * USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -package com.hyperwallet.android.ui.repository; - -import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepository; -import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepositoryImpl; -import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; -import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryImpl; - -@Deprecated -public class RepositoryFactory { - private static RepositoryFactory sInstance; - private TransferMethodConfigurationRepository mTransferMethodConfigurationRepository; - private TransferMethodRepository mTransferMethodRepository; - - private RepositoryFactory() { - mTransferMethodConfigurationRepository = new TransferMethodConfigurationRepositoryImpl(); - mTransferMethodRepository = new TransferMethodRepositoryImpl(); - } - - public static synchronized RepositoryFactory getInstance() { - if (sInstance == null) { - sInstance = new RepositoryFactory(); - } - return sInstance; - } - - public static void clearInstance() { - sInstance = null; - } - - public TransferMethodConfigurationRepository getTransferMethodConfigurationRepository() { - return mTransferMethodConfigurationRepository; - } - - public TransferMethodRepository getTransferMethodRepository() { - return mTransferMethodRepository; - } - -} diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java index a18ee00e6..ca550a617 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java @@ -57,7 +57,6 @@ import com.hyperwallet.android.model.transfermethod.PayPalAccount; import com.hyperwallet.android.ui.HyperwalletLocalBroadcast; import com.hyperwallet.android.ui.R; -import com.hyperwallet.android.ui.repository.RepositoryFactory; import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; import com.hyperwallet.android.ui.view.WidgetDateDialogFragment; import com.hyperwallet.android.ui.view.WidgetSelectionDialogFragment; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodFragment.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodFragment.java index 19fa3484d..65836590d 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodFragment.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodFragment.java @@ -42,7 +42,7 @@ import com.hyperwallet.android.ui.R; import com.hyperwallet.android.ui.common.view.HorizontalDividerItemDecorator; import com.hyperwallet.android.ui.common.view.OneClickListener; -import com.hyperwallet.android.ui.repository.RepositoryFactory; +import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; import com.hyperwallet.android.ui.user.repository.UserRepositoryFactory; import com.hyperwallet.android.ui.view.CountrySelectionDialogFragment; import com.hyperwallet.android.ui.view.CurrencySelectionDialogFragment; @@ -187,9 +187,9 @@ public void onTransferMethodSelected(TransferMethodSelectionItem transferMethodT public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); UserRepositoryFactory userRepositoryFactory = UserRepositoryFactory.getInstance(); - RepositoryFactory factory = RepositoryFactory.getInstance(); + TransferMethodRepositoryFactory transferMethodRepositoryFactory = TransferMethodRepositoryFactory.getInstance(); mPresenter = new SelectTransferMethodPresenter(this, - factory.getTransferMethodConfigurationRepository(), + transferMethodRepositoryFactory.getTransferMethodConfigurationRepository(), userRepositoryFactory.getUserRepository()); } diff --git a/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java b/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java deleted file mode 100644 index 65fa4d4fa..000000000 --- a/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.hyperwallet.android.ui.repository; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.not; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.notNullValue; - -import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodConfigurationRepository; -import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepository; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.RobolectricTestRunner; - -@RunWith(RobolectricTestRunner.class) -public class RepositoryFactoryTest { - - @Test - public void testGetInstance_verifyRepositoriesInitialized() { - RepositoryFactory repositoryFactory = RepositoryFactory.getInstance(); - assertThat(repositoryFactory, is(notNullValue())); - assertThat(repositoryFactory.getTransferMethodConfigurationRepository(), is(notNullValue())); - assertThat(repositoryFactory.getTransferMethodRepository(), is(notNullValue())); - } - - @Test - public void testClearInstance_verifyRepositoriesCleared() { - RepositoryFactory repositoryFactory = RepositoryFactory.getInstance(); - - TransferMethodConfigurationRepository configurationRepository = - repositoryFactory.getTransferMethodConfigurationRepository(); - TransferMethodRepository transferMethodRepository = repositoryFactory.getTransferMethodRepository(); - RepositoryFactory currentRepositoryFactory = RepositoryFactory.getInstance(); - assertThat(repositoryFactory, is(currentRepositoryFactory)); - assertThat(configurationRepository, is(currentRepositoryFactory.getTransferMethodConfigurationRepository())); - assertThat(transferMethodRepository, is(currentRepositoryFactory.getTransferMethodRepository())); - - RepositoryFactory.clearInstance(); - - RepositoryFactory anotherRepositoryFactory = RepositoryFactory.getInstance(); - assertThat(repositoryFactory, is(not(anotherRepositoryFactory))); - assertThat(configurationRepository, - is(not(anotherRepositoryFactory.getTransferMethodConfigurationRepository()))); - assertThat(transferMethodRepository, is(not(anotherRepositoryFactory.getTransferMethodRepository()))); - } -} \ No newline at end of file From aa2d3bb76e9844c177fb9993b8ecba29b8054b53 Mon Sep 17 00:00:00 2001 From: Flavio Mattos Date: Fri, 19 Jul 2019 13:46:10 -0700 Subject: [PATCH 12/13] task/HW-54230 renamed ui (#67) HW-54223 multi module project --- .gitignore | 7 +- android-library.gradle | 4 +- {common => commonrepository}/.gitignore | 0 {common => commonrepository}/build.gradle | 0 .../config/jacoco-settings.gradle | 82 ++++++++++++++ {common => commonrepository}/config/lint.xml | 0 .../proguard-rules.pro | 0 commonrepository/src/main/AndroidManifest.xml | 1 + .../repository}/EspressoIdlingResource.java | 2 +- .../android/ui/common/repository}/Event.java | 2 +- commonui/.gitignore | 1 + commonui/build.gradle | 6 + .../config/jacoco-settings.gradle | 4 +- commonui/config/lint.xml | 7 ++ {ui => commonui}/proguard-rules.pro | 0 .../src/main/AndroidManifest.xml | 0 .../android/ui/common/util/DateUtils.java | 0 .../view/HorizontalDividerItemDecorator.java | 0 .../ui/common/view/OneClickListener.java | 0 .../error/DefaultErrorDialogFragment.java | 0 .../DefaultErrorDialogFragmentContract.java | 0 .../DefaultErrorDialogFragmentPresenter.java | 0 .../view/error/OnNetworkErrorCallback.java | 0 .../common/viewmodel/ListDetailNavigator.java | 4 +- .../src/main/res/drawable/circle.xml | 0 .../src/main/res/drawable/circle_white.xml | 0 .../res/drawable/content_border_bottom.xml | 0 .../drawable/content_border_top_bottom.xml | 0 .../main/res/drawable/horizontal_divider.xml | 0 .../drawable/ic_baseline_bug_report_24px.xml | 0 .../drawable/ic_baseline_cloud_off_24px.xml | 0 .../res/drawable/ic_baseline_warning_24px.xml | 0 .../src/main/res/drawable/ic_check_14dp.xml | 0 .../src/main/res/drawable/ic_close_14dp.xml | 0 .../drawable/ic_keyboard_arrow_down_12dp.xml | 0 .../drawable/ic_keyboard_arrow_left_12dp.xml | 0 .../drawable/ic_keyboard_arrow_right_12dp.xml | 0 .../res/drawable/ic_launcher_background.xml | 0 .../main/res/drawable/ic_placeholder_24dp.xml | 0 .../src/main/res/drawable/ic_search_24dp.xml | 0 .../main/res/drawable/ic_three_dots_16dp.xml | 0 .../src/main/res/drawable/ic_trash.xml | 0 .../src/main/res/drawable/oval.xml | 0 .../res/drawable/view_border_top_bottom.xml | 0 .../main/res/drawable/view_item_ripple.xml | 0 .../src/main/res/font/icomoon.ttf | Bin .../src/main/res/values/colors.xml | 0 .../src/main/res/values/dimens.xml | 0 .../src/main/res/values/strings.xml | 0 .../src/main/res/values/styles.xml | 0 .../android/ui/common/util/DateUtilsTest.java | 0 ...faultErrorDialogFragmentPresenterTest.java | 0 publish.gradle | 6 +- receiptrepository/.gitignore | 1 + receiptrepository/build.gradle | 8 +- .../PrepaidCardReceiptDataSource.java | 4 +- .../PrepaidCardReceiptRepository.java | 3 +- .../PrepaidCardReceiptRepositoryImpl.java | 2 +- .../repository/UserReceiptDataSource.java | 10 +- .../repository/UserReceiptRepository.java | 2 +- .../repository/UserReceiptRepositoryImpl.java | 6 +- .../PrepaidCardReceiptDataSourceTest.java | 9 +- .../PrepaidCardReceiptRepositoryImplTest.java | 2 +- .../repository/UserReceiptDataSourceTest.java | 9 +- .../UserReceiptRepositoryImplTest.java | 2 +- .../HyperwalletExternalResourceManager.java | 3 +- receiptui/build.gradle | 2 +- .../receipt/ListPrepaidCardReceiptsTest.java | 6 +- .../ui/receipt/ListUserReceiptsTest.java | 4 +- .../ui/receipt/HyperwalletReceiptUi.java | 68 ++++++++++++ .../view/ListPrepaidCardReceiptActivity.java | 2 +- .../receipt/view/ListUserReceiptActivity.java | 2 +- .../ListPrepaidCardReceiptViewModel.java | 2 +- .../viewmodel/ListUserReceiptViewModel.java | 10 +- .../receipt/viewmodel/ReceiptViewModel.java | 2 +- .../HyperwalletExternalResourceManager.java | 2 +- .../authentication_token_response.json | 0 .../prepaid_card_receipt_credit_response.json | 0 .../prepaid_card_receipt_debit_response.json | 0 .../prepaid_card_receipt_list_response.json | 103 ++++++++++++++++++ ...id_card_receipt_unknown_type_response.json | 0 .../resources/receipt_credit_response.json | 0 .../resources/receipt_debit_response.json | 0 .../receipt_list_date_grouping_response.json | 90 +++++++++++++++ .../receipt_list_paged_last_response.json | 0 .../receipt_list_paged_response.json | 0 .../receipt_list_paged_second_response.json | 0 .../receipt_list_paged_third_response.json | 0 .../test/resources/receipt_list_response.json | 0 .../receipt_unknown_type_response.json | 0 settings.gradle | 3 +- transfermethodrepository/.gitignore | 2 + transfermethodrepository/build.gradle | 2 +- ...sferMethodConfigurationRepositoryImpl.java | 12 +- .../TransferMethodRepositoryFactory.java | 16 +++ .../util/EspressoIdlingResource.java | 24 ---- .../repository/FieldMapKeyTest.java | 2 - ...MethodConfigurationRepositoryImplTest.java | 2 +- .../HyperwalletExternalResourceManager.java | 2 +- {ui => transfermethodui}/.gitignore | 0 {ui => transfermethodui}/build.gradle | 7 +- .../config/jacoco-settings.gradle | 14 +-- {ui => transfermethodui}/config/lint.xml | 0 transfermethodui/proguard-rules.pro | 21 ++++ .../src/androidTest/AndroidManifest.xml | 2 +- .../transfermethod/AddTransferMethodTest.java | 11 +- .../ui/transfermethod/BankAccountTest.java | 21 ++-- .../ui/transfermethod/BankCardTest.java | 17 +-- ...yperwalletInstrumentedTestApplication.java | 2 +- .../ListTransferMethodTest.java | 13 ++- .../android/ui/transfermethod/PayPalTest.java | 17 +-- .../SelectTransferMethodTest.java | 25 +++-- .../HyperwalletExternalResourceManager.java | 73 +++++++++++++ .../rule/HyperwalletMockWebServer.java | 2 +- .../transfermethod}/util/EspressoUtils.java | 2 +- .../util/NestedScrollToAction.java | 2 +- .../util/RecyclerViewCountAssertion.java | 2 +- .../util/TestAuthenticationProvider.java | 2 +- .../src/main/AndroidManifest.xml | 6 +- ...perwalletTransferMethodLocalBroadcast.java | 8 +- .../HyperwalletTransferMethodUi.java | 57 ++++------ .../view}/AddTransferMethodActivity.java | 4 +- .../view}/AddTransferMethodContract.java | 2 +- .../view}/AddTransferMethodFragment.java | 42 ++++--- .../view}/AddTransferMethodPresenter.java | 2 +- .../view/CountrySelectionDialogFragment.java | 2 +- .../view/CurrencySelectionDialogFragment.java | 2 +- .../ui/transfermethod/view}/FeeFormatter.java | 2 +- .../view}/ListTransferMethodActivity.java | 4 +- .../view}/ListTransferMethodContract.java | 2 +- .../view}/ListTransferMethodFragment.java | 12 +- .../view}/ListTransferMethodPresenter.java | 2 +- .../OnTransferMethodDeactivateCallback.java | 2 +- .../view}/SelectTransferMethodActivity.java | 4 +- .../view}/SelectTransferMethodContract.java | 2 +- .../view}/SelectTransferMethodFragment.java | 6 +- .../view}/SelectTransferMethodPresenter.java | 4 +- .../view/ToolbarEventListener.java | 2 +- ...thodConfirmDeactivationDialogFragment.java | 2 +- .../view}/TransferMethodSelectionItem.java | 2 +- .../view}/TransferMethodUtils.java | 2 +- .../view/WidgetDateDialogFragment.java | 6 +- .../view/WidgetSelectionDialogFragment.java | 2 +- .../view/widget/AbstractWidget.java | 2 +- .../view/widget/DateChangedListener.java | 2 +- .../view/widget/DateUtils.java | 2 +- .../view/widget/DateWidget.java | 2 +- .../view/widget/DefaultAccountWidget.java | 2 +- .../view/widget/ExpireDateUtils.java | 2 +- .../view/widget/ExpiryDateWidget.java | 10 +- .../view/widget/NumberWidget.java | 2 +- .../view/widget/PhoneWidget.java | 2 +- .../view/widget/SelectionWidget.java | 4 +- .../view/widget/TextWidget.java | 2 +- .../view/widget/WidgetEventListener.java | 2 +- .../view/widget/WidgetFactory.java | 2 +- .../view/widget/WidgetInputState.java | 2 +- .../layout/activity_add_transfer_method.xml | 4 +- .../layout/activity_list_transfer_method.xml | 4 +- .../activity_select_transfer_method.xml | 2 +- .../dialog_fragment_country_selection.xml | 0 .../dialog_fragment_currency_selection.xml | 0 .../dialog_fragment_widget_selection.xml | 0 .../layout/fragment_add_transfer_method.xml | 2 +- .../layout/fragment_list_transfer_method.xml | 2 +- .../fragment_select_transfer_method.xml | 2 +- .../src/main/res/layout/item_country.xml | 0 .../src/main/res/layout/item_currency.xml | 0 .../res/layout/item_transfer_method_type.xml | 0 .../main/res/layout/item_widget_layout.xml | 0 .../res/layout/item_widget_section_header.xml | 0 .../main/res/layout/item_widget_selection.xml | 0 .../main/res/menu/menu_country_selection.xml | 0 .../main/res/menu/menu_currency_selection.xml | 0 .../main/res/menu/menu_widget_selection.xml | 0 .../res/menu/transfer_method_context_menu.xml | 0 .../mipmap-hdpi/ic_launcher_foreground.png | Bin .../mipmap-mdpi/ic_launcher_foreground.png | Bin .../mipmap-xhdpi/ic_launcher_foreground.png | Bin .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin .../res/values/ic_launcher_background.xml | 0 .../src/main/res/values/ids.xml | 0 .../src/main/res/values/strings.xml | 0 .../src/main/res/values/styles.xml | 0 .../main/res/xml/network_security_config.xml | 0 .../src/main/res/xml/searchable.xml | 0 .../AddTransferMethodPresenterTest.java | 4 +- .../ui/transfermethod/FeeFormatterTest.java | 3 +- .../ListTransferMethodPresenterTest.java | 2 + .../SelectTransferMethodPresenterTest.java | 5 +- .../TransferMethodUtilsTest.java | 5 +- .../HyperwalletExternalResourceManager.java | 2 +- .../view/widget/DateUtilsTest.java | 5 +- .../view/widget/ExpireDateUtilsTest.java | 2 +- .../add_transfer_method_presenter_test.json | 0 .../authentication_token_response.json | 0 ...nk_account_duplicate_routing_response.json | 0 ...bank_account_invalid_routing_response.json | 0 .../test/resources/bank_account_response.json | 0 .../test/resources/bank_card_response.json | 0 ...on_validation_error_test_diff_min_max.json | 0 ...on_validation_error_test_same_min_max.json | 0 .../resources/error_bank_card_response.json | 0 .../resources/error_tmc_fields_response.json | 0 .../resources/error_tmc_keys_response.json | 0 .../src/test/resources/fee_information.json | 0 .../test/resources/invalid_json_response.json | 0 .../partial_success_tmc_keys_response.json | 0 .../paypal_invalid_email_response.json | 0 .../src/test/resources/paypal_response.json | 0 ...sful_tmc_fields_bank_account_response.json | 0 ...cessful_tmc_fields_bank_card_response.json | 0 ...ful_tmc_fields_empty_details_response.json | 0 ...successful_tmc_fields_paypal_response.json | 0 ...uccessful_tmc_keys_empty_fee_response.json | 0 ...ul_tmc_keys_empty_processing_response.json | 0 .../successful_tmc_keys_large_response.json | 0 .../successful_tmc_keys_response.json | 0 .../transfer_method_deactivate_success.json | 0 ...transfer_method_list_deleted_response.json | 0 .../transfer_method_list_response.json | 0 ...hod_list_single_bank_account_response.json | 0 ...method_list_single_bank_card_response.json | 0 ...d_list_single_paypal_account_response.json | 0 .../resources/user_business_response.json | 0 .../src/test/resources/user_ca_response.json | 0 .../resources/user_no_country_response.json | 0 .../user_not_configured_country_response.json | 0 .../src/test/resources/user_response.json | 0 userrepository/build.gradle | 1 - .../ui/user/repository/UserRepository.java | 3 +- 232 files changed, 734 insertions(+), 311 deletions(-) rename {common => commonrepository}/.gitignore (100%) rename {common => commonrepository}/build.gradle (100%) create mode 100644 commonrepository/config/jacoco-settings.gradle rename {common => commonrepository}/config/lint.xml (100%) rename {common => commonrepository}/proguard-rules.pro (100%) create mode 100644 commonrepository/src/main/AndroidManifest.xml rename {common/src/main/java/com/hyperwallet/android/ui/common/util => commonrepository/src/main/java/com/hyperwallet/android/ui/common/repository}/EspressoIdlingResource.java (91%) rename {common/src/main/java/com/hyperwallet/android/ui/common/viewmodel => commonrepository/src/main/java/com/hyperwallet/android/ui/common/repository}/Event.java (97%) create mode 100644 commonui/.gitignore create mode 100644 commonui/build.gradle rename {common => commonui}/config/jacoco-settings.gradle (92%) create mode 100644 commonui/config/lint.xml rename {ui => commonui}/proguard-rules.pro (100%) rename {common => commonui}/src/main/AndroidManifest.xml (100%) rename {common => commonui}/src/main/java/com/hyperwallet/android/ui/common/util/DateUtils.java (100%) rename {common => commonui}/src/main/java/com/hyperwallet/android/ui/common/view/HorizontalDividerItemDecorator.java (100%) rename {common => commonui}/src/main/java/com/hyperwallet/android/ui/common/view/OneClickListener.java (100%) rename {common => commonui}/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragment.java (100%) rename {common => commonui}/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentContract.java (100%) rename {common => commonui}/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenter.java (100%) rename {common => commonui}/src/main/java/com/hyperwallet/android/ui/common/view/error/OnNetworkErrorCallback.java (100%) rename {common => commonui}/src/main/java/com/hyperwallet/android/ui/common/viewmodel/ListDetailNavigator.java (94%) rename {common => commonui}/src/main/res/drawable/circle.xml (100%) rename {common => commonui}/src/main/res/drawable/circle_white.xml (100%) rename {common => commonui}/src/main/res/drawable/content_border_bottom.xml (100%) rename {common => commonui}/src/main/res/drawable/content_border_top_bottom.xml (100%) rename {common => commonui}/src/main/res/drawable/horizontal_divider.xml (100%) rename {common => commonui}/src/main/res/drawable/ic_baseline_bug_report_24px.xml (100%) rename {common => commonui}/src/main/res/drawable/ic_baseline_cloud_off_24px.xml (100%) rename {common => commonui}/src/main/res/drawable/ic_baseline_warning_24px.xml (100%) rename {common => commonui}/src/main/res/drawable/ic_check_14dp.xml (100%) rename {common => commonui}/src/main/res/drawable/ic_close_14dp.xml (100%) rename {common => commonui}/src/main/res/drawable/ic_keyboard_arrow_down_12dp.xml (100%) rename {common => commonui}/src/main/res/drawable/ic_keyboard_arrow_left_12dp.xml (100%) rename {common => commonui}/src/main/res/drawable/ic_keyboard_arrow_right_12dp.xml (100%) rename {common => commonui}/src/main/res/drawable/ic_launcher_background.xml (100%) rename {common => commonui}/src/main/res/drawable/ic_placeholder_24dp.xml (100%) rename {common => commonui}/src/main/res/drawable/ic_search_24dp.xml (100%) rename {common => commonui}/src/main/res/drawable/ic_three_dots_16dp.xml (100%) rename {common => commonui}/src/main/res/drawable/ic_trash.xml (100%) rename {common => commonui}/src/main/res/drawable/oval.xml (100%) rename {common => commonui}/src/main/res/drawable/view_border_top_bottom.xml (100%) rename {common => commonui}/src/main/res/drawable/view_item_ripple.xml (100%) rename {common => commonui}/src/main/res/font/icomoon.ttf (100%) rename {common => commonui}/src/main/res/values/colors.xml (100%) rename {common => commonui}/src/main/res/values/dimens.xml (100%) rename {common => commonui}/src/main/res/values/strings.xml (100%) rename {common => commonui}/src/main/res/values/styles.xml (100%) rename {common => commonui}/src/test/java/com/hyperwallet/android/ui/common/util/DateUtilsTest.java (100%) rename {common => commonui}/src/test/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenterTest.java (100%) create mode 100644 receiptrepository/.gitignore rename {ui/src/androidTest/java/com/hyperwallet/android/ui => receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt}/rule/HyperwalletExternalResourceManager.java (98%) create mode 100644 receiptui/src/main/java/com/hyperwallet/android/ui/receipt/HyperwalletReceiptUi.java rename {receiptrepository/src/test/java/com/hyperwallet/android/ui => receiptui/src/test/java/com/hyperwallet/android/ui/transfermethod}/rule/HyperwalletExternalResourceManager.java (97%) rename {receiptrepository => receiptui}/src/test/resources/authentication_token_response.json (100%) rename {receiptrepository => receiptui}/src/test/resources/prepaid_card_receipt_credit_response.json (100%) rename {receiptrepository => receiptui}/src/test/resources/prepaid_card_receipt_debit_response.json (100%) create mode 100644 receiptui/src/test/resources/prepaid_card_receipt_list_response.json rename {receiptrepository => receiptui}/src/test/resources/prepaid_card_receipt_unknown_type_response.json (100%) rename {receiptrepository => receiptui}/src/test/resources/receipt_credit_response.json (100%) rename {receiptrepository => receiptui}/src/test/resources/receipt_debit_response.json (100%) create mode 100644 receiptui/src/test/resources/receipt_list_date_grouping_response.json rename {receiptrepository => receiptui}/src/test/resources/receipt_list_paged_last_response.json (100%) rename {receiptrepository => receiptui}/src/test/resources/receipt_list_paged_response.json (100%) rename {receiptrepository => receiptui}/src/test/resources/receipt_list_paged_second_response.json (100%) rename {receiptrepository => receiptui}/src/test/resources/receipt_list_paged_third_response.json (100%) rename {receiptrepository => receiptui}/src/test/resources/receipt_list_response.json (100%) rename {receiptrepository => receiptui}/src/test/resources/receipt_unknown_type_response.json (100%) delete mode 100644 transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java rename {ui/src/test/java/com/hyperwallet/android/ui => transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod}/rule/HyperwalletExternalResourceManager.java (97%) rename {ui => transfermethodui}/.gitignore (100%) rename {ui => transfermethodui}/build.gradle (89%) rename {ui => transfermethodui}/config/jacoco-settings.gradle (79%) rename {ui => transfermethodui}/config/lint.xml (100%) create mode 100644 transfermethodui/proguard-rules.pro rename {ui => transfermethodui}/src/androidTest/AndroidManifest.xml (62%) rename {ui => transfermethodui}/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java (95%) rename {ui => transfermethodui}/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java (96%) rename {ui => transfermethodui}/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java (94%) rename {ui/src/androidTest/java/com/hyperwallet/android/ui => transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod}/HyperwalletInstrumentedTestApplication.java (93%) rename {ui => transfermethodui}/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java (97%) rename {ui => transfermethodui}/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java (93%) rename {ui => transfermethodui}/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java (95%) create mode 100644 transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java rename {ui/src/androidTest/java/com/hyperwallet/android/ui => transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod}/rule/HyperwalletMockWebServer.java (98%) rename {ui/src/androidTest/java/com/hyperwallet/android/ui => transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod}/util/EspressoUtils.java (99%) rename {ui/src/androidTest/java/com/hyperwallet/android/ui => transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod}/util/NestedScrollToAction.java (95%) rename {ui/src/androidTest/java/com/hyperwallet/android/ui => transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod}/util/RecyclerViewCountAssertion.java (93%) rename {ui/src/androidTest/java/com/hyperwallet/android/ui => transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod}/util/TestAuthenticationProvider.java (96%) rename {ui => transfermethodui}/src/main/AndroidManifest.xml (91%) rename ui/src/main/java/com/hyperwallet/android/ui/HyperwalletLocalBroadcast.java => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodLocalBroadcast.java (86%) rename ui/src/main/java/com/hyperwallet/android/ui/HyperwalletUi.java => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodUi.java (63%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/AddTransferMethodActivity.java (97%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/AddTransferMethodContract.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/AddTransferMethodFragment.java (97%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/AddTransferMethodPresenter.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/CountrySelectionDialogFragment.java (99%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/CurrencySelectionDialogFragment.java (99%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/FeeFormatter.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/ListTransferMethodActivity.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/ListTransferMethodContract.java (97%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/ListTransferMethodFragment.java (96%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/ListTransferMethodPresenter.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/OnTransferMethodDeactivateCallback.java (95%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/SelectTransferMethodActivity.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/SelectTransferMethodContract.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/SelectTransferMethodFragment.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/SelectTransferMethodPresenter.java (99%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/ToolbarEventListener.java (95%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/TransferMethodConfirmDeactivationDialogFragment.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/TransferMethodSelectionItem.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui/transfermethod => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view}/TransferMethodUtils.java (99%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/WidgetDateDialogFragment.java (97%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/WidgetSelectionDialogFragment.java (99%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/widget/AbstractWidget.java (99%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/widget/DateChangedListener.java (94%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/widget/DateUtils.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/widget/DateWidget.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/widget/DefaultAccountWidget.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/widget/ExpireDateUtils.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/widget/ExpiryDateWidget.java (95%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/widget/NumberWidget.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/widget/PhoneWidget.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/widget/SelectionWidget.java (97%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/widget/TextWidget.java (98%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/widget/WidgetEventListener.java (96%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/widget/WidgetFactory.java (97%) rename {ui/src/main/java/com/hyperwallet/android/ui => transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod}/view/widget/WidgetInputState.java (98%) rename {ui => transfermethodui}/src/main/res/layout/activity_add_transfer_method.xml (96%) rename {ui => transfermethodui}/src/main/res/layout/activity_list_transfer_method.xml (94%) rename {ui => transfermethodui}/src/main/res/layout/activity_select_transfer_method.xml (98%) rename {ui => transfermethodui}/src/main/res/layout/dialog_fragment_country_selection.xml (100%) rename {ui => transfermethodui}/src/main/res/layout/dialog_fragment_currency_selection.xml (100%) rename {ui => transfermethodui}/src/main/res/layout/dialog_fragment_widget_selection.xml (100%) rename {ui => transfermethodui}/src/main/res/layout/fragment_add_transfer_method.xml (99%) rename {ui => transfermethodui}/src/main/res/layout/fragment_list_transfer_method.xml (96%) rename {ui => transfermethodui}/src/main/res/layout/fragment_select_transfer_method.xml (98%) rename {ui => transfermethodui}/src/main/res/layout/item_country.xml (100%) rename {ui => transfermethodui}/src/main/res/layout/item_currency.xml (100%) rename {ui => transfermethodui}/src/main/res/layout/item_transfer_method_type.xml (100%) rename {ui => transfermethodui}/src/main/res/layout/item_widget_layout.xml (100%) rename {ui => transfermethodui}/src/main/res/layout/item_widget_section_header.xml (100%) rename {ui => transfermethodui}/src/main/res/layout/item_widget_selection.xml (100%) rename {ui => transfermethodui}/src/main/res/menu/menu_country_selection.xml (100%) rename {ui => transfermethodui}/src/main/res/menu/menu_currency_selection.xml (100%) rename {ui => transfermethodui}/src/main/res/menu/menu_widget_selection.xml (100%) rename {ui => transfermethodui}/src/main/res/menu/transfer_method_context_menu.xml (100%) rename {ui => transfermethodui}/src/main/res/mipmap-hdpi/ic_launcher_foreground.png (100%) rename {ui => transfermethodui}/src/main/res/mipmap-mdpi/ic_launcher_foreground.png (100%) rename {ui => transfermethodui}/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png (100%) rename {ui => transfermethodui}/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png (100%) rename {ui => transfermethodui}/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png (100%) rename {ui => transfermethodui}/src/main/res/values/ic_launcher_background.xml (100%) rename {ui => transfermethodui}/src/main/res/values/ids.xml (100%) rename {ui => transfermethodui}/src/main/res/values/strings.xml (100%) rename {ui => transfermethodui}/src/main/res/values/styles.xml (100%) rename {ui => transfermethodui}/src/main/res/xml/network_security_config.xml (100%) rename {ui => transfermethodui}/src/main/res/xml/searchable.xml (100%) rename {ui => transfermethodui}/src/test/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenterTest.java (98%) rename {ui => transfermethodui}/src/test/java/com/hyperwallet/android/ui/transfermethod/FeeFormatterTest.java (97%) rename {ui => transfermethodui}/src/test/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodPresenterTest.java (99%) rename {ui => transfermethodui}/src/test/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodPresenterTest.java (99%) rename {ui => transfermethodui}/src/test/java/com/hyperwallet/android/ui/transfermethod/TransferMethodUtilsTest.java (97%) rename {transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository => transfermethodui/src/test/java/com/hyperwallet/android/ui/transfermethod}/rule/HyperwalletExternalResourceManager.java (97%) rename {ui/src/test/java/com/hyperwallet/android/ui => transfermethodui/src/test/java/com/hyperwallet/android/ui/transfermethod}/view/widget/DateUtilsTest.java (98%) rename {ui/src/test/java/com/hyperwallet/android/ui => transfermethodui/src/test/java/com/hyperwallet/android/ui/transfermethod}/view/widget/ExpireDateUtilsTest.java (98%) rename {ui => transfermethodui}/src/test/resources/add_transfer_method_presenter_test.json (100%) rename {ui => transfermethodui}/src/test/resources/authentication_token_response.json (100%) rename {ui => transfermethodui}/src/test/resources/bank_account_duplicate_routing_response.json (100%) rename {ui => transfermethodui}/src/test/resources/bank_account_invalid_routing_response.json (100%) rename {ui => transfermethodui}/src/test/resources/bank_account_response.json (100%) rename {ui => transfermethodui}/src/test/resources/bank_card_response.json (100%) rename {ui => transfermethodui}/src/test/resources/common_validation_error_test_diff_min_max.json (100%) rename {ui => transfermethodui}/src/test/resources/common_validation_error_test_same_min_max.json (100%) rename {ui => transfermethodui}/src/test/resources/error_bank_card_response.json (100%) rename {ui => transfermethodui}/src/test/resources/error_tmc_fields_response.json (100%) rename {ui => transfermethodui}/src/test/resources/error_tmc_keys_response.json (100%) rename {ui => transfermethodui}/src/test/resources/fee_information.json (100%) rename {ui => transfermethodui}/src/test/resources/invalid_json_response.json (100%) rename {ui => transfermethodui}/src/test/resources/partial_success_tmc_keys_response.json (100%) rename {ui => transfermethodui}/src/test/resources/paypal_invalid_email_response.json (100%) rename {ui => transfermethodui}/src/test/resources/paypal_response.json (100%) rename {ui => transfermethodui}/src/test/resources/successful_tmc_fields_bank_account_response.json (100%) rename {ui => transfermethodui}/src/test/resources/successful_tmc_fields_bank_card_response.json (100%) rename {ui => transfermethodui}/src/test/resources/successful_tmc_fields_empty_details_response.json (100%) rename {ui => transfermethodui}/src/test/resources/successful_tmc_fields_paypal_response.json (100%) rename {ui => transfermethodui}/src/test/resources/successful_tmc_keys_empty_fee_response.json (100%) rename {ui => transfermethodui}/src/test/resources/successful_tmc_keys_empty_processing_response.json (100%) rename {ui => transfermethodui}/src/test/resources/successful_tmc_keys_large_response.json (100%) rename {ui => transfermethodui}/src/test/resources/successful_tmc_keys_response.json (100%) rename {ui => transfermethodui}/src/test/resources/transfer_method_deactivate_success.json (100%) rename {ui => transfermethodui}/src/test/resources/transfer_method_list_deleted_response.json (100%) rename {ui => transfermethodui}/src/test/resources/transfer_method_list_response.json (100%) rename {ui => transfermethodui}/src/test/resources/transfer_method_list_single_bank_account_response.json (100%) rename {ui => transfermethodui}/src/test/resources/transfer_method_list_single_bank_card_response.json (100%) rename {ui => transfermethodui}/src/test/resources/transfer_method_list_single_paypal_account_response.json (100%) rename {ui => transfermethodui}/src/test/resources/user_business_response.json (100%) rename {ui => transfermethodui}/src/test/resources/user_ca_response.json (100%) rename {ui => transfermethodui}/src/test/resources/user_no_country_response.json (100%) rename {ui => transfermethodui}/src/test/resources/user_not_configured_country_response.json (100%) rename {ui => transfermethodui}/src/test/resources/user_response.json (100%) diff --git a/.gitignore b/.gitignore index 54b1252fb..eabbab986 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,9 @@ local.properties *.log # Android Studio captures folder -captures/ \ No newline at end of file +captures/ + + +*.exec + +*.hprof \ No newline at end of file diff --git a/android-library.gradle b/android-library.gradle index 0d8012de0..750c9a8d9 100644 --- a/android-library.gradle +++ b/android-library.gradle @@ -55,9 +55,9 @@ task sourcesJar(type: Jar) { } dependencies { - implementation "com.google.android.material:material:$androidMaterialVersion" - implementation "com.hyperwallet.android:core-sdk:$hyperwalletCoreVersion" + api "com.hyperwallet.android:core-sdk:$hyperwalletCoreVersion" + implementation "com.google.android.material:material:$androidMaterialVersion" implementation "androidx.test.espresso:espresso-idling-resource:$espressoVersion" androidTestImplementation "androidx.test.ext:junit:$extJunitVerson" diff --git a/common/.gitignore b/commonrepository/.gitignore similarity index 100% rename from common/.gitignore rename to commonrepository/.gitignore diff --git a/common/build.gradle b/commonrepository/build.gradle similarity index 100% rename from common/build.gradle rename to commonrepository/build.gradle diff --git a/commonrepository/config/jacoco-settings.gradle b/commonrepository/config/jacoco-settings.gradle new file mode 100644 index 000000000..fd79c8da1 --- /dev/null +++ b/commonrepository/config/jacoco-settings.gradle @@ -0,0 +1,82 @@ +apply plugin: 'jacoco' + +final def jacocoVersion = "0.8.2" + +jacoco { + toolVersion = jacocoVersion +} + +android { + testOptions { + unitTests { + includeAndroidResources = true + returnDefaultValues = true + } + unitTests.all { + jacoco { + includeNoLocationClasses = true + } + } + } +} + +def fileFilter = ['**/BuildConfig.*', + '**/com/hyperwallet/android/ui/common/repository/EspressoIdlingResource.*', + '**/com/hyperwallet/android/ui/common/repository/Event.*' +] + +def debugClassPaths = [ + '**/intermediates/javac/debug/*/classes/**' +] + +final def coverageSourceDirs = ["$project.projectDir/src/main/java/*"] + +task jacocoTestReport(type: JacocoReport, dependsOn: 'testDebugUnitTest') { + + group = 'Reporting' + description = 'Generate Jacoco coverage reports.' + + reports { + html { + enabled = true + destination file("$buildDir/reports/jacoco") + } + } + + classDirectories = fileTree( + dir: "${buildDir}", + includes: debugClassPaths, + excludes: fileFilter + ) + + additionalSourceDirs = files(coverageSourceDirs) + sourceDirectories = files(coverageSourceDirs) + executionData = files("${buildDir}/jacoco/testDebugUnitTest.exec") +} + +task jacocoTestCoverageVerification(type: JacocoCoverageVerification, dependsOn: 'jacocoTestReport') { + + group = 'Verification' + classDirectories = fileTree( + dir: "${buildDir}", + includes: debugClassPaths, + excludes: fileFilter + ) + additionalSourceDirs = files(coverageSourceDirs) + sourceDirectories = files(coverageSourceDirs) + executionData = files("${buildDir}/jacoco/testDebugUnitTest.exec") + + violationRules { + setFailOnViolation(true) + + rule { + element = 'CLASS' + limit { + value = 'COVEREDRATIO' + counter = 'BRANCH' + minimum = 0.65 + } + } + } +} + diff --git a/common/config/lint.xml b/commonrepository/config/lint.xml similarity index 100% rename from common/config/lint.xml rename to commonrepository/config/lint.xml diff --git a/common/proguard-rules.pro b/commonrepository/proguard-rules.pro similarity index 100% rename from common/proguard-rules.pro rename to commonrepository/proguard-rules.pro diff --git a/commonrepository/src/main/AndroidManifest.xml b/commonrepository/src/main/AndroidManifest.xml new file mode 100644 index 000000000..ab9a2cf4c --- /dev/null +++ b/commonrepository/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/util/EspressoIdlingResource.java b/commonrepository/src/main/java/com/hyperwallet/android/ui/common/repository/EspressoIdlingResource.java similarity index 91% rename from common/src/main/java/com/hyperwallet/android/ui/common/util/EspressoIdlingResource.java rename to commonrepository/src/main/java/com/hyperwallet/android/ui/common/repository/EspressoIdlingResource.java index 56c870127..dafe63694 100644 --- a/common/src/main/java/com/hyperwallet/android/ui/common/util/EspressoIdlingResource.java +++ b/commonrepository/src/main/java/com/hyperwallet/android/ui/common/repository/EspressoIdlingResource.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.ui.common.util; +package com.hyperwallet.android.ui.common.repository; import androidx.test.espresso.IdlingResource; import androidx.test.espresso.idling.CountingIdlingResource; diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/viewmodel/Event.java b/commonrepository/src/main/java/com/hyperwallet/android/ui/common/repository/Event.java similarity index 97% rename from common/src/main/java/com/hyperwallet/android/ui/common/viewmodel/Event.java rename to commonrepository/src/main/java/com/hyperwallet/android/ui/common/repository/Event.java index 984bb9995..36e63f1e8 100644 --- a/common/src/main/java/com/hyperwallet/android/ui/common/viewmodel/Event.java +++ b/commonrepository/src/main/java/com/hyperwallet/android/ui/common/repository/Event.java @@ -14,7 +14,7 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.common.viewmodel; +package com.hyperwallet.android.ui.common.repository; import androidx.annotation.NonNull; import androidx.annotation.Nullable; diff --git a/commonui/.gitignore b/commonui/.gitignore new file mode 100644 index 000000000..796b96d1c --- /dev/null +++ b/commonui/.gitignore @@ -0,0 +1 @@ +/build diff --git a/commonui/build.gradle b/commonui/build.gradle new file mode 100644 index 000000000..b9a663338 --- /dev/null +++ b/commonui/build.gradle @@ -0,0 +1,6 @@ +apply from: "$rootProject.projectDir/android-library.gradle" +apply from: "$rootProject.projectDir/publish.gradle" + +dependencies { + implementation project(':commonrepository') +} \ No newline at end of file diff --git a/common/config/jacoco-settings.gradle b/commonui/config/jacoco-settings.gradle similarity index 92% rename from common/config/jacoco-settings.gradle rename to commonui/config/jacoco-settings.gradle index 0fe7bbd10..fa8fde9dd 100644 --- a/common/config/jacoco-settings.gradle +++ b/commonui/config/jacoco-settings.gradle @@ -23,9 +23,7 @@ android { def fileFilter = ['**/BuildConfig.*', '**/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragment.*', '**/com/hyperwallet/android/ui/common/view/HorizontalDividerItemDecorator.*', - '**/com/hyperwallet/android/ui/common/view/OneClickListener.*', - '**/com/hyperwallet/android/ui/common/util/EspressoIdlingResource.*', - '**/com/hyperwallet/android/ui/common/viewmodel/Event.*' + '**/com/hyperwallet/android/ui/common/view/OneClickListener.*' ] def debugClassPaths = [ diff --git a/commonui/config/lint.xml b/commonui/config/lint.xml new file mode 100644 index 000000000..3c83d4bb5 --- /dev/null +++ b/commonui/config/lint.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/ui/proguard-rules.pro b/commonui/proguard-rules.pro similarity index 100% rename from ui/proguard-rules.pro rename to commonui/proguard-rules.pro diff --git a/common/src/main/AndroidManifest.xml b/commonui/src/main/AndroidManifest.xml similarity index 100% rename from common/src/main/AndroidManifest.xml rename to commonui/src/main/AndroidManifest.xml diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/util/DateUtils.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/util/DateUtils.java similarity index 100% rename from common/src/main/java/com/hyperwallet/android/ui/common/util/DateUtils.java rename to commonui/src/main/java/com/hyperwallet/android/ui/common/util/DateUtils.java diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/view/HorizontalDividerItemDecorator.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/view/HorizontalDividerItemDecorator.java similarity index 100% rename from common/src/main/java/com/hyperwallet/android/ui/common/view/HorizontalDividerItemDecorator.java rename to commonui/src/main/java/com/hyperwallet/android/ui/common/view/HorizontalDividerItemDecorator.java diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/view/OneClickListener.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/view/OneClickListener.java similarity index 100% rename from common/src/main/java/com/hyperwallet/android/ui/common/view/OneClickListener.java rename to commonui/src/main/java/com/hyperwallet/android/ui/common/view/OneClickListener.java diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragment.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragment.java similarity index 100% rename from common/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragment.java rename to commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragment.java diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentContract.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentContract.java similarity index 100% rename from common/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentContract.java rename to commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentContract.java diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenter.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenter.java similarity index 100% rename from common/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenter.java rename to commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenter.java diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/view/error/OnNetworkErrorCallback.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/OnNetworkErrorCallback.java similarity index 100% rename from common/src/main/java/com/hyperwallet/android/ui/common/view/error/OnNetworkErrorCallback.java rename to commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/OnNetworkErrorCallback.java diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/viewmodel/ListDetailNavigator.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/viewmodel/ListDetailNavigator.java similarity index 94% rename from common/src/main/java/com/hyperwallet/android/ui/common/viewmodel/ListDetailNavigator.java rename to commonui/src/main/java/com/hyperwallet/android/ui/common/viewmodel/ListDetailNavigator.java index b5916f1b2..1d868e791 100644 --- a/common/src/main/java/com/hyperwallet/android/ui/common/viewmodel/ListDetailNavigator.java +++ b/commonui/src/main/java/com/hyperwallet/android/ui/common/viewmodel/ListDetailNavigator.java @@ -19,12 +19,12 @@ /** * Detail interface for having a list UI with detail information through navigation */ -public interface ListDetailNavigator { +public interface ListDetailNavigator { /** * Navigate action * * @param e Navigation event */ - void navigate(Event e); + void navigate(T e); } diff --git a/common/src/main/res/drawable/circle.xml b/commonui/src/main/res/drawable/circle.xml similarity index 100% rename from common/src/main/res/drawable/circle.xml rename to commonui/src/main/res/drawable/circle.xml diff --git a/common/src/main/res/drawable/circle_white.xml b/commonui/src/main/res/drawable/circle_white.xml similarity index 100% rename from common/src/main/res/drawable/circle_white.xml rename to commonui/src/main/res/drawable/circle_white.xml diff --git a/common/src/main/res/drawable/content_border_bottom.xml b/commonui/src/main/res/drawable/content_border_bottom.xml similarity index 100% rename from common/src/main/res/drawable/content_border_bottom.xml rename to commonui/src/main/res/drawable/content_border_bottom.xml diff --git a/common/src/main/res/drawable/content_border_top_bottom.xml b/commonui/src/main/res/drawable/content_border_top_bottom.xml similarity index 100% rename from common/src/main/res/drawable/content_border_top_bottom.xml rename to commonui/src/main/res/drawable/content_border_top_bottom.xml diff --git a/common/src/main/res/drawable/horizontal_divider.xml b/commonui/src/main/res/drawable/horizontal_divider.xml similarity index 100% rename from common/src/main/res/drawable/horizontal_divider.xml rename to commonui/src/main/res/drawable/horizontal_divider.xml diff --git a/common/src/main/res/drawable/ic_baseline_bug_report_24px.xml b/commonui/src/main/res/drawable/ic_baseline_bug_report_24px.xml similarity index 100% rename from common/src/main/res/drawable/ic_baseline_bug_report_24px.xml rename to commonui/src/main/res/drawable/ic_baseline_bug_report_24px.xml diff --git a/common/src/main/res/drawable/ic_baseline_cloud_off_24px.xml b/commonui/src/main/res/drawable/ic_baseline_cloud_off_24px.xml similarity index 100% rename from common/src/main/res/drawable/ic_baseline_cloud_off_24px.xml rename to commonui/src/main/res/drawable/ic_baseline_cloud_off_24px.xml diff --git a/common/src/main/res/drawable/ic_baseline_warning_24px.xml b/commonui/src/main/res/drawable/ic_baseline_warning_24px.xml similarity index 100% rename from common/src/main/res/drawable/ic_baseline_warning_24px.xml rename to commonui/src/main/res/drawable/ic_baseline_warning_24px.xml diff --git a/common/src/main/res/drawable/ic_check_14dp.xml b/commonui/src/main/res/drawable/ic_check_14dp.xml similarity index 100% rename from common/src/main/res/drawable/ic_check_14dp.xml rename to commonui/src/main/res/drawable/ic_check_14dp.xml diff --git a/common/src/main/res/drawable/ic_close_14dp.xml b/commonui/src/main/res/drawable/ic_close_14dp.xml similarity index 100% rename from common/src/main/res/drawable/ic_close_14dp.xml rename to commonui/src/main/res/drawable/ic_close_14dp.xml diff --git a/common/src/main/res/drawable/ic_keyboard_arrow_down_12dp.xml b/commonui/src/main/res/drawable/ic_keyboard_arrow_down_12dp.xml similarity index 100% rename from common/src/main/res/drawable/ic_keyboard_arrow_down_12dp.xml rename to commonui/src/main/res/drawable/ic_keyboard_arrow_down_12dp.xml diff --git a/common/src/main/res/drawable/ic_keyboard_arrow_left_12dp.xml b/commonui/src/main/res/drawable/ic_keyboard_arrow_left_12dp.xml similarity index 100% rename from common/src/main/res/drawable/ic_keyboard_arrow_left_12dp.xml rename to commonui/src/main/res/drawable/ic_keyboard_arrow_left_12dp.xml diff --git a/common/src/main/res/drawable/ic_keyboard_arrow_right_12dp.xml b/commonui/src/main/res/drawable/ic_keyboard_arrow_right_12dp.xml similarity index 100% rename from common/src/main/res/drawable/ic_keyboard_arrow_right_12dp.xml rename to commonui/src/main/res/drawable/ic_keyboard_arrow_right_12dp.xml diff --git a/common/src/main/res/drawable/ic_launcher_background.xml b/commonui/src/main/res/drawable/ic_launcher_background.xml similarity index 100% rename from common/src/main/res/drawable/ic_launcher_background.xml rename to commonui/src/main/res/drawable/ic_launcher_background.xml diff --git a/common/src/main/res/drawable/ic_placeholder_24dp.xml b/commonui/src/main/res/drawable/ic_placeholder_24dp.xml similarity index 100% rename from common/src/main/res/drawable/ic_placeholder_24dp.xml rename to commonui/src/main/res/drawable/ic_placeholder_24dp.xml diff --git a/common/src/main/res/drawable/ic_search_24dp.xml b/commonui/src/main/res/drawable/ic_search_24dp.xml similarity index 100% rename from common/src/main/res/drawable/ic_search_24dp.xml rename to commonui/src/main/res/drawable/ic_search_24dp.xml diff --git a/common/src/main/res/drawable/ic_three_dots_16dp.xml b/commonui/src/main/res/drawable/ic_three_dots_16dp.xml similarity index 100% rename from common/src/main/res/drawable/ic_three_dots_16dp.xml rename to commonui/src/main/res/drawable/ic_three_dots_16dp.xml diff --git a/common/src/main/res/drawable/ic_trash.xml b/commonui/src/main/res/drawable/ic_trash.xml similarity index 100% rename from common/src/main/res/drawable/ic_trash.xml rename to commonui/src/main/res/drawable/ic_trash.xml diff --git a/common/src/main/res/drawable/oval.xml b/commonui/src/main/res/drawable/oval.xml similarity index 100% rename from common/src/main/res/drawable/oval.xml rename to commonui/src/main/res/drawable/oval.xml diff --git a/common/src/main/res/drawable/view_border_top_bottom.xml b/commonui/src/main/res/drawable/view_border_top_bottom.xml similarity index 100% rename from common/src/main/res/drawable/view_border_top_bottom.xml rename to commonui/src/main/res/drawable/view_border_top_bottom.xml diff --git a/common/src/main/res/drawable/view_item_ripple.xml b/commonui/src/main/res/drawable/view_item_ripple.xml similarity index 100% rename from common/src/main/res/drawable/view_item_ripple.xml rename to commonui/src/main/res/drawable/view_item_ripple.xml diff --git a/common/src/main/res/font/icomoon.ttf b/commonui/src/main/res/font/icomoon.ttf similarity index 100% rename from common/src/main/res/font/icomoon.ttf rename to commonui/src/main/res/font/icomoon.ttf diff --git a/common/src/main/res/values/colors.xml b/commonui/src/main/res/values/colors.xml similarity index 100% rename from common/src/main/res/values/colors.xml rename to commonui/src/main/res/values/colors.xml diff --git a/common/src/main/res/values/dimens.xml b/commonui/src/main/res/values/dimens.xml similarity index 100% rename from common/src/main/res/values/dimens.xml rename to commonui/src/main/res/values/dimens.xml diff --git a/common/src/main/res/values/strings.xml b/commonui/src/main/res/values/strings.xml similarity index 100% rename from common/src/main/res/values/strings.xml rename to commonui/src/main/res/values/strings.xml diff --git a/common/src/main/res/values/styles.xml b/commonui/src/main/res/values/styles.xml similarity index 100% rename from common/src/main/res/values/styles.xml rename to commonui/src/main/res/values/styles.xml diff --git a/common/src/test/java/com/hyperwallet/android/ui/common/util/DateUtilsTest.java b/commonui/src/test/java/com/hyperwallet/android/ui/common/util/DateUtilsTest.java similarity index 100% rename from common/src/test/java/com/hyperwallet/android/ui/common/util/DateUtilsTest.java rename to commonui/src/test/java/com/hyperwallet/android/ui/common/util/DateUtilsTest.java diff --git a/common/src/test/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenterTest.java b/commonui/src/test/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenterTest.java similarity index 100% rename from common/src/test/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenterTest.java rename to commonui/src/test/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenterTest.java diff --git a/publish.gradle b/publish.gradle index 46779ff5c..f9ea4710b 100644 --- a/publish.gradle +++ b/publish.gradle @@ -22,11 +22,7 @@ publishing { publications { hyperwalletUiPublish(MavenPublication) { groupId = hyperwalletGroupId - if (project.name == "ui") { - artifactId = "ui-sdk" - } else { - artifactId = project.name - } + artifactId = project.name version = version diff --git a/receiptrepository/.gitignore b/receiptrepository/.gitignore new file mode 100644 index 000000000..796b96d1c --- /dev/null +++ b/receiptrepository/.gitignore @@ -0,0 +1 @@ +/build diff --git a/receiptrepository/build.gradle b/receiptrepository/build.gradle index a1207b8f1..d63d95908 100644 --- a/receiptrepository/build.gradle +++ b/receiptrepository/build.gradle @@ -2,14 +2,10 @@ apply from: "$rootProject.projectDir/android-library.gradle" apply from: "$rootProject.projectDir/publish.gradle" dependencies { - implementation project(":common") + implementation "androidx.legacy:legacy-support-v4:$legacySupportV4Version" implementation "androidx.paging:paging-runtime:$pagingRuntimeVersion" + api project(':commonrepository') testImplementation "org.robolectric:robolectric:$robolectricVersion" - - androidTestImplementation "androidx.test:rules:$testRulesVersion" - androidTestImplementation "com.squareup.okhttp3:mockwebserver:$mockServerVersion" - androidTestImplementation "com.squareup.leakcanary:leakcanary-android-instrumentation:$leakcanaryVersion" - androidTestImplementation "com.squareup.leakcanary:leakcanary-support-fragment:$leakcanaryVersion" } \ No newline at end of file diff --git a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSource.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSource.java index 39135cf44..21cd26073 100644 --- a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSource.java +++ b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSource.java @@ -32,8 +32,8 @@ import com.hyperwallet.android.model.paging.HyperwalletPageList; import com.hyperwallet.android.model.receipt.Receipt; import com.hyperwallet.android.model.receipt.ReceiptQueryParam; -import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; -import com.hyperwallet.android.ui.common.viewmodel.Event; +import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource; +import com.hyperwallet.android.ui.common.repository.Event; import com.hyperwallet.android.util.DateUtil; import java.util.Calendar; diff --git a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepository.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepository.java index 021cadcc7..273368fd5 100644 --- a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepository.java +++ b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepository.java @@ -21,7 +21,8 @@ import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.receipt.Receipt; -import com.hyperwallet.android.ui.common.viewmodel.Event; +import com.hyperwallet.android.ui.common.repository.Event; + public interface PrepaidCardReceiptRepository { diff --git a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImpl.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImpl.java index 4b5fed137..ae7372e1b 100644 --- a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImpl.java +++ b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImpl.java @@ -7,7 +7,7 @@ import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.receipt.Receipt; -import com.hyperwallet.android.ui.common.viewmodel.Event; +import com.hyperwallet.android.ui.common.repository.Event; public class PrepaidCardReceiptRepositoryImpl implements PrepaidCardReceiptRepository { diff --git a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSource.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSource.java index 28e8ef727..e75769bfa 100644 --- a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSource.java +++ b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSource.java @@ -31,8 +31,8 @@ import com.hyperwallet.android.model.paging.HyperwalletPageList; import com.hyperwallet.android.model.receipt.Receipt; import com.hyperwallet.android.model.receipt.ReceiptQueryParam; -import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; -import com.hyperwallet.android.ui.common.viewmodel.Event; +import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource; +import com.hyperwallet.android.ui.common.repository.Event; import java.util.Calendar; @@ -117,7 +117,7 @@ public void loadBefore(@NonNull final LoadParams params, /** * @see PageKeyedDataSource#loadAfter(LoadParams, LoadCallback) - * */ + */ @Override public void loadAfter(@NonNull final LoadParams params, final @NonNull LoadCallback callback) { @@ -168,7 +168,7 @@ public Handler getHandler() { /** * Facilitates retry when network is down; any error that we can have a retry operation - * */ + */ void retry() { if (mLoadInitialCallback != null) { loadInitial(mLoadInitialParams, mLoadInitialCallback); @@ -181,7 +181,7 @@ void retry() { * Retrieve reference of Hyperwallet errors inorder for consumers to observe on data changes * * @return Live event data of {@link HyperwalletErrors} - * */ + */ public LiveData> getErrors() { return mErrors; } diff --git a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepository.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepository.java index 7c72ab664..14a685c39 100644 --- a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepository.java +++ b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepository.java @@ -21,7 +21,7 @@ import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.receipt.Receipt; -import com.hyperwallet.android.ui.common.viewmodel.Event; +import com.hyperwallet.android.ui.common.repository.Event; /** * Receipt Repository Contract diff --git a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImpl.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImpl.java index 07a8fbdb9..74a28295b 100644 --- a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImpl.java +++ b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImpl.java @@ -22,7 +22,7 @@ import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.receipt.Receipt; -import com.hyperwallet.android.ui.common.viewmodel.Event; +import com.hyperwallet.android.ui.common.repository.Event; /** * {@link UserReceiptRepository} implementation @@ -72,7 +72,7 @@ public LiveData isLoading() { /** * @see UserReceiptRepository#getErrors() - * */ + */ @Override public LiveData> getErrors() { if (mErrorsLiveData == null) { @@ -83,7 +83,7 @@ public LiveData> getErrors() { /** * @see UserReceiptRepository#retryLoadReceipt() - * */ + */ @Override public void retryLoadReceipt() { if (mReceiptDataSourceLiveData.getValue() != null) { diff --git a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java index 166367b00..fd468bfab 100644 --- a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java +++ b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java @@ -29,7 +29,7 @@ import com.hyperwallet.android.model.paging.HyperwalletPageList; import com.hyperwallet.android.model.receipt.Receipt; import com.hyperwallet.android.model.receipt.ReceiptQueryParam; -import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.receipt.rule.HyperwalletExternalResourceManager; import com.hyperwallet.android.util.DateUtil; import org.hamcrest.Matchers; @@ -55,20 +55,19 @@ @RunWith(RobolectricTestRunner.class) public class PrepaidCardReceiptDataSourceTest { + // can't be mocked due to params.key is of type Integer and autoboxing will not work with null to 0 + private final PageKeyedDataSource.LoadParams mLoadAfterParams = new PageKeyedDataSource.LoadParams<>( + new Date(), 10); @Rule public MockitoRule mMockito = MockitoJUnit.rule(); @Rule public HyperwalletExternalResourceManager mExternalResourceManager = new HyperwalletExternalResourceManager(); - @Mock private Hyperwallet mHyperwallet; @Mock private PageKeyedDataSource.LoadInitialParams mInitialParams; @Mock private PageKeyedDataSource.LoadInitialCallback mInitialCallback; - // can't be mocked due to params.key is of type Integer and autoboxing will not work with null to 0 - private final PageKeyedDataSource.LoadParams mLoadAfterParams = new PageKeyedDataSource.LoadParams<>( - new Date(), 10); @Mock private PageKeyedDataSource.LoadCallback mLoadAfterCallback; diff --git a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImplTest.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImplTest.java index 247031513..912741fc0 100644 --- a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImplTest.java +++ b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImplTest.java @@ -11,7 +11,7 @@ import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.receipt.Receipt; -import com.hyperwallet.android.ui.common.viewmodel.Event; +import com.hyperwallet.android.ui.common.repository.Event; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java index 3dd246965..a26ed1b15 100644 --- a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java +++ b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java @@ -27,7 +27,7 @@ import com.hyperwallet.android.model.paging.HyperwalletPageList; import com.hyperwallet.android.model.receipt.Receipt; import com.hyperwallet.android.model.receipt.ReceiptQueryParam; -import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.receipt.rule.HyperwalletExternalResourceManager; import org.hamcrest.Matchers; import org.json.JSONObject; @@ -52,20 +52,19 @@ @RunWith(RobolectricTestRunner.class) public class UserReceiptDataSourceTest { + // can't be mocked due to params.key is of type Integer and autoboxing will not work with null to 0 + private final PageKeyedDataSource.LoadParams mLoadAfterParams = + new PageKeyedDataSource.LoadParams<>(10, 10); @Rule public MockitoRule mMockito = MockitoJUnit.rule(); @Rule public HyperwalletExternalResourceManager mExternalResourceManager = new HyperwalletExternalResourceManager(); - @Mock private Hyperwallet mHyperwallet; @Mock private PageKeyedDataSource.LoadInitialParams mInitialParams; @Mock private PageKeyedDataSource.LoadInitialCallback mInitialCallback; - // can't be mocked due to params.key is of type Integer and autoboxing will not work with null to 0 - private final PageKeyedDataSource.LoadParams mLoadAfterParams = - new PageKeyedDataSource.LoadParams<>(10, 10); @Mock private PageKeyedDataSource.LoadCallback mLoadAfterCallback; diff --git a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImplTest.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImplTest.java index 5b3005bda..74be4edac 100644 --- a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImplTest.java +++ b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImplTest.java @@ -11,7 +11,7 @@ import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.receipt.Receipt; -import com.hyperwallet.android.ui.common.viewmodel.Event; +import com.hyperwallet.android.ui.common.repository.Event; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletExternalResourceManager.java similarity index 98% rename from ui/src/androidTest/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java rename to receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletExternalResourceManager.java index 0fd013e52..abc9bf5da 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java +++ b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletExternalResourceManager.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.ui.rule; +package com.hyperwallet.android.ui.receipt.rule; import org.junit.rules.TestWatcher; import org.junit.runner.Description; @@ -35,7 +35,6 @@ public String getResourceContent(final String resourceName) { } private String getContent(final String resourceName) { - URL resource = classLoader.getResource(resourceName); InputStream inputStream = null; Writer writer = new StringWriter(); diff --git a/receiptui/build.gradle b/receiptui/build.gradle index b6836a649..ac997f245 100644 --- a/receiptui/build.gradle +++ b/receiptui/build.gradle @@ -2,7 +2,7 @@ apply from: "$rootProject.projectDir/android-library.gradle" apply from: "$rootProject.projectDir/publish.gradle" dependencies { - implementation project(":common") + implementation project(':commonui') implementation project(":receiptrepository") implementation "com.google.android.material:material:$androidMaterialVersion" diff --git a/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListPrepaidCardReceiptsTest.java b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListPrepaidCardReceiptsTest.java index 2e9c9ff14..910d69628 100644 --- a/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListPrepaidCardReceiptsTest.java +++ b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListPrepaidCardReceiptsTest.java @@ -41,8 +41,8 @@ import androidx.test.rule.ActivityTestRule; import com.hyperwallet.android.Hyperwallet; +import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource; import com.hyperwallet.android.ui.common.util.DateUtils; -import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; import com.hyperwallet.android.ui.receipt.rule.HyperwalletExternalResourceManager; import com.hyperwallet.android.ui.receipt.rule.HyperwalletMockWebServer; import com.hyperwallet.android.ui.receipt.util.RecyclerViewCountAssertion; @@ -319,8 +319,8 @@ public void testListPrepaidCardReceipt_checkDateTextOnLocaleChange() { @Test public void testListPrepaidCardReceipt_displaysNetworkErrorDialogOnConnectionTimeout() { mMockWebServer.getServer().enqueue(new MockResponse().setResponseCode(HTTP_OK).setBody(sResourceManager - .getResourceContent("prepaid_card_receipt_debit_response.json")).throttleBody(512, 10, - TimeUnit.SECONDS)); + .getResourceContent("prepaid_card_receipt_debit_response.json")).setBodyDelay(10500, + TimeUnit.MILLISECONDS)); mMockWebServer.mockResponse().withHttpResponseCode(HTTP_OK).withBody(sResourceManager .getResourceContent("prepaid_card_receipt_debit_response.json")).mock(); mMockWebServer.mockResponse().withHttpResponseCode(HTTP_NO_CONTENT).withBody("").mock(); diff --git a/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java index 0bb97d2ff..37809b494 100644 --- a/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java +++ b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java @@ -39,8 +39,8 @@ import androidx.test.rule.ActivityTestRule; import com.hyperwallet.android.Hyperwallet; +import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource; import com.hyperwallet.android.ui.common.util.DateUtils; -import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; import com.hyperwallet.android.ui.receipt.rule.HyperwalletExternalResourceManager; import com.hyperwallet.android.ui.receipt.rule.HyperwalletMockWebServer; import com.hyperwallet.android.ui.receipt.util.RecyclerViewCountAssertion; @@ -417,7 +417,7 @@ public void testListReceipt_checkDateTextOnLocaleChange() { @Test public void testListReceipt_displaysNetworkErrorDialogOnConnectionTimeout() { mMockWebServer.getServer().enqueue(new MockResponse().setResponseCode(HTTP_OK).setBody(sResourceManager - .getResourceContent("receipt_debit_response.json")).throttleBody(512, 10, TimeUnit.SECONDS)); + .getResourceContent("receipt_debit_response.json")).setBodyDelay(10500, TimeUnit.MILLISECONDS)); mMockWebServer.mockResponse().withHttpResponseCode(HTTP_OK).withBody(sResourceManager .getResourceContent("receipt_debit_response.json")).mock(); mMockWebServer.mockResponse().withHttpResponseCode(HTTP_NO_CONTENT).withBody("").mock(); diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/HyperwalletReceiptUi.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/HyperwalletReceiptUi.java new file mode 100644 index 000000000..4b3fdd550 --- /dev/null +++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/HyperwalletReceiptUi.java @@ -0,0 +1,68 @@ +/* + * The MIT License (MIT) + * Copyright (c) 2018 Hyperwallet Systems Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + * associated documentation files (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, publish, distribute, + * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT + * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +package com.hyperwallet.android.ui.receipt; + +import android.content.Context; +import android.content.Intent; + +import androidx.annotation.NonNull; + +import com.hyperwallet.android.Hyperwallet; +import com.hyperwallet.android.HyperwalletAuthenticationTokenProvider; +import com.hyperwallet.android.ui.receipt.view.ListPrepaidCardReceiptActivity; +import com.hyperwallet.android.ui.receipt.view.ListUserReceiptActivity; + +public final class HyperwalletReceiptUi { + + private static HyperwalletReceiptUi sInstance; + + private HyperwalletReceiptUi() { + } + + /** + * @param authenticationTokenProvider An implementation of the {@link HyperwalletAuthenticationTokenProvider} + * @return Returns a newly created HyperwalletTransferMethodUi that can be used to get Intents to launch different + * activities. + */ + public static synchronized HyperwalletReceiptUi getInstance( + @NonNull final HyperwalletAuthenticationTokenProvider authenticationTokenProvider) { + if (sInstance == null) { + sInstance = new HyperwalletReceiptUi(); + Hyperwallet.getInstance(authenticationTokenProvider); + } + return sInstance; + } + + /** + * @param context A Context of the application consuming this Intent. + * @return an Intent with the data necessary to launch the {@link ListUserReceiptActivity} + */ + public Intent getIntentListUserReceiptActivity(@NonNull final Context context) { + return new Intent(context, ListUserReceiptActivity.class); + } + + /** + * @param context A Context of the application consuming this Intent. + * @return an Intent with the data necessary to launch the {@link ListPrepaidCardReceiptActivity} + */ + public Intent getIntentListPrepaidCardReceiptActivity(@NonNull final Context context, @NonNull final String token) { + Intent intent = new Intent(context, ListPrepaidCardReceiptActivity.class); + intent.putExtra(ListPrepaidCardReceiptActivity.EXTRA_PREPAID_CARD_TOKEN, token); + return intent; + } + +} diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListPrepaidCardReceiptActivity.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListPrepaidCardReceiptActivity.java index b774436d4..e5ef5a937 100644 --- a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListPrepaidCardReceiptActivity.java +++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListPrepaidCardReceiptActivity.java @@ -33,9 +33,9 @@ import com.hyperwallet.android.model.HyperwalletError; import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.receipt.Receipt; +import com.hyperwallet.android.ui.common.repository.Event; import com.hyperwallet.android.ui.common.view.error.DefaultErrorDialogFragment; import com.hyperwallet.android.ui.common.view.error.OnNetworkErrorCallback; -import com.hyperwallet.android.ui.common.viewmodel.Event; import com.hyperwallet.android.ui.common.viewmodel.ListDetailNavigator; import com.hyperwallet.android.ui.receipt.R; import com.hyperwallet.android.ui.receipt.repository.PrepaidCardReceiptRepositoryImpl; diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListUserReceiptActivity.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListUserReceiptActivity.java index bc66e9609..4b56bfa30 100644 --- a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListUserReceiptActivity.java +++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListUserReceiptActivity.java @@ -33,9 +33,9 @@ import com.hyperwallet.android.model.HyperwalletError; import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.receipt.Receipt; +import com.hyperwallet.android.ui.common.repository.Event; import com.hyperwallet.android.ui.common.view.error.DefaultErrorDialogFragment; import com.hyperwallet.android.ui.common.view.error.OnNetworkErrorCallback; -import com.hyperwallet.android.ui.common.viewmodel.Event; import com.hyperwallet.android.ui.common.viewmodel.ListDetailNavigator; import com.hyperwallet.android.ui.receipt.R; import com.hyperwallet.android.ui.receipt.repository.UserReceiptRepositoryImpl; diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListPrepaidCardReceiptViewModel.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListPrepaidCardReceiptViewModel.java index 73f697bca..0b72276be 100644 --- a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListPrepaidCardReceiptViewModel.java +++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListPrepaidCardReceiptViewModel.java @@ -26,7 +26,7 @@ import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.receipt.Receipt; -import com.hyperwallet.android.ui.common.viewmodel.Event; +import com.hyperwallet.android.ui.common.repository.Event; import com.hyperwallet.android.ui.receipt.repository.PrepaidCardReceiptRepository; public class ListPrepaidCardReceiptViewModel extends ReceiptViewModel { diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListUserReceiptViewModel.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListUserReceiptViewModel.java index 9b9b63b2c..fcb308629 100644 --- a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListUserReceiptViewModel.java +++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListUserReceiptViewModel.java @@ -26,7 +26,7 @@ import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.receipt.Receipt; -import com.hyperwallet.android.ui.common.viewmodel.Event; +import com.hyperwallet.android.ui.common.repository.Event; import com.hyperwallet.android.ui.receipt.repository.UserReceiptRepository; public class ListUserReceiptViewModel extends ReceiptViewModel { @@ -74,28 +74,28 @@ public LiveData> getReceiptList() { /** * @see ReceiptViewModel#retryLoadReceipts() - * */ + */ public void retryLoadReceipts() { mUserReceiptRepository.retryLoadReceipt(); } /** * @see ReceiptViewModel#getDetailNavigation() - * */ + */ public LiveData> getDetailNavigation() { return mDetailNavigation; } /** * @see ReceiptViewModel#setDetailNavigation(Receipt) - * */ + */ public void setDetailNavigation(@NonNull final Receipt receipt) { mDetailNavigation.postValue(new Event<>(receipt)); } /** * @see ViewModel#onCleared() - * */ + */ @Override protected void onCleared() { super.onCleared(); diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptViewModel.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptViewModel.java index f100b86bc..9cb878969 100644 --- a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptViewModel.java +++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptViewModel.java @@ -23,7 +23,7 @@ import com.hyperwallet.android.model.HyperwalletErrors; import com.hyperwallet.android.model.receipt.Receipt; -import com.hyperwallet.android.ui.common.viewmodel.Event; +import com.hyperwallet.android.ui.common.repository.Event; public abstract class ReceiptViewModel extends ViewModel { diff --git a/receiptrepository/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java b/receiptui/src/test/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java similarity index 97% rename from receiptrepository/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java rename to receiptui/src/test/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java index 8d935bb85..e7ac68fac 100644 --- a/receiptrepository/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java +++ b/receiptui/src/test/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.ui.rule; +package com.hyperwallet.android.ui.transfermethod.rule; import org.junit.rules.TestWatcher; import org.junit.runner.Description; diff --git a/receiptrepository/src/test/resources/authentication_token_response.json b/receiptui/src/test/resources/authentication_token_response.json similarity index 100% rename from receiptrepository/src/test/resources/authentication_token_response.json rename to receiptui/src/test/resources/authentication_token_response.json diff --git a/receiptrepository/src/test/resources/prepaid_card_receipt_credit_response.json b/receiptui/src/test/resources/prepaid_card_receipt_credit_response.json similarity index 100% rename from receiptrepository/src/test/resources/prepaid_card_receipt_credit_response.json rename to receiptui/src/test/resources/prepaid_card_receipt_credit_response.json diff --git a/receiptrepository/src/test/resources/prepaid_card_receipt_debit_response.json b/receiptui/src/test/resources/prepaid_card_receipt_debit_response.json similarity index 100% rename from receiptrepository/src/test/resources/prepaid_card_receipt_debit_response.json rename to receiptui/src/test/resources/prepaid_card_receipt_debit_response.json diff --git a/receiptui/src/test/resources/prepaid_card_receipt_list_response.json b/receiptui/src/test/resources/prepaid_card_receipt_list_response.json new file mode 100644 index 000000000..e6539804c --- /dev/null +++ b/receiptui/src/test/resources/prepaid_card_receipt_list_response.json @@ -0,0 +1,103 @@ +{ + "data": [ + { + "journalId": "FISVL_5240220", + "type": "PREPAID_CARD_SALE", + "createdOn": "2019-06-06T22:48:41", + "entry": "DEBIT", + "destinationToken": "trm-2e02da75-a36c-4723-b613-0b64e6f582d9", + "amount": "10.00", + "fee": "3.00", + "currency": "USD", + "details": { + "cardNumber": "************0673", + "clientPaymentId": "AOxXefx9", + "payeeName": "A Person", + "website": "https://api.sandbox.hyperwallet.com", + "notes": "Sample prepaid card payment for the period of June 15th, 2019 to July 23, 2019", + "charityName": "Sample Charity", + "checkNumber": "Sample Check Number" + } + }, + { + "journalId": "FISVL_5240221", + "type": "DEPOSIT", + "createdOn": "2019-06-06T22:48:51", + "entry": "CREDIT", + "destinationToken": "trm-2e02da75-a36c-4723-b613-0b64e6f582d9", + "amount": "5.00", + "currency": "USD", + "details": { + "cardNumber": "************0673" + } + }, + { + "journalId": "FISA_5240222", + "type": "ADJUSTMENT", + "createdOn": "2019-06-01T22:49:17", + "entry": "DEBIT", + "sourceToken": "trm-2e02da75-a36c-4723-b613-0b64e6f582d9", + "amount": "8.90", + "currency": "USD", + "details": { + "cardNumber": "************0673" + } + }, + { + "journalId": "FISA_5240223", + "type": "ADJUSTMENT", + "createdOn": "2019-03-31T23:55:17", + "entry": "DEBIT", + "sourceToken": "trm-2e02da75-a36c-4723-b613-0b64e6f582d9", + "amount": "7.90", + "currency": "USD", + "details": { + "cardNumber": "************0673" + } + }, + { + "journalId": "FISA_5240224", + "type": "ADJUSTMENT", + "createdOn": "2019-02-28T23:55:17", + "entry": "CREDIT", + "sourceToken": "trm-2e02da75-a36c-4723-b613-0b64e6f582d9", + "amount": "6.90", + "currency": "USD", + "details": { + "cardNumber": "************0673" + } + }, + { + "journalId": "FISA_5240225", + "type": "ADJUSTMENT", + "createdOn": "2019-02-23T23:55:17", + "entry": "CREDIT", + "sourceToken": "trm-2e02da75-a36c-4723-b613-0b64e6f582d9", + "amount": "3.90", + "currency": "USD", + "details": { + "cardNumber": "************0673" + } + }, + { + "journalId": "FISA_5240226", + "type": "ADJUSTMENT", + "createdOn": "2019-02-21T23:55:17", + "entry": "CREDIT", + "sourceToken": "trm-2e02da75-a36c-4723-b613-0b64e6f582d9", + "amount": "9.92", + "currency": "USD", + "details": { + "cardNumber": "************0673" + } + } + ], + "links": [ + { + "params": { + "rel": "self" + }, + "href": "https://qamaster-hyperwallet.aws.paylution.net/rest/v3/users/usr-e17ae43b-284d-4198-9585-f417943c624f/prepaid-cards/trm-2e02da75-a36c-4723-b613-0b64e6f582d9/receipts" + } + ] +} \ No newline at end of file diff --git a/receiptrepository/src/test/resources/prepaid_card_receipt_unknown_type_response.json b/receiptui/src/test/resources/prepaid_card_receipt_unknown_type_response.json similarity index 100% rename from receiptrepository/src/test/resources/prepaid_card_receipt_unknown_type_response.json rename to receiptui/src/test/resources/prepaid_card_receipt_unknown_type_response.json diff --git a/receiptrepository/src/test/resources/receipt_credit_response.json b/receiptui/src/test/resources/receipt_credit_response.json similarity index 100% rename from receiptrepository/src/test/resources/receipt_credit_response.json rename to receiptui/src/test/resources/receipt_credit_response.json diff --git a/receiptrepository/src/test/resources/receipt_debit_response.json b/receiptui/src/test/resources/receipt_debit_response.json similarity index 100% rename from receiptrepository/src/test/resources/receipt_debit_response.json rename to receiptui/src/test/resources/receipt_debit_response.json diff --git a/receiptui/src/test/resources/receipt_list_date_grouping_response.json b/receiptui/src/test/resources/receipt_list_date_grouping_response.json new file mode 100644 index 000000000..1b5b798bb --- /dev/null +++ b/receiptui/src/test/resources/receipt_list_date_grouping_response.json @@ -0,0 +1,90 @@ +{ + "count": 5, + "offset": 0, + "limit": 10, + "data": [ + { + "journalId": "51660665", + "type": "PAYMENT", + "createdOn": "2019-05-27T15:42:07", + "entry": "CREDIT", + "sourceToken": "act-b1f6dc28-e534-45f4-a661-3523f051f77a", + "destinationToken": "usr-b4e8ec34-52d8-4a81-9566-bdde1bd745b6", + "amount": "5000.00", + "fee": "0.00", + "currency": "USD", + "details": { + "clientPaymentId": "trans-0001", + "payeeName": "Kevin Puckett" + } + }, + { + "journalId": "51660666", + "type": "TRANSFER_TO_BANK_ACCOUNT", + "createdOn": "2019-05-27T15:57:49", + "entry": "DEBIT", + "sourceToken": "usr-b4e8ec34-52d8-4a81-9566-bdde1bd745b6", + "destinationToken": "trm-0a2ac589-2cae-4ed3-9b0b-658246a34687", + "amount": "10.25", + "fee": "0.25", + "currency": "USD", + "details": { + "payeeName": "Kevin Puckett", + "bankAccountId": "patzachery.mcclary@example.com" + } + }, + { + "journalId": "51660667", + "type": "PAYMENT", + "createdOn": "2019-05-27T16:01:10", + "entry": "CREDIT", + "sourceToken": "act-b1f6dc28-e534-45f4-a661-3523f051f77a", + "destinationToken": "usr-b4e8ec34-52d8-4a81-9566-bdde1bd745b6", + "amount": "11.00", + "fee": "0.00", + "currency": "USD", + "details": { + "clientPaymentId": "trans-02", + "payeeName": "Kevin Puckett" + } + }, + { + "journalId": "51660675", + "type": "PAYMENT", + "createdOn": "2019-06-04T10:35:23", + "entry": "CREDIT", + "sourceToken": "act-b1f6dc28-e534-45f4-a661-3523f051f77a", + "destinationToken": "usr-b4e8ec34-52d8-4a81-9566-bdde1bd745b6", + "amount": "13.00", + "fee": "0.00", + "currency": "USD", + "details": { + "clientPaymentId": "CSietnRJQQ0bscYkOoPJxNiTDiVALhjQ", + "payeeName": "Kevin Puckett" + } + }, + { + "journalId": "51660676", + "type": "PAYMENT", + "createdOn": "2019-06-04T11:16:21", + "entry": "CREDIT", + "sourceToken": "act-b1f6dc28-e534-45f4-a661-3523f051f77a", + "destinationToken": "usr-b4e8ec34-52d8-4a81-9566-bdde1bd745b6", + "amount": "14.00", + "fee": "0.00", + "currency": "USD", + "details": { + "clientPaymentId": "wUOdfLlJONacbdHlAHOAXQT7uwX7LTPy", + "payeeName": "Kevin Puckett" + } + } + ], + "links": [ + { + "params": { + "rel": "self" + }, + "href": "https://localhost:8181/rest/v3/users/usr-b4e8ec34-52d8-4a81-9566-bdde1bd745b6/receipts?offset=0&limit=10&createdAfter=2019-1-1" + } + ] +} \ No newline at end of file diff --git a/receiptrepository/src/test/resources/receipt_list_paged_last_response.json b/receiptui/src/test/resources/receipt_list_paged_last_response.json similarity index 100% rename from receiptrepository/src/test/resources/receipt_list_paged_last_response.json rename to receiptui/src/test/resources/receipt_list_paged_last_response.json diff --git a/receiptrepository/src/test/resources/receipt_list_paged_response.json b/receiptui/src/test/resources/receipt_list_paged_response.json similarity index 100% rename from receiptrepository/src/test/resources/receipt_list_paged_response.json rename to receiptui/src/test/resources/receipt_list_paged_response.json diff --git a/receiptrepository/src/test/resources/receipt_list_paged_second_response.json b/receiptui/src/test/resources/receipt_list_paged_second_response.json similarity index 100% rename from receiptrepository/src/test/resources/receipt_list_paged_second_response.json rename to receiptui/src/test/resources/receipt_list_paged_second_response.json diff --git a/receiptrepository/src/test/resources/receipt_list_paged_third_response.json b/receiptui/src/test/resources/receipt_list_paged_third_response.json similarity index 100% rename from receiptrepository/src/test/resources/receipt_list_paged_third_response.json rename to receiptui/src/test/resources/receipt_list_paged_third_response.json diff --git a/receiptrepository/src/test/resources/receipt_list_response.json b/receiptui/src/test/resources/receipt_list_response.json similarity index 100% rename from receiptrepository/src/test/resources/receipt_list_response.json rename to receiptui/src/test/resources/receipt_list_response.json diff --git a/receiptrepository/src/test/resources/receipt_unknown_type_response.json b/receiptui/src/test/resources/receipt_unknown_type_response.json similarity index 100% rename from receiptrepository/src/test/resources/receipt_unknown_type_response.json rename to receiptui/src/test/resources/receipt_unknown_type_response.json diff --git a/settings.gradle b/settings.gradle index 541265fa1..9058fac39 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1 @@ -include ':ui', ':common', ':receiptui', ':receiptrepository', ':userrepository', ':transfermethodrepository' -//add libraries here +include ':transfermethodui', ':receiptui', ':commonui', ':receiptrepository', ':userrepository', ':transfermethodrepository', ':commonrepository' diff --git a/transfermethodrepository/.gitignore b/transfermethodrepository/.gitignore index 796b96d1c..26b424a3f 100644 --- a/transfermethodrepository/.gitignore +++ b/transfermethodrepository/.gitignore @@ -1 +1,3 @@ /build + +*.exec diff --git a/transfermethodrepository/build.gradle b/transfermethodrepository/build.gradle index fcf28601b..34fe3c5de 100644 --- a/transfermethodrepository/build.gradle +++ b/transfermethodrepository/build.gradle @@ -2,7 +2,7 @@ apply from: "$rootProject.projectDir/android-library.gradle" apply from: "$rootProject.projectDir/publish.gradle" dependencies { - androidTestImplementation "androidx.test:rules:$testRulesVersion" + api project(':commonrepository') testImplementation "org.robolectric:robolectric:$robolectricVersion" testImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion" } \ No newline at end of file diff --git a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java index abf89e227..f9a382805 100644 --- a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java @@ -39,7 +39,7 @@ import com.hyperwallet.android.model.graphql.HyperwalletTransferMethodConfigurationKey; import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationFieldQuery; import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationKeysQuery; -import com.hyperwallet.android.ui.transfermethod.repository.util.EspressoIdlingResource; +import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource; import java.util.HashMap; import java.util.Map; @@ -56,11 +56,6 @@ public TransferMethodConfigurationRepositoryImpl() { mFieldMap = new HashMap<>(); } - @VisibleForTesting - Hyperwallet getHyperwallet() { - return Hyperwallet.getDefault(); - } - @VisibleForTesting() protected TransferMethodConfigurationRepositoryImpl(@Nullable Handler handler, HyperwalletTransferMethodConfigurationKey transferMethodConfigurationKey, @@ -70,6 +65,11 @@ protected TransferMethodConfigurationRepositoryImpl(@Nullable Handler handler, mFieldMap = fieldMap; } + @VisibleForTesting + Hyperwallet getHyperwallet() { + return Hyperwallet.getDefault(); + } + @VisibleForTesting void getTransferMethodConfigurationKeyResult(final LoadKeysCallback loadKeysCallback) { HyperwalletTransferMethodConfigurationKeysQuery query = new HyperwalletTransferMethodConfigurationKeysQuery(); diff --git a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java index 5cada16b2..ed9360c6f 100644 --- a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java +++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java @@ -1,3 +1,19 @@ +/* + * The MIT License (MIT) + * Copyright (c) 2018 Hyperwallet Systems Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + * associated documentation files (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, publish, distribute, + * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT + * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ package com.hyperwallet.android.ui.transfermethod.repository; public class TransferMethodRepositoryFactory { diff --git a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java deleted file mode 100644 index 75dacbae7..000000000 --- a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.hyperwallet.android.ui.transfermethod.repository.util; - -import androidx.test.espresso.IdlingResource; -import androidx.test.espresso.idling.CountingIdlingResource; - -public class EspressoIdlingResource { - - private static final String RESOURCE = "GLOBAL"; - - private static CountingIdlingResource mCountingIdlingResource = - new CountingIdlingResource(RESOURCE); - - public static void increment() { - mCountingIdlingResource.increment(); - } - - public static void decrement() { - mCountingIdlingResource.decrement(); - } - - public static IdlingResource getIdlingResource() { - return mCountingIdlingResource; - } -} diff --git a/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/FieldMapKeyTest.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/FieldMapKeyTest.java index 1c0f53d8d..f0541bb9a 100644 --- a/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/FieldMapKeyTest.java +++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/FieldMapKeyTest.java @@ -3,8 +3,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; -import com.hyperwallet.android.ui.transfermethod.repository.FieldMapKey; - import org.junit.Test; public class FieldMapKeyTest { diff --git a/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImplTest.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImplTest.java index 77d19b782..b71175ead 100644 --- a/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImplTest.java +++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImplTest.java @@ -32,7 +32,7 @@ import com.hyperwallet.android.model.graphql.keyed.HyperwalletTransferMethodConfigurationKeyResult; import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationFieldQuery; import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationKeysQuery; -import com.hyperwallet.android.ui.transfermethod.repository.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletExternalResourceManager; import com.hyperwallet.android.util.JsonUtils; import org.hamcrest.collection.IsEmptyCollection; diff --git a/ui/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java similarity index 97% rename from ui/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java rename to transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java index a983c9b7d..4db98b20a 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java +++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.ui.rule; +package com.hyperwallet.android.ui.transfermethod.rule; import org.junit.rules.TestWatcher; import org.junit.runner.Description; diff --git a/ui/.gitignore b/transfermethodui/.gitignore similarity index 100% rename from ui/.gitignore rename to transfermethodui/.gitignore diff --git a/ui/build.gradle b/transfermethodui/build.gradle similarity index 89% rename from ui/build.gradle rename to transfermethodui/build.gradle index 89945f32d..3800b40e0 100644 --- a/ui/build.gradle +++ b/transfermethodui/build.gradle @@ -8,10 +8,9 @@ dependencies { implementation "androidx.legacy:legacy-support-v4:$legacySupportV4Version" implementation "androidx.recyclerview:recyclerview:$recycleViewVersion" - api project(":common") - api project(':receiptui') - api project(":userrepository") - api project(":transfermethodrepository") + implementation project(':commonui') + implementation project(":userrepository") + implementation project(":transfermethodrepository") androidTestImplementation "androidx.test:rules:$testRulesVersion" diff --git a/ui/config/jacoco-settings.gradle b/transfermethodui/config/jacoco-settings.gradle similarity index 79% rename from ui/config/jacoco-settings.gradle rename to transfermethodui/config/jacoco-settings.gradle index 9cb13e331..725c470eb 100644 --- a/ui/config/jacoco-settings.gradle +++ b/transfermethodui/config/jacoco-settings.gradle @@ -21,13 +21,13 @@ android { } def fileFilter = ['**/BuildConfig.*', - '**/com/hyperwallet/android/ui/HyperwalletUi.*', - '**/com/hyperwallet/android/ui/**/*Activity*.*', - '**/com/hyperwallet/android/ui/**/*Fragment*.*', - '**/com/hyperwallet/android/ui/transfermethod/TransferMethodSelectionItem.*', - '**/com/hyperwallet/android/ui/transfermethod/TransferMethodUtils.*', - '**/com/hyperwallet/android/ui/view/HorizontalDividerItemDecorator.*', - '**/com/hyperwallet/android/ui/view/widget/*' + '**/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodUi.*', + '**/com/hyperwallet/android/ui/transfermethod/**/*Activity*.*', + '**/com/hyperwallet/android/ui/transfermethod/**/*Fragment*.*', + '**/com/hyperwallet/android/ui/transfermethod/view/TransferMethodSelectionItem.*', + '**/com/hyperwallet/android/ui/transfermethod/view/TransferMethodUtils.*', + '**/com/hyperwallet/android/ui/transfermethod/view/HorizontalDividerItemDecorator.*', + '**/com/hyperwallet/android/ui/transfermethod/view/widget/*' ] def debugClassPaths = [ '**/intermediates/javac/debug/*/classes/**' diff --git a/ui/config/lint.xml b/transfermethodui/config/lint.xml similarity index 100% rename from ui/config/lint.xml rename to transfermethodui/config/lint.xml diff --git a/transfermethodui/proguard-rules.pro b/transfermethodui/proguard-rules.pro new file mode 100644 index 000000000..f1b424510 --- /dev/null +++ b/transfermethodui/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/ui/src/androidTest/AndroidManifest.xml b/transfermethodui/src/androidTest/AndroidManifest.xml similarity index 62% rename from ui/src/androidTest/AndroidManifest.xml rename to transfermethodui/src/androidTest/AndroidManifest.xml index 138dc247d..e1bac67e4 100644 --- a/ui/src/androidTest/AndroidManifest.xml +++ b/transfermethodui/src/androidTest/AndroidManifest.xml @@ -2,7 +2,7 @@ - + diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java similarity index 95% rename from ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java index 9729e3ad1..243350ad1 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java +++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java @@ -22,7 +22,7 @@ import static java.net.HttpURLConnection.HTTP_OK; import static com.hyperwallet.android.ui.common.view.error.DefaultErrorDialogFragment.RESULT_ERROR; -import static com.hyperwallet.android.ui.util.EspressoUtils.nestedScrollTo; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.nestedScrollTo; import android.app.Instrumentation; import android.content.Intent; @@ -36,12 +36,13 @@ import com.hyperwallet.android.Hyperwallet; import com.hyperwallet.android.ui.R; -import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; +import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource; import com.hyperwallet.android.ui.common.view.error.DefaultErrorDialogFragment; -import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; -import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer; import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; -import com.hyperwallet.android.ui.util.TestAuthenticationProvider; +import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.transfermethod.util.TestAuthenticationProvider; +import com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity; import org.junit.After; import org.junit.Before; diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java similarity index 96% rename from ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java index 29200fdff..414521218 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java +++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java @@ -24,11 +24,11 @@ import static java.util.concurrent.TimeUnit.SECONDS; import static com.hyperwallet.android.model.transfermethod.HyperwalletBankAccount.Purpose.SAVINGS; -import static com.hyperwallet.android.ui.util.EspressoUtils.hasEmptyText; -import static com.hyperwallet.android.ui.util.EspressoUtils.hasErrorText; -import static com.hyperwallet.android.ui.util.EspressoUtils.hasNoErrorText; -import static com.hyperwallet.android.ui.util.EspressoUtils.nestedScrollTo; -import static com.hyperwallet.android.ui.util.EspressoUtils.withHint; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.hasEmptyText; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.hasErrorText; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.hasNoErrorText; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.nestedScrollTo; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.withHint; import android.app.Activity; import android.content.BroadcastReceiver; @@ -47,12 +47,13 @@ import com.hyperwallet.android.Hyperwallet; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; import com.hyperwallet.android.ui.R; -import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; -import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; -import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource; import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; -import com.hyperwallet.android.ui.util.RecyclerViewCountAssertion; -import com.hyperwallet.android.ui.util.TestAuthenticationProvider; +import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.transfermethod.util.RecyclerViewCountAssertion; +import com.hyperwallet.android.ui.transfermethod.util.TestAuthenticationProvider; +import com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity; import org.junit.After; import org.junit.Before; diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java similarity index 94% rename from ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java index 20616743f..508c397f8 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java +++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java @@ -22,10 +22,10 @@ import static java.net.HttpURLConnection.HTTP_OK; import static java.util.concurrent.TimeUnit.SECONDS; -import static com.hyperwallet.android.ui.util.EspressoUtils.hasEmptyText; -import static com.hyperwallet.android.ui.util.EspressoUtils.hasErrorText; -import static com.hyperwallet.android.ui.util.EspressoUtils.nestedScrollTo; -import static com.hyperwallet.android.ui.util.EspressoUtils.withHint; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.hasEmptyText; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.hasErrorText; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.nestedScrollTo; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.withHint; import android.app.Activity; import android.content.BroadcastReceiver; @@ -44,11 +44,12 @@ import com.hyperwallet.android.Hyperwallet; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; import com.hyperwallet.android.ui.R; -import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; -import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; -import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource; import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; -import com.hyperwallet.android.ui.util.TestAuthenticationProvider; +import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.transfermethod.util.TestAuthenticationProvider; +import com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity; import org.junit.After; import org.junit.Before; diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/HyperwalletInstrumentedTestApplication.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/HyperwalletInstrumentedTestApplication.java similarity index 93% rename from ui/src/androidTest/java/com/hyperwallet/android/ui/HyperwalletInstrumentedTestApplication.java rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/HyperwalletInstrumentedTestApplication.java index 1e77c01b7..5d3be31c5 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/HyperwalletInstrumentedTestApplication.java +++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/HyperwalletInstrumentedTestApplication.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.ui; +package com.hyperwallet.android.ui.transfermethod; import android.app.Application; diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java similarity index 97% rename from ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java index 3a40d0164..d53840652 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java +++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java @@ -21,8 +21,8 @@ import static java.util.concurrent.TimeUnit.SECONDS; import static com.hyperwallet.android.model.HyperwalletStatusTransition.StatusDefinition.DE_ACTIVATED; -import static com.hyperwallet.android.ui.util.EspressoUtils.atPosition; -import static com.hyperwallet.android.ui.util.EspressoUtils.withDrawable; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.atPosition; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.withDrawable; import android.content.BroadcastReceiver; import android.content.Context; @@ -40,11 +40,12 @@ import com.hyperwallet.android.Hyperwallet; import com.hyperwallet.android.model.HyperwalletStatusTransition; import com.hyperwallet.android.ui.R; -import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; -import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer; import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; -import com.hyperwallet.android.ui.util.RecyclerViewCountAssertion; -import com.hyperwallet.android.ui.util.TestAuthenticationProvider; +import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.transfermethod.util.RecyclerViewCountAssertion; +import com.hyperwallet.android.ui.transfermethod.util.TestAuthenticationProvider; +import com.hyperwallet.android.ui.transfermethod.view.ListTransferMethodActivity; import org.hamcrest.Matchers; import org.junit.After; diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java similarity index 93% rename from ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java index 4e1511625..f61bec357 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java +++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java @@ -24,10 +24,10 @@ import static java.net.HttpURLConnection.HTTP_OK; import static java.util.concurrent.TimeUnit.SECONDS; -import static com.hyperwallet.android.ui.util.EspressoUtils.hasEmptyText; -import static com.hyperwallet.android.ui.util.EspressoUtils.hasErrorText; -import static com.hyperwallet.android.ui.util.EspressoUtils.nestedScrollTo; -import static com.hyperwallet.android.ui.util.EspressoUtils.withHint; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.hasEmptyText; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.hasErrorText; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.nestedScrollTo; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.withHint; import android.app.Activity; import android.content.BroadcastReceiver; @@ -46,11 +46,12 @@ import com.hyperwallet.android.Hyperwallet; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; import com.hyperwallet.android.ui.R; -import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; -import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; -import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource; import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; -import com.hyperwallet.android.ui.util.TestAuthenticationProvider; +import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.transfermethod.util.TestAuthenticationProvider; +import com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity; import org.junit.After; import org.junit.Before; diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java similarity index 95% rename from ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java index 81023a3a3..68acebad9 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java +++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java @@ -25,12 +25,12 @@ import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodTypes.BANK_CARD; import static com.hyperwallet.android.model.user.HyperwalletUser.ProfileTypes.BUSINESS; import static com.hyperwallet.android.model.user.HyperwalletUser.ProfileTypes.INDIVIDUAL; -import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_COUNTRY; -import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_CURRENCY; -import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_PROFILE_TYPE; -import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_TYPE; -import static com.hyperwallet.android.ui.util.EspressoUtils.atPosition; -import static com.hyperwallet.android.ui.util.EspressoUtils.withDrawable; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.atPosition; +import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.withDrawable; +import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_COUNTRY; +import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_CURRENCY; +import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_PROFILE_TYPE; +import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_TYPE; import android.widget.TextView; @@ -43,12 +43,14 @@ import com.hyperwallet.android.Hyperwallet; import com.hyperwallet.android.ui.R; -import com.hyperwallet.android.ui.common.util.EspressoIdlingResource; -import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager; -import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource; import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; -import com.hyperwallet.android.ui.util.RecyclerViewCountAssertion; -import com.hyperwallet.android.ui.util.TestAuthenticationProvider; +import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletExternalResourceManager; +import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletMockWebServer; +import com.hyperwallet.android.ui.transfermethod.util.RecyclerViewCountAssertion; +import com.hyperwallet.android.ui.transfermethod.util.TestAuthenticationProvider; +import com.hyperwallet.android.ui.transfermethod.view.SelectTransferMethodActivity; +import com.hyperwallet.android.ui.user.repository.UserRepositoryFactory; import org.junit.After; import org.junit.Before; @@ -82,6 +84,7 @@ public void setup() { @After public void cleanup() { TransferMethodRepositoryFactory.clearInstance(); + UserRepositoryFactory.clearInstance(); } @Before diff --git a/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java new file mode 100644 index 000000000..68e288a5b --- /dev/null +++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java @@ -0,0 +1,73 @@ +package com.hyperwallet.android.ui.transfermethod.rule; + +import org.junit.rules.TestWatcher; +import org.junit.runner.Description; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.StringWriter; +import java.io.Writer; +import java.net.URL; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class HyperwalletExternalResourceManager extends TestWatcher { + + private static final String EMPTY = ""; + private ClassLoader classLoader; + private Logger logger; + + @Override + protected void starting(Description description) { + super.starting(description); + classLoader = description.getTestClass().getClassLoader(); + logger = Logger.getLogger(description.getTestClass().getName()); + } + + public String getResourceContent(final String resourceName) { + if (resourceName == null) { + throw new IllegalArgumentException("Parameter resourceName cannot be null"); + } + + return getContent(resourceName); + } + + private String getContent(final String resourceName) { + + URL resource = classLoader.getResource(resourceName); + InputStream inputStream = null; + Writer writer = new StringWriter(); + String resourceContent = EMPTY; + if (resource != null) { + try { + inputStream = resource.openStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); + String line = reader.readLine(); + while (line != null) { + writer.write(line); + line = reader.readLine(); + } + resourceContent = writer.toString(); + + } catch (Exception e) { + logger.log(Level.WARNING, "There was an error loading an external resource", e); + } finally { + try { + if (inputStream != null) { + inputStream.close(); + } + } catch (Exception e) { + logger.log(Level.SEVERE, "There was an error closing input stream", e); + } + try { + writer.close(); + } catch (IOException e) { + logger.log(Level.SEVERE, "There was an error closing writer", e); + } + } + } + return resourceContent; + } +} diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/rule/HyperwalletMockWebServer.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletMockWebServer.java similarity index 98% rename from ui/src/androidTest/java/com/hyperwallet/android/ui/rule/HyperwalletMockWebServer.java rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletMockWebServer.java index fd37ac735..21cd2ae99 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/rule/HyperwalletMockWebServer.java +++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletMockWebServer.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.ui.rule; +package com.hyperwallet.android.ui.transfermethod.rule; import org.junit.rules.TestWatcher; import org.junit.runner.Description; diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/EspressoUtils.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/EspressoUtils.java similarity index 99% rename from ui/src/androidTest/java/com/hyperwallet/android/ui/util/EspressoUtils.java rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/EspressoUtils.java index 72891a832..fbd325c31 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/EspressoUtils.java +++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/EspressoUtils.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.ui.util; +package com.hyperwallet.android.ui.transfermethod.util; import android.graphics.Bitmap; import android.graphics.Canvas; diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/NestedScrollToAction.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/NestedScrollToAction.java similarity index 95% rename from ui/src/androidTest/java/com/hyperwallet/android/ui/util/NestedScrollToAction.java rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/NestedScrollToAction.java index 54f08aed7..63a6803f7 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/NestedScrollToAction.java +++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/NestedScrollToAction.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.ui.util; +package com.hyperwallet.android.ui.transfermethod.util; import static androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom; import static androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA; diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/RecyclerViewCountAssertion.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/RecyclerViewCountAssertion.java similarity index 93% rename from ui/src/androidTest/java/com/hyperwallet/android/ui/util/RecyclerViewCountAssertion.java rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/RecyclerViewCountAssertion.java index e3c7945fd..1c9ec2479 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/RecyclerViewCountAssertion.java +++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/RecyclerViewCountAssertion.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.ui.util; +package com.hyperwallet.android.ui.transfermethod.util; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/TestAuthenticationProvider.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/TestAuthenticationProvider.java similarity index 96% rename from ui/src/androidTest/java/com/hyperwallet/android/ui/util/TestAuthenticationProvider.java rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/TestAuthenticationProvider.java index 1f8350f8f..739423e40 100644 --- a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/TestAuthenticationProvider.java +++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/TestAuthenticationProvider.java @@ -1,4 +1,4 @@ -package com.hyperwallet.android.ui.util; +package com.hyperwallet.android.ui.transfermethod.util; import com.hyperwallet.android.HyperwalletAuthenticationTokenListener; import com.hyperwallet.android.HyperwalletAuthenticationTokenProvider; diff --git a/ui/src/main/AndroidManifest.xml b/transfermethodui/src/main/AndroidManifest.xml similarity index 91% rename from ui/src/main/AndroidManifest.xml rename to transfermethodui/src/main/AndroidManifest.xml index 6888120a5..b7c92a689 100644 --- a/ui/src/main/AndroidManifest.xml +++ b/transfermethodui/src/main/AndroidManifest.xml @@ -7,13 +7,13 @@ diff --git a/ui/src/main/java/com/hyperwallet/android/ui/HyperwalletLocalBroadcast.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodLocalBroadcast.java similarity index 86% rename from ui/src/main/java/com/hyperwallet/android/ui/HyperwalletLocalBroadcast.java rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodLocalBroadcast.java index 7eed4cec5..e10b351ef 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/HyperwalletLocalBroadcast.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodLocalBroadcast.java @@ -14,10 +14,10 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui; +package com.hyperwallet.android.ui.transfermethod; -import static com.hyperwallet.android.ui.HyperwalletLocalBroadcast.HyperwalletLocalBroadcastAction.ACTION_HYPERWALLET_TRANSFER_METHOD_ADDED; -import static com.hyperwallet.android.ui.HyperwalletLocalBroadcast.HyperwalletLocalBroadcastAction.ACTION_HYPERWALLET_TRANSFER_METHOD_DEACTIVATED; +import static com.hyperwallet.android.ui.transfermethod.HyperwalletTransferMethodLocalBroadcast.HyperwalletLocalBroadcastAction.ACTION_HYPERWALLET_TRANSFER_METHOD_ADDED; +import static com.hyperwallet.android.ui.transfermethod.HyperwalletTransferMethodLocalBroadcast.HyperwalletLocalBroadcastAction.ACTION_HYPERWALLET_TRANSFER_METHOD_DEACTIVATED; import android.content.Intent; import android.os.Parcelable; @@ -31,7 +31,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; -public class HyperwalletLocalBroadcast { +public class HyperwalletTransferMethodLocalBroadcast { private static final String HYPERWALLET_LOCAL_BROADCAST_PAYLOAD_KEY = "hyperwallet-local-broadcast-payload"; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/HyperwalletUi.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodUi.java similarity index 63% rename from ui/src/main/java/com/hyperwallet/android/ui/HyperwalletUi.java rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodUi.java index 21e5ac913..6f3519205 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/HyperwalletUi.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodUi.java @@ -1,4 +1,3 @@ - /* * Copyright 2018 Hyperwallet * @@ -16,14 +15,12 @@ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */ +package com.hyperwallet.android.ui.transfermethod; -package com.hyperwallet.android.ui; - -import static com.hyperwallet.android.ui.receipt.view.ListPrepaidCardReceiptActivity.EXTRA_PREPAID_CARD_TOKEN; -import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_COUNTRY; -import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_CURRENCY; -import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_PROFILE_TYPE; -import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_TYPE; +import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_COUNTRY; +import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_CURRENCY; +import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_PROFILE_TYPE; +import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_TYPE; import android.content.Context; import android.content.Intent; @@ -32,32 +29,30 @@ import com.hyperwallet.android.Hyperwallet; import com.hyperwallet.android.HyperwalletAuthenticationTokenProvider; -import com.hyperwallet.android.ui.receipt.view.ListPrepaidCardReceiptActivity; -import com.hyperwallet.android.ui.receipt.view.ListUserReceiptActivity; -import com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity; -import com.hyperwallet.android.ui.transfermethod.ListTransferMethodActivity; -import com.hyperwallet.android.ui.transfermethod.SelectTransferMethodActivity; +import com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity; +import com.hyperwallet.android.ui.transfermethod.view.ListTransferMethodActivity; +import com.hyperwallet.android.ui.transfermethod.view.SelectTransferMethodActivity; /** * Class responsible for initializing the Hyperwallet UI SDK. It contains methods to interact with the activities and * fragments used to interact with the Hyperwallet platform */ -public final class HyperwalletUi { +public final class HyperwalletTransferMethodUi { - private static HyperwalletUi sInstance; + private static HyperwalletTransferMethodUi sInstance; - private HyperwalletUi() { + private HyperwalletTransferMethodUi() { } /** * @param authenticationTokenProvider An implementation of the {@link HyperwalletAuthenticationTokenProvider} - * @return Returns a newly created HyperwalletUi that can be used to get Intents to launch different + * @return Returns a newly created HyperwalletTransferMethodUi that can be used to get Intents to launch different * activities. */ - public static synchronized HyperwalletUi getInstance( + public static synchronized HyperwalletTransferMethodUi getInstance( @NonNull final HyperwalletAuthenticationTokenProvider authenticationTokenProvider) { if (sInstance == null) { - sInstance = new HyperwalletUi(); + sInstance = new HyperwalletTransferMethodUi(); Hyperwallet.getInstance(authenticationTokenProvider); } return sInstance; @@ -81,30 +76,16 @@ public Intent getIntentSelectTransferMethodActivity(@NonNull final Context conte return new Intent(context, SelectTransferMethodActivity.class); } - /** - * @param context A Context of the application consuming this Intent. - * @return an Intent with the data necessary to launch the {@link ListUserReceiptActivity} - */ - public Intent getIntentListUserReceiptActivity(@NonNull final Context context) { - return new Intent(context, ListUserReceiptActivity.class); - } - - /** - * @param context A Context of the application consuming this Intent. - * @return an Intent with the data necessary to launch the {@link ListPrepaidCardReceiptActivity} - */ - public Intent getIntentListPrepaidCardReceiptActivity(@NonNull final Context context, @NonNull final String token) { - Intent intent = new Intent(context, ListPrepaidCardReceiptActivity.class); - intent.putExtra(EXTRA_PREPAID_CARD_TOKEN, token); - return intent; - } - /** * @param context A Context of the application consuming this Intent. * @param country The transfer method country code. ISO 3166-1 alpha-2 format. * @param currency The transfer method currency code. ISO 4217 format. * @param transferMethodType The type of transfer method. For a complete list of transfer methods, see {@link - * com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodTypes} + * + * + * + * + * com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodTypes} * @param profileType The type of the account holder profile. For a complete list of options, see * {@link com.hyperwallet.android.model.user.HyperwalletUser.ProfileTypes} * @return an Intent with the data necessary to launch the {@link AddTransferMethodActivity} diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodActivity.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodActivity.java similarity index 97% rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodActivity.java rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodActivity.java index 9c1fa1d77..e3ba27b72 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodActivity.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodActivity.java @@ -14,7 +14,7 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.transfermethod; +package com.hyperwallet.android.ui.transfermethod.view; import android.os.Bundle; import android.view.View; @@ -32,8 +32,6 @@ import com.hyperwallet.android.ui.R; import com.hyperwallet.android.ui.common.view.error.DefaultErrorDialogFragment; import com.hyperwallet.android.ui.common.view.error.OnNetworkErrorCallback; -import com.hyperwallet.android.ui.view.WidgetDateDialogFragment; -import com.hyperwallet.android.ui.view.WidgetSelectionDialogFragment; import java.util.List; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodContract.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodContract.java similarity index 98% rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodContract.java rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodContract.java index 959e0a03e..1b7a43fcf 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodContract.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodContract.java @@ -14,7 +14,7 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.transfermethod; +package com.hyperwallet.android.ui.transfermethod.view; import androidx.annotation.NonNull; import androidx.annotation.Nullable; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodFragment.java similarity index 97% rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodFragment.java index ca550a617..6a9367128 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodFragment.java @@ -14,7 +14,7 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.transfermethod; +package com.hyperwallet.android.ui.transfermethod.view; import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodFields.PROFILE_TYPE; import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodFields.TRANSFER_METHOD_COUNTRY; @@ -55,18 +55,16 @@ import com.hyperwallet.android.model.transfermethod.HyperwalletBankCard; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; import com.hyperwallet.android.model.transfermethod.PayPalAccount; -import com.hyperwallet.android.ui.HyperwalletLocalBroadcast; import com.hyperwallet.android.ui.R; +import com.hyperwallet.android.ui.transfermethod.HyperwalletTransferMethodLocalBroadcast; import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; -import com.hyperwallet.android.ui.view.WidgetDateDialogFragment; -import com.hyperwallet.android.ui.view.WidgetSelectionDialogFragment; -import com.hyperwallet.android.ui.view.widget.AbstractWidget; -import com.hyperwallet.android.ui.view.widget.DateChangedListener; -import com.hyperwallet.android.ui.view.widget.DateUtils; -import com.hyperwallet.android.ui.view.widget.DateWidget; -import com.hyperwallet.android.ui.view.widget.WidgetEventListener; -import com.hyperwallet.android.ui.view.widget.WidgetFactory; -import com.hyperwallet.android.ui.view.widget.WidgetInputState; +import com.hyperwallet.android.ui.transfermethod.view.widget.AbstractWidget; +import com.hyperwallet.android.ui.transfermethod.view.widget.DateChangedListener; +import com.hyperwallet.android.ui.transfermethod.view.widget.DateUtils; +import com.hyperwallet.android.ui.transfermethod.view.widget.DateWidget; +import com.hyperwallet.android.ui.transfermethod.view.widget.WidgetEventListener; +import com.hyperwallet.android.ui.transfermethod.view.widget.WidgetFactory; +import com.hyperwallet.android.ui.transfermethod.view.widget.WidgetInputState; import java.util.HashMap; import java.util.List; @@ -84,7 +82,7 @@ public class AddTransferMethodFragment extends Fragment implements WidgetEventLi private static final String ARGUMENT_TRANSFER_METHOD = "ARGUMENT_TRANSFER_METHOD"; private static final String ARGUMENT_WIDGET_STATE_MAP = "ARGUMENT_WIDGET_STATE_MAP"; private static final boolean FORCE_UPDATE = false; - + private final DateUtils mDateUtils = new DateUtils(); private String mCountry; private View mCreateButtonProgressBar; private Button mCreateTransferMethodButton; @@ -100,7 +98,6 @@ public class AddTransferMethodFragment extends Fragment implements WidgetEventLi private HyperwalletTransferMethod mTransferMethod; private String mTransferMethodProfileType; private HashMap mWidgetInputStateHashMap; - private final DateUtils mDateUtils = new DateUtils(); /** * Please do not use this to have instance of AddTransferMethodFragment this is reserved for android framework @@ -296,7 +293,8 @@ public void saveTextChanged(@NonNull final String fieldName, @NonNull final Stri @Override public void notifyTransferMethodAdded(@NonNull final HyperwalletTransferMethod transferMethod) { - Intent intent = HyperwalletLocalBroadcast.createBroadcastIntentTransferMethodAdded(transferMethod); + Intent intent = HyperwalletTransferMethodLocalBroadcast.createBroadcastIntentTransferMethodAdded( + transferMethod); LocalBroadcastManager.getInstance(getContext()).sendBroadcast(intent); getActivity().setResult(Activity.RESULT_OK); getActivity().finish(); @@ -484,14 +482,6 @@ public void openWidgetSelectionFragmentDialog(@NonNull final TreeMap errors); - } - - interface OnAddTransferMethodNetworkErrorCallback { - void showErrorsAddTransferMethod(@NonNull final List errors); - } - private void triggerSubmit() { if (performValidation(true)) { switch (mTransferMethodType) { @@ -623,4 +613,12 @@ void onDateSelected(@NonNull final String selectedValue, @NonNull final String f } } } + + interface OnLoadTransferMethodConfigurationFieldsNetworkErrorCallback { + void showErrorsLoadTransferMethodConfigurationFields(@NonNull final List errors); + } + + interface OnAddTransferMethodNetworkErrorCallback { + void showErrorsAddTransferMethod(@NonNull final List errors); + } } diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodPresenter.java similarity index 98% rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodPresenter.java index bcccca6e2..2355d4448 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodPresenter.java @@ -14,7 +14,7 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.transfermethod; +package com.hyperwallet.android.ui.transfermethod.view; import androidx.annotation.NonNull; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/view/CountrySelectionDialogFragment.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/CountrySelectionDialogFragment.java similarity index 99% rename from ui/src/main/java/com/hyperwallet/android/ui/view/CountrySelectionDialogFragment.java rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/CountrySelectionDialogFragment.java index 66980f24b..d7cc52d15 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/view/CountrySelectionDialogFragment.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/CountrySelectionDialogFragment.java @@ -14,7 +14,7 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.view; +package com.hyperwallet.android.ui.transfermethod.view; import android.app.Activity; import android.app.SearchManager; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/view/CurrencySelectionDialogFragment.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/CurrencySelectionDialogFragment.java similarity index 99% rename from ui/src/main/java/com/hyperwallet/android/ui/view/CurrencySelectionDialogFragment.java rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/CurrencySelectionDialogFragment.java index e9ee2bde1..5a0757605 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/view/CurrencySelectionDialogFragment.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/CurrencySelectionDialogFragment.java @@ -14,7 +14,7 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.view; +package com.hyperwallet.android.ui.transfermethod.view; import android.app.Activity; import android.app.SearchManager; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/FeeFormatter.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/FeeFormatter.java similarity index 98% rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/FeeFormatter.java rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/FeeFormatter.java index e073e0a1b..a5eba963f 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/FeeFormatter.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/FeeFormatter.java @@ -16,7 +16,7 @@ * IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.transfermethod; +package com.hyperwallet.android.ui.transfermethod.view; import android.content.Context; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodActivity.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodActivity.java similarity index 98% rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodActivity.java rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodActivity.java index 6aef7e314..4e4cdac20 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodActivity.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodActivity.java @@ -14,9 +14,9 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.transfermethod; +package com.hyperwallet.android.ui.transfermethod.view; -import static com.hyperwallet.android.ui.transfermethod.ListTransferMethodFragment.ARGUMENT_IS_TRANSFER_METHODS_RELOAD_NEEDED; +import static com.hyperwallet.android.ui.transfermethod.view.ListTransferMethodFragment.ARGUMENT_IS_TRANSFER_METHODS_RELOAD_NEEDED; import android.content.Intent; import android.os.Bundle; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodContract.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodContract.java similarity index 97% rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodContract.java rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodContract.java index 0b2e0e5ad..7727cd404 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodContract.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodContract.java @@ -14,7 +14,7 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.transfermethod; +package com.hyperwallet.android.ui.transfermethod.view; import androidx.annotation.NonNull; diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodFragment.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodFragment.java similarity index 96% rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodFragment.java rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodFragment.java index 306776f4d..77236a1a3 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodFragment.java +++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodFragment.java @@ -14,13 +14,13 @@ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.hyperwallet.android.ui.transfermethod; +package com.hyperwallet.android.ui.transfermethod.view; import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodFields.TRANSFER_METHOD_COUNTRY; import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodFields.TYPE; -import static com.hyperwallet.android.ui.transfermethod.TransferMethodUtils.getStringFontIcon; -import static com.hyperwallet.android.ui.transfermethod.TransferMethodUtils.getStringResourceByName; -import static com.hyperwallet.android.ui.transfermethod.TransferMethodUtils.getTransferMethodDetail; +import static com.hyperwallet.android.ui.transfermethod.view.TransferMethodUtils.getStringFontIcon; +import static com.hyperwallet.android.ui.transfermethod.view.TransferMethodUtils.getStringResourceByName; +import static com.hyperwallet.android.ui.transfermethod.view.TransferMethodUtils.getTransferMethodDetail; import android.content.Context; import android.content.Intent; @@ -46,10 +46,10 @@ import com.hyperwallet.android.model.HyperwalletError; import com.hyperwallet.android.model.HyperwalletStatusTransition; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; -import com.hyperwallet.android.ui.HyperwalletLocalBroadcast; import com.hyperwallet.android.ui.R; import com.hyperwallet.android.ui.common.view.HorizontalDividerItemDecorator; import com.hyperwallet.android.ui.common.view.OneClickListener; +import com.hyperwallet.android.ui.transfermethod.HyperwalletTransferMethodLocalBroadcast; import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory; import java.util.ArrayList; @@ -224,7 +224,7 @@ public void displayTransferMethods(@Nullable final List + tools:context="com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity"> diff --git a/ui/src/main/res/layout/activity_list_transfer_method.xml b/transfermethodui/src/main/res/layout/activity_list_transfer_method.xml similarity index 94% rename from ui/src/main/res/layout/activity_list_transfer_method.xml rename to transfermethodui/src/main/res/layout/activity_list_transfer_method.xml index 28ed9e27a..a065a9e0e 100644 --- a/ui/src/main/res/layout/activity_list_transfer_method.xml +++ b/transfermethodui/src/main/res/layout/activity_list_transfer_method.xml @@ -5,7 +5,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context="com.hyperwallet.android.ui.transfermethod.ListTransferMethodActivity"> + tools:context="com.hyperwallet.android.ui.transfermethod.view.ListTransferMethodActivity"> \ No newline at end of file diff --git a/ui/src/main/res/layout/dialog_fragment_country_selection.xml b/transfermethodui/src/main/res/layout/dialog_fragment_country_selection.xml similarity index 100% rename from ui/src/main/res/layout/dialog_fragment_country_selection.xml rename to transfermethodui/src/main/res/layout/dialog_fragment_country_selection.xml diff --git a/ui/src/main/res/layout/dialog_fragment_currency_selection.xml b/transfermethodui/src/main/res/layout/dialog_fragment_currency_selection.xml similarity index 100% rename from ui/src/main/res/layout/dialog_fragment_currency_selection.xml rename to transfermethodui/src/main/res/layout/dialog_fragment_currency_selection.xml diff --git a/ui/src/main/res/layout/dialog_fragment_widget_selection.xml b/transfermethodui/src/main/res/layout/dialog_fragment_widget_selection.xml similarity index 100% rename from ui/src/main/res/layout/dialog_fragment_widget_selection.xml rename to transfermethodui/src/main/res/layout/dialog_fragment_widget_selection.xml diff --git a/ui/src/main/res/layout/fragment_add_transfer_method.xml b/transfermethodui/src/main/res/layout/fragment_add_transfer_method.xml similarity index 99% rename from ui/src/main/res/layout/fragment_add_transfer_method.xml rename to transfermethodui/src/main/res/layout/fragment_add_transfer_method.xml index 861e1bdcd..a4e56297a 100644 --- a/ui/src/main/res/layout/fragment_add_transfer_method.xml +++ b/transfermethodui/src/main/res/layout/fragment_add_transfer_method.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - tools:context="com.hyperwallet.android.ui.transfermethod.AddTransferMethodFragment"> + tools:context="com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodFragment"> + tools:context="com.hyperwallet.android.ui.transfermethod.view.ListTransferMethodFragment"> + tools:context="com.hyperwallet.android.ui.transfermethod.view.SelectTransferMethodFragment"> Date: Fri, 19 Jul 2019 14:42:21 -0700 Subject: [PATCH 13/13] update module name and description for maven repo --- commonrepository/build.gradle | 7 ++++++- commonui/build.gradle | 4 ++++ publish.gradle | 4 ++-- receiptrepository/build.gradle | 5 +++++ receiptui/build.gradle | 4 ++++ transfermethodrepository/build.gradle | 4 ++++ transfermethodui/build.gradle | 4 ++++ userrepository/build.gradle | 4 ++++ 8 files changed, 33 insertions(+), 3 deletions(-) diff --git a/commonrepository/build.gradle b/commonrepository/build.gradle index da20265c3..2901b2ef0 100644 --- a/commonrepository/build.gradle +++ b/commonrepository/build.gradle @@ -1,2 +1,7 @@ apply from: "$rootProject.projectDir/android-library.gradle" -apply from: "$rootProject.projectDir/publish.gradle" \ No newline at end of file +description = 'Hyperwallet Common Repository SDK for Android to integrate with the Hyperwallet Platform' +project.ext { + mavenName = 'Hyperwallet Android Common Repository SDK' +} +apply from: "$rootProject.projectDir/publish.gradle" + diff --git a/commonui/build.gradle b/commonui/build.gradle index b9a663338..30d929e32 100644 --- a/commonui/build.gradle +++ b/commonui/build.gradle @@ -1,4 +1,8 @@ apply from: "$rootProject.projectDir/android-library.gradle" +description = 'Hyperwallet Common UI SDK for Android to integrate with the Hyperwallet Platform' +project.ext { + mavenName = 'Hyperwallet Android Common UI SDK' +} apply from: "$rootProject.projectDir/publish.gradle" dependencies { diff --git a/publish.gradle b/publish.gradle index f9ea4710b..8b2f85e97 100644 --- a/publish.gradle +++ b/publish.gradle @@ -31,8 +31,8 @@ publishing { artifact(aarArtifact) pom { - name = 'Hyperwallet Android Receipt UI SDK' - description = 'Hyperwallet Receipt UI SDK for Android to integrate with Hyperwallet Platform' + name = project.mavenName + description = project.description url = 'https://github.com/hyperwallet/hyperwallet-android-ui-sdk' pom.withXml { def dependenciesNode = asNode().appendNode('dependencies') diff --git a/receiptrepository/build.gradle b/receiptrepository/build.gradle index d63d95908..f5390c2fe 100644 --- a/receiptrepository/build.gradle +++ b/receiptrepository/build.gradle @@ -1,6 +1,11 @@ apply from: "$rootProject.projectDir/android-library.gradle" +description = 'Hyperwallet Receipt Repository SDK for Android to integrate with the Hyperwallet Platform' +project.ext { + mavenName = 'Hyperwallet Android Receipt Repository SDK' +} apply from: "$rootProject.projectDir/publish.gradle" + dependencies { implementation "androidx.legacy:legacy-support-v4:$legacySupportV4Version" diff --git a/receiptui/build.gradle b/receiptui/build.gradle index ac997f245..081d29e7f 100644 --- a/receiptui/build.gradle +++ b/receiptui/build.gradle @@ -1,4 +1,8 @@ apply from: "$rootProject.projectDir/android-library.gradle" +description = 'Hyperwallet Receipt UI SDK for Android to integrate with the Hyperwallet Platform' +project.ext { + mavenName = 'Hyperwallet Android Receipt UI SDK' +} apply from: "$rootProject.projectDir/publish.gradle" dependencies { diff --git a/transfermethodrepository/build.gradle b/transfermethodrepository/build.gradle index 34fe3c5de..5f8b12e95 100644 --- a/transfermethodrepository/build.gradle +++ b/transfermethodrepository/build.gradle @@ -1,4 +1,8 @@ apply from: "$rootProject.projectDir/android-library.gradle" +description = 'Hyperwallet Transfer Method Repository SDK for Android to integrate with the Hyperwallet Platform' +project.ext { + mavenName = 'Hyperwallet Android Transfer Method Repository SDK' +} apply from: "$rootProject.projectDir/publish.gradle" dependencies { diff --git a/transfermethodui/build.gradle b/transfermethodui/build.gradle index 3800b40e0..fe72e3da1 100644 --- a/transfermethodui/build.gradle +++ b/transfermethodui/build.gradle @@ -1,4 +1,8 @@ apply from: "$rootProject.projectDir/android-library.gradle" +description = 'Hyperwallet Transfer Method UI SDK for Android to integrate with the Hyperwallet Platform' +project.ext { + mavenName = 'Hyperwallet Android Transfer Method UI SDK' +} apply from: "$rootProject.projectDir/publish.gradle" dependencies { diff --git a/userrepository/build.gradle b/userrepository/build.gradle index 68b41476d..125278009 100644 --- a/userrepository/build.gradle +++ b/userrepository/build.gradle @@ -1,4 +1,8 @@ apply from: "$rootProject.projectDir/android-library.gradle" +description = 'Hyperwallet User Repository SDK for Android to integrate with the Hyperwallet Platform' +project.ext { + mavenName = 'Hyperwallet Android User Repository SDK' +} apply from: "$rootProject.projectDir/publish.gradle" dependencies {