Changelog

4.2.0

Breaking Changes:
 
  • None
New Features:
  • Teak#handleDeepLinkPath has been added to allow you manually resolve a deep link path, e.g. /foo/bar?fizz=buzz
  • Teak#setOptOutEmail has been added to let users opt in/out of Teak email campaigns.
  • Teak#setOptOutPush has been added to let users opt in/out of Teak push notification campaigns.
  • Teak$UserDataEvent has been added to provide user specific state, including opt-out status for Teak email and push campaigns and the ‘additional data’ for the user. This supercedes Teak$AdditionalDataEvent, which has been deprecated.
Bug Fixes:
  • Fixed trace log output for identifyUser to include parameter names
Deprecations:
  • Teak$AdditionalDataEvent has been deprecated, and will be removed in the SDK 5 family. Please use Teak$UserDataEvent.

4.1.8

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

4.1.7

Breaking Changes:
 
  • None
New Features:
  • Added io_teak_no_auto_track_purchase to prevent automatic purchase collection
  • Added support for Google Play Billing v4
Bug Fixes:
  • Fix Android 12 formatting of text-only notifications
  • Fix issue of opening browser when launched with the host for a teak shortlink, but no path

4.1.6

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fix for crash when an Amazon build did not contain Google Play Billing references.

4.1.5

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

4.1.4

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fixes null Iterator exception when a purchase is cancled in Google Play Billing

4.1.3

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

4.1.2

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fixes issue in Android 12 compatibility that prevented push notifications from displaying when the app was not running.

4.1.1

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Mark GooglePlayBillingV3 and Amazon store classes Unobfuscatable.

4.1.0

Breaking Changes:
 
  • If you target Android 12, you must add android:exported specifications to the receiver definition for io.teak.sdk.push.ADMPushProvider$MessageAlertReceiver:

    <receiver
        android:name="io.teak.sdk.push.ADMPushProvider$MessageAlertReceiver"
        android:permission="com.amazon.device.messaging.permission.SEND"
        android:exported="true">
    
New Features:
  • Added support for targeting Android 12 (API level 31)
  • Added a flag to preview SDK 5 changes, io_teak_sdk5_behaviors
    • If io_teak_sdk5_behaviors is enabled, Teak will no longer automatically collect Facebook Access Token, instead you must pass the Facebook User Id to Teak#identifyUser
  • Added Teak$PostLaunchSummaryEvent which will contain launch information for both Teak attributed, and non-Teak attributed launches
Bug Fixes:
  • When app is launched via an email link Teak$NotificationEvent event is now correctly posted.

4.0.2

Breaking Changes:
 
  • If you target Android 12, you must add android:exported specifications to the receiver definition for io.teak.sdk.push.ADMPushProvider$MessageAlertReceiver:

    <receiver
        android:name="io.teak.sdk.push.ADMPushProvider$MessageAlertReceiver"
        android:permission="com.amazon.device.messaging.permission.SEND"
        android:exported="true">
    
New Features:
  • Added support for targeting Android 12 (API level 31)
Bug Fixes:
  • Fixed a bug where handling links would only report the creative name for links and not email links.

4.0.1

Version number bump only.

4.0.0

Breaking Changes:
 
  • Deprecated method Teak.onNewIntent removed
  • Support for Adobe AIR removed
  • support-v4 is no longer supported, AndroidX is now required
  • If you use the Facebook SDK, version 4 is now the minimum supported version
  • Teak will no longer create a Firebase instance if one does not exist
    • io_teak_ignore_default_firebase_configuration removed
    • io_teak_gcm_sender_id removed
    • io_teak_firebase_app_id removed
    • io_teak_firebase_api_key removed
    • io_teak_firebase_project_id removed
  • Minimum target SDK is now API 30
  • com.android.installreferrer version used is now 2.2
New Features:
  • Now using v2 Signatures for request signing (this is not a user-facing change).
  • Now supports out-of-memory fallbacks for all notifiation images.
  • Added teakScheduleId and teakCreativeId to NotificationEvent
  • Added teakScheduleId and teakCreativeId to RewardClaimEvent
Bug Fixes:
  • Fixed a bug where links created on the Teak Dashboard could only link to the teakXXXXX:// scheme.

3.5.3

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fixed a bug where links created on the Teak Dashboard could only link to the teakXXXXX:// scheme.

3.5.2

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

3.5.1

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

3.5.0

Breaking Changes:
 
  • Requires Firebase Messaging 21 minimum
New Features:
  • None
Bug Fixes:
  • Resets firstSendTime on UserProfile after send.

3.4.4

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fix deadlock when a UnitySendMessage call would cause another callback into Teak under certain circumstances

3.4.2

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fix singleton FCMPushProvider to allow operation before Teak initialization

3.4.2

Breaking Changes:
 
  • None
New Features:
  • Let users use theor own FirebaseMessagingService
  • Added isTeakNotification
  • Added onMessageReceivedExternal
Bug Fixes:
  • None

3.4.1

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fix mutex lock order to resolve potential deadlock

3.4.0

Breaking Changes:
 
  • None
New Features:
  • Supports Amazon Device Messaging 1.1.0
  • LaunchedFromLink event
Bug Fixes:
  • None

3.3.2

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fixes deadlock in Session.isCurrentSession

3.3.1

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

3.3.0

Breaking Changes:
 
  • If using Teak to create a separate Firebase instance, you must add io_teak_firebase_project_id and
New Features:
  • Support Firebase Project Id for Firebase 20.1.6+
Bug Fixes:
  • Push state chain limited to a length of 50
  • Fix public static void identifyUser(final String userIdentifier) overloaded method
  • No longer process deep links which are not Teak links
  • Reduce thread allocations, and add further measurement around thread and executor allocations

3.2.0

Breaking Changes:
 
  • None
New Features:
  • Supports Facebook SDK 6.x
  • Added io_teak_log_trace, enable to log out every Teak call with parameters
  • Added logout
  • Added teakChannelName to the dictionary reported by notification and reward claim events
Bug Fixes:
  • Fixes compatibility with Firebase 20.1+

3.1.1

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • No longer will call deep links again, or resolve rewards again, when the user id is changed.

3.1.0

Breaking Changes:
 
  • None
New Features:
  • /teak_internal/app_settings deep link added. Opens Android settings to the settings for this app.
  • Foreground notification support.
Bug Fixes:
  • Added additional proguard keep paterns.

3.0.2

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

3.0.1

Breaking Changes:
 
  • None
New Features:
  • Teak can now optionally ignore the default Firebase configuration, use <meta-data android:name="io_teak_ignore_default_firebase_configuration" android:value="true" />
Bug Fixes:
  • None

3.0.0

Breaking Changes:
 
  • minSdkVersion is now 16
  • targetSdkVersion must now be 28 or higher
New Features:
  • Teak can now use androidx or the support-v4 libraries for its dependencies.
Bug Fixes:
  • Can now use the 5.x series of the Facebook SDK.

2.3.0

Breaking Changes:
 
  • None
New Features:
  • The incoming path used to parse a deep link is sent along to the handler in the key __incoming_path
  • The full url used to parse a deep link is sent along to the handler in the key __incoming_url
  • identifyUser now takes email as a parameter
Bug Fixes:
  • None

2.2.0

Breaking Changes:
 
  • None
New Features:
  • FOREGROUND_NOTIFICATION_INTENT is broadcast when a Push Notification is recieved while the app is in the foreground.
  • ms_since_first_event is now sent with batched requests.
  • Added deviceBoard and deviceProduct to device information.
  • Teak.setLogListener for getting callbacks when the Teak SDK would log an event.
Bug Fixes:
  • Suppress some log spam when looking to see if NotificationManagerCompat.areNotificationsEnabled is supported.
  • Stopped some of the fine-grain checking for what IInAppBillingService supports, to prevent possible ANRs.
  • All threads and executors are now named, so that any ANR/crash report which includes thread names will clearly show what Teak is doing in that ANR/crash.

2.1.3

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

2.1.2

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

2.1.1

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • io_teak_enable_caching has been removed
  • app_version reported to Sentry should be a string, not int
  • Sentry reporting Job is now working properly

2.1.0

Breaking Changes:
 
  • None
New Features:
  • Support trackEvent for Adobe AIR
  • Added incrementEvent
  • Now tracking PackageInfo.versionName (instead of just PackageInfo.versionCode)
  • Added support for Google Play’s com.android.installreferrer.api.InstallReferrerClient
  • Added support for specifying the Android store, using io_teak_store_id. Will detect Amazon automatically; defaults to Google Play.
Bug Fixes:
  • Properly handle deep links with ‘?’ or ‘#’ in a URL path element

2.0.1

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • ADMPushProvider$MessageAlertReceiver no longer obfuscated.

2.0.0

Breaking Changes:
 
  • Direct GCM support removed, now using Firebase
  • Firebase Job Dispatcher is now used for a unified Teak worker
    • Removes io.teak.sdk.service.RavenService
    • Removes io.teak.sdk.service.DeviceStateService
    • Changes io.teak.sdk.service.JobService into a Firebase JobDispatcher
  • userHasDisabledNotifications -> getNotificationStatus
New Features:
  • ShortcutBadger @ 50d422d1792b394a5a6cda10cc358ba58436fe29
  • io_teak_enable_caching now defaults to true
Bug Fixes:
  • If an OutOfMemoryError is thrown during construction of a notification’s expanded view the expanded view will simply be omitted instead of not showing the entire notification.

1.0.2

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • ADMPushProvider$MessageAlertReceiver no longer obfuscated.

1.0.1

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

1.0.0

Breaking Changes:
 
  • None
New Features:
  • Notification asset downloads can be cached, if io_teak_enable_caching is enabled. It is disabled by default, but everyone is encouraged to try using it.
  • Long Distance notifications
Bug Fixes:
  • Now defaults to Google Play Store if there is no installer package, instead of disabling tracking
  • Video notifications should no longer get sorted to the bottom after refresh on Android 8+

0.19.0

Breaking Changes:
 
  • None
New Features:
  • Notifications will now retry asset loading if an asset fails to load. Delay is 2, 4, and 8 seconds.
  • Android P support
  • android.os.Build.SERIAL will not be used under Android P
  • Updated Sentry exception reporting properties
  • Tracks historical changes in the state of push permissions
  • Per-user opt-out of tracking, configured via identifyUser
Bug Fixes:
  • In the ZIP distribution of the Android SDK, the UUID for the ProGuard file sent to Sentry was not being included, this is fixed
  • Rarely a deadlock could occur when a GCM registration update came in during a Session state change, this is fixed

0.18.0

Breaking Changes:
 
  • None
New Features:
  • Ability to disable collection of IDFA, Push Key, and/or Facebook Access Token

    • <meta-data android:name="io_teak_enable_idfa" android:value="false" />
    • <meta-data android:name="io_teak_enable_facebook" android:value="false" />
    • <meta-data android:name="io_teak_enable_push_key" android:value="false" />
Bug Fixes:
  • If Teak.onCreate fails, don’t crash with a null pointer

0.17.0

Breaking Changes:
 
  • Requires io.teak.sdk.service.JobService for Android 8 job compatibility.

  • Unity requires no changes.

  • Adobe AIR requires adding <service android:name="io.teak.sdk.service.JobService" android:permission="android.permission.BIND_JOB_SERVICE" android:exported="true"/> to XML

  • Renamed some public static final fields (This should have no impact unless you were using these for some very strange reason)

    • TEAK_API_KEY -> TEAK_API_KEY_RESOURCE
    • TEAK_APP_ID -> TEAK_APP_ID_RESOURCE
    • TEAK_GCM_SENDER_ID -> TEAK_GCM_SENDER_ID_RESOURCE
New Features:
  • Android 8 job compatibility
  • Reward Link Name is now the ‘creative name’ if the on reward callback was triggered from a deep link
Bug Fixes:
  • None

0.16.0

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fix corner case where GCM reg would not get sent if it came in during identifyUser (for real this time)
  • Fixes integration checker when <activity-alias> is used

0.15.0

Breaking Changes:
 
  • None
New Features:
  • User Profile support
  • Request batchfing for trackEvent, user profile
Bug Fixes:
  • Fix corner case where GCM reg would not get sent if it came in during identifyUser

0.14.0

Breaking Changes:
 
  • None
New Features:
  • Notification buttons in expanded view
  • Aspect ratio now preserved in small view notifications
Bug Fixes:
  • Launch deep-link now takes precedence over install-attribution deep link on first launch of app

0.13.8

Breaking Changes:
 
  • None
New Features:
  • Added userHasDisabledNotifications
  • Added openSettingsAppToThisAppsSettings
  • Added setApplicationBadgeNumber
  • teakRewardId now included in the REWARD_CLAIM_ATTEMPT event
  • Enhanced Integration Checks
Bug Fixes:
  • Schedule/Cancel notification returns id as a string

0.13.7

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • None

0.13.6

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Purchase tracking works once again
  • Send common payload during reward claim
  • RetryableTask now immediately fails if ClassNotFoundException (if GCM isn’t linked)

0.13.5

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fix crash when changing user id due to locking Session A and unlocking Session B
  • Fix non-delivery of push notifications when app had been killed in the background
  • Try and catch initialization errors from TeakWrapper and report them

0.13.3

Breaking Changes:
 
  • None
New Features:
  • You can now load images in push notifications from your Android assets, example assets:///pixelgrid_2000x2000.png (note triple slash)
  • Using NONE for an image resource will now remove it from the layout
  • Notifications will no longer combine into a single notification (in as much as is possible to control) on Android 8+ only
Bug Fixes:
  • None

0.13.2

Breaking Changes:
 
  • If you are compiling with a target SDK of Android 26 or greater, Teak will now check requirements and throw an exception if the Android v4 support lib doesn’t support Android 26 features (required features for push functionality)
New Features:
  • None
Bug Fixes:
  • Support explicit intents for Android 26+
  • Support notification categories for Android 26+
  • ADM listener fixed
  • Deadlock due to very slow network conditions fixed

0.13.1

Breaking Changes:
 
  • None
New Features:
  • Unity/Air wrapper classes now included in core for testability and better continuous integration performance
Bug Fixes:
  • Hotfix from 0.12.9 integrated
  • Internal system re-write

0.13.0

Breaking Changes:
 
  • io.teak.sdk.TeakUnityPlayerNativeActivity renamed to io.teak.sdk.wrapper.unity.TeakUnityPlayerNativeActivity
  • io.teak.sdk.TeakUnityPlayerActivity renamed to io.teak.sdk.wrapper.unity.TeakUnityPlayerActivity
  • io.teak.sdk.Application renamed to io.teak.sdk.wrapper.Application
New Features:
  • None
Bug Fixes:
  • None

0.12.8

Breaking Changes:
 
  • Use Teak.registerDeepLink instead of DeepLink.registerRoute
New Features:
  • TeakNotification.cancelAll
  • TeakNotification calls now return a JSON string with status and data
Bug Fixes:
  • Setting verbose logging will immediately take effect
  • Corner-case crash fix in Logs
  • Attach additional info to exception reporting, teakCreativeName
  • Fixed caught-exception in GCM if the OS kills the GCM service

0.12.7

Breaking Changes:
 
  • None
New Features:
  • Additional info in the notification & reward payload
Bug Fixes:
  • Add specific catches for exceptions we should ignore, and not report:
  • TEAK-SDK-F, TEAK-SDK-M, TEAK-SDK-X, TEAK-SDK-11, TEAK-SDK-Q, TEAK-SDK-Z, TEAK-SDK-N, TEAK-SDK-K, TEAK-SDK-W, TEAK-SDK-V, TEAK-SDK-T, TEAK-SDK-S, TEAK-SDK-J, TEAK-SDK-P
  • Fixed TEAK-SDK-9
  • Fixed issue with Android < 5 and custom notification icons

0.12.6

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Fix parameter checking logic bug in trackEvent
  • Fix ‘cold start’ attribution bug

0.12.5

Breaking Changes:
 
  • None
New Features:
  • Add support for:
    • io_teak_notification_accent_color
    • io_teak_small_notification_icon
    • io_teak_large_notification_icon
Bug Fixes:
  • Back-stack loop bug fix
  • Catch SecurityException on very old Android which requires android.permission.VIBRATE
Misc:
  • Raven service changed from error to warning to prevent developer anxiety

0.12.4

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Additional listeners for GCM registration key updates, and improvements in handling GCM registrations.

0.12.3

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Use layout_centerVertical on the app icon to support various background image heights
  • Prevent back-stack loops from out of app deep-links

0.12.2

Breaking Changes:
 
  • None
New Features:
  • Push notification remote syntax is now versioned (non-breaking), new features:
  • Large/small image background
  • Support setting credentials in <meta-data> for Adobe Air.
Bug Fixes:
  • Fix state machine bug where a RemoteConfiguration coming back when device was in background would assign the Configured Session state.
  • No longer calls ACTION_CLOSE_SYSTEM_DIALOGS when dismissing notifications
  • No longer DDoS ourselves with remote logging

0.12.1

Breaking Changes:
 
  • None
New Features:
  • None
Bug Fixes:
  • Unity and Adobe AIR now use a unified way of assigning their SDK versions

0.12.0

Breaking Changes:
 
  • None
New Features:
  • Remote logging
  • Remote exception tracking
Bug Fixes:
  • None