diff --git a/.gitignore b/.gitignore
index 54b1252fb..eabbab986 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,4 +16,9 @@ local.properties
*.log
# Android Studio captures folder
-captures/
\ No newline at end of file
+captures/
+
+
+*.exec
+
+*.hprof
\ No newline at end of file
diff --git a/android-library.gradle b/android-library.gradle
index 0d8012de0..750c9a8d9 100644
--- a/android-library.gradle
+++ b/android-library.gradle
@@ -55,9 +55,9 @@ task sourcesJar(type: Jar) {
}
dependencies {
- implementation "com.google.android.material:material:$androidMaterialVersion"
- implementation "com.hyperwallet.android:core-sdk:$hyperwalletCoreVersion"
+ api "com.hyperwallet.android:core-sdk:$hyperwalletCoreVersion"
+ implementation "com.google.android.material:material:$androidMaterialVersion"
implementation "androidx.test.espresso:espresso-idling-resource:$espressoVersion"
androidTestImplementation "androidx.test.ext:junit:$extJunitVerson"
diff --git a/common/.gitignore b/commonrepository/.gitignore
similarity index 100%
rename from common/.gitignore
rename to commonrepository/.gitignore
diff --git a/common/build.gradle b/commonrepository/build.gradle
similarity index 100%
rename from common/build.gradle
rename to commonrepository/build.gradle
diff --git a/commonrepository/config/jacoco-settings.gradle b/commonrepository/config/jacoco-settings.gradle
new file mode 100644
index 000000000..fd79c8da1
--- /dev/null
+++ b/commonrepository/config/jacoco-settings.gradle
@@ -0,0 +1,82 @@
+apply plugin: 'jacoco'
+
+final def jacocoVersion = "0.8.2"
+
+jacoco {
+ toolVersion = jacocoVersion
+}
+
+android {
+ testOptions {
+ unitTests {
+ includeAndroidResources = true
+ returnDefaultValues = true
+ }
+ unitTests.all {
+ jacoco {
+ includeNoLocationClasses = true
+ }
+ }
+ }
+}
+
+def fileFilter = ['**/BuildConfig.*',
+ '**/com/hyperwallet/android/ui/common/repository/EspressoIdlingResource.*',
+ '**/com/hyperwallet/android/ui/common/repository/Event.*'
+]
+
+def debugClassPaths = [
+ '**/intermediates/javac/debug/*/classes/**'
+]
+
+final def coverageSourceDirs = ["$project.projectDir/src/main/java/*"]
+
+task jacocoTestReport(type: JacocoReport, dependsOn: 'testDebugUnitTest') {
+
+ group = 'Reporting'
+ description = 'Generate Jacoco coverage reports.'
+
+ reports {
+ html {
+ enabled = true
+ destination file("$buildDir/reports/jacoco")
+ }
+ }
+
+ classDirectories = fileTree(
+ dir: "${buildDir}",
+ includes: debugClassPaths,
+ excludes: fileFilter
+ )
+
+ additionalSourceDirs = files(coverageSourceDirs)
+ sourceDirectories = files(coverageSourceDirs)
+ executionData = files("${buildDir}/jacoco/testDebugUnitTest.exec")
+}
+
+task jacocoTestCoverageVerification(type: JacocoCoverageVerification, dependsOn: 'jacocoTestReport') {
+
+ group = 'Verification'
+ classDirectories = fileTree(
+ dir: "${buildDir}",
+ includes: debugClassPaths,
+ excludes: fileFilter
+ )
+ additionalSourceDirs = files(coverageSourceDirs)
+ sourceDirectories = files(coverageSourceDirs)
+ executionData = files("${buildDir}/jacoco/testDebugUnitTest.exec")
+
+ violationRules {
+ setFailOnViolation(true)
+
+ rule {
+ element = 'CLASS'
+ limit {
+ value = 'COVEREDRATIO'
+ counter = 'BRANCH'
+ minimum = 0.65
+ }
+ }
+ }
+}
+
diff --git a/common/config/lint.xml b/commonrepository/config/lint.xml
similarity index 100%
rename from common/config/lint.xml
rename to commonrepository/config/lint.xml
diff --git a/common/proguard-rules.pro b/commonrepository/proguard-rules.pro
similarity index 100%
rename from common/proguard-rules.pro
rename to commonrepository/proguard-rules.pro
diff --git a/commonrepository/src/main/AndroidManifest.xml b/commonrepository/src/main/AndroidManifest.xml
new file mode 100644
index 000000000..ab9a2cf4c
--- /dev/null
+++ b/commonrepository/src/main/AndroidManifest.xml
@@ -0,0 +1 @@
+
diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/util/EspressoIdlingResource.java b/commonrepository/src/main/java/com/hyperwallet/android/ui/common/repository/EspressoIdlingResource.java
similarity index 91%
rename from common/src/main/java/com/hyperwallet/android/ui/common/util/EspressoIdlingResource.java
rename to commonrepository/src/main/java/com/hyperwallet/android/ui/common/repository/EspressoIdlingResource.java
index 56c870127..dafe63694 100644
--- a/common/src/main/java/com/hyperwallet/android/ui/common/util/EspressoIdlingResource.java
+++ b/commonrepository/src/main/java/com/hyperwallet/android/ui/common/repository/EspressoIdlingResource.java
@@ -1,4 +1,4 @@
-package com.hyperwallet.android.ui.common.util;
+package com.hyperwallet.android.ui.common.repository;
import androidx.test.espresso.IdlingResource;
import androidx.test.espresso.idling.CountingIdlingResource;
diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/viewmodel/Event.java b/commonrepository/src/main/java/com/hyperwallet/android/ui/common/repository/Event.java
similarity index 97%
rename from common/src/main/java/com/hyperwallet/android/ui/common/viewmodel/Event.java
rename to commonrepository/src/main/java/com/hyperwallet/android/ui/common/repository/Event.java
index 984bb9995..36e63f1e8 100644
--- a/common/src/main/java/com/hyperwallet/android/ui/common/viewmodel/Event.java
+++ b/commonrepository/src/main/java/com/hyperwallet/android/ui/common/repository/Event.java
@@ -14,7 +14,7 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package com.hyperwallet.android.ui.common.viewmodel;
+package com.hyperwallet.android.ui.common.repository;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
diff --git a/commonui/.gitignore b/commonui/.gitignore
new file mode 100644
index 000000000..796b96d1c
--- /dev/null
+++ b/commonui/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/commonui/build.gradle b/commonui/build.gradle
new file mode 100644
index 000000000..b9a663338
--- /dev/null
+++ b/commonui/build.gradle
@@ -0,0 +1,6 @@
+apply from: "$rootProject.projectDir/android-library.gradle"
+apply from: "$rootProject.projectDir/publish.gradle"
+
+dependencies {
+ implementation project(':commonrepository')
+}
\ No newline at end of file
diff --git a/common/config/jacoco-settings.gradle b/commonui/config/jacoco-settings.gradle
similarity index 92%
rename from common/config/jacoco-settings.gradle
rename to commonui/config/jacoco-settings.gradle
index 0fe7bbd10..fa8fde9dd 100644
--- a/common/config/jacoco-settings.gradle
+++ b/commonui/config/jacoco-settings.gradle
@@ -23,9 +23,7 @@ android {
def fileFilter = ['**/BuildConfig.*',
'**/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragment.*',
'**/com/hyperwallet/android/ui/common/view/HorizontalDividerItemDecorator.*',
- '**/com/hyperwallet/android/ui/common/view/OneClickListener.*',
- '**/com/hyperwallet/android/ui/common/util/EspressoIdlingResource.*',
- '**/com/hyperwallet/android/ui/common/viewmodel/Event.*'
+ '**/com/hyperwallet/android/ui/common/view/OneClickListener.*'
]
def debugClassPaths = [
diff --git a/commonui/config/lint.xml b/commonui/config/lint.xml
new file mode 100644
index 000000000..3c83d4bb5
--- /dev/null
+++ b/commonui/config/lint.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ui/proguard-rules.pro b/commonui/proguard-rules.pro
similarity index 100%
rename from ui/proguard-rules.pro
rename to commonui/proguard-rules.pro
diff --git a/common/src/main/AndroidManifest.xml b/commonui/src/main/AndroidManifest.xml
similarity index 100%
rename from common/src/main/AndroidManifest.xml
rename to commonui/src/main/AndroidManifest.xml
diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/util/DateUtils.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/util/DateUtils.java
similarity index 100%
rename from common/src/main/java/com/hyperwallet/android/ui/common/util/DateUtils.java
rename to commonui/src/main/java/com/hyperwallet/android/ui/common/util/DateUtils.java
diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/view/HorizontalDividerItemDecorator.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/view/HorizontalDividerItemDecorator.java
similarity index 100%
rename from common/src/main/java/com/hyperwallet/android/ui/common/view/HorizontalDividerItemDecorator.java
rename to commonui/src/main/java/com/hyperwallet/android/ui/common/view/HorizontalDividerItemDecorator.java
diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/view/OneClickListener.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/view/OneClickListener.java
similarity index 100%
rename from common/src/main/java/com/hyperwallet/android/ui/common/view/OneClickListener.java
rename to commonui/src/main/java/com/hyperwallet/android/ui/common/view/OneClickListener.java
diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragment.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragment.java
similarity index 100%
rename from common/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragment.java
rename to commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragment.java
diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentContract.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentContract.java
similarity index 100%
rename from common/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentContract.java
rename to commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentContract.java
diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenter.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenter.java
similarity index 100%
rename from common/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenter.java
rename to commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenter.java
diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/view/error/OnNetworkErrorCallback.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/OnNetworkErrorCallback.java
similarity index 100%
rename from common/src/main/java/com/hyperwallet/android/ui/common/view/error/OnNetworkErrorCallback.java
rename to commonui/src/main/java/com/hyperwallet/android/ui/common/view/error/OnNetworkErrorCallback.java
diff --git a/common/src/main/java/com/hyperwallet/android/ui/common/viewmodel/ListDetailNavigator.java b/commonui/src/main/java/com/hyperwallet/android/ui/common/viewmodel/ListDetailNavigator.java
similarity index 94%
rename from common/src/main/java/com/hyperwallet/android/ui/common/viewmodel/ListDetailNavigator.java
rename to commonui/src/main/java/com/hyperwallet/android/ui/common/viewmodel/ListDetailNavigator.java
index b5916f1b2..1d868e791 100644
--- a/common/src/main/java/com/hyperwallet/android/ui/common/viewmodel/ListDetailNavigator.java
+++ b/commonui/src/main/java/com/hyperwallet/android/ui/common/viewmodel/ListDetailNavigator.java
@@ -19,12 +19,12 @@
/**
* Detail interface for having a list UI with detail information through navigation
*/
-public interface ListDetailNavigator {
+public interface ListDetailNavigator {
/**
* Navigate action
*
* @param e Navigation event
*/
- void navigate(Event e);
+ void navigate(T e);
}
diff --git a/common/src/main/res/drawable/circle.xml b/commonui/src/main/res/drawable/circle.xml
similarity index 100%
rename from common/src/main/res/drawable/circle.xml
rename to commonui/src/main/res/drawable/circle.xml
diff --git a/common/src/main/res/drawable/circle_white.xml b/commonui/src/main/res/drawable/circle_white.xml
similarity index 100%
rename from common/src/main/res/drawable/circle_white.xml
rename to commonui/src/main/res/drawable/circle_white.xml
diff --git a/common/src/main/res/drawable/content_border_bottom.xml b/commonui/src/main/res/drawable/content_border_bottom.xml
similarity index 100%
rename from common/src/main/res/drawable/content_border_bottom.xml
rename to commonui/src/main/res/drawable/content_border_bottom.xml
diff --git a/common/src/main/res/drawable/content_border_top_bottom.xml b/commonui/src/main/res/drawable/content_border_top_bottom.xml
similarity index 100%
rename from common/src/main/res/drawable/content_border_top_bottom.xml
rename to commonui/src/main/res/drawable/content_border_top_bottom.xml
diff --git a/common/src/main/res/drawable/horizontal_divider.xml b/commonui/src/main/res/drawable/horizontal_divider.xml
similarity index 100%
rename from common/src/main/res/drawable/horizontal_divider.xml
rename to commonui/src/main/res/drawable/horizontal_divider.xml
diff --git a/common/src/main/res/drawable/ic_baseline_bug_report_24px.xml b/commonui/src/main/res/drawable/ic_baseline_bug_report_24px.xml
similarity index 100%
rename from common/src/main/res/drawable/ic_baseline_bug_report_24px.xml
rename to commonui/src/main/res/drawable/ic_baseline_bug_report_24px.xml
diff --git a/common/src/main/res/drawable/ic_baseline_cloud_off_24px.xml b/commonui/src/main/res/drawable/ic_baseline_cloud_off_24px.xml
similarity index 100%
rename from common/src/main/res/drawable/ic_baseline_cloud_off_24px.xml
rename to commonui/src/main/res/drawable/ic_baseline_cloud_off_24px.xml
diff --git a/common/src/main/res/drawable/ic_baseline_warning_24px.xml b/commonui/src/main/res/drawable/ic_baseline_warning_24px.xml
similarity index 100%
rename from common/src/main/res/drawable/ic_baseline_warning_24px.xml
rename to commonui/src/main/res/drawable/ic_baseline_warning_24px.xml
diff --git a/common/src/main/res/drawable/ic_check_14dp.xml b/commonui/src/main/res/drawable/ic_check_14dp.xml
similarity index 100%
rename from common/src/main/res/drawable/ic_check_14dp.xml
rename to commonui/src/main/res/drawable/ic_check_14dp.xml
diff --git a/common/src/main/res/drawable/ic_close_14dp.xml b/commonui/src/main/res/drawable/ic_close_14dp.xml
similarity index 100%
rename from common/src/main/res/drawable/ic_close_14dp.xml
rename to commonui/src/main/res/drawable/ic_close_14dp.xml
diff --git a/common/src/main/res/drawable/ic_keyboard_arrow_down_12dp.xml b/commonui/src/main/res/drawable/ic_keyboard_arrow_down_12dp.xml
similarity index 100%
rename from common/src/main/res/drawable/ic_keyboard_arrow_down_12dp.xml
rename to commonui/src/main/res/drawable/ic_keyboard_arrow_down_12dp.xml
diff --git a/common/src/main/res/drawable/ic_keyboard_arrow_left_12dp.xml b/commonui/src/main/res/drawable/ic_keyboard_arrow_left_12dp.xml
similarity index 100%
rename from common/src/main/res/drawable/ic_keyboard_arrow_left_12dp.xml
rename to commonui/src/main/res/drawable/ic_keyboard_arrow_left_12dp.xml
diff --git a/common/src/main/res/drawable/ic_keyboard_arrow_right_12dp.xml b/commonui/src/main/res/drawable/ic_keyboard_arrow_right_12dp.xml
similarity index 100%
rename from common/src/main/res/drawable/ic_keyboard_arrow_right_12dp.xml
rename to commonui/src/main/res/drawable/ic_keyboard_arrow_right_12dp.xml
diff --git a/common/src/main/res/drawable/ic_launcher_background.xml b/commonui/src/main/res/drawable/ic_launcher_background.xml
similarity index 100%
rename from common/src/main/res/drawable/ic_launcher_background.xml
rename to commonui/src/main/res/drawable/ic_launcher_background.xml
diff --git a/common/src/main/res/drawable/ic_placeholder_24dp.xml b/commonui/src/main/res/drawable/ic_placeholder_24dp.xml
similarity index 100%
rename from common/src/main/res/drawable/ic_placeholder_24dp.xml
rename to commonui/src/main/res/drawable/ic_placeholder_24dp.xml
diff --git a/common/src/main/res/drawable/ic_search_24dp.xml b/commonui/src/main/res/drawable/ic_search_24dp.xml
similarity index 100%
rename from common/src/main/res/drawable/ic_search_24dp.xml
rename to commonui/src/main/res/drawable/ic_search_24dp.xml
diff --git a/common/src/main/res/drawable/ic_three_dots_16dp.xml b/commonui/src/main/res/drawable/ic_three_dots_16dp.xml
similarity index 100%
rename from common/src/main/res/drawable/ic_three_dots_16dp.xml
rename to commonui/src/main/res/drawable/ic_three_dots_16dp.xml
diff --git a/common/src/main/res/drawable/ic_trash.xml b/commonui/src/main/res/drawable/ic_trash.xml
similarity index 100%
rename from common/src/main/res/drawable/ic_trash.xml
rename to commonui/src/main/res/drawable/ic_trash.xml
diff --git a/common/src/main/res/drawable/oval.xml b/commonui/src/main/res/drawable/oval.xml
similarity index 100%
rename from common/src/main/res/drawable/oval.xml
rename to commonui/src/main/res/drawable/oval.xml
diff --git a/common/src/main/res/drawable/view_border_top_bottom.xml b/commonui/src/main/res/drawable/view_border_top_bottom.xml
similarity index 100%
rename from common/src/main/res/drawable/view_border_top_bottom.xml
rename to commonui/src/main/res/drawable/view_border_top_bottom.xml
diff --git a/common/src/main/res/drawable/view_item_ripple.xml b/commonui/src/main/res/drawable/view_item_ripple.xml
similarity index 100%
rename from common/src/main/res/drawable/view_item_ripple.xml
rename to commonui/src/main/res/drawable/view_item_ripple.xml
diff --git a/common/src/main/res/font/icomoon.ttf b/commonui/src/main/res/font/icomoon.ttf
similarity index 100%
rename from common/src/main/res/font/icomoon.ttf
rename to commonui/src/main/res/font/icomoon.ttf
diff --git a/common/src/main/res/values/colors.xml b/commonui/src/main/res/values/colors.xml
similarity index 100%
rename from common/src/main/res/values/colors.xml
rename to commonui/src/main/res/values/colors.xml
diff --git a/common/src/main/res/values/dimens.xml b/commonui/src/main/res/values/dimens.xml
similarity index 100%
rename from common/src/main/res/values/dimens.xml
rename to commonui/src/main/res/values/dimens.xml
diff --git a/common/src/main/res/values/strings.xml b/commonui/src/main/res/values/strings.xml
similarity index 100%
rename from common/src/main/res/values/strings.xml
rename to commonui/src/main/res/values/strings.xml
diff --git a/common/src/main/res/values/styles.xml b/commonui/src/main/res/values/styles.xml
similarity index 100%
rename from common/src/main/res/values/styles.xml
rename to commonui/src/main/res/values/styles.xml
diff --git a/common/src/test/java/com/hyperwallet/android/ui/common/util/DateUtilsTest.java b/commonui/src/test/java/com/hyperwallet/android/ui/common/util/DateUtilsTest.java
similarity index 100%
rename from common/src/test/java/com/hyperwallet/android/ui/common/util/DateUtilsTest.java
rename to commonui/src/test/java/com/hyperwallet/android/ui/common/util/DateUtilsTest.java
diff --git a/common/src/test/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenterTest.java b/commonui/src/test/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenterTest.java
similarity index 100%
rename from common/src/test/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenterTest.java
rename to commonui/src/test/java/com/hyperwallet/android/ui/common/view/error/DefaultErrorDialogFragmentPresenterTest.java
diff --git a/publish.gradle b/publish.gradle
index 46779ff5c..f9ea4710b 100644
--- a/publish.gradle
+++ b/publish.gradle
@@ -22,11 +22,7 @@ publishing {
publications {
hyperwalletUiPublish(MavenPublication) {
groupId = hyperwalletGroupId
- if (project.name == "ui") {
- artifactId = "ui-sdk"
- } else {
- artifactId = project.name
- }
+ artifactId = project.name
version = version
diff --git a/receiptrepository/.gitignore b/receiptrepository/.gitignore
new file mode 100644
index 000000000..796b96d1c
--- /dev/null
+++ b/receiptrepository/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/receiptrepository/build.gradle b/receiptrepository/build.gradle
index a1207b8f1..d63d95908 100644
--- a/receiptrepository/build.gradle
+++ b/receiptrepository/build.gradle
@@ -2,14 +2,10 @@ apply from: "$rootProject.projectDir/android-library.gradle"
apply from: "$rootProject.projectDir/publish.gradle"
dependencies {
- implementation project(":common")
+
implementation "androidx.legacy:legacy-support-v4:$legacySupportV4Version"
implementation "androidx.paging:paging-runtime:$pagingRuntimeVersion"
+ api project(':commonrepository')
testImplementation "org.robolectric:robolectric:$robolectricVersion"
-
- androidTestImplementation "androidx.test:rules:$testRulesVersion"
- androidTestImplementation "com.squareup.okhttp3:mockwebserver:$mockServerVersion"
- androidTestImplementation "com.squareup.leakcanary:leakcanary-android-instrumentation:$leakcanaryVersion"
- androidTestImplementation "com.squareup.leakcanary:leakcanary-support-fragment:$leakcanaryVersion"
}
\ No newline at end of file
diff --git a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSource.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSource.java
index 39135cf44..21cd26073 100644
--- a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSource.java
+++ b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSource.java
@@ -32,8 +32,8 @@
import com.hyperwallet.android.model.paging.HyperwalletPageList;
import com.hyperwallet.android.model.receipt.Receipt;
import com.hyperwallet.android.model.receipt.ReceiptQueryParam;
-import com.hyperwallet.android.ui.common.util.EspressoIdlingResource;
-import com.hyperwallet.android.ui.common.viewmodel.Event;
+import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource;
+import com.hyperwallet.android.ui.common.repository.Event;
import com.hyperwallet.android.util.DateUtil;
import java.util.Calendar;
diff --git a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepository.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepository.java
index 021cadcc7..273368fd5 100644
--- a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepository.java
+++ b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepository.java
@@ -21,7 +21,8 @@
import com.hyperwallet.android.model.HyperwalletErrors;
import com.hyperwallet.android.model.receipt.Receipt;
-import com.hyperwallet.android.ui.common.viewmodel.Event;
+import com.hyperwallet.android.ui.common.repository.Event;
+
public interface PrepaidCardReceiptRepository {
diff --git a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImpl.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImpl.java
index 4b5fed137..ae7372e1b 100644
--- a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImpl.java
+++ b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImpl.java
@@ -7,7 +7,7 @@
import com.hyperwallet.android.model.HyperwalletErrors;
import com.hyperwallet.android.model.receipt.Receipt;
-import com.hyperwallet.android.ui.common.viewmodel.Event;
+import com.hyperwallet.android.ui.common.repository.Event;
public class PrepaidCardReceiptRepositoryImpl implements PrepaidCardReceiptRepository {
diff --git a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSource.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSource.java
index 28e8ef727..e75769bfa 100644
--- a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSource.java
+++ b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSource.java
@@ -31,8 +31,8 @@
import com.hyperwallet.android.model.paging.HyperwalletPageList;
import com.hyperwallet.android.model.receipt.Receipt;
import com.hyperwallet.android.model.receipt.ReceiptQueryParam;
-import com.hyperwallet.android.ui.common.util.EspressoIdlingResource;
-import com.hyperwallet.android.ui.common.viewmodel.Event;
+import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource;
+import com.hyperwallet.android.ui.common.repository.Event;
import java.util.Calendar;
@@ -117,7 +117,7 @@ public void loadBefore(@NonNull final LoadParams params,
/**
* @see PageKeyedDataSource#loadAfter(LoadParams, LoadCallback)
- * */
+ */
@Override
public void loadAfter(@NonNull final LoadParams params,
final @NonNull LoadCallback callback) {
@@ -168,7 +168,7 @@ public Handler getHandler() {
/**
* Facilitates retry when network is down; any error that we can have a retry operation
- * */
+ */
void retry() {
if (mLoadInitialCallback != null) {
loadInitial(mLoadInitialParams, mLoadInitialCallback);
@@ -181,7 +181,7 @@ void retry() {
* Retrieve reference of Hyperwallet errors inorder for consumers to observe on data changes
*
* @return Live event data of {@link HyperwalletErrors}
- * */
+ */
public LiveData> getErrors() {
return mErrors;
}
diff --git a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepository.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepository.java
index 7c72ab664..14a685c39 100644
--- a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepository.java
+++ b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepository.java
@@ -21,7 +21,7 @@
import com.hyperwallet.android.model.HyperwalletErrors;
import com.hyperwallet.android.model.receipt.Receipt;
-import com.hyperwallet.android.ui.common.viewmodel.Event;
+import com.hyperwallet.android.ui.common.repository.Event;
/**
* Receipt Repository Contract
diff --git a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImpl.java b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImpl.java
index 07a8fbdb9..74a28295b 100644
--- a/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImpl.java
+++ b/receiptrepository/src/main/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImpl.java
@@ -22,7 +22,7 @@
import com.hyperwallet.android.model.HyperwalletErrors;
import com.hyperwallet.android.model.receipt.Receipt;
-import com.hyperwallet.android.ui.common.viewmodel.Event;
+import com.hyperwallet.android.ui.common.repository.Event;
/**
* {@link UserReceiptRepository} implementation
@@ -72,7 +72,7 @@ public LiveData isLoading() {
/**
* @see UserReceiptRepository#getErrors()
- * */
+ */
@Override
public LiveData> getErrors() {
if (mErrorsLiveData == null) {
@@ -83,7 +83,7 @@ public LiveData> getErrors() {
/**
* @see UserReceiptRepository#retryLoadReceipt()
- * */
+ */
@Override
public void retryLoadReceipt() {
if (mReceiptDataSourceLiveData.getValue() != null) {
diff --git a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java
index 166367b00..fd468bfab 100644
--- a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java
+++ b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptDataSourceTest.java
@@ -29,7 +29,7 @@
import com.hyperwallet.android.model.paging.HyperwalletPageList;
import com.hyperwallet.android.model.receipt.Receipt;
import com.hyperwallet.android.model.receipt.ReceiptQueryParam;
-import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager;
+import com.hyperwallet.android.ui.receipt.rule.HyperwalletExternalResourceManager;
import com.hyperwallet.android.util.DateUtil;
import org.hamcrest.Matchers;
@@ -55,20 +55,19 @@
@RunWith(RobolectricTestRunner.class)
public class PrepaidCardReceiptDataSourceTest {
+ // can't be mocked due to params.key is of type Integer and autoboxing will not work with null to 0
+ private final PageKeyedDataSource.LoadParams mLoadAfterParams = new PageKeyedDataSource.LoadParams<>(
+ new Date(), 10);
@Rule
public MockitoRule mMockito = MockitoJUnit.rule();
@Rule
public HyperwalletExternalResourceManager mExternalResourceManager = new HyperwalletExternalResourceManager();
-
@Mock
private Hyperwallet mHyperwallet;
@Mock
private PageKeyedDataSource.LoadInitialParams mInitialParams;
@Mock
private PageKeyedDataSource.LoadInitialCallback mInitialCallback;
- // can't be mocked due to params.key is of type Integer and autoboxing will not work with null to 0
- private final PageKeyedDataSource.LoadParams mLoadAfterParams = new PageKeyedDataSource.LoadParams<>(
- new Date(), 10);
@Mock
private PageKeyedDataSource.LoadCallback mLoadAfterCallback;
diff --git a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImplTest.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImplTest.java
index 247031513..912741fc0 100644
--- a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImplTest.java
+++ b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/PrepaidCardReceiptRepositoryImplTest.java
@@ -11,7 +11,7 @@
import com.hyperwallet.android.model.HyperwalletErrors;
import com.hyperwallet.android.model.receipt.Receipt;
-import com.hyperwallet.android.ui.common.viewmodel.Event;
+import com.hyperwallet.android.ui.common.repository.Event;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java
index 3dd246965..a26ed1b15 100644
--- a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java
+++ b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptDataSourceTest.java
@@ -27,7 +27,7 @@
import com.hyperwallet.android.model.paging.HyperwalletPageList;
import com.hyperwallet.android.model.receipt.Receipt;
import com.hyperwallet.android.model.receipt.ReceiptQueryParam;
-import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager;
+import com.hyperwallet.android.ui.receipt.rule.HyperwalletExternalResourceManager;
import org.hamcrest.Matchers;
import org.json.JSONObject;
@@ -52,20 +52,19 @@
@RunWith(RobolectricTestRunner.class)
public class UserReceiptDataSourceTest {
+ // can't be mocked due to params.key is of type Integer and autoboxing will not work with null to 0
+ private final PageKeyedDataSource.LoadParams mLoadAfterParams =
+ new PageKeyedDataSource.LoadParams<>(10, 10);
@Rule
public MockitoRule mMockito = MockitoJUnit.rule();
@Rule
public HyperwalletExternalResourceManager mExternalResourceManager = new HyperwalletExternalResourceManager();
-
@Mock
private Hyperwallet mHyperwallet;
@Mock
private PageKeyedDataSource.LoadInitialParams mInitialParams;
@Mock
private PageKeyedDataSource.LoadInitialCallback mInitialCallback;
- // can't be mocked due to params.key is of type Integer and autoboxing will not work with null to 0
- private final PageKeyedDataSource.LoadParams mLoadAfterParams =
- new PageKeyedDataSource.LoadParams<>(10, 10);
@Mock
private PageKeyedDataSource.LoadCallback mLoadAfterCallback;
diff --git a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImplTest.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImplTest.java
index 5b3005bda..74be4edac 100644
--- a/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImplTest.java
+++ b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/repository/UserReceiptRepositoryImplTest.java
@@ -11,7 +11,7 @@
import com.hyperwallet.android.model.HyperwalletErrors;
import com.hyperwallet.android.model.receipt.Receipt;
-import com.hyperwallet.android.ui.common.viewmodel.Event;
+import com.hyperwallet.android.ui.common.repository.Event;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletExternalResourceManager.java
similarity index 98%
rename from ui/src/androidTest/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java
rename to receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletExternalResourceManager.java
index 0fd013e52..abc9bf5da 100644
--- a/ui/src/androidTest/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java
+++ b/receiptrepository/src/test/java/com/hyperwallet/android/ui/receipt/rule/HyperwalletExternalResourceManager.java
@@ -1,4 +1,4 @@
-package com.hyperwallet.android.ui.rule;
+package com.hyperwallet.android.ui.receipt.rule;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
@@ -35,7 +35,6 @@ public String getResourceContent(final String resourceName) {
}
private String getContent(final String resourceName) {
-
URL resource = classLoader.getResource(resourceName);
InputStream inputStream = null;
Writer writer = new StringWriter();
diff --git a/receiptui/build.gradle b/receiptui/build.gradle
index b6836a649..ac997f245 100644
--- a/receiptui/build.gradle
+++ b/receiptui/build.gradle
@@ -2,7 +2,7 @@ apply from: "$rootProject.projectDir/android-library.gradle"
apply from: "$rootProject.projectDir/publish.gradle"
dependencies {
- implementation project(":common")
+ implementation project(':commonui')
implementation project(":receiptrepository")
implementation "com.google.android.material:material:$androidMaterialVersion"
diff --git a/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListPrepaidCardReceiptsTest.java b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListPrepaidCardReceiptsTest.java
index 2e9c9ff14..910d69628 100644
--- a/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListPrepaidCardReceiptsTest.java
+++ b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListPrepaidCardReceiptsTest.java
@@ -41,8 +41,8 @@
import androidx.test.rule.ActivityTestRule;
import com.hyperwallet.android.Hyperwallet;
+import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource;
import com.hyperwallet.android.ui.common.util.DateUtils;
-import com.hyperwallet.android.ui.common.util.EspressoIdlingResource;
import com.hyperwallet.android.ui.receipt.rule.HyperwalletExternalResourceManager;
import com.hyperwallet.android.ui.receipt.rule.HyperwalletMockWebServer;
import com.hyperwallet.android.ui.receipt.util.RecyclerViewCountAssertion;
@@ -319,8 +319,8 @@ public void testListPrepaidCardReceipt_checkDateTextOnLocaleChange() {
@Test
public void testListPrepaidCardReceipt_displaysNetworkErrorDialogOnConnectionTimeout() {
mMockWebServer.getServer().enqueue(new MockResponse().setResponseCode(HTTP_OK).setBody(sResourceManager
- .getResourceContent("prepaid_card_receipt_debit_response.json")).throttleBody(512, 10,
- TimeUnit.SECONDS));
+ .getResourceContent("prepaid_card_receipt_debit_response.json")).setBodyDelay(10500,
+ TimeUnit.MILLISECONDS));
mMockWebServer.mockResponse().withHttpResponseCode(HTTP_OK).withBody(sResourceManager
.getResourceContent("prepaid_card_receipt_debit_response.json")).mock();
mMockWebServer.mockResponse().withHttpResponseCode(HTTP_NO_CONTENT).withBody("").mock();
diff --git a/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java
index 0bb97d2ff..37809b494 100644
--- a/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java
+++ b/receiptui/src/androidTest/java/com/hyperwallet/android/ui/receipt/ListUserReceiptsTest.java
@@ -39,8 +39,8 @@
import androidx.test.rule.ActivityTestRule;
import com.hyperwallet.android.Hyperwallet;
+import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource;
import com.hyperwallet.android.ui.common.util.DateUtils;
-import com.hyperwallet.android.ui.common.util.EspressoIdlingResource;
import com.hyperwallet.android.ui.receipt.rule.HyperwalletExternalResourceManager;
import com.hyperwallet.android.ui.receipt.rule.HyperwalletMockWebServer;
import com.hyperwallet.android.ui.receipt.util.RecyclerViewCountAssertion;
@@ -417,7 +417,7 @@ public void testListReceipt_checkDateTextOnLocaleChange() {
@Test
public void testListReceipt_displaysNetworkErrorDialogOnConnectionTimeout() {
mMockWebServer.getServer().enqueue(new MockResponse().setResponseCode(HTTP_OK).setBody(sResourceManager
- .getResourceContent("receipt_debit_response.json")).throttleBody(512, 10, TimeUnit.SECONDS));
+ .getResourceContent("receipt_debit_response.json")).setBodyDelay(10500, TimeUnit.MILLISECONDS));
mMockWebServer.mockResponse().withHttpResponseCode(HTTP_OK).withBody(sResourceManager
.getResourceContent("receipt_debit_response.json")).mock();
mMockWebServer.mockResponse().withHttpResponseCode(HTTP_NO_CONTENT).withBody("").mock();
diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/HyperwalletReceiptUi.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/HyperwalletReceiptUi.java
new file mode 100644
index 000000000..4b3fdd550
--- /dev/null
+++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/HyperwalletReceiptUi.java
@@ -0,0 +1,68 @@
+/*
+ * The MIT License (MIT)
+ * Copyright (c) 2018 Hyperwallet Systems Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+ * associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
+ * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+package com.hyperwallet.android.ui.receipt;
+
+import android.content.Context;
+import android.content.Intent;
+
+import androidx.annotation.NonNull;
+
+import com.hyperwallet.android.Hyperwallet;
+import com.hyperwallet.android.HyperwalletAuthenticationTokenProvider;
+import com.hyperwallet.android.ui.receipt.view.ListPrepaidCardReceiptActivity;
+import com.hyperwallet.android.ui.receipt.view.ListUserReceiptActivity;
+
+public final class HyperwalletReceiptUi {
+
+ private static HyperwalletReceiptUi sInstance;
+
+ private HyperwalletReceiptUi() {
+ }
+
+ /**
+ * @param authenticationTokenProvider An implementation of the {@link HyperwalletAuthenticationTokenProvider}
+ * @return Returns a newly created HyperwalletTransferMethodUi that can be used to get Intents to launch different
+ * activities.
+ */
+ public static synchronized HyperwalletReceiptUi getInstance(
+ @NonNull final HyperwalletAuthenticationTokenProvider authenticationTokenProvider) {
+ if (sInstance == null) {
+ sInstance = new HyperwalletReceiptUi();
+ Hyperwallet.getInstance(authenticationTokenProvider);
+ }
+ return sInstance;
+ }
+
+ /**
+ * @param context A Context of the application consuming this Intent.
+ * @return an Intent with the data necessary to launch the {@link ListUserReceiptActivity}
+ */
+ public Intent getIntentListUserReceiptActivity(@NonNull final Context context) {
+ return new Intent(context, ListUserReceiptActivity.class);
+ }
+
+ /**
+ * @param context A Context of the application consuming this Intent.
+ * @return an Intent with the data necessary to launch the {@link ListPrepaidCardReceiptActivity}
+ */
+ public Intent getIntentListPrepaidCardReceiptActivity(@NonNull final Context context, @NonNull final String token) {
+ Intent intent = new Intent(context, ListPrepaidCardReceiptActivity.class);
+ intent.putExtra(ListPrepaidCardReceiptActivity.EXTRA_PREPAID_CARD_TOKEN, token);
+ return intent;
+ }
+
+}
diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListPrepaidCardReceiptActivity.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListPrepaidCardReceiptActivity.java
index b774436d4..e5ef5a937 100644
--- a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListPrepaidCardReceiptActivity.java
+++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListPrepaidCardReceiptActivity.java
@@ -33,9 +33,9 @@
import com.hyperwallet.android.model.HyperwalletError;
import com.hyperwallet.android.model.HyperwalletErrors;
import com.hyperwallet.android.model.receipt.Receipt;
+import com.hyperwallet.android.ui.common.repository.Event;
import com.hyperwallet.android.ui.common.view.error.DefaultErrorDialogFragment;
import com.hyperwallet.android.ui.common.view.error.OnNetworkErrorCallback;
-import com.hyperwallet.android.ui.common.viewmodel.Event;
import com.hyperwallet.android.ui.common.viewmodel.ListDetailNavigator;
import com.hyperwallet.android.ui.receipt.R;
import com.hyperwallet.android.ui.receipt.repository.PrepaidCardReceiptRepositoryImpl;
diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListUserReceiptActivity.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListUserReceiptActivity.java
index bc66e9609..4b56bfa30 100644
--- a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListUserReceiptActivity.java
+++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/view/ListUserReceiptActivity.java
@@ -33,9 +33,9 @@
import com.hyperwallet.android.model.HyperwalletError;
import com.hyperwallet.android.model.HyperwalletErrors;
import com.hyperwallet.android.model.receipt.Receipt;
+import com.hyperwallet.android.ui.common.repository.Event;
import com.hyperwallet.android.ui.common.view.error.DefaultErrorDialogFragment;
import com.hyperwallet.android.ui.common.view.error.OnNetworkErrorCallback;
-import com.hyperwallet.android.ui.common.viewmodel.Event;
import com.hyperwallet.android.ui.common.viewmodel.ListDetailNavigator;
import com.hyperwallet.android.ui.receipt.R;
import com.hyperwallet.android.ui.receipt.repository.UserReceiptRepositoryImpl;
diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListPrepaidCardReceiptViewModel.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListPrepaidCardReceiptViewModel.java
index 73f697bca..0b72276be 100644
--- a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListPrepaidCardReceiptViewModel.java
+++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListPrepaidCardReceiptViewModel.java
@@ -26,7 +26,7 @@
import com.hyperwallet.android.model.HyperwalletErrors;
import com.hyperwallet.android.model.receipt.Receipt;
-import com.hyperwallet.android.ui.common.viewmodel.Event;
+import com.hyperwallet.android.ui.common.repository.Event;
import com.hyperwallet.android.ui.receipt.repository.PrepaidCardReceiptRepository;
public class ListPrepaidCardReceiptViewModel extends ReceiptViewModel {
diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListUserReceiptViewModel.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListUserReceiptViewModel.java
index 9b9b63b2c..fcb308629 100644
--- a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListUserReceiptViewModel.java
+++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ListUserReceiptViewModel.java
@@ -26,7 +26,7 @@
import com.hyperwallet.android.model.HyperwalletErrors;
import com.hyperwallet.android.model.receipt.Receipt;
-import com.hyperwallet.android.ui.common.viewmodel.Event;
+import com.hyperwallet.android.ui.common.repository.Event;
import com.hyperwallet.android.ui.receipt.repository.UserReceiptRepository;
public class ListUserReceiptViewModel extends ReceiptViewModel {
@@ -74,28 +74,28 @@ public LiveData> getReceiptList() {
/**
* @see ReceiptViewModel#retryLoadReceipts()
- * */
+ */
public void retryLoadReceipts() {
mUserReceiptRepository.retryLoadReceipt();
}
/**
* @see ReceiptViewModel#getDetailNavigation()
- * */
+ */
public LiveData> getDetailNavigation() {
return mDetailNavigation;
}
/**
* @see ReceiptViewModel#setDetailNavigation(Receipt)
- * */
+ */
public void setDetailNavigation(@NonNull final Receipt receipt) {
mDetailNavigation.postValue(new Event<>(receipt));
}
/**
* @see ViewModel#onCleared()
- * */
+ */
@Override
protected void onCleared() {
super.onCleared();
diff --git a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptViewModel.java b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptViewModel.java
index f100b86bc..9cb878969 100644
--- a/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptViewModel.java
+++ b/receiptui/src/main/java/com/hyperwallet/android/ui/receipt/viewmodel/ReceiptViewModel.java
@@ -23,7 +23,7 @@
import com.hyperwallet.android.model.HyperwalletErrors;
import com.hyperwallet.android.model.receipt.Receipt;
-import com.hyperwallet.android.ui.common.viewmodel.Event;
+import com.hyperwallet.android.ui.common.repository.Event;
public abstract class ReceiptViewModel extends ViewModel {
diff --git a/receiptrepository/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java b/receiptui/src/test/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java
similarity index 97%
rename from receiptrepository/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java
rename to receiptui/src/test/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java
index 8d935bb85..e7ac68fac 100644
--- a/receiptrepository/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java
+++ b/receiptui/src/test/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java
@@ -1,4 +1,4 @@
-package com.hyperwallet.android.ui.rule;
+package com.hyperwallet.android.ui.transfermethod.rule;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
diff --git a/receiptrepository/src/test/resources/authentication_token_response.json b/receiptui/src/test/resources/authentication_token_response.json
similarity index 100%
rename from receiptrepository/src/test/resources/authentication_token_response.json
rename to receiptui/src/test/resources/authentication_token_response.json
diff --git a/receiptrepository/src/test/resources/prepaid_card_receipt_credit_response.json b/receiptui/src/test/resources/prepaid_card_receipt_credit_response.json
similarity index 100%
rename from receiptrepository/src/test/resources/prepaid_card_receipt_credit_response.json
rename to receiptui/src/test/resources/prepaid_card_receipt_credit_response.json
diff --git a/receiptrepository/src/test/resources/prepaid_card_receipt_debit_response.json b/receiptui/src/test/resources/prepaid_card_receipt_debit_response.json
similarity index 100%
rename from receiptrepository/src/test/resources/prepaid_card_receipt_debit_response.json
rename to receiptui/src/test/resources/prepaid_card_receipt_debit_response.json
diff --git a/receiptui/src/test/resources/prepaid_card_receipt_list_response.json b/receiptui/src/test/resources/prepaid_card_receipt_list_response.json
new file mode 100644
index 000000000..e6539804c
--- /dev/null
+++ b/receiptui/src/test/resources/prepaid_card_receipt_list_response.json
@@ -0,0 +1,103 @@
+{
+ "data": [
+ {
+ "journalId": "FISVL_5240220",
+ "type": "PREPAID_CARD_SALE",
+ "createdOn": "2019-06-06T22:48:41",
+ "entry": "DEBIT",
+ "destinationToken": "trm-2e02da75-a36c-4723-b613-0b64e6f582d9",
+ "amount": "10.00",
+ "fee": "3.00",
+ "currency": "USD",
+ "details": {
+ "cardNumber": "************0673",
+ "clientPaymentId": "AOxXefx9",
+ "payeeName": "A Person",
+ "website": "https://api.sandbox.hyperwallet.com",
+ "notes": "Sample prepaid card payment for the period of June 15th, 2019 to July 23, 2019",
+ "charityName": "Sample Charity",
+ "checkNumber": "Sample Check Number"
+ }
+ },
+ {
+ "journalId": "FISVL_5240221",
+ "type": "DEPOSIT",
+ "createdOn": "2019-06-06T22:48:51",
+ "entry": "CREDIT",
+ "destinationToken": "trm-2e02da75-a36c-4723-b613-0b64e6f582d9",
+ "amount": "5.00",
+ "currency": "USD",
+ "details": {
+ "cardNumber": "************0673"
+ }
+ },
+ {
+ "journalId": "FISA_5240222",
+ "type": "ADJUSTMENT",
+ "createdOn": "2019-06-01T22:49:17",
+ "entry": "DEBIT",
+ "sourceToken": "trm-2e02da75-a36c-4723-b613-0b64e6f582d9",
+ "amount": "8.90",
+ "currency": "USD",
+ "details": {
+ "cardNumber": "************0673"
+ }
+ },
+ {
+ "journalId": "FISA_5240223",
+ "type": "ADJUSTMENT",
+ "createdOn": "2019-03-31T23:55:17",
+ "entry": "DEBIT",
+ "sourceToken": "trm-2e02da75-a36c-4723-b613-0b64e6f582d9",
+ "amount": "7.90",
+ "currency": "USD",
+ "details": {
+ "cardNumber": "************0673"
+ }
+ },
+ {
+ "journalId": "FISA_5240224",
+ "type": "ADJUSTMENT",
+ "createdOn": "2019-02-28T23:55:17",
+ "entry": "CREDIT",
+ "sourceToken": "trm-2e02da75-a36c-4723-b613-0b64e6f582d9",
+ "amount": "6.90",
+ "currency": "USD",
+ "details": {
+ "cardNumber": "************0673"
+ }
+ },
+ {
+ "journalId": "FISA_5240225",
+ "type": "ADJUSTMENT",
+ "createdOn": "2019-02-23T23:55:17",
+ "entry": "CREDIT",
+ "sourceToken": "trm-2e02da75-a36c-4723-b613-0b64e6f582d9",
+ "amount": "3.90",
+ "currency": "USD",
+ "details": {
+ "cardNumber": "************0673"
+ }
+ },
+ {
+ "journalId": "FISA_5240226",
+ "type": "ADJUSTMENT",
+ "createdOn": "2019-02-21T23:55:17",
+ "entry": "CREDIT",
+ "sourceToken": "trm-2e02da75-a36c-4723-b613-0b64e6f582d9",
+ "amount": "9.92",
+ "currency": "USD",
+ "details": {
+ "cardNumber": "************0673"
+ }
+ }
+ ],
+ "links": [
+ {
+ "params": {
+ "rel": "self"
+ },
+ "href": "https://qamaster-hyperwallet.aws.paylution.net/rest/v3/users/usr-e17ae43b-284d-4198-9585-f417943c624f/prepaid-cards/trm-2e02da75-a36c-4723-b613-0b64e6f582d9/receipts"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/receiptrepository/src/test/resources/prepaid_card_receipt_unknown_type_response.json b/receiptui/src/test/resources/prepaid_card_receipt_unknown_type_response.json
similarity index 100%
rename from receiptrepository/src/test/resources/prepaid_card_receipt_unknown_type_response.json
rename to receiptui/src/test/resources/prepaid_card_receipt_unknown_type_response.json
diff --git a/receiptrepository/src/test/resources/receipt_credit_response.json b/receiptui/src/test/resources/receipt_credit_response.json
similarity index 100%
rename from receiptrepository/src/test/resources/receipt_credit_response.json
rename to receiptui/src/test/resources/receipt_credit_response.json
diff --git a/receiptrepository/src/test/resources/receipt_debit_response.json b/receiptui/src/test/resources/receipt_debit_response.json
similarity index 100%
rename from receiptrepository/src/test/resources/receipt_debit_response.json
rename to receiptui/src/test/resources/receipt_debit_response.json
diff --git a/receiptui/src/test/resources/receipt_list_date_grouping_response.json b/receiptui/src/test/resources/receipt_list_date_grouping_response.json
new file mode 100644
index 000000000..1b5b798bb
--- /dev/null
+++ b/receiptui/src/test/resources/receipt_list_date_grouping_response.json
@@ -0,0 +1,90 @@
+{
+ "count": 5,
+ "offset": 0,
+ "limit": 10,
+ "data": [
+ {
+ "journalId": "51660665",
+ "type": "PAYMENT",
+ "createdOn": "2019-05-27T15:42:07",
+ "entry": "CREDIT",
+ "sourceToken": "act-b1f6dc28-e534-45f4-a661-3523f051f77a",
+ "destinationToken": "usr-b4e8ec34-52d8-4a81-9566-bdde1bd745b6",
+ "amount": "5000.00",
+ "fee": "0.00",
+ "currency": "USD",
+ "details": {
+ "clientPaymentId": "trans-0001",
+ "payeeName": "Kevin Puckett"
+ }
+ },
+ {
+ "journalId": "51660666",
+ "type": "TRANSFER_TO_BANK_ACCOUNT",
+ "createdOn": "2019-05-27T15:57:49",
+ "entry": "DEBIT",
+ "sourceToken": "usr-b4e8ec34-52d8-4a81-9566-bdde1bd745b6",
+ "destinationToken": "trm-0a2ac589-2cae-4ed3-9b0b-658246a34687",
+ "amount": "10.25",
+ "fee": "0.25",
+ "currency": "USD",
+ "details": {
+ "payeeName": "Kevin Puckett",
+ "bankAccountId": "patzachery.mcclary@example.com"
+ }
+ },
+ {
+ "journalId": "51660667",
+ "type": "PAYMENT",
+ "createdOn": "2019-05-27T16:01:10",
+ "entry": "CREDIT",
+ "sourceToken": "act-b1f6dc28-e534-45f4-a661-3523f051f77a",
+ "destinationToken": "usr-b4e8ec34-52d8-4a81-9566-bdde1bd745b6",
+ "amount": "11.00",
+ "fee": "0.00",
+ "currency": "USD",
+ "details": {
+ "clientPaymentId": "trans-02",
+ "payeeName": "Kevin Puckett"
+ }
+ },
+ {
+ "journalId": "51660675",
+ "type": "PAYMENT",
+ "createdOn": "2019-06-04T10:35:23",
+ "entry": "CREDIT",
+ "sourceToken": "act-b1f6dc28-e534-45f4-a661-3523f051f77a",
+ "destinationToken": "usr-b4e8ec34-52d8-4a81-9566-bdde1bd745b6",
+ "amount": "13.00",
+ "fee": "0.00",
+ "currency": "USD",
+ "details": {
+ "clientPaymentId": "CSietnRJQQ0bscYkOoPJxNiTDiVALhjQ",
+ "payeeName": "Kevin Puckett"
+ }
+ },
+ {
+ "journalId": "51660676",
+ "type": "PAYMENT",
+ "createdOn": "2019-06-04T11:16:21",
+ "entry": "CREDIT",
+ "sourceToken": "act-b1f6dc28-e534-45f4-a661-3523f051f77a",
+ "destinationToken": "usr-b4e8ec34-52d8-4a81-9566-bdde1bd745b6",
+ "amount": "14.00",
+ "fee": "0.00",
+ "currency": "USD",
+ "details": {
+ "clientPaymentId": "wUOdfLlJONacbdHlAHOAXQT7uwX7LTPy",
+ "payeeName": "Kevin Puckett"
+ }
+ }
+ ],
+ "links": [
+ {
+ "params": {
+ "rel": "self"
+ },
+ "href": "https://localhost:8181/rest/v3/users/usr-b4e8ec34-52d8-4a81-9566-bdde1bd745b6/receipts?offset=0&limit=10&createdAfter=2019-1-1"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/receiptrepository/src/test/resources/receipt_list_paged_last_response.json b/receiptui/src/test/resources/receipt_list_paged_last_response.json
similarity index 100%
rename from receiptrepository/src/test/resources/receipt_list_paged_last_response.json
rename to receiptui/src/test/resources/receipt_list_paged_last_response.json
diff --git a/receiptrepository/src/test/resources/receipt_list_paged_response.json b/receiptui/src/test/resources/receipt_list_paged_response.json
similarity index 100%
rename from receiptrepository/src/test/resources/receipt_list_paged_response.json
rename to receiptui/src/test/resources/receipt_list_paged_response.json
diff --git a/receiptrepository/src/test/resources/receipt_list_paged_second_response.json b/receiptui/src/test/resources/receipt_list_paged_second_response.json
similarity index 100%
rename from receiptrepository/src/test/resources/receipt_list_paged_second_response.json
rename to receiptui/src/test/resources/receipt_list_paged_second_response.json
diff --git a/receiptrepository/src/test/resources/receipt_list_paged_third_response.json b/receiptui/src/test/resources/receipt_list_paged_third_response.json
similarity index 100%
rename from receiptrepository/src/test/resources/receipt_list_paged_third_response.json
rename to receiptui/src/test/resources/receipt_list_paged_third_response.json
diff --git a/receiptrepository/src/test/resources/receipt_list_response.json b/receiptui/src/test/resources/receipt_list_response.json
similarity index 100%
rename from receiptrepository/src/test/resources/receipt_list_response.json
rename to receiptui/src/test/resources/receipt_list_response.json
diff --git a/receiptrepository/src/test/resources/receipt_unknown_type_response.json b/receiptui/src/test/resources/receipt_unknown_type_response.json
similarity index 100%
rename from receiptrepository/src/test/resources/receipt_unknown_type_response.json
rename to receiptui/src/test/resources/receipt_unknown_type_response.json
diff --git a/settings.gradle b/settings.gradle
index 541265fa1..9058fac39 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,2 +1 @@
-include ':ui', ':common', ':receiptui', ':receiptrepository', ':userrepository', ':transfermethodrepository'
-//add libraries here
+include ':transfermethodui', ':receiptui', ':commonui', ':receiptrepository', ':userrepository', ':transfermethodrepository', ':commonrepository'
diff --git a/transfermethodrepository/.gitignore b/transfermethodrepository/.gitignore
index 796b96d1c..26b424a3f 100644
--- a/transfermethodrepository/.gitignore
+++ b/transfermethodrepository/.gitignore
@@ -1 +1,3 @@
/build
+
+*.exec
diff --git a/transfermethodrepository/build.gradle b/transfermethodrepository/build.gradle
index fcf28601b..34fe3c5de 100644
--- a/transfermethodrepository/build.gradle
+++ b/transfermethodrepository/build.gradle
@@ -2,7 +2,7 @@ apply from: "$rootProject.projectDir/android-library.gradle"
apply from: "$rootProject.projectDir/publish.gradle"
dependencies {
- androidTestImplementation "androidx.test:rules:$testRulesVersion"
+ api project(':commonrepository')
testImplementation "org.robolectric:robolectric:$robolectricVersion"
testImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion"
}
\ No newline at end of file
diff --git a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java
index abf89e227..f9a382805 100644
--- a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java
+++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImpl.java
@@ -39,7 +39,7 @@
import com.hyperwallet.android.model.graphql.HyperwalletTransferMethodConfigurationKey;
import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationFieldQuery;
import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationKeysQuery;
-import com.hyperwallet.android.ui.transfermethod.repository.util.EspressoIdlingResource;
+import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource;
import java.util.HashMap;
import java.util.Map;
@@ -56,11 +56,6 @@ public TransferMethodConfigurationRepositoryImpl() {
mFieldMap = new HashMap<>();
}
- @VisibleForTesting
- Hyperwallet getHyperwallet() {
- return Hyperwallet.getDefault();
- }
-
@VisibleForTesting()
protected TransferMethodConfigurationRepositoryImpl(@Nullable Handler handler,
HyperwalletTransferMethodConfigurationKey transferMethodConfigurationKey,
@@ -70,6 +65,11 @@ protected TransferMethodConfigurationRepositoryImpl(@Nullable Handler handler,
mFieldMap = fieldMap;
}
+ @VisibleForTesting
+ Hyperwallet getHyperwallet() {
+ return Hyperwallet.getDefault();
+ }
+
@VisibleForTesting
void getTransferMethodConfigurationKeyResult(final LoadKeysCallback loadKeysCallback) {
HyperwalletTransferMethodConfigurationKeysQuery query = new HyperwalletTransferMethodConfigurationKeysQuery();
diff --git a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java
index 5cada16b2..ed9360c6f 100644
--- a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java
+++ b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodRepositoryFactory.java
@@ -1,3 +1,19 @@
+/*
+ * The MIT License (MIT)
+ * Copyright (c) 2018 Hyperwallet Systems Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+ * associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
+ * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
package com.hyperwallet.android.ui.transfermethod.repository;
public class TransferMethodRepositoryFactory {
diff --git a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java b/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java
deleted file mode 100644
index 75dacbae7..000000000
--- a/transfermethodrepository/src/main/java/com/hyperwallet/android/ui/transfermethod/repository/util/EspressoIdlingResource.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.hyperwallet.android.ui.transfermethod.repository.util;
-
-import androidx.test.espresso.IdlingResource;
-import androidx.test.espresso.idling.CountingIdlingResource;
-
-public class EspressoIdlingResource {
-
- private static final String RESOURCE = "GLOBAL";
-
- private static CountingIdlingResource mCountingIdlingResource =
- new CountingIdlingResource(RESOURCE);
-
- public static void increment() {
- mCountingIdlingResource.increment();
- }
-
- public static void decrement() {
- mCountingIdlingResource.decrement();
- }
-
- public static IdlingResource getIdlingResource() {
- return mCountingIdlingResource;
- }
-}
diff --git a/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/FieldMapKeyTest.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/FieldMapKeyTest.java
index 1c0f53d8d..f0541bb9a 100644
--- a/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/FieldMapKeyTest.java
+++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/FieldMapKeyTest.java
@@ -3,8 +3,6 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
-import com.hyperwallet.android.ui.transfermethod.repository.FieldMapKey;
-
import org.junit.Test;
public class FieldMapKeyTest {
diff --git a/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImplTest.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImplTest.java
index 77d19b782..b71175ead 100644
--- a/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImplTest.java
+++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/repository/TransferMethodConfigurationRepositoryImplTest.java
@@ -32,7 +32,7 @@
import com.hyperwallet.android.model.graphql.keyed.HyperwalletTransferMethodConfigurationKeyResult;
import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationFieldQuery;
import com.hyperwallet.android.model.graphql.query.HyperwalletTransferMethodConfigurationKeysQuery;
-import com.hyperwallet.android.ui.transfermethod.repository.rule.HyperwalletExternalResourceManager;
+import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletExternalResourceManager;
import com.hyperwallet.android.util.JsonUtils;
import org.hamcrest.collection.IsEmptyCollection;
diff --git a/ui/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java
similarity index 97%
rename from ui/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java
rename to transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java
index a983c9b7d..4db98b20a 100644
--- a/ui/src/test/java/com/hyperwallet/android/ui/rule/HyperwalletExternalResourceManager.java
+++ b/transfermethodrepository/src/test/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java
@@ -1,4 +1,4 @@
-package com.hyperwallet.android.ui.rule;
+package com.hyperwallet.android.ui.transfermethod.rule;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
diff --git a/ui/.gitignore b/transfermethodui/.gitignore
similarity index 100%
rename from ui/.gitignore
rename to transfermethodui/.gitignore
diff --git a/ui/build.gradle b/transfermethodui/build.gradle
similarity index 89%
rename from ui/build.gradle
rename to transfermethodui/build.gradle
index 89945f32d..3800b40e0 100644
--- a/ui/build.gradle
+++ b/transfermethodui/build.gradle
@@ -8,10 +8,9 @@ dependencies {
implementation "androidx.legacy:legacy-support-v4:$legacySupportV4Version"
implementation "androidx.recyclerview:recyclerview:$recycleViewVersion"
- api project(":common")
- api project(':receiptui')
- api project(":userrepository")
- api project(":transfermethodrepository")
+ implementation project(':commonui')
+ implementation project(":userrepository")
+ implementation project(":transfermethodrepository")
androidTestImplementation "androidx.test:rules:$testRulesVersion"
diff --git a/ui/config/jacoco-settings.gradle b/transfermethodui/config/jacoco-settings.gradle
similarity index 79%
rename from ui/config/jacoco-settings.gradle
rename to transfermethodui/config/jacoco-settings.gradle
index 9cb13e331..725c470eb 100644
--- a/ui/config/jacoco-settings.gradle
+++ b/transfermethodui/config/jacoco-settings.gradle
@@ -21,13 +21,13 @@ android {
}
def fileFilter = ['**/BuildConfig.*',
- '**/com/hyperwallet/android/ui/HyperwalletUi.*',
- '**/com/hyperwallet/android/ui/**/*Activity*.*',
- '**/com/hyperwallet/android/ui/**/*Fragment*.*',
- '**/com/hyperwallet/android/ui/transfermethod/TransferMethodSelectionItem.*',
- '**/com/hyperwallet/android/ui/transfermethod/TransferMethodUtils.*',
- '**/com/hyperwallet/android/ui/view/HorizontalDividerItemDecorator.*',
- '**/com/hyperwallet/android/ui/view/widget/*'
+ '**/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodUi.*',
+ '**/com/hyperwallet/android/ui/transfermethod/**/*Activity*.*',
+ '**/com/hyperwallet/android/ui/transfermethod/**/*Fragment*.*',
+ '**/com/hyperwallet/android/ui/transfermethod/view/TransferMethodSelectionItem.*',
+ '**/com/hyperwallet/android/ui/transfermethod/view/TransferMethodUtils.*',
+ '**/com/hyperwallet/android/ui/transfermethod/view/HorizontalDividerItemDecorator.*',
+ '**/com/hyperwallet/android/ui/transfermethod/view/widget/*'
]
def debugClassPaths = [
'**/intermediates/javac/debug/*/classes/**'
diff --git a/ui/config/lint.xml b/transfermethodui/config/lint.xml
similarity index 100%
rename from ui/config/lint.xml
rename to transfermethodui/config/lint.xml
diff --git a/transfermethodui/proguard-rules.pro b/transfermethodui/proguard-rules.pro
new file mode 100644
index 000000000..f1b424510
--- /dev/null
+++ b/transfermethodui/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/ui/src/androidTest/AndroidManifest.xml b/transfermethodui/src/androidTest/AndroidManifest.xml
similarity index 62%
rename from ui/src/androidTest/AndroidManifest.xml
rename to transfermethodui/src/androidTest/AndroidManifest.xml
index 138dc247d..e1bac67e4 100644
--- a/ui/src/androidTest/AndroidManifest.xml
+++ b/transfermethodui/src/androidTest/AndroidManifest.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java
similarity index 95%
rename from ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java
rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java
index 9729e3ad1..243350ad1 100644
--- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java
+++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodTest.java
@@ -22,7 +22,7 @@
import static java.net.HttpURLConnection.HTTP_OK;
import static com.hyperwallet.android.ui.common.view.error.DefaultErrorDialogFragment.RESULT_ERROR;
-import static com.hyperwallet.android.ui.util.EspressoUtils.nestedScrollTo;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.nestedScrollTo;
import android.app.Instrumentation;
import android.content.Intent;
@@ -36,12 +36,13 @@
import com.hyperwallet.android.Hyperwallet;
import com.hyperwallet.android.ui.R;
-import com.hyperwallet.android.ui.common.util.EspressoIdlingResource;
+import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource;
import com.hyperwallet.android.ui.common.view.error.DefaultErrorDialogFragment;
-import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager;
-import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer;
import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
-import com.hyperwallet.android.ui.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletExternalResourceManager;
+import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletMockWebServer;
+import com.hyperwallet.android.ui.transfermethod.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity;
import org.junit.After;
import org.junit.Before;
diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java
similarity index 96%
rename from ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java
rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java
index 29200fdff..414521218 100644
--- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java
+++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankAccountTest.java
@@ -24,11 +24,11 @@
import static java.util.concurrent.TimeUnit.SECONDS;
import static com.hyperwallet.android.model.transfermethod.HyperwalletBankAccount.Purpose.SAVINGS;
-import static com.hyperwallet.android.ui.util.EspressoUtils.hasEmptyText;
-import static com.hyperwallet.android.ui.util.EspressoUtils.hasErrorText;
-import static com.hyperwallet.android.ui.util.EspressoUtils.hasNoErrorText;
-import static com.hyperwallet.android.ui.util.EspressoUtils.nestedScrollTo;
-import static com.hyperwallet.android.ui.util.EspressoUtils.withHint;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.hasEmptyText;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.hasErrorText;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.hasNoErrorText;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.nestedScrollTo;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.withHint;
import android.app.Activity;
import android.content.BroadcastReceiver;
@@ -47,12 +47,13 @@
import com.hyperwallet.android.Hyperwallet;
import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod;
import com.hyperwallet.android.ui.R;
-import com.hyperwallet.android.ui.common.util.EspressoIdlingResource;
-import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager;
-import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer;
+import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource;
import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
-import com.hyperwallet.android.ui.util.RecyclerViewCountAssertion;
-import com.hyperwallet.android.ui.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletExternalResourceManager;
+import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletMockWebServer;
+import com.hyperwallet.android.ui.transfermethod.util.RecyclerViewCountAssertion;
+import com.hyperwallet.android.ui.transfermethod.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity;
import org.junit.After;
import org.junit.Before;
diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java
similarity index 94%
rename from ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java
rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java
index 20616743f..508c397f8 100644
--- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java
+++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/BankCardTest.java
@@ -22,10 +22,10 @@
import static java.net.HttpURLConnection.HTTP_OK;
import static java.util.concurrent.TimeUnit.SECONDS;
-import static com.hyperwallet.android.ui.util.EspressoUtils.hasEmptyText;
-import static com.hyperwallet.android.ui.util.EspressoUtils.hasErrorText;
-import static com.hyperwallet.android.ui.util.EspressoUtils.nestedScrollTo;
-import static com.hyperwallet.android.ui.util.EspressoUtils.withHint;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.hasEmptyText;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.hasErrorText;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.nestedScrollTo;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.withHint;
import android.app.Activity;
import android.content.BroadcastReceiver;
@@ -44,11 +44,12 @@
import com.hyperwallet.android.Hyperwallet;
import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod;
import com.hyperwallet.android.ui.R;
-import com.hyperwallet.android.ui.common.util.EspressoIdlingResource;
-import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager;
-import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer;
+import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource;
import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
-import com.hyperwallet.android.ui.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletExternalResourceManager;
+import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletMockWebServer;
+import com.hyperwallet.android.ui.transfermethod.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity;
import org.junit.After;
import org.junit.Before;
diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/HyperwalletInstrumentedTestApplication.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/HyperwalletInstrumentedTestApplication.java
similarity index 93%
rename from ui/src/androidTest/java/com/hyperwallet/android/ui/HyperwalletInstrumentedTestApplication.java
rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/HyperwalletInstrumentedTestApplication.java
index 1e77c01b7..5d3be31c5 100644
--- a/ui/src/androidTest/java/com/hyperwallet/android/ui/HyperwalletInstrumentedTestApplication.java
+++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/HyperwalletInstrumentedTestApplication.java
@@ -1,4 +1,4 @@
-package com.hyperwallet.android.ui;
+package com.hyperwallet.android.ui.transfermethod;
import android.app.Application;
diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java
similarity index 97%
rename from ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java
rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java
index 3a40d0164..d53840652 100644
--- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java
+++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodTest.java
@@ -21,8 +21,8 @@
import static java.util.concurrent.TimeUnit.SECONDS;
import static com.hyperwallet.android.model.HyperwalletStatusTransition.StatusDefinition.DE_ACTIVATED;
-import static com.hyperwallet.android.ui.util.EspressoUtils.atPosition;
-import static com.hyperwallet.android.ui.util.EspressoUtils.withDrawable;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.atPosition;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.withDrawable;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -40,11 +40,12 @@
import com.hyperwallet.android.Hyperwallet;
import com.hyperwallet.android.model.HyperwalletStatusTransition;
import com.hyperwallet.android.ui.R;
-import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager;
-import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer;
import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
-import com.hyperwallet.android.ui.util.RecyclerViewCountAssertion;
-import com.hyperwallet.android.ui.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletExternalResourceManager;
+import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletMockWebServer;
+import com.hyperwallet.android.ui.transfermethod.util.RecyclerViewCountAssertion;
+import com.hyperwallet.android.ui.transfermethod.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.transfermethod.view.ListTransferMethodActivity;
import org.hamcrest.Matchers;
import org.junit.After;
diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java
similarity index 93%
rename from ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java
rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java
index 4e1511625..f61bec357 100644
--- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java
+++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/PayPalTest.java
@@ -24,10 +24,10 @@
import static java.net.HttpURLConnection.HTTP_OK;
import static java.util.concurrent.TimeUnit.SECONDS;
-import static com.hyperwallet.android.ui.util.EspressoUtils.hasEmptyText;
-import static com.hyperwallet.android.ui.util.EspressoUtils.hasErrorText;
-import static com.hyperwallet.android.ui.util.EspressoUtils.nestedScrollTo;
-import static com.hyperwallet.android.ui.util.EspressoUtils.withHint;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.hasEmptyText;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.hasErrorText;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.nestedScrollTo;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.withHint;
import android.app.Activity;
import android.content.BroadcastReceiver;
@@ -46,11 +46,12 @@
import com.hyperwallet.android.Hyperwallet;
import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod;
import com.hyperwallet.android.ui.R;
-import com.hyperwallet.android.ui.common.util.EspressoIdlingResource;
-import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager;
-import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer;
+import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource;
import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
-import com.hyperwallet.android.ui.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletExternalResourceManager;
+import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletMockWebServer;
+import com.hyperwallet.android.ui.transfermethod.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity;
import org.junit.After;
import org.junit.Before;
diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java
similarity index 95%
rename from ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java
rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java
index 81023a3a3..68acebad9 100644
--- a/ui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java
+++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/SelectTransferMethodTest.java
@@ -25,12 +25,12 @@
import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodTypes.BANK_CARD;
import static com.hyperwallet.android.model.user.HyperwalletUser.ProfileTypes.BUSINESS;
import static com.hyperwallet.android.model.user.HyperwalletUser.ProfileTypes.INDIVIDUAL;
-import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_COUNTRY;
-import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_CURRENCY;
-import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_PROFILE_TYPE;
-import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_TYPE;
-import static com.hyperwallet.android.ui.util.EspressoUtils.atPosition;
-import static com.hyperwallet.android.ui.util.EspressoUtils.withDrawable;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.atPosition;
+import static com.hyperwallet.android.ui.transfermethod.util.EspressoUtils.withDrawable;
+import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_COUNTRY;
+import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_CURRENCY;
+import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_PROFILE_TYPE;
+import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_TYPE;
import android.widget.TextView;
@@ -43,12 +43,14 @@
import com.hyperwallet.android.Hyperwallet;
import com.hyperwallet.android.ui.R;
-import com.hyperwallet.android.ui.common.util.EspressoIdlingResource;
-import com.hyperwallet.android.ui.rule.HyperwalletExternalResourceManager;
-import com.hyperwallet.android.ui.rule.HyperwalletMockWebServer;
+import com.hyperwallet.android.ui.common.repository.EspressoIdlingResource;
import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
-import com.hyperwallet.android.ui.util.RecyclerViewCountAssertion;
-import com.hyperwallet.android.ui.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletExternalResourceManager;
+import com.hyperwallet.android.ui.transfermethod.rule.HyperwalletMockWebServer;
+import com.hyperwallet.android.ui.transfermethod.util.RecyclerViewCountAssertion;
+import com.hyperwallet.android.ui.transfermethod.util.TestAuthenticationProvider;
+import com.hyperwallet.android.ui.transfermethod.view.SelectTransferMethodActivity;
+import com.hyperwallet.android.ui.user.repository.UserRepositoryFactory;
import org.junit.After;
import org.junit.Before;
@@ -82,6 +84,7 @@ public void setup() {
@After
public void cleanup() {
TransferMethodRepositoryFactory.clearInstance();
+ UserRepositoryFactory.clearInstance();
}
@Before
diff --git a/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java
new file mode 100644
index 000000000..68e288a5b
--- /dev/null
+++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletExternalResourceManager.java
@@ -0,0 +1,73 @@
+package com.hyperwallet.android.ui.transfermethod.rule;
+
+import org.junit.rules.TestWatcher;
+import org.junit.runner.Description;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.net.URL;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class HyperwalletExternalResourceManager extends TestWatcher {
+
+ private static final String EMPTY = "";
+ private ClassLoader classLoader;
+ private Logger logger;
+
+ @Override
+ protected void starting(Description description) {
+ super.starting(description);
+ classLoader = description.getTestClass().getClassLoader();
+ logger = Logger.getLogger(description.getTestClass().getName());
+ }
+
+ public String getResourceContent(final String resourceName) {
+ if (resourceName == null) {
+ throw new IllegalArgumentException("Parameter resourceName cannot be null");
+ }
+
+ return getContent(resourceName);
+ }
+
+ private String getContent(final String resourceName) {
+
+ URL resource = classLoader.getResource(resourceName);
+ InputStream inputStream = null;
+ Writer writer = new StringWriter();
+ String resourceContent = EMPTY;
+ if (resource != null) {
+ try {
+ inputStream = resource.openStream();
+ BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
+ String line = reader.readLine();
+ while (line != null) {
+ writer.write(line);
+ line = reader.readLine();
+ }
+ resourceContent = writer.toString();
+
+ } catch (Exception e) {
+ logger.log(Level.WARNING, "There was an error loading an external resource", e);
+ } finally {
+ try {
+ if (inputStream != null) {
+ inputStream.close();
+ }
+ } catch (Exception e) {
+ logger.log(Level.SEVERE, "There was an error closing input stream", e);
+ }
+ try {
+ writer.close();
+ } catch (IOException e) {
+ logger.log(Level.SEVERE, "There was an error closing writer", e);
+ }
+ }
+ }
+ return resourceContent;
+ }
+}
diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/rule/HyperwalletMockWebServer.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletMockWebServer.java
similarity index 98%
rename from ui/src/androidTest/java/com/hyperwallet/android/ui/rule/HyperwalletMockWebServer.java
rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletMockWebServer.java
index fd37ac735..21cd2ae99 100644
--- a/ui/src/androidTest/java/com/hyperwallet/android/ui/rule/HyperwalletMockWebServer.java
+++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/rule/HyperwalletMockWebServer.java
@@ -1,4 +1,4 @@
-package com.hyperwallet.android.ui.rule;
+package com.hyperwallet.android.ui.transfermethod.rule;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/EspressoUtils.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/EspressoUtils.java
similarity index 99%
rename from ui/src/androidTest/java/com/hyperwallet/android/ui/util/EspressoUtils.java
rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/EspressoUtils.java
index 72891a832..fbd325c31 100644
--- a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/EspressoUtils.java
+++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/EspressoUtils.java
@@ -1,4 +1,4 @@
-package com.hyperwallet.android.ui.util;
+package com.hyperwallet.android.ui.transfermethod.util;
import android.graphics.Bitmap;
import android.graphics.Canvas;
diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/NestedScrollToAction.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/NestedScrollToAction.java
similarity index 95%
rename from ui/src/androidTest/java/com/hyperwallet/android/ui/util/NestedScrollToAction.java
rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/NestedScrollToAction.java
index 54f08aed7..63a6803f7 100644
--- a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/NestedScrollToAction.java
+++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/NestedScrollToAction.java
@@ -1,4 +1,4 @@
-package com.hyperwallet.android.ui.util;
+package com.hyperwallet.android.ui.transfermethod.util;
import static androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom;
import static androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA;
diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/RecyclerViewCountAssertion.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/RecyclerViewCountAssertion.java
similarity index 93%
rename from ui/src/androidTest/java/com/hyperwallet/android/ui/util/RecyclerViewCountAssertion.java
rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/RecyclerViewCountAssertion.java
index e3c7945fd..1c9ec2479 100644
--- a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/RecyclerViewCountAssertion.java
+++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/RecyclerViewCountAssertion.java
@@ -1,4 +1,4 @@
-package com.hyperwallet.android.ui.util;
+package com.hyperwallet.android.ui.transfermethod.util;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/TestAuthenticationProvider.java b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/TestAuthenticationProvider.java
similarity index 96%
rename from ui/src/androidTest/java/com/hyperwallet/android/ui/util/TestAuthenticationProvider.java
rename to transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/TestAuthenticationProvider.java
index 1f8350f8f..739423e40 100644
--- a/ui/src/androidTest/java/com/hyperwallet/android/ui/util/TestAuthenticationProvider.java
+++ b/transfermethodui/src/androidTest/java/com/hyperwallet/android/ui/transfermethod/util/TestAuthenticationProvider.java
@@ -1,4 +1,4 @@
-package com.hyperwallet.android.ui.util;
+package com.hyperwallet.android.ui.transfermethod.util;
import com.hyperwallet.android.HyperwalletAuthenticationTokenListener;
import com.hyperwallet.android.HyperwalletAuthenticationTokenProvider;
diff --git a/ui/src/main/AndroidManifest.xml b/transfermethodui/src/main/AndroidManifest.xml
similarity index 91%
rename from ui/src/main/AndroidManifest.xml
rename to transfermethodui/src/main/AndroidManifest.xml
index 6888120a5..b7c92a689 100644
--- a/ui/src/main/AndroidManifest.xml
+++ b/transfermethodui/src/main/AndroidManifest.xml
@@ -7,13 +7,13 @@
diff --git a/ui/src/main/java/com/hyperwallet/android/ui/HyperwalletLocalBroadcast.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodLocalBroadcast.java
similarity index 86%
rename from ui/src/main/java/com/hyperwallet/android/ui/HyperwalletLocalBroadcast.java
rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodLocalBroadcast.java
index 7eed4cec5..e10b351ef 100644
--- a/ui/src/main/java/com/hyperwallet/android/ui/HyperwalletLocalBroadcast.java
+++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodLocalBroadcast.java
@@ -14,10 +14,10 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package com.hyperwallet.android.ui;
+package com.hyperwallet.android.ui.transfermethod;
-import static com.hyperwallet.android.ui.HyperwalletLocalBroadcast.HyperwalletLocalBroadcastAction.ACTION_HYPERWALLET_TRANSFER_METHOD_ADDED;
-import static com.hyperwallet.android.ui.HyperwalletLocalBroadcast.HyperwalletLocalBroadcastAction.ACTION_HYPERWALLET_TRANSFER_METHOD_DEACTIVATED;
+import static com.hyperwallet.android.ui.transfermethod.HyperwalletTransferMethodLocalBroadcast.HyperwalletLocalBroadcastAction.ACTION_HYPERWALLET_TRANSFER_METHOD_ADDED;
+import static com.hyperwallet.android.ui.transfermethod.HyperwalletTransferMethodLocalBroadcast.HyperwalletLocalBroadcastAction.ACTION_HYPERWALLET_TRANSFER_METHOD_DEACTIVATED;
import android.content.Intent;
import android.os.Parcelable;
@@ -31,7 +31,7 @@
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
-public class HyperwalletLocalBroadcast {
+public class HyperwalletTransferMethodLocalBroadcast {
private static final String HYPERWALLET_LOCAL_BROADCAST_PAYLOAD_KEY = "hyperwallet-local-broadcast-payload";
diff --git a/ui/src/main/java/com/hyperwallet/android/ui/HyperwalletUi.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodUi.java
similarity index 63%
rename from ui/src/main/java/com/hyperwallet/android/ui/HyperwalletUi.java
rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodUi.java
index 21e5ac913..6f3519205 100644
--- a/ui/src/main/java/com/hyperwallet/android/ui/HyperwalletUi.java
+++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/HyperwalletTransferMethodUi.java
@@ -1,4 +1,3 @@
-
/*
* Copyright 2018 Hyperwallet
*
@@ -16,14 +15,12 @@
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
+package com.hyperwallet.android.ui.transfermethod;
-package com.hyperwallet.android.ui;
-
-import static com.hyperwallet.android.ui.receipt.view.ListPrepaidCardReceiptActivity.EXTRA_PREPAID_CARD_TOKEN;
-import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_COUNTRY;
-import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_CURRENCY;
-import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_PROFILE_TYPE;
-import static com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_TYPE;
+import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_COUNTRY;
+import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_CURRENCY;
+import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_PROFILE_TYPE;
+import static com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity.EXTRA_TRANSFER_METHOD_TYPE;
import android.content.Context;
import android.content.Intent;
@@ -32,32 +29,30 @@
import com.hyperwallet.android.Hyperwallet;
import com.hyperwallet.android.HyperwalletAuthenticationTokenProvider;
-import com.hyperwallet.android.ui.receipt.view.ListPrepaidCardReceiptActivity;
-import com.hyperwallet.android.ui.receipt.view.ListUserReceiptActivity;
-import com.hyperwallet.android.ui.transfermethod.AddTransferMethodActivity;
-import com.hyperwallet.android.ui.transfermethod.ListTransferMethodActivity;
-import com.hyperwallet.android.ui.transfermethod.SelectTransferMethodActivity;
+import com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity;
+import com.hyperwallet.android.ui.transfermethod.view.ListTransferMethodActivity;
+import com.hyperwallet.android.ui.transfermethod.view.SelectTransferMethodActivity;
/**
* Class responsible for initializing the Hyperwallet UI SDK. It contains methods to interact with the activities and
* fragments used to interact with the Hyperwallet platform
*/
-public final class HyperwalletUi {
+public final class HyperwalletTransferMethodUi {
- private static HyperwalletUi sInstance;
+ private static HyperwalletTransferMethodUi sInstance;
- private HyperwalletUi() {
+ private HyperwalletTransferMethodUi() {
}
/**
* @param authenticationTokenProvider An implementation of the {@link HyperwalletAuthenticationTokenProvider}
- * @return Returns a newly created HyperwalletUi that can be used to get Intents to launch different
+ * @return Returns a newly created HyperwalletTransferMethodUi that can be used to get Intents to launch different
* activities.
*/
- public static synchronized HyperwalletUi getInstance(
+ public static synchronized HyperwalletTransferMethodUi getInstance(
@NonNull final HyperwalletAuthenticationTokenProvider authenticationTokenProvider) {
if (sInstance == null) {
- sInstance = new HyperwalletUi();
+ sInstance = new HyperwalletTransferMethodUi();
Hyperwallet.getInstance(authenticationTokenProvider);
}
return sInstance;
@@ -81,30 +76,16 @@ public Intent getIntentSelectTransferMethodActivity(@NonNull final Context conte
return new Intent(context, SelectTransferMethodActivity.class);
}
- /**
- * @param context A Context of the application consuming this Intent.
- * @return an Intent with the data necessary to launch the {@link ListUserReceiptActivity}
- */
- public Intent getIntentListUserReceiptActivity(@NonNull final Context context) {
- return new Intent(context, ListUserReceiptActivity.class);
- }
-
- /**
- * @param context A Context of the application consuming this Intent.
- * @return an Intent with the data necessary to launch the {@link ListPrepaidCardReceiptActivity}
- */
- public Intent getIntentListPrepaidCardReceiptActivity(@NonNull final Context context, @NonNull final String token) {
- Intent intent = new Intent(context, ListPrepaidCardReceiptActivity.class);
- intent.putExtra(EXTRA_PREPAID_CARD_TOKEN, token);
- return intent;
- }
-
/**
* @param context A Context of the application consuming this Intent.
* @param country The transfer method country code. ISO 3166-1 alpha-2 format.
* @param currency The transfer method currency code. ISO 4217 format.
* @param transferMethodType The type of transfer method. For a complete list of transfer methods, see {@link
- * com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodTypes}
+ *
+ *
+ *
+ *
+ * com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodTypes}
* @param profileType The type of the account holder profile. For a complete list of options, see
* {@link com.hyperwallet.android.model.user.HyperwalletUser.ProfileTypes}
* @return an Intent with the data necessary to launch the {@link AddTransferMethodActivity}
diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodActivity.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodActivity.java
similarity index 97%
rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodActivity.java
rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodActivity.java
index 9c1fa1d77..e3ba27b72 100644
--- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodActivity.java
+++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodActivity.java
@@ -14,7 +14,7 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package com.hyperwallet.android.ui.transfermethod;
+package com.hyperwallet.android.ui.transfermethod.view;
import android.os.Bundle;
import android.view.View;
@@ -32,8 +32,6 @@
import com.hyperwallet.android.ui.R;
import com.hyperwallet.android.ui.common.view.error.DefaultErrorDialogFragment;
import com.hyperwallet.android.ui.common.view.error.OnNetworkErrorCallback;
-import com.hyperwallet.android.ui.view.WidgetDateDialogFragment;
-import com.hyperwallet.android.ui.view.WidgetSelectionDialogFragment;
import java.util.List;
diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodContract.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodContract.java
similarity index 98%
rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodContract.java
rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodContract.java
index 959e0a03e..1b7a43fcf 100644
--- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodContract.java
+++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodContract.java
@@ -14,7 +14,7 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package com.hyperwallet.android.ui.transfermethod;
+package com.hyperwallet.android.ui.transfermethod.view;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodFragment.java
similarity index 97%
rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java
rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodFragment.java
index ca550a617..6a9367128 100644
--- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java
+++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodFragment.java
@@ -14,7 +14,7 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package com.hyperwallet.android.ui.transfermethod;
+package com.hyperwallet.android.ui.transfermethod.view;
import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodFields.PROFILE_TYPE;
import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodFields.TRANSFER_METHOD_COUNTRY;
@@ -55,18 +55,16 @@
import com.hyperwallet.android.model.transfermethod.HyperwalletBankCard;
import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod;
import com.hyperwallet.android.model.transfermethod.PayPalAccount;
-import com.hyperwallet.android.ui.HyperwalletLocalBroadcast;
import com.hyperwallet.android.ui.R;
+import com.hyperwallet.android.ui.transfermethod.HyperwalletTransferMethodLocalBroadcast;
import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
-import com.hyperwallet.android.ui.view.WidgetDateDialogFragment;
-import com.hyperwallet.android.ui.view.WidgetSelectionDialogFragment;
-import com.hyperwallet.android.ui.view.widget.AbstractWidget;
-import com.hyperwallet.android.ui.view.widget.DateChangedListener;
-import com.hyperwallet.android.ui.view.widget.DateUtils;
-import com.hyperwallet.android.ui.view.widget.DateWidget;
-import com.hyperwallet.android.ui.view.widget.WidgetEventListener;
-import com.hyperwallet.android.ui.view.widget.WidgetFactory;
-import com.hyperwallet.android.ui.view.widget.WidgetInputState;
+import com.hyperwallet.android.ui.transfermethod.view.widget.AbstractWidget;
+import com.hyperwallet.android.ui.transfermethod.view.widget.DateChangedListener;
+import com.hyperwallet.android.ui.transfermethod.view.widget.DateUtils;
+import com.hyperwallet.android.ui.transfermethod.view.widget.DateWidget;
+import com.hyperwallet.android.ui.transfermethod.view.widget.WidgetEventListener;
+import com.hyperwallet.android.ui.transfermethod.view.widget.WidgetFactory;
+import com.hyperwallet.android.ui.transfermethod.view.widget.WidgetInputState;
import java.util.HashMap;
import java.util.List;
@@ -84,7 +82,7 @@ public class AddTransferMethodFragment extends Fragment implements WidgetEventLi
private static final String ARGUMENT_TRANSFER_METHOD = "ARGUMENT_TRANSFER_METHOD";
private static final String ARGUMENT_WIDGET_STATE_MAP = "ARGUMENT_WIDGET_STATE_MAP";
private static final boolean FORCE_UPDATE = false;
-
+ private final DateUtils mDateUtils = new DateUtils();
private String mCountry;
private View mCreateButtonProgressBar;
private Button mCreateTransferMethodButton;
@@ -100,7 +98,6 @@ public class AddTransferMethodFragment extends Fragment implements WidgetEventLi
private HyperwalletTransferMethod mTransferMethod;
private String mTransferMethodProfileType;
private HashMap mWidgetInputStateHashMap;
- private final DateUtils mDateUtils = new DateUtils();
/**
* Please do not use this to have instance of AddTransferMethodFragment this is reserved for android framework
@@ -296,7 +293,8 @@ public void saveTextChanged(@NonNull final String fieldName, @NonNull final Stri
@Override
public void notifyTransferMethodAdded(@NonNull final HyperwalletTransferMethod transferMethod) {
- Intent intent = HyperwalletLocalBroadcast.createBroadcastIntentTransferMethodAdded(transferMethod);
+ Intent intent = HyperwalletTransferMethodLocalBroadcast.createBroadcastIntentTransferMethodAdded(
+ transferMethod);
LocalBroadcastManager.getInstance(getContext()).sendBroadcast(intent);
getActivity().setResult(Activity.RESULT_OK);
getActivity().finish();
@@ -484,14 +482,6 @@ public void openWidgetSelectionFragmentDialog(@NonNull final TreeMap errors);
- }
-
- interface OnAddTransferMethodNetworkErrorCallback {
- void showErrorsAddTransferMethod(@NonNull final List errors);
- }
-
private void triggerSubmit() {
if (performValidation(true)) {
switch (mTransferMethodType) {
@@ -623,4 +613,12 @@ void onDateSelected(@NonNull final String selectedValue, @NonNull final String f
}
}
}
+
+ interface OnLoadTransferMethodConfigurationFieldsNetworkErrorCallback {
+ void showErrorsLoadTransferMethodConfigurationFields(@NonNull final List errors);
+ }
+
+ interface OnAddTransferMethodNetworkErrorCallback {
+ void showErrorsAddTransferMethod(@NonNull final List errors);
+ }
}
diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodPresenter.java
similarity index 98%
rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java
rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodPresenter.java
index bcccca6e2..2355d4448 100644
--- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodPresenter.java
+++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/AddTransferMethodPresenter.java
@@ -14,7 +14,7 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package com.hyperwallet.android.ui.transfermethod;
+package com.hyperwallet.android.ui.transfermethod.view;
import androidx.annotation.NonNull;
diff --git a/ui/src/main/java/com/hyperwallet/android/ui/view/CountrySelectionDialogFragment.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/CountrySelectionDialogFragment.java
similarity index 99%
rename from ui/src/main/java/com/hyperwallet/android/ui/view/CountrySelectionDialogFragment.java
rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/CountrySelectionDialogFragment.java
index 66980f24b..d7cc52d15 100644
--- a/ui/src/main/java/com/hyperwallet/android/ui/view/CountrySelectionDialogFragment.java
+++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/CountrySelectionDialogFragment.java
@@ -14,7 +14,7 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package com.hyperwallet.android.ui.view;
+package com.hyperwallet.android.ui.transfermethod.view;
import android.app.Activity;
import android.app.SearchManager;
diff --git a/ui/src/main/java/com/hyperwallet/android/ui/view/CurrencySelectionDialogFragment.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/CurrencySelectionDialogFragment.java
similarity index 99%
rename from ui/src/main/java/com/hyperwallet/android/ui/view/CurrencySelectionDialogFragment.java
rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/CurrencySelectionDialogFragment.java
index e9ee2bde1..5a0757605 100644
--- a/ui/src/main/java/com/hyperwallet/android/ui/view/CurrencySelectionDialogFragment.java
+++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/CurrencySelectionDialogFragment.java
@@ -14,7 +14,7 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package com.hyperwallet.android.ui.view;
+package com.hyperwallet.android.ui.transfermethod.view;
import android.app.Activity;
import android.app.SearchManager;
diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/FeeFormatter.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/FeeFormatter.java
similarity index 98%
rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/FeeFormatter.java
rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/FeeFormatter.java
index e073e0a1b..a5eba963f 100644
--- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/FeeFormatter.java
+++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/FeeFormatter.java
@@ -16,7 +16,7 @@
* IN THE SOFTWARE.
*/
-package com.hyperwallet.android.ui.transfermethod;
+package com.hyperwallet.android.ui.transfermethod.view;
import android.content.Context;
diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodActivity.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodActivity.java
similarity index 98%
rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodActivity.java
rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodActivity.java
index 6aef7e314..4e4cdac20 100644
--- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodActivity.java
+++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodActivity.java
@@ -14,9 +14,9 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package com.hyperwallet.android.ui.transfermethod;
+package com.hyperwallet.android.ui.transfermethod.view;
-import static com.hyperwallet.android.ui.transfermethod.ListTransferMethodFragment.ARGUMENT_IS_TRANSFER_METHODS_RELOAD_NEEDED;
+import static com.hyperwallet.android.ui.transfermethod.view.ListTransferMethodFragment.ARGUMENT_IS_TRANSFER_METHODS_RELOAD_NEEDED;
import android.content.Intent;
import android.os.Bundle;
diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodContract.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodContract.java
similarity index 97%
rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodContract.java
rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodContract.java
index 0b2e0e5ad..7727cd404 100644
--- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodContract.java
+++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodContract.java
@@ -14,7 +14,7 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package com.hyperwallet.android.ui.transfermethod;
+package com.hyperwallet.android.ui.transfermethod.view;
import androidx.annotation.NonNull;
diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodFragment.java b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodFragment.java
similarity index 96%
rename from ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodFragment.java
rename to transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodFragment.java
index 306776f4d..77236a1a3 100644
--- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/ListTransferMethodFragment.java
+++ b/transfermethodui/src/main/java/com/hyperwallet/android/ui/transfermethod/view/ListTransferMethodFragment.java
@@ -14,13 +14,13 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package com.hyperwallet.android.ui.transfermethod;
+package com.hyperwallet.android.ui.transfermethod.view;
import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodFields.TRANSFER_METHOD_COUNTRY;
import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodFields.TYPE;
-import static com.hyperwallet.android.ui.transfermethod.TransferMethodUtils.getStringFontIcon;
-import static com.hyperwallet.android.ui.transfermethod.TransferMethodUtils.getStringResourceByName;
-import static com.hyperwallet.android.ui.transfermethod.TransferMethodUtils.getTransferMethodDetail;
+import static com.hyperwallet.android.ui.transfermethod.view.TransferMethodUtils.getStringFontIcon;
+import static com.hyperwallet.android.ui.transfermethod.view.TransferMethodUtils.getStringResourceByName;
+import static com.hyperwallet.android.ui.transfermethod.view.TransferMethodUtils.getTransferMethodDetail;
import android.content.Context;
import android.content.Intent;
@@ -46,10 +46,10 @@
import com.hyperwallet.android.model.HyperwalletError;
import com.hyperwallet.android.model.HyperwalletStatusTransition;
import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod;
-import com.hyperwallet.android.ui.HyperwalletLocalBroadcast;
import com.hyperwallet.android.ui.R;
import com.hyperwallet.android.ui.common.view.HorizontalDividerItemDecorator;
import com.hyperwallet.android.ui.common.view.OneClickListener;
+import com.hyperwallet.android.ui.transfermethod.HyperwalletTransferMethodLocalBroadcast;
import com.hyperwallet.android.ui.transfermethod.repository.TransferMethodRepositoryFactory;
import java.util.ArrayList;
@@ -224,7 +224,7 @@ public void displayTransferMethods(@Nullable final List
+ tools:context="com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodActivity">
diff --git a/ui/src/main/res/layout/activity_list_transfer_method.xml b/transfermethodui/src/main/res/layout/activity_list_transfer_method.xml
similarity index 94%
rename from ui/src/main/res/layout/activity_list_transfer_method.xml
rename to transfermethodui/src/main/res/layout/activity_list_transfer_method.xml
index 28ed9e27a..a065a9e0e 100644
--- a/ui/src/main/res/layout/activity_list_transfer_method.xml
+++ b/transfermethodui/src/main/res/layout/activity_list_transfer_method.xml
@@ -5,7 +5,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context="com.hyperwallet.android.ui.transfermethod.ListTransferMethodActivity">
+ tools:context="com.hyperwallet.android.ui.transfermethod.view.ListTransferMethodActivity">
\ No newline at end of file
diff --git a/ui/src/main/res/layout/dialog_fragment_country_selection.xml b/transfermethodui/src/main/res/layout/dialog_fragment_country_selection.xml
similarity index 100%
rename from ui/src/main/res/layout/dialog_fragment_country_selection.xml
rename to transfermethodui/src/main/res/layout/dialog_fragment_country_selection.xml
diff --git a/ui/src/main/res/layout/dialog_fragment_currency_selection.xml b/transfermethodui/src/main/res/layout/dialog_fragment_currency_selection.xml
similarity index 100%
rename from ui/src/main/res/layout/dialog_fragment_currency_selection.xml
rename to transfermethodui/src/main/res/layout/dialog_fragment_currency_selection.xml
diff --git a/ui/src/main/res/layout/dialog_fragment_widget_selection.xml b/transfermethodui/src/main/res/layout/dialog_fragment_widget_selection.xml
similarity index 100%
rename from ui/src/main/res/layout/dialog_fragment_widget_selection.xml
rename to transfermethodui/src/main/res/layout/dialog_fragment_widget_selection.xml
diff --git a/ui/src/main/res/layout/fragment_add_transfer_method.xml b/transfermethodui/src/main/res/layout/fragment_add_transfer_method.xml
similarity index 99%
rename from ui/src/main/res/layout/fragment_add_transfer_method.xml
rename to transfermethodui/src/main/res/layout/fragment_add_transfer_method.xml
index 861e1bdcd..a4e56297a 100644
--- a/ui/src/main/res/layout/fragment_add_transfer_method.xml
+++ b/transfermethodui/src/main/res/layout/fragment_add_transfer_method.xml
@@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- tools:context="com.hyperwallet.android.ui.transfermethod.AddTransferMethodFragment">
+ tools:context="com.hyperwallet.android.ui.transfermethod.view.AddTransferMethodFragment">
+ tools:context="com.hyperwallet.android.ui.transfermethod.view.ListTransferMethodFragment">
+ tools:context="com.hyperwallet.android.ui.transfermethod.view.SelectTransferMethodFragment">