Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 26 additions & 25 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,28 +29,29 @@ jobs:
skip_test: true
dry_run: false

notify:
name: Notify Slack
needs: publish
# Release context is only available when triggered by a release (not workflow_dispatch)
if: github.event_name == 'release'
runs-on: ubuntu-latest

steps:
- name: Send release announcement to Slack
env:
SLACK_WEBHOOK: ${{ secrets.RELEASES_SLACK_WEBHOOK }}
RELEASE_TAG: ${{ github.event.release.tag_name }}
RELEASE_BODY: ${{ github.event.release.body }}
RELEASE_URL: ${{ github.event.release.html_url }}
run: |
# Extract the changelog from the release body:
# drop the "More info" trailer and the leading "- " list markers.
# Trailing blank lines are stripped by the command substitution.
changelog=$(printf '%s\n' "$RELEASE_BODY" | tr -d '\r' | sed -e '/^More info:/,$d' -e 's/^- //')

text=$(printf '*Flutter SDK version `%s`* is now available :rocket:\n```%s```\nhttps://pub.dev/packages/didomi_sdk/versions/%s\n%s' \
"$RELEASE_TAG" "$changelog" "$RELEASE_TAG" "$RELEASE_URL")

jq -n --arg text "$text" '{ text: $text }' \
| curl --silent --show-error --fail -X POST -H 'Content-Type: application/json' -d @- "$SLACK_WEBHOOK"
# Disable notify steps: either use a dedicated webhook or look for expected parameters (message build from those params)
# notify:
# name: Notify Slack
# needs: publish
# # Release context is only available when triggered by a release (not workflow_dispatch)
# if: github.event_name == 'release'
# runs-on: ubuntu-latest
#
# steps:
# - name: Send release announcement to Slack
# env:
# SLACK_WEBHOOK: ${{ secrets.RELEASES_SLACK_WEBHOOK }}
# RELEASE_TAG: ${{ github.event.release.tag_name }}
# RELEASE_BODY: ${{ github.event.release.body }}
# RELEASE_URL: ${{ github.event.release.html_url }}
# run: |
# # Extract the changelog from the release body:
# # drop the "More info" trailer and the leading "- " list markers.
# # Trailing blank lines are stripped by the command substitution.
# changelog=$(printf '%s\n' "$RELEASE_BODY" | tr -d '\r' | sed -e '/^More info:/,$d' -e 's/^- //')
#
# text=$(printf '*Flutter SDK version `%s`* is now available :rocket:\n```%s```\nhttps://pub.dev/packages/didomi_sdk/versions/%s\n%s' \
# "$RELEASE_TAG" "$changelog" "$RELEASE_TAG" "$RELEASE_URL")
#
# jq -n --arg text "$text" '{ text: $text }' \
# | curl --silent --show-error --fail -X POST -H 'Content-Type: application/json' -d @- "$SLACK_WEBHOOK"
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## 2.31.0
- Update latest versions of native Android (2.47.0) and iOS (2.47.0) sdks.
- Fix DCS signature events (`onDcsSignatureReady`, `onDcsSignatureError`) never being triggered.

## 2.30.0
- Update latest versions of native Android (2.46.0) and iOS (2.46.0) sdks.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ class DidomiEventStreamHandler : EventChannel.StreamHandler, DidomiEventListener

@Deprecated("SPI purposes are now displayed in preferences screen.", replaceWith = ReplaceWith("noticeClickMoreInfo"))
override fun noticeClickViewSPIPurposes(event: NoticeClickViewSPIPurposesEvent) {
sendEvent("noticeClickViewSPIPurposes")
sendEvent("onNoticeClickViewSPIPurposes")
}

override fun noticeClickMoreInfo(event: NoticeClickMoreInfoEvent) {
Expand Down Expand Up @@ -127,7 +127,7 @@ class DidomiEventStreamHandler : EventChannel.StreamHandler, DidomiEventListener

@Deprecated("SPI purposes are now displayed in preferences screen.", replaceWith = ReplaceWith("noticeClickMoreInfo"))
override fun preferencesClickViewSPIPurposes(event: PreferencesClickViewSPIPurposesEvent) {
sendEvent("preferencesClickViewSPIPurposes")
sendEvent("onPreferencesClickViewSPIPurposes")
}

override fun preferencesClickSaveChoices(event: PreferencesClickSaveChoicesEvent) {
Expand Down Expand Up @@ -180,7 +180,7 @@ class DidomiEventStreamHandler : EventChannel.StreamHandler, DidomiEventListener

@Deprecated("SPI purposes now trigger the same events as other purposes.", replaceWith = ReplaceWith("preferencesClickPurposeAgree"))
override fun preferencesClickSPIPurposeAgree(event: PreferencesClickSPIPurposeAgreeEvent) {
sendEvent("preferencesClickSPIPurposeAgree", mapOf("purposeId" to event.purposeId))
sendEvent("onPreferencesClickSPIPurposeAgree", mapOf("purposeId" to event.purposeId))
}

@Deprecated("SPI purposes now trigger the same events as other purposes.", replaceWith = ReplaceWith("preferencesClickPurposeDisagree"))
Expand All @@ -200,7 +200,7 @@ class DidomiEventStreamHandler : EventChannel.StreamHandler, DidomiEventListener

@Deprecated("SPI purposes now trigger the same events as other purposes.", replaceWith = ReplaceWith("preferencesClickSaveChoices"))
override fun preferencesClickSPIPurposeSaveChoices(event: PreferencesClickSPIPurposeSaveChoicesEvent) {
sendEvent("preferencesClickSPIPurposeSaveChoices")
sendEvent("onPreferencesClickSPIPurposeSaveChoices")
}

/*
Expand Down
13 changes: 13 additions & 0 deletions example/lib/events_helper.dart
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,19 @@ class EventsHelper {
onEvent("Language has not changed: $reason");
};

// DCS signature events
didomiListener.onDcsSignatureReady = () {
onEvent("DCS signature is ready");
};
didomiListener.onDcsSignatureError = () {
onEvent("DCS signature generation failed");
};

// External SDKs integration events
didomiListener.onIntegrationError = (event) {
onEvent("Integration error on ${event.integrationName}: ${event.reason}");
};

// Widgets events
didomiListener.onShowWidget = (event) {
onEvent("Widget displayed (widgetId: ${event.widgetId}, layerName: ${event.layerName})");
Expand Down
59 changes: 57 additions & 2 deletions lib/events/events_handler.dart
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,61 @@ class EventsHandler {
}
break;

/// SPI screen events

case "onNoticeClickViewSPIPurposes":
for (var listener in listeners) {
// ignore: deprecated_member_use_from_same_package
listener.onNoticeClickViewSPIPurposes();
}
break;

case "onPreferencesClickViewSPIPurposes":
for (var listener in listeners) {
// ignore: deprecated_member_use_from_same_package
listener.onPreferencesClickViewSPIPurposes();
}
break;

case "onPreferencesClickSPIPurposeAgree":
final String spiPurposeAgreeId = event["purposeId"].toString();
for (var listener in listeners) {
// ignore: deprecated_member_use_from_same_package
listener.onPreferencesClickSPIPurposeAgree(spiPurposeAgreeId);
}
break;

case "onPreferencesClickSPIPurposeDisagree":
final String spiPurposeDisagreeId = event["purposeId"].toString();
for (var listener in listeners) {
// ignore: deprecated_member_use_from_same_package
listener.onPreferencesClickSPIPurposeDisagree(spiPurposeDisagreeId);
}
break;

case "onPreferencesClickSPICategoryAgree":
final String spiCategoryAgreeId = event["categoryId"].toString();
for (var listener in listeners) {
// ignore: deprecated_member_use_from_same_package
listener.onPreferencesClickSPICategoryAgree(spiCategoryAgreeId);
}
break;

case "onPreferencesClickSPICategoryDisagree":
final String spiCategoryDisagreeId = event["categoryId"].toString();
for (var listener in listeners) {
// ignore: deprecated_member_use_from_same_package
listener.onPreferencesClickSPICategoryDisagree(spiCategoryDisagreeId);
}
break;

case "onPreferencesClickSPIPurposeSaveChoices":
for (var listener in listeners) {
// ignore: deprecated_member_use_from_same_package
listener.onPreferencesClickSPIPurposeSaveChoices();
}
break;

/// Consent events

case "onVendorStatusChanged":
Expand Down Expand Up @@ -304,13 +359,13 @@ class EventsHandler {

/// DCS signature events

case "onDcsSignatureError":
case "onDCSSignatureError":
for (var listener in listeners) {
listener.onDcsSignatureError();
}
break;

case "onDcsSignatureReady":
case "onDCSSignatureReady":
for (var listener in listeners) {
listener.onDcsSignatureReady();
}
Expand Down