Skip to content

Commit b530585

Browse files
committed
adding get and save LastTimeInAppDismissed to OneSignalPrefs
This is taking a Date and transforming it into a string before saving it in OneSignalPrefs. The format is using the format from the Date class's toString() method
1 parent 3c232b9 commit b530585

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

OneSignalSDK/onesignal/src/main/java/com/onesignal/OSInAppMessageRepository.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,12 @@
1010
import org.json.JSONException;
1111
import org.json.JSONObject;
1212

13+
import java.text.ParseException;
14+
import java.text.SimpleDateFormat;
1315
import java.util.ArrayList;
16+
import java.util.Date;
1417
import java.util.List;
18+
import java.util.Locale;
1519
import java.util.Set;
1620

1721
class OSInAppMessageRepository {
@@ -447,6 +451,33 @@ void saveIAMs(final String inAppMessages) {
447451
inAppMessages);
448452
}
449453

454+
void saveLastTimeInAppDismissed(Date lastTimeInAppDismissed) {
455+
String lastTimeDismissedString = lastTimeInAppDismissed != null ?
456+
lastTimeInAppDismissed.toString() : null;
457+
sharedPreferences.saveString(
458+
OneSignalPrefs.PREFS_ONESIGNAL,
459+
OneSignalPrefs.PREFS_OS_LAST_TIME_IAM_DISMISSED,
460+
lastTimeDismissedString);
461+
}
462+
463+
@Nullable
464+
Date getLastTimeInAppDismissed() {
465+
String lastTimeDismissedString = sharedPreferences.getString(
466+
OneSignalPrefs.PREFS_ONESIGNAL,
467+
OneSignalPrefs.PREFS_OS_LAST_TIME_IAM_DISMISSED, null);
468+
if (lastTimeDismissedString == null) {
469+
return null;
470+
}
471+
// This pattern matches the pattern used by the Date class's toString() method
472+
SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
473+
try {
474+
return format.parse(lastTimeDismissedString);
475+
} catch (ParseException exception) {
476+
OneSignal.onesignalLog(OneSignal.LOG_LEVEL.ERROR, exception.getLocalizedMessage());
477+
return null;
478+
}
479+
}
480+
450481
private void printHttpSuccessForInAppMessageRequest(String requestType, String response) {
451482
logger.debug("Successful post for in-app message " + requestType + " request: " + response);
452483
}

OneSignalSDK/onesignal/src/main/java/com/onesignal/OneSignalPrefs.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ class OneSignalPrefs {
113113
public static final String PREFS_OS_IMPRESSIONED_IAMS = "PREFS_OS_IMPRESSIONED_IAMS";
114114
public static final String PREFS_OS_CLICKED_CLICK_IDS_IAMS = "PREFS_OS_CLICKED_CLICK_IDS_IAMS";
115115
public static final String PREFS_OS_PAGE_IMPRESSIONED_IAMS = "PREFS_OS_PAGE_IMPRESSIONED_IAMS";
116+
public static final String PREFS_OS_LAST_TIME_IAM_DISMISSED = "PREFS_OS_LAST_TIME_IAM_DISMISSED";
116117

117118
// Player Purchase Keys
118119
static final String PREFS_PURCHASE_TOKENS = "purchaseTokens";

0 commit comments

Comments
 (0)