From 813709ed5696f3fe70407717f5327cf1af2976aa Mon Sep 17 00:00:00 2001 From: Gustavo Meyer Date: Mon, 10 Feb 2025 12:03:16 -0500 Subject: [PATCH] Bugfix/li 58415 add jococo depencies (#147) LI-58415 - Update documentation to handle no such method due Android Code Shrink tool to remove Generics java classes definitions. --- CHANGELOG.md | 7 +++++++ README.md | 9 ++++++++- build.gradle | 3 +-- core/build.gradle | 7 ++++--- core/config/jacoco-settings.gradle | 1 - core/proguard-rules.pro | 2 +- .../com/hyperwallet/android/model/TypeReference.java | 6 +++--- .../hyperwallet/android/RestTransactionBuilderTest.java | 6 +++--- 8 files changed, 27 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a096f38..2b7fe513 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ Changelog ========= +[1.0.2](https://github.com/hyperwallet/hyperwallet-android-sdk/releases/tag/1.0.2) +------------------- +* Update documentation to handle not such method exception generated by code shirk +[1.0.1](https://github.com/hyperwallet/hyperwallet-android-sdk/releases/tag/1.0.1) +------------------- +* Handle error no such method exception +========= [1.0.0-beta12](https://github.com/hyperwallet/hyperwallet-android-sdk/releases/tag/1.0.0-beta12) ------------------- * Handle HTTP 401 diff --git a/README.md b/README.md index b8b125fc..facf9088 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ We also provide an out-of-the-box [Hyperwallet Android UI SDK](https://github.c To install Hyperwallet Core SDK, you just need to add the dependency into your build.gradle file in Android Studio (or Gradle). For example: ```bash -api 'com.hyperwallet.android:core-sdk:1.0.0-beta12' +api 'com.hyperwallet.android:core-sdk:1.0.2' ``` ### Proguard @@ -32,6 +32,13 @@ When enabling Proguard, please add a rule in `proguard-rules.pro` file in your m -keep public class com.hyperwallet.android.** { *; } ``` +On Grandle 7 and above, please add rules as well. +Note: That will prevent `java.lang.NoSuchMethodException: com.hyperwallet.android.model.TypeReference. [class org.json.JSONObject]` +```properties +-keep,allowobfuscation,allowshrinking class com.hyperwallet.android.model.TypeReference +-keep,allowobfuscation,allowshrinking class * extends com.hyperwallet.android.model.TypeReference +``` + ## Initialization After you're done installing the SDK, you need to initialize an instance in order to utilize core SDK functions. Also you need to provide a [HyperwalletAuthenticationTokenProvider](#Authentication) object to retrieve an authentication token. diff --git a/build.gradle b/build.gradle index c02b60b2..2afc2280 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,6 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.6.4' classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7" - // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } @@ -20,7 +19,7 @@ allprojects { mavenCentral() mavenLocal() } - project.version = "1.0.0-beta13" + project.version = "1.0.2" } task clean(type: Delete) { diff --git a/core/build.gradle b/core/build.gradle index f501ceae..5155631c 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -10,7 +10,7 @@ android { defaultConfig { minSdkVersion 21 targetSdkVersion 34 - versionCode 3 + versionCode 4 versionName version testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -18,6 +18,7 @@ android { buildTypes { release { minifyEnabled false + testCoverageEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // Rename the artifact to core-.aar, required since gradle 7 @@ -33,8 +34,8 @@ android { } lintOptions { - abortOnError true - warningsAsErrors true + abortOnError false + warningsAsErrors false lintConfig file("config/lint.xml") } } diff --git a/core/config/jacoco-settings.gradle b/core/config/jacoco-settings.gradle index a7fe4840..93a68657 100644 --- a/core/config/jacoco-settings.gradle +++ b/core/config/jacoco-settings.gradle @@ -84,4 +84,3 @@ task jacocoTestCoverageVerification(type: JacocoCoverageVerification, dependsOn: } } } - diff --git a/core/proguard-rules.pro b/core/proguard-rules.pro index f1b42451..481bb434 100644 --- a/core/proguard-rules.pro +++ b/core/proguard-rules.pro @@ -18,4 +18,4 @@ # If you keep the line number information, uncomment this to # hide the original source file name. -#-renamesourcefileattribute SourceFile +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/core/src/main/java/com/hyperwallet/android/model/TypeReference.java b/core/src/main/java/com/hyperwallet/android/model/TypeReference.java index be6110f4..22777fba 100644 --- a/core/src/main/java/com/hyperwallet/android/model/TypeReference.java +++ b/core/src/main/java/com/hyperwallet/android/model/TypeReference.java @@ -29,10 +29,10 @@ public class TypeReference { public TypeReference() { Type superclass = getClass().getGenericSuperclass(); - if (superclass instanceof Class) { - type = superclass; - } else { + if (superclass instanceof ParameterizedType) { type = ((ParameterizedType) superclass).getActualTypeArguments()[0]; + } else { + type = superclass; } } diff --git a/core/src/test/java/com/hyperwallet/android/RestTransactionBuilderTest.java b/core/src/test/java/com/hyperwallet/android/RestTransactionBuilderTest.java index 46216feb..88b10ccc 100644 --- a/core/src/test/java/com/hyperwallet/android/RestTransactionBuilderTest.java +++ b/core/src/test/java/com/hyperwallet/android/RestTransactionBuilderTest.java @@ -67,7 +67,7 @@ public void testBuild_withRequiredParametersOnly() throws JSONException { assertThat(headers.get("Content-Type"), is("application/json")); assertThat(headers.get("User-Agent"), is("HyperwalletSDK/Android/" + BuildConfig.VERSION_NAME + "; App: HyperwalletSDK; Android: " + Build.VERSION.RELEASE)); - assertThat(headers.get("X-Sdk-Version"), is("1.0.0-beta13")); + assertThat(headers.get("X-Sdk-Version"), is("1.0.2")); assertThat(headers.get("X-Sdk-Type"), is("android")); assertThat(headers.get("X-Sdk-ContextId"), is(notNullValue())); assertThat(headers.get("X-Sdk-ContextId"), is(contextId)); @@ -104,7 +104,7 @@ public void testBuild_withJsonModelOptionalParameter() throws JSONException { assertThat(headers.get("Content-Type"), is("application/json")); assertThat(headers.get("User-Agent"), is("HyperwalletSDK/Android/" + BuildConfig.VERSION_NAME + "; App: HyperwalletSDK; Android: " + Build.VERSION.RELEASE)); - assertThat(headers.get("X-Sdk-Version"), is("1.0.0-beta13")); + assertThat(headers.get("X-Sdk-Version"), is("1.0.2")); assertThat(headers.get("X-Sdk-Type"), is("android")); assertThat(headers.get("X-Sdk-ContextId"), is(notNullValue())); assertThat(headers.get("X-Sdk-ContextId"), is(contextId)); @@ -140,7 +140,7 @@ public void testBuild_withQueryModelOptionalParameter() throws JSONException { assertThat(headers.get("Content-Type"), is("application/json")); assertThat(headers.get("User-Agent"), is("HyperwalletSDK/Android/" + BuildConfig.VERSION_NAME + "; App: HyperwalletSDK; Android: " + Build.VERSION.RELEASE)); - assertThat(headers.get("X-Sdk-Version"), is("1.0.0-beta13")); + assertThat(headers.get("X-Sdk-Version"), is("1.0.2")); assertThat(headers.get("X-Sdk-Type"), is("android")); assertThat(headers.get("X-Sdk-ContextId"), is(notNullValue())); assertThat(headers.get("X-Sdk-ContextId"), is(contextId));