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 620173287..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"
- api "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"
@@ -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/common/.gitignore b/commonrepository/.gitignore
similarity index 100%
rename from common/.gitignore
rename to commonrepository/.gitignore
diff --git a/commonrepository/build.gradle b/commonrepository/build.gradle
new file mode 100644
index 000000000..2901b2ef0
--- /dev/null
+++ b/commonrepository/build.gradle
@@ -0,0 +1,7 @@
+apply from: "$rootProject.projectDir/android-library.gradle"
+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/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/receipt/.gitignore b/commonui/.gitignore
similarity index 100%
rename from receipt/.gitignore
rename to commonui/.gitignore
diff --git a/commonui/build.gradle b/commonui/build.gradle
new file mode 100644
index 000000000..30d929e32
--- /dev/null
+++ b/commonui/build.gradle
@@ -0,0 +1,10 @@
+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 {
+ 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/receipt/proguard-rules.pro b/commonui/proguard-rules.pro
similarity index 100%
rename from receipt/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/common/build.gradle b/publish.gradle
similarity index 79%
rename from common/build.gradle
rename to publish.gradle
index cf60c3f49..8b2f85e97 100644
--- a/common/build.gradle
+++ b/publish.gradle
@@ -1,7 +1,4 @@
-apply from: "$rootProject.projectDir/android-library.gradle"
-
-
-def aarFile = file("$buildDir/outputs/aar/common-$version" + ".aar")
+def aarFile = file("$buildDir/outputs/aar/$project.name-$version" + ".aar")
def aarArtifact = artifacts.add('archives', aarFile) {
type 'aar'
}
@@ -23,9 +20,10 @@ publishing {
}
publications {
- hyperwalletCommonUi(MavenPublication) {
+ hyperwalletUiPublish(MavenPublication) {
groupId = hyperwalletGroupId
- artifactId = 'common'
+ artifactId = project.name
+
version = version
artifact(sourcesJar)
@@ -33,14 +31,18 @@ publishing {
artifact(aarArtifact)
pom {
- name = 'Hyperwallet Android Common UI SDK'
- description = 'Hyperwallet Common 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')
configurations.implementation.allDependencies.each {
def dependencyNode = dependenciesNode.appendNode('dependency')
- dependencyNode.appendNode('groupId', it.group)
+ 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)
}
@@ -74,7 +76,7 @@ tasks.withType(Sign) {
}
signing {
- sign publishing.publications.hyperwalletCommonUi
+ sign publishing.publications.hyperwalletUiPublish
}
sonarqube {
@@ -83,6 +85,6 @@ sonarqube {
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"
+ property "sonar.projectName", "android-ui-sdk-$project.name"
}
}
\ No newline at end of file
diff --git a/receipt/build.gradle b/receipt/build.gradle
deleted file mode 100644
index cff209c86..000000000
--- a/receipt/build.gradle
+++ /dev/null
@@ -1,111 +0,0 @@
-apply from: "$rootProject.projectDir/android-library.gradle"
-
-dependencies {
- api project(":common")
-
- implementation "com.google.android.material:material:$androidMaterialVersion"
- implementation "androidx.constraintlayout:constraintlayout:$constraintlayoutVersion"
- implementation "androidx.legacy:legacy-support-v4:$legacySupportV4Version"
- implementation "androidx.recyclerview:recyclerview:$recycleViewVersion"
- 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"
- androidTestImplementation "com.squareup.okhttp3:mockwebserver:$mockServerVersion"
- 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/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
new file mode 100644
index 000000000..f5390c2fe
--- /dev/null
+++ b/receiptrepository/build.gradle
@@ -0,0 +1,16 @@
+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"
+ implementation "androidx.paging:paging-runtime:$pagingRuntimeVersion"
+ api project(':commonrepository')
+
+ testImplementation "org.robolectric:robolectric:$robolectricVersion"
+}
\ 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 98%
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
index 39135cf44..21cd26073 100644
--- 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
@@ -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/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 97%
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
index 021cadcc7..273368fd5 100644
--- 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
@@ -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/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 97%
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
index 4b5fed137..ae7372e1b 100644
--- 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
@@ -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/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 98%
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
index 28e8ef727..e75769bfa 100644
--- 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
@@ -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/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 97%
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
index 7c72ab664..14a685c39 100644
--- 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
@@ -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/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 97%
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
index 07a8fbdb9..74a28295b 100644
--- 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
@@ -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/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 99%
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
index e9cf99b89..fd468bfab 100644
--- 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
@@ -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.receipt.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;
@@ -56,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/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 97%
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
index 247031513..912741fc0 100644
--- 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
@@ -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/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 99%
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
index e61646e32..a26ed1b15 100644
--- 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
@@ -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.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/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 97%
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
index 5b3005bda..74be4edac 100644
--- 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
@@ -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/receipt/src/test/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 receipt/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java
rename to receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletExternalResourceManager.java
index 9061af9b8..abc9bf5da 100644
--- a/receipt/src/test/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.rule;
+package com.hyperwallet.android.ui.receipt.rule;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
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/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/receiptui/.gitignore b/receiptui/.gitignore
new file mode 100644
index 000000000..796b96d1c
--- /dev/null
+++ b/receiptui/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/receiptui/build.gradle b/receiptui/build.gradle
new file mode 100644
index 000000000..081d29e7f
--- /dev/null
+++ b/receiptui/build.gradle
@@ -0,0 +1,25 @@
+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 {
+ implementation project(':commonui')
+ implementation project(":receiptrepository")
+
+ implementation "com.google.android.material:material:$androidMaterialVersion"
+ implementation "androidx.constraintlayout:constraintlayout:$constraintlayoutVersion"
+ implementation "androidx.legacy:legacy-support-v4:$legacySupportV4Version"
+ implementation "androidx.recyclerview:recyclerview:$recycleViewVersion"
+ implementation "androidx.lifecycle:lifecycle-extensions:$lifecycleExtensionsVersion"
+ implementation "androidx.paging:paging-runtime:$pagingRuntimeVersion"
+
+ androidTestImplementation "androidx.test:rules:$testRulesVersion"
+ androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion"
+ androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion"
+ androidTestImplementation "com.squareup.okhttp3:mockwebserver:$mockServerVersion"
+ androidTestImplementation "com.squareup.leakcanary:leakcanary-android-instrumentation:$leakcanaryVersion"
+ androidTestImplementation "com.squareup.leakcanary:leakcanary-support-fragment:$leakcanaryVersion"
+}
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/ui/proguard-rules.pro b/receiptui/proguard-rules.pro
similarity index 100%
rename from ui/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 99%
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
index 2e9c9ff14..910d69628 100644
--- a/receipt/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/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 99%
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
index 0bb97d2ff..37809b494 100644
--- a/receipt/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/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/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/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 99%
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
index b774436d4..e5ef5a937 100644
--- 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
@@ -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/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 99%
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
index bc66e9609..4b56bfa30 100644
--- 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
@@ -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/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 98%
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
index 73f697bca..0b72276be 100644
--- 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
@@ -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/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 97%
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
index 9b9b63b2c..fcb308629 100644
--- 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
@@ -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/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 97%
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
index f100b86bc..9cb878969 100644
--- 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
@@ -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/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/ui/src/androidTest/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 ui/src/androidTest/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java
rename to receiptui/src/test/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java
index 0fd013e52..e7ac68fac 100644
--- a/ui/src/androidTest/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;
@@ -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/receipt/src/test/resources/authentication_token_response.json b/receiptui/src/test/resources/authentication_token_response.json
similarity index 100%
rename from receipt/src/test/resources/authentication_token_response.json
rename to receiptui/src/test/resources/authentication_token_response.json
diff --git a/receipt/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 receipt/src/test/resources/prepaid_card_receipt_credit_response.json
rename to receiptui/src/test/resources/prepaid_card_receipt_credit_response.json
diff --git a/receipt/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 receipt/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/receipt/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 receipt/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/receipt/src/test/resources/receipt_credit_response.json b/receiptui/src/test/resources/receipt_credit_response.json
similarity index 100%
rename from receipt/src/test/resources/receipt_credit_response.json
rename to receiptui/src/test/resources/receipt_credit_response.json
diff --git a/receipt/src/test/resources/receipt_debit_response.json b/receiptui/src/test/resources/receipt_debit_response.json
similarity index 100%
rename from receipt/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/receipt/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 receipt/src/test/resources/receipt_list_paged_last_response.json
rename to receiptui/src/test/resources/receipt_list_paged_last_response.json
diff --git a/receipt/src/test/resources/receipt_list_paged_response.json b/receiptui/src/test/resources/receipt_list_paged_response.json
similarity index 100%
rename from receipt/src/test/resources/receipt_list_paged_response.json
rename to receiptui/src/test/resources/receipt_list_paged_response.json
diff --git a/receipt/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 receipt/src/test/resources/receipt_list_paged_second_response.json
rename to receiptui/src/test/resources/receipt_list_paged_second_response.json
diff --git a/receipt/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 receipt/src/test/resources/receipt_list_paged_third_response.json
rename to receiptui/src/test/resources/receipt_list_paged_third_response.json
diff --git a/receipt/src/test/resources/receipt_list_response.json b/receiptui/src/test/resources/receipt_list_response.json
similarity index 100%
rename from receipt/src/test/resources/receipt_list_response.json
rename to receiptui/src/test/resources/receipt_list_response.json
diff --git a/receipt/src/test/resources/receipt_unknown_type_response.json b/receiptui/src/test/resources/receipt_unknown_type_response.json
similarity index 100%
rename from receipt/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 905f2e4e9..9058fac39 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1 @@
-include ':ui', ':common', ':receipt'
+include ':transfermethodui', ':receiptui', ':commonui', ':receiptrepository', ':userrepository', ':transfermethodrepository', ':commonrepository'
diff --git a/transfermethodrepository/.gitignore b/transfermethodrepository/.gitignore
new file mode 100644
index 000000000..26b424a3f
--- /dev/null
+++ b/transfermethodrepository/.gitignore
@@ -0,0 +1,3 @@
+/build
+
+*.exec
diff --git a/transfermethodrepository/build.gradle b/transfermethodrepository/build.gradle
new file mode 100644
index 000000000..5f8b12e95
--- /dev/null
+++ b/transfermethodrepository/build.gradle
@@ -0,0 +1,12 @@
+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 {
+ api project(':commonrepository')
+ 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..f9a382805 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.common.repository.EspressoIdlingResource;
import java.util.HashMap;
import java.util.Map;
@@ -50,16 +50,12 @@ 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<>();
}
- @VisibleForTesting
- Hyperwallet getHyperwallet() {
- return Hyperwallet.getDefault();
- }
-
@VisibleForTesting()
protected TransferMethodConfigurationRepositoryImpl(@Nullable Handler handler,
HyperwalletTransferMethodConfigurationKey transferMethodConfigurationKey,
@@ -69,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/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..ed9360c6f
--- /dev/null
+++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java
@@ -0,0 +1,47 @@
+/*
+ * 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 {
+ 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/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 94%
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..f0541bb9a 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,4 +1,4 @@
-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;
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..b71175ead 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.rule.HyperwalletExternalResourceManager;
import com.hyperwallet.android.util.JsonUtils;
import org.hamcrest.collection.IsEmptyCollection;
diff --git a/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java
similarity index 65%
rename from ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java
rename to transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java
index 050534fc8..7e89c5a03 100644
--- a/ui/src/test/java/com/hyperwallet/android/ui/repository/RepositoryFactoryTest.java
+++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactoryTest.java
@@ -1,43 +1,39 @@
-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;
+import static org.hamcrest.CoreMatchers.notNullValue;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.notNullValue;
import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
-@RunWith(RobolectricTestRunner.class)
-public class RepositoryFactoryTest {
+public class TransferMethodRepositoryFactoryTest {
@Test
public void testGetInstance_verifyRepositoriesInitialized() {
- RepositoryFactory repositoryFactory = RepositoryFactory.getInstance();
+ TransferMethodRepositoryFactory repositoryFactory = TransferMethodRepositoryFactory.getInstance();
assertThat(repositoryFactory, is(notNullValue()));
- assertThat(repositoryFactory.getTransferMethodConfigurationRepository(), is(notNullValue()));
assertThat(repositoryFactory.getTransferMethodRepository(), is(notNullValue()));
+ assertThat(repositoryFactory.getTransferMethodConfigurationRepository(), is(notNullValue()));
}
@Test
- public void testClearInstance_verifyRepositoriesCleared() {
- RepositoryFactory repositoryFactory = RepositoryFactory.getInstance();
+ public void testClearInstance_verifyRepositoryCleared() {
+ TransferMethodRepositoryFactory repositoryFactory = TransferMethodRepositoryFactory.getInstance();
+ TransferMethodRepository transferMethodRepository = repositoryFactory.getTransferMethodRepository();
TransferMethodConfigurationRepository configurationRepository =
repositoryFactory.getTransferMethodConfigurationRepository();
- TransferMethodRepository transferMethodRepository = repositoryFactory.getTransferMethodRepository();
- RepositoryFactory currentRepositoryFactory = RepositoryFactory.getInstance();
+ TransferMethodRepositoryFactory currentRepositoryFactory = TransferMethodRepositoryFactory.getInstance();
assertThat(repositoryFactory, is(currentRepositoryFactory));
- assertThat(configurationRepository, is(currentRepositoryFactory.getTransferMethodConfigurationRepository()));
assertThat(transferMethodRepository, is(currentRepositoryFactory.getTransferMethodRepository()));
+ assertThat(configurationRepository, is(currentRepositoryFactory.getTransferMethodConfigurationRepository()));
- RepositoryFactory.clearInstance();
+ TransferMethodRepositoryFactory.clearInstance();
- RepositoryFactory anotherRepositoryFactory = RepositoryFactory.getInstance();
+ TransferMethodRepositoryFactory anotherRepositoryFactory = TransferMethodRepositoryFactory.getInstance();
assertThat(repositoryFactory, is(not(anotherRepositoryFactory)));
+ assertThat(transferMethodRepository, is(not(anotherRepositoryFactory.getTransferMethodRepository())));
assertThat(configurationRepository,
is(not(anotherRepositoryFactory.getTransferMethodConfigurationRepository())));
- assertThat(transferMethodRepository, is(not(anotherRepositoryFactory.getTransferMethodRepository())));
}
}
\ 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/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/src/test/resources/error_tmc_keys_response.json b/transfermethodrepository/src/test/resources/error_tmc_keys_response.json
similarity index 100%
rename from ui/src/test/resources/error_tmc_keys_response.json
rename to transfermethodrepository/src/test/resources/error_tmc_keys_response.json
diff --git a/ui/src/test/resources/successful_tmc_fields_bank_account_response.json b/transfermethodrepository/src/test/resources/successful_tmc_fields_bank_account_response.json
similarity index 100%
rename from ui/src/test/resources/successful_tmc_fields_bank_account_response.json
rename to transfermethodrepository/src/test/resources/successful_tmc_fields_bank_account_response.json
diff --git a/ui/src/test/resources/successful_tmc_keys_response.json b/transfermethodrepository/src/test/resources/successful_tmc_keys_response.json
similarity index 100%
rename from ui/src/test/resources/successful_tmc_keys_response.json
rename to transfermethodrepository/src/test/resources/successful_tmc_keys_response.json
diff --git a/ui/.gitignore b/transfermethodui/.gitignore
similarity index 100%
rename from ui/.gitignore
rename to transfermethodui/.gitignore
diff --git a/transfermethodui/build.gradle b/transfermethodui/build.gradle
new file mode 100644
index 000000000..fe72e3da1
--- /dev/null
+++ b/transfermethodui/build.gradle
@@ -0,0 +1,29 @@
+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 {
+
+ implementation "androidx.appcompat:appcompat:$appcompatVersion"
+ implementation "androidx.constraintlayout:constraintlayout:$constraintlayoutVersion"
+ implementation "androidx.legacy:legacy-support-v4:$legacySupportV4Version"
+ implementation "androidx.recyclerview:recyclerview:$recycleViewVersion"
+
+ implementation project(':commonui')
+ implementation project(":userrepository")
+ implementation project(":transfermethodrepository")
+
+
+ androidTestImplementation "androidx.test:rules:$testRulesVersion"
+ androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion"
+ androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion"
+ androidTestImplementation "com.squareup.okhttp3:mockwebserver:$mockServerVersion"
+ androidTestImplementation "com.squareup.leakcanary:leakcanary-android-instrumentation:$leakcanaryVersion"
+ androidTestImplementation "com.squareup.leakcanary:leakcanary-support-fragment:$leakcanaryVersion"
+
+ testImplementation "org.robolectric:robolectric:$robolectricVersion"
+ testImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion"
+}
\ No newline at end of file
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 94%
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 18989446a..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.repository.RepositoryFactory;
-import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager;
-import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer;
-import com.hyperwallet.android.ui.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
+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;
@@ -87,7 +88,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/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java
similarity index 95%
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 4ac416f78..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.repository.RepositoryFactory;
-import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager;
-import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer;
-import com.hyperwallet.android.ui.util.RecyclerViewCountAssertion;
-import com.hyperwallet.android.ui.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource;
+import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
+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;
@@ -101,7 +102,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/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java
similarity index 93%
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 44ea7393f..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.repository.RepositoryFactory;
-import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager;
-import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer;
-import com.hyperwallet.android.ui.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource;
+import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
+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;
@@ -105,7 +106,7 @@ public void setup() {
@After
public void cleanup() {
- RepositoryFactory.clearInstance();
+ TransferMethodRepositoryFactory.clearInstance();
}
@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 01e3e1d29..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.repository.RepositoryFactory;
-import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager;
-import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer;
-import com.hyperwallet.android.ui.util.RecyclerViewCountAssertion;
-import com.hyperwallet.android.ui.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
+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;
@@ -77,7 +78,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/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java
similarity index 91%
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 ebf34101b..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.repository.RepositoryFactory;
-import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager;
-import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer;
-import com.hyperwallet.android.ui.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource;
+import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
+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;
@@ -95,7 +96,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/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java
similarity index 94%
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 5c3ace145..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.repository.RepositoryFactory;
-import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager;
-import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer;
-import com.hyperwallet.android.ui.util.RecyclerViewCountAssertion;
-import com.hyperwallet.android.ui.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource;
+import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
+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;
@@ -81,7 +83,8 @@ public void setup() {
@After
public void cleanup() {
- RepositoryFactory.clearInstance();
+ 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 96%
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 447624e31..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.repository.RepositoryFactory;
-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.HyperwalletTransferMethodLocalBroadcast;
+import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
+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
@@ -202,7 +199,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());
@@ -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 95%
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 d0fd40750..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,15 +14,15 @@
* 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 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/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 95%
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 e38385540..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,11 +46,11 @@
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.repository.RepositoryFactory;
+import com.hyperwallet.android.ui.transfermethod.HyperwalletTransferMethodLocalBroadcast;
+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);
}
@@ -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">
+
+
+
+
+
\ 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..cfbfaafa3 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
@@ -15,8 +15,7 @@
* 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.user.repository;
import androidx.annotation.NonNull;
@@ -54,4 +53,4 @@ interface LoadUserCallback {
void onError(@NonNull final HyperwalletErrors errors);
}
-}
+}
\ No newline at end of file
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()));
}