Skip to content

Commit

Permalink
Merge pull request #1334 from Adyen/develop
Browse files Browse the repository at this point in the history
Release 5.0.0-beta01
  • Loading branch information
jreij committed Sep 7, 2023
2 parents 6388365 + 9423317 commit 639ca08
Show file tree
Hide file tree
Showing 323 changed files with 6,705 additions and 1,821 deletions.
31 changes: 31 additions & 0 deletions .github/workflows/assemble.yml
@@ -0,0 +1,31 @@
name: Assemble

on:
workflow_call

jobs:
assemble-debug:
name: Assemble debug
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
cache: 'gradle'

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Run assembleDebug
run: ./gradlew assDeb --no-daemon

- name: Cache build output
uses: actions/cache/save@v3
with:
path: /home/runner/work/adyen-android/adyen-android
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
40 changes: 15 additions & 25 deletions .github/workflows/check_pr.yml
@@ -1,34 +1,24 @@
name: Check PR

# Every PR should be checked for static analysis
on:
pull_request:
branches-ignore:
- 'main'
types: [ opened, synchronize, reopened ]

jobs:
gradle-check:
# https://github.com/actions/virtual-environments/
runs-on: ubuntu-latest

steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
# https://github.com/marketplace/actions/checkout
- uses: actions/checkout@v3

# Setup Java 17
# https://github.com/marketplace/actions/setup-java-jdk
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
cache: 'gradle'
concurrency:
group: ${{ github.head_ref }}
cancel-in-progress: true

- name: Grant execute permission for gradlew
run: chmod +x gradlew

# Run gradlew check
- name: Gradle check
run: ./gradlew check --no-daemon
jobs:
code_analysis:
name: Code analysis
uses: ./.github/workflows/code_analysis.yml
assemble:
name: Assemble
uses: ./.github/workflows/assemble.yml
needs: code_analysis
test:
name: Test
uses: ./.github/workflows/run_tests.yml
needs: assemble
45 changes: 45 additions & 0 deletions .github/workflows/code_analysis.yml
@@ -0,0 +1,45 @@
name: Perform code analysis

on:
workflow_call

jobs:
detekt:
name: Run detekt
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
cache: 'gradle'

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Run detekt
run: ./gradlew detekt --no-daemon

ktlint:
name: Run ktlint
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
cache: 'gradle'

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Run ktlint
run: ./gradlew ktlint --no-daemon
16 changes: 16 additions & 0 deletions .github/workflows/publish_docs.yml
Expand Up @@ -12,11 +12,27 @@ jobs:
runs-on: ubuntu-latest

steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
# https://github.com/marketplace/actions/checkout
- uses: actions/checkout@v3

# Setup Java 17
# https://github.com/marketplace/actions/setup-java-jdk
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
cache: 'gradle'

- name: Grant execute permission for gradlew
run: chmod +x gradlew

# Generate kdocs
- name: Generate Dokka HTML documentation
run: ./gradlew dokkaHtmlMultiModule --no-daemon

# Deploy to GitHub Pages
- name: Deploy GitHub Pages
uses: JamesIves/github-pages-deploy-action@v4.4.3
with:
Expand Down
55 changes: 55 additions & 0 deletions .github/workflows/run_tests.yml
@@ -0,0 +1,55 @@
name: Test

on:
workflow_call

jobs:
unit-test:
name: Run unit tests
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
cache: 'gradle'

- uses: actions/cache/restore@v3
with:
path: /home/runner/work/adyen-android/adyen-android
key: cache-${{ github.run_id }}-${{ github.run_attempt }}

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Run testDebugUnitTest
run: ./gradlew testDebugUnitTest --no-daemon

lint:
name: Run lint
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
cache: 'gradle'

- uses: actions/cache/restore@v3
with:
path: /home/runner/work/adyen-android/adyen-android
key: cache-${{ github.run_id }}-${{ github.run_attempt }}

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Run lintDebug
run: ./gradlew lintDebug --no-daemon
32 changes: 11 additions & 21 deletions .github/workflows/update_verification_metadata.yml
@@ -1,45 +1,35 @@
name: Update verification metadata

on:
push:
branches:
- 'renovate/**'
paths:
- 'dependencies.gradle'
workflow_dispatch:

jobs:
gradle-update-verification-metadata:
# https://github.com/actions/virtual-environments/
update-verification-metadata:
name: Update verification metadata
runs-on: ubuntu-latest

steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
# https://github.com/marketplace/actions/checkout
- uses: actions/checkout@v3
with:
ref: ${{ github.head_ref }}

# Setup Java 17
# https://github.com/marketplace/actions/setup-java-jdk
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
cache: 'gradle'

- name: Grant execute permission for gradlew
run: chmod +x gradlew
# Run gradlew check

- name: Gradle update verification metadata
run: ./gradlew --write-verification-metadata sha256 build --no-daemon

- name: Commit
run: |
git config --local user.email 'action@github.com'
git config --local user.name 'GitHub Action'
git config --global user.name "${{ github.actor }}"
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
git add .
git commit -am 'Update verification metadata'
- name: Push
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.ref }}
git diff-index --quiet HEAD || git commit -am 'Update verification metadata'
git push
Expand Up @@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.adyen.checkout.adyen3ds2.internal.provider.Adyen3DS2ComponentProvider
import com.adyen.checkout.adyen3ds2.internal.ui.Adyen3DS2Delegate
import com.adyen.checkout.components.core.RedirectableActionComponent
import com.adyen.checkout.components.core.action.Action
import com.adyen.checkout.components.core.internal.ActionComponent
import com.adyen.checkout.components.core.internal.ActionComponentEvent
Expand All @@ -35,7 +36,8 @@ class Adyen3DS2Component internal constructor(
) : ViewModel(),
ActionComponent,
IntentHandlingComponent,
ViewableComponent {
ViewableComponent,
RedirectableActionComponent {

override val viewFlow: Flow<ComponentViewType?> = delegate.viewFlow

Expand Down Expand Up @@ -69,6 +71,10 @@ class Adyen3DS2Component internal constructor(
return PROVIDER.canHandleAction(action)
}

override fun setOnRedirectListener(listener: () -> Unit) {
delegate.setOnRedirectListener(listener)
}

override fun onCleared() {
super.onCleared()
Logger.d(TAG, "onCleared")
Expand Down
Expand Up @@ -10,6 +10,7 @@ package com.adyen.checkout.adyen3ds2
import android.content.Context
import android.content.IntentFilter
import com.adyen.checkout.components.core.Amount
import com.adyen.checkout.components.core.AnalyticsConfiguration
import com.adyen.checkout.components.core.internal.BaseConfigurationBuilder
import com.adyen.checkout.components.core.internal.Configuration
import com.adyen.checkout.core.Environment
Expand All @@ -27,7 +28,7 @@ class Adyen3DS2Configuration private constructor(
override val shopperLocale: Locale,
override val environment: Environment,
override val clientKey: String,
override val isAnalyticsEnabled: Boolean?,
override val analyticsConfiguration: AnalyticsConfiguration?,
override val amount: Amount,
val uiCustomization: UiCustomization?,
val threeDSRequestorAppURL: String?,
Expand Down Expand Up @@ -97,7 +98,7 @@ class Adyen3DS2Configuration private constructor(
shopperLocale = shopperLocale,
environment = environment,
clientKey = clientKey,
isAnalyticsEnabled = isAnalyticsEnabled,
analyticsConfiguration = analyticsConfiguration,
amount = amount,
uiCustomization = uiCustomization,
threeDSRequestorAppURL = threeDSRequestorAppURL,
Expand Down
Expand Up @@ -9,7 +9,6 @@
package com.adyen.checkout.adyen3ds2.internal.data.model

import com.adyen.checkout.core.exception.ComponentException
import com.adyen.threeds2.CompletionEvent
import org.json.JSONException
import org.json.JSONObject

Expand All @@ -32,10 +31,10 @@ internal class Adyen3DS2Serializer {
}

@Throws(ComponentException::class)
fun createChallengeDetails(completionEvent: CompletionEvent): JSONObject {
fun createChallengeDetails(transactionStatus: String, errorDetails: String? = null): JSONObject {
val challengeDetails = JSONObject()
try {
val challengeResult = ChallengeResult.from(completionEvent)
val challengeResult = ChallengeResult.from(transactionStatus, errorDetails)
challengeDetails.put(CHALLENGE_DETAILS_KEY, challengeResult.payload)
} catch (e: JSONException) {
throw ComponentException("Failed to create challenge details", e)
Expand All @@ -45,12 +44,13 @@ internal class Adyen3DS2Serializer {

@Throws(ComponentException::class)
fun createThreeDsResultDetails(
completionEvent: CompletionEvent,
authorisationToken: String
transactionStatus: String,
authorisationToken: String,
errorDetails: String? = null,
): JSONObject {
val threeDsDetails = JSONObject()
try {
val challengeResult = ChallengeResult.from(completionEvent, authorisationToken)
val challengeResult = ChallengeResult.from(transactionStatus, errorDetails, authorisationToken)
threeDsDetails.put(THREEDS_RESULT_KEY, challengeResult.payload)
} catch (e: JSONException) {
throw ComponentException("Failed to create ThreeDS Result details", e)
Expand Down

0 comments on commit 639ca08

Please sign in to comment.