Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MOEN-33225 Cards fetch on login #128

Merged
merged 10 commits into from
Sep 18, 2024
10 changes: 10 additions & 0 deletions cards/moengage_cards/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# MoEngage Cards Plugin

# Next Release date

## Next version
- Refresh cards on uniqueID set
- Breaking Change:

| Then | Now |
|:---------------------------------------------:|:----------------------------------:|
| MoEngageCards#setAppOpenCardsSyncListener() | MoEngageCards#setSyncCompleteListener() |

# 15-07-2024

## 3.1.1
Expand Down
6 changes: 3 additions & 3 deletions cards/moengage_cards/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,11 @@ moe.MoEngageCards cards = moe.MoEngageCards("<MOE_APP_ID>");
cards.initialize();
```

Set App Open Cards Sync Listener
Set Cards Sync complete callback listener

```
cards.setAppOpenCardsSyncListener((data) {
debugPrint("Cards App Open Sync Listener: $data");
cards.setSyncCompleteListener((data) {
debugPrint("Cards Sync Listener: $data");
});
```

Expand Down
6 changes: 3 additions & 3 deletions cards/moengage_cards/lib/src/moengage_cards.dart
Original file line number Diff line number Diff line change
Expand Up @@ -123,9 +123,9 @@ class MoEngageCards {
return _cardsPlatform.getUnClickedCardsCount(_appId);
}

/// Listener for Cards App Open Sync Listener
/// Set cards sync complete callback listener
/// [cardsSyncListener] - Callback for Card Sync Completion of type [CardsSyncListener]
void setAppOpenCardsSyncListener(CardsSyncListener cardsSyncListener) {
_cardsPlatform.setAppOpenCardsSyncListener(cardsSyncListener, _appId);
void setSyncCompleteListener(CardsSyncListener cardsSyncListener) {
_cardsPlatform.setSyncCompleteListener(cardsSyncListener, _appId);
}
}
5 changes: 5 additions & 0 deletions cards/moengage_cards_android/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# MoEngage Cards Android Plugin

# Next Release date

## Next version
- Refresh cards on uniqueID set

# 15-07-2024

## 2.1.1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ internal const val METHOD_FETCH_CARDS = "fetchCards"

internal const val METHOD_INBOX_OPEN_CARDS_SYNC = "onInboxOpenCardsSync"
internal const val METHOD_PULL_TO_REFRESH_CARDS_SYNC = "onPullToRefreshCardsSync"
internal const val METHOD_APP_OPEN_CARDS_SYNC = "onAppOpenCardsSync"
internal const val METHOD_GENERIC_CARDS_SYNC = "onCardsSync"
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class EventEmitterImpl(private val callBack: (methodName: String, payload: Strin
}
val syncCompleteJson = cardsSyncToJson(syncCompleteData, event.accountMeta)
val method = when (event.cardEventType) {
CardEventType.APP_OPEN_SYNC -> METHOD_APP_OPEN_CARDS_SYNC
CardEventType.GENERIC_SYNC -> METHOD_GENERIC_CARDS_SYNC
CardEventType.INBOX_OPEN_SYNC -> METHOD_INBOX_OPEN_CARDS_SYNC
CardEventType.PULL_TO_REFRESH_SYNC -> METHOD_PULL_TO_REFRESH_CARDS_SYNC
}
Expand Down
5 changes: 5 additions & 0 deletions cards/moengage_cards_ios/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# MoEngage Cards iOS Plugin

# Next Release date

## Next version
- Refresh cards on uniqueID set

# 03-07-2024

## 2.2.0
Expand Down
8 changes: 3 additions & 5 deletions cards/moengage_cards_ios/lib/moengage_cards_ios.dart
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,9 @@ class MoEngageCardsIOS extends MoEngageCardsPlatform {
}

@override
void setAppOpenCardsSyncListener(
CardsSyncListener cardsSyncListener,
String appId,
) {
super.setAppOpenCardsSyncListener(cardsSyncListener, appId);
void setSyncCompleteListener(
CardsSyncListener cardsSyncListener, String appId) {
super.setSyncCompleteListener(cardsSyncListener, appId);
methodChannel.invokeMethod(
methodSetAppOpenCardsSyncListener,
getAccountMeta(appId),
Expand Down
5 changes: 5 additions & 0 deletions cards/moengage_cards_platform_interface/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# MoEngage Cards Platform Interface

# Next Release date

## Next version
- Refresh cards on uniqueID set

# 21-03-2024

## 2.0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,12 +116,10 @@ abstract class MoEngageCardsPlatformInterface extends PlatformInterface {
Future<int> getUnClickedCardsCount(String appId) async =>
throw UnimplementedError();

/// Listener for Cards App Open Sync Listener
/// Listener for Cards Sync Listener whenever MoEngage SDK syncs the cards
/// [cardsSyncListener] - Callback for Card Sync Completion of type [CardsSyncListener]
/// [appId] - MoEngage App ID
void setAppOpenCardsSyncListener(
CardsSyncListener cardsSyncListener,
String appId,
) =>
void setSyncCompleteListener(
CardsSyncListener cardsSyncListener, String appId) =>
throw UnimplementedError();
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ import '../../moengage_cards_platform_interface.dart';

/// Callback Cache for Cards Module
class CallbackCache {
/// App Open Cards Sync Listener
CardsSyncListener? appOpenSyncListener;
/// Set cards sync complete callback listener
/// Currently applicable for AppOpen Sync, fetching cards when unique id is set.
CardsSyncListener? cardsSyncListener;

/// Inbox Open Cards Sync Listener
CardsSyncListener? inboxOpenSyncListener;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,14 @@ class CardsController {
.getCallbackCacheForInstance(accountMeta.appId)
.pullToRefreshOpenSyncListener
?.call(data);
} else if (call.method == methodOnAppOpenCardsSync) {
} else if (call.method == methodOnCardsSync) {
final syncJson = json[keyData]?[keySyncCompleteData];
final SyncCompleteData? data = (syncJson != null)
? SyncCompleteData.fromJson(syncJson as Map<String, dynamic>)
: null;
CardsInstanceProvider()
.getCallbackCacheForInstance(accountMeta.appId)
.appOpenSyncListener
.cardsSyncListener
?.call(data);
} else if (call.method == methodOnInboxOpenCardsSync) {
final syncJson = json?[keyData]?[keySyncCompleteData];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,10 @@ abstract class MoEngageCardsPlatform extends MoEngageCardsPlatformInterface {
}

@override
void setAppOpenCardsSyncListener(
CardsSyncListener cardsSyncListener,
String appId,
) {
void setSyncCompleteListener(
CardsSyncListener cardsSyncListener, String appId) {
CardsInstanceProvider()
.getCallbackCacheForInstance(appId)
.appOpenSyncListener = cardsSyncListener;
.cardsSyncListener = cardsSyncListener;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,11 @@ const String methodNewCardsCount = 'getNewCardsCount';
const String methodUnClickedCardsCount = 'unClickedCardsCount';
const String methodOnInboxOpenCardsSync = 'onInboxOpenCardsSync';
const String methodPullToRefreshCardsSync = 'onPullToRefreshCardsSync';
const String methodOnAppOpenCardsSync = 'onAppOpenCardsSync';
const String methodOnCardsSync = 'onCardsSync';

//JSON Values Constants
const String argumentPullToRefreshSync = 'PULL_TO_REFRESH';
const String argumentInboxOpenSync = 'INBOX_OPEN';
const String argumentAppOpenSync = 'APP_OPEN';
const String argumentAllCards = 'All';
const String argumentImmediateSync = 'IMMEDIATE';
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,8 @@ SyncType syncTypeFromString(String? syncType) {
return SyncType.inboxOpen;
case argumentAppOpenSync:
return SyncType.appOpen;
case argumentImmediateSync:
return SyncType.immediate;
default:
throw UnimplementedError('Sync Type Not Supported');
}
Expand All @@ -127,6 +129,8 @@ String syncTypeToString(SyncType syncType) {
return argumentInboxOpenSync;
case SyncType.appOpen:
return argumentAppOpenSync;
case SyncType.immediate:
return argumentImmediateSync;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,9 @@ enum SyncType {
inboxOpen,

/// Sync when user performs pull to refresh action
pullToRefresh
pullToRefresh,

/// Sync type when SDK sync the cards immediately.
/// Currently applicable for SDK fetching cards immediately when uniqueId is set
immediate
}
1 change: 0 additions & 1 deletion example/android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
buildscript {
ext.kotlin_version = '1.9.23'
repositories {
mavenLocal()
google()
jcenter()
maven { url 'https://developer.huawei.com/repo/' }
Expand Down
4 changes: 2 additions & 2 deletions example/lib/cards/cards_home.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ class _CardsHomeState extends State<CardsHome> {
@override
void initState() {
super.initState();
cards.setAppOpenCardsSyncListener((moe.SyncCompleteData? data) {
debugPrint('Cards App Open Sync Listener: $data');
cards.setSyncCompleteListener((moe.SyncCompleteData? data) {
debugPrint('Cards Sync Listener: $data');
});
cards.initialize();
}
Expand Down
4 changes: 2 additions & 2 deletions example/lib/cards/cards_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ class _CardsScreenState extends State<CardsScreen>
@override
void initState() {
super.initState();
cards.setAppOpenCardsSyncListener((moe.SyncCompleteData? data) {
debugPrint('Cards App Open Sync Listener Callback: $data');
cards.setSyncCompleteListener((moe.SyncCompleteData? data) {
debugPrint('Cards Sync Listener Callback: $data');
});
setUpTabs();
cards.onCardsSectionLoaded((moe.SyncCompleteData? data) {
Expand Down