{"_id":"5769345747693a0e00002aa0","parentDoc":null,"user":"54aa7f3f9bb00c0b00cb899b","project":"54aa7f773b56130b0056c86e","__v":6,"category":{"_id":"55781fe35129590d003ff4fe","version":"55781fe25129590d003ff4f7","pages":["55781fe35129590d003ff4ff","55781fe35129590d003ff500","56198964fa2a6d0d002a136b","561989e9fa2a6d0d002a136e"],"project":"54aa7f773b56130b0056c86e","__v":3,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-01-05T17:07:38.508Z","from_sync":false,"order":7,"slug":"resources","title":"Resources"},"githubsync":"","version":{"_id":"55781fe25129590d003ff4f7","project":"54aa7f773b56130b0056c86e","forked_from":"54aa7f773b56130b0056c871","__v":6,"createdAt":"2015-06-10T11:30:42.700Z","releaseDate":"2015-06-10T11:30:42.700Z","categories":["55781fe35129590d003ff4f8","55781fe35129590d003ff4f9","55781fe35129590d003ff4fa","55781fe35129590d003ff4fb","55781fe35129590d003ff4fc","55781fe35129590d003ff4fd","55781fe35129590d003ff4fe","564bbc7e8841060d00abb2ee","565b66c446118c0d00dcb0bb","56898269f8dc340d00308c13","582318b23b961a0f009516a1","594a848c9f4771001a43c959"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"Developers","version_clean":"2.0.0","version":"2.0"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-06-21T12:34:31.930Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":2,"body":"[block:parameters]\n{\n  \"data\": {\n    \"26-0\": \"21.06.2016\",\n    \"26-1\": \"2.7.3\",\n    \"26-2\": \"1. Optimized Get Inbox Requests\\n2. Optimized Start Session when entering via notification\\n3. Get Inbox is no longer called when entering app via notification\",\n    \"27-0\": \"09.06.2016\",\n    \"27-1\": \"2.7.2\",\n    \"27-2\": \"1. Fixed Realm Migration\\n2. Sending a geofence will also send current_location\\n3. Removed Acra\\n4. GetInboxItem will now show a message to the user if the request fails\\n5. SendCustomEvent will no longer show an JSONOBJECT exception\\n6. SendCustomEvent will now call onFail when the request fails\",\n    \"28-2\": \"1. Added Deduping - new methods startPulsateSessionForAlias and logoutCurrentAlias\\n2. Reworked beacon service to use AltBeacon\\n3. Services will no longer run on the main UI thread\\n4. Added new methods - getUnreadCount, sendLocationWithBeaconEvents, setAuthorizationData,\\n5. Added support for polygonal geofences\\n6. Updated google play service libraries to version 8.4.0\\n7. Session Managment has been reworked\\n8. Fix a bug that caused some impressions to be duplicated\\n9. Default Inbox style is now called PulsateInboxTheme - if you want to customize the style create a style named \\\"PulsateInboxTheme\\\" in your styles.xml and the default style will be overridden\\n10. Optimized battery usage\\n11. Some fixes to found bugs - possible null pointers, developers can now use realm with Pulsate\",\n    \"28-1\": \"2.7.0\",\n    \"28-0\": \"12.05.2016\",\n    \"29-0\": \"12.02.2016\",\n    \"29-1\": \"2.6.2\",\n    \"29-2\": \"1. Fix delaying sessions\\n2. After an in app message gets closed in will be removed from the memory\",\n    \"30-1\": \"2.6.1\",\n    \"30-2\": \"1. Database optimazation\\n2. We no longer save and send Location Updates every 25m\\n3. Added Garbage Collection calls\\n4. Remove permissions from SDK\\n5. Realm udpated to 0.87.2\\n6. Fix beacon scans\",\n    \"30-0\": \"31.01.2016\",\n    \"h-0\": \"Date\",\n    \"h-1\": \"Version\",\n    \"h-2\": \"Description\",\n    \"25-0\": \"24.06.2016\",\n    \"25-1\": \"2.7.4\",\n    \"25-2\": \"1. Clicking a notification / inapp will now count as an direct open for statistics\\n2. Clicking a card in the inbox will now count as an front click for statistics\\n3. Some optimizations for End Session Request and Update User Request\",\n    \"23-0\": \"29.07.2016\",\n    \"23-1\": \"2.7.10\",\n    \"24-0\": \"15.07.2016\",\n    \"24-1\": \"2.7.6\",\n    \"24-2\": \"1. Added Inbox Authorization - for more info read - https://pulsate.readme.io/docs/inbox-authorization-android\",\n    \"23-2\": \"1. Added IPulsateLogoutCurrentUserListener - used with LogoutCurrentUser. Returns a callback onLogout.\\n2. Added setGpsManagerEnabled - allows turning on/off all location based events.\\n3. Fixed crash in inbox\",\n    \"22-0\": \"23.08.2016\",\n    \"22-1\": \"2.8.0\",\n    \"22-2\": \"1. Added Simple Push Flow and Simple In App Flow\\n2. Fixed a bug where logoutCurrentAlias would return a callback before the user was logged out\\n3. Fixed a bug where sometimes a request would fail due to bad alias\\n4. Fixed small in app size on some phones\\n5. Authorization Data will now be stored in Shared Preferences\\n6. Inbox Caching - inbox will be now cached for every alias, before only the last user's inbox was cached\\n7. Fixed a bug where for some users the first session (and only the first session) would fail due to an error in generating the API Access Token\\n8. Update IPulsateMager Docs\",\n    \"21-0\": \"19.01.2017\",\n    \"21-1\": \"2.9.3Beta\",\n    \"21-2\": \"1.New Features:\\n- Added Support for Rich Notifications - images, buttons, emojis and quick reply\\n- New method - enableInAppNotification(boolean eneabled) - enables or disables showing In App Notifications\\n- New method - showLastInAppNotification() - show the last In App Notification that was not shown due to enableInAppNotification being set to false\\n- New method - Pulsate.install(Application app)\\n- PulsateApp has been deprecated, you no longer need to extend PulsateApp, instead call Pulsate.install(this) in the Application’s onCreate method\\n- Inbox Prefetch - the inbox will now prefetch not visible items for a smoother experience when scrolling through the inbox\\n\\n\\n2.Optimization:\\n- Network Rework\\n- Layout Cleanup\\n\\n\\n3.Bug Fixes:\\n- PulsateFactory getInstance(AuthorizationData authData) - will now properly set the authData\\n- Fixed inbox refreshing - when possible we update / download single cards from the server instead of doing a full refresh of the inbox\\n- Fixed archiving talks\\n- Updated GCM implementation to use GcmListenerService and InstanceIDListenerService - this solves a crash caused by GCM\\n\\n\\n4.Library Updates:\\n- Realm updated to version 2.2.2\\n- Android support libraries updated to version 25.1.0\\n- Play Services updated to version 10.0.1\",\n    \"20-0\": \"31.01.2017\",\n    \"20-1\": \"2.9.4Beta\",\n    \"20-2\": \"1. Fixed showing Simple Push Notifications with no image\\n2. Fixed showing image in Simple Push Notification\",\n    \"19-0\": \"14.02.2017\",\n    \"19-1\": \"2.9.5\",\n    \"19-2\": \"1. Fixed possible crash\",\n    \"18-0\": \"22.03.2017\",\n    \"18-1\": \"2.9.15\",\n    \"18-2\": \"1. Updated support libraries to version 25.3.0\\n2. New method disablePushNotication\\n3. Fix crash when user enter inbox for the first time and get inbox fails and cache is null\",\n    \"17-0\": \"17.07.2017\",\n    \"17-1\": \"2.9.18\",\n    \"17-2\": \"1. In App Notifications will now properly scale depending on the amount of content\\n2. Changed Session Management - when \\\"startPulsateSessionForAlias\\\" is called with a different alias than the current one Pulsate will automatically logout the current user and start a session for the new alias\",\n    \"16-0\": \"24.08.2017\",\n    \"16-1\": \"2.9.19\",\n    \"16-2\": \"1. Improvements to In App Notification Layouts\",\n    \"15-0\": \"04.09.2017\",\n    \"15-1\": \"2.9.20\",\n    \"15-2\": \"1. Security Update: Added permissions to Pulsate Receivers.\",\n    \"14-0\": \"13.09.2017\",\n    \"14-1\": \"2.10.0\",\n    \"14-2\": \"1. Added IPulsateRequestListener\\n2. startSession, startPulsateSessionForAlias, startPulsateSessionWithBeaconsDisabled - added a new parametr to method -  IPulsateRequestListener\",\n    \"13-0\": \"04.10.2017\",\n    \"13-1\": \"2.10.1\",\n    \"13-2\": \"1. Fixed possible crash with In App Notifications\",\n    \"12-0\": \"13.11.2017\",\n    \"12-1\": \"2.10.2\",\n    \"12-2\": \"1. Starting a session for a new alias / user will clear all notifications\",\n    \"11-0\": \"14.11.2017\",\n    \"11-1\": \"2.10.3\",\n    \"11-2\": \"1. Fixed ConcurrentModificationException in the PulsateBeaconManager\",\n    \"10-0\": \"21.11.2017\",\n    \"10-1\": \"2.10.4\",\n    \"10-2\": \"1. On User Alias change last unauthorized message will be set to null - showLastUnauthorizedMessage will do nothing\",\n    \"9-0\": \"04.12.2017\",\n    \"9-1\": \"2.11.0\",\n    \"9-2\": \"1. Method getUnreadCount() removed. Please use setUnreadCountUpdateListener(IPulsateUnreadCountUpdateListener listener) instead.\\n2. New method setUnreadCountUpdateListener(IPulsateUnreadCountUpdateListener listener) - instead of repeating calls of getUnreadCount() to always be up to date the listener will automatically be updated by Pulsate about unread message changes.\\n3. GetUnreadCountRequestListener removed\",\n    \"8-0\": \"15.01.2018\",\n    \"8-1\": \"2.11.1\",\n    \"8-2\": \"1. Fixed crash when replying to a Card without a Personal Message\",\n    \"7-0\": \"14.02.2018\",\n    \"7-1\": \"2.12.0\",\n    \"7-2\": \"1. Added Support for Android O:\\n  * removed all background services\\n  * added new Android Jobs that are responsible for Beacon Scanning, Geofencing and sending data to the server\\n  * added Inbox Notification Channel\\n\\n2. Design Update:\\n  * added shadow to Toolbar\\n  * added on click ripple effects to cards and buttons\\n  * updated drawables to vector drawables\\n  * unified layout files between different Android versions\\n  * added missing start/end margins - this fixes many layout issues when RTL is enabled in the Android Manifest\\n\\n3. Update Google Play Services Library version to 10.2.1. If you use any Google Play Services Library you must update to version 10.2.1.\\n\\n4. Updated Android Support Library to version 27.0.2. If you use any Android Support Library you must update to version 27.0.2. \\n\\n5. Simplified adding Pulsate to projects. Please check step 3 and step 4 in our guide to Installing the Pulsate SDK using Android Studio - https://pulsate.readme.io/docs/installing-sdk-android-studio\",\n    \"6-0\": \"28.02.2018\",\n    \"6-1\": \"2.12.1\",\n    \"6-2\": \"1. Removing Wake Locks when receiving push notifications\\n2. Fixed crash in InAppMessages caused by Casting CardView to ImageView\",\n    \"5-0\": \"10.04.2018\",\n    \"5-1\": \"2.12.2\",\n    \"5-2\": \"1. Fixed possible null pointer in GeofenceTransitionsReceiver\",\n    \"4-0\": \"06.07.2018\",\n    \"4-1\": \"2.13.0\",\n    \"4-2\": \"New Features:\\n1. New method - setLocationUpdatesEnabled - this method allows Developer to turn on / off Geofencing and Beacon Scanning\\n2. New Method isPushNotificationEnabled() - returns the value set with setPushNotificationEnabled(boolean enabled); for the given alias, by default true\\n3. New Inbox Error Messages for deleted users\\n\\nImprovements:\\n1. SDK values will now be alias dependant and will automatically update once the user alias is changed. Effected values are - avatar, firstName, lastName, email, age, gender, privacy, push notifications on/off, in app notifications on/off, location updates on/off, send location with beacon events on/off, microfencing on/off\\n2. Reworked GCM - Pulsate will now accept empty GCM IDs and will properly start sessions without a proper GCM Token\\n3. Email, Age and all custom attributes can now be set to empty values\\n4. SetPrivacy, SetPushPreferences, SetLocationUpdates requests will now use Android Jobs to retry if they failed for any reason\\n5. Method enableInAppNotification(boolean enabled); changed to setInAppNotificationEnabled(boolean enabled);\\n6. Method disablePushNotication(boolean disable); changed to setPushNotificationEnabled(boolean enabled);\\n7. Method setCustomerAlias removed (was never used)\\n\\nLibrary Updates:\\n1. AltBeacon updated -  2.12.4 to 2.14\\n7. Support library updated - 27.0.2 to 27.1.1\",\n    \"3-1\": \"2.13.1\",\n    \"3-0\": \"30.07.2018\",\n    \"3-2\": \"1. Improved In App Notification Layouts\",\n    \"2-1\": \"2.13.2\",\n    \"2-2\": \"1. Fixed possible crash when more than 100 jobs are queued in the JobManager\",\n    \"2-0\": \"07.09.2018\",\n    \"1-0\": \"17.10.2018\",\n    \"1-1\": \"2.13.6\",\n    \"1-2\": \"1. Removed all logs from production builds\\n2. Added default Proguard settings. The proguard settings will automatically be applied when proguard is enabled.\\n3. Other minor layout improvements and cleanup\",\n    \"0-0\": \"22.10.2018\",\n    \"0-1\": \"2.13.8\",\n    \"0-2\": \"1. Improved Card Layout. Cards should now scale properly with special characters.\\n2. setNewThreadButtonEnabled(boolean enabled) will now be saved to the DB\"\n  },\n  \"cols\": 3,\n  \"rows\": 31\n}\n[/block]","excerpt":"","slug":"android-release-notes","type":"basic","title":"Android SDK Release Notes"}

Android SDK Release Notes


[block:parameters] { "data": { "26-0": "21.06.2016", "26-1": "2.7.3", "26-2": "1. Optimized Get Inbox Requests\n2. Optimized Start Session when entering via notification\n3. Get Inbox is no longer called when entering app via notification", "27-0": "09.06.2016", "27-1": "2.7.2", "27-2": "1. Fixed Realm Migration\n2. Sending a geofence will also send current_location\n3. Removed Acra\n4. GetInboxItem will now show a message to the user if the request fails\n5. SendCustomEvent will no longer show an JSONOBJECT exception\n6. SendCustomEvent will now call onFail when the request fails", "28-2": "1. Added Deduping - new methods startPulsateSessionForAlias and logoutCurrentAlias\n2. Reworked beacon service to use AltBeacon\n3. Services will no longer run on the main UI thread\n4. Added new methods - getUnreadCount, sendLocationWithBeaconEvents, setAuthorizationData,\n5. Added support for polygonal geofences\n6. Updated google play service libraries to version 8.4.0\n7. Session Managment has been reworked\n8. Fix a bug that caused some impressions to be duplicated\n9. Default Inbox style is now called PulsateInboxTheme - if you want to customize the style create a style named \"PulsateInboxTheme\" in your styles.xml and the default style will be overridden\n10. Optimized battery usage\n11. Some fixes to found bugs - possible null pointers, developers can now use realm with Pulsate", "28-1": "2.7.0", "28-0": "12.05.2016", "29-0": "12.02.2016", "29-1": "2.6.2", "29-2": "1. Fix delaying sessions\n2. After an in app message gets closed in will be removed from the memory", "30-1": "2.6.1", "30-2": "1. Database optimazation\n2. We no longer save and send Location Updates every 25m\n3. Added Garbage Collection calls\n4. Remove permissions from SDK\n5. Realm udpated to 0.87.2\n6. Fix beacon scans", "30-0": "31.01.2016", "h-0": "Date", "h-1": "Version", "h-2": "Description", "25-0": "24.06.2016", "25-1": "2.7.4", "25-2": "1. Clicking a notification / inapp will now count as an direct open for statistics\n2. Clicking a card in the inbox will now count as an front click for statistics\n3. Some optimizations for End Session Request and Update User Request", "23-0": "29.07.2016", "23-1": "2.7.10", "24-0": "15.07.2016", "24-1": "2.7.6", "24-2": "1. Added Inbox Authorization - for more info read - https://pulsate.readme.io/docs/inbox-authorization-android", "23-2": "1. Added IPulsateLogoutCurrentUserListener - used with LogoutCurrentUser. Returns a callback onLogout.\n2. Added setGpsManagerEnabled - allows turning on/off all location based events.\n3. Fixed crash in inbox", "22-0": "23.08.2016", "22-1": "2.8.0", "22-2": "1. Added Simple Push Flow and Simple In App Flow\n2. Fixed a bug where logoutCurrentAlias would return a callback before the user was logged out\n3. Fixed a bug where sometimes a request would fail due to bad alias\n4. Fixed small in app size on some phones\n5. Authorization Data will now be stored in Shared Preferences\n6. Inbox Caching - inbox will be now cached for every alias, before only the last user's inbox was cached\n7. Fixed a bug where for some users the first session (and only the first session) would fail due to an error in generating the API Access Token\n8. Update IPulsateMager Docs", "21-0": "19.01.2017", "21-1": "2.9.3Beta", "21-2": "1.New Features:\n- Added Support for Rich Notifications - images, buttons, emojis and quick reply\n- New method - enableInAppNotification(boolean eneabled) - enables or disables showing In App Notifications\n- New method - showLastInAppNotification() - show the last In App Notification that was not shown due to enableInAppNotification being set to false\n- New method - Pulsate.install(Application app)\n- PulsateApp has been deprecated, you no longer need to extend PulsateApp, instead call Pulsate.install(this) in the Application’s onCreate method\n- Inbox Prefetch - the inbox will now prefetch not visible items for a smoother experience when scrolling through the inbox\n\n\n2.Optimization:\n- Network Rework\n- Layout Cleanup\n\n\n3.Bug Fixes:\n- PulsateFactory getInstance(AuthorizationData authData) - will now properly set the authData\n- Fixed inbox refreshing - when possible we update / download single cards from the server instead of doing a full refresh of the inbox\n- Fixed archiving talks\n- Updated GCM implementation to use GcmListenerService and InstanceIDListenerService - this solves a crash caused by GCM\n\n\n4.Library Updates:\n- Realm updated to version 2.2.2\n- Android support libraries updated to version 25.1.0\n- Play Services updated to version 10.0.1", "20-0": "31.01.2017", "20-1": "2.9.4Beta", "20-2": "1. Fixed showing Simple Push Notifications with no image\n2. Fixed showing image in Simple Push Notification", "19-0": "14.02.2017", "19-1": "2.9.5", "19-2": "1. Fixed possible crash", "18-0": "22.03.2017", "18-1": "2.9.15", "18-2": "1. Updated support libraries to version 25.3.0\n2. New method disablePushNotication\n3. Fix crash when user enter inbox for the first time and get inbox fails and cache is null", "17-0": "17.07.2017", "17-1": "2.9.18", "17-2": "1. In App Notifications will now properly scale depending on the amount of content\n2. Changed Session Management - when \"startPulsateSessionForAlias\" is called with a different alias than the current one Pulsate will automatically logout the current user and start a session for the new alias", "16-0": "24.08.2017", "16-1": "2.9.19", "16-2": "1. Improvements to In App Notification Layouts", "15-0": "04.09.2017", "15-1": "2.9.20", "15-2": "1. Security Update: Added permissions to Pulsate Receivers.", "14-0": "13.09.2017", "14-1": "2.10.0", "14-2": "1. Added IPulsateRequestListener\n2. startSession, startPulsateSessionForAlias, startPulsateSessionWithBeaconsDisabled - added a new parametr to method - IPulsateRequestListener", "13-0": "04.10.2017", "13-1": "2.10.1", "13-2": "1. Fixed possible crash with In App Notifications", "12-0": "13.11.2017", "12-1": "2.10.2", "12-2": "1. Starting a session for a new alias / user will clear all notifications", "11-0": "14.11.2017", "11-1": "2.10.3", "11-2": "1. Fixed ConcurrentModificationException in the PulsateBeaconManager", "10-0": "21.11.2017", "10-1": "2.10.4", "10-2": "1. On User Alias change last unauthorized message will be set to null - showLastUnauthorizedMessage will do nothing", "9-0": "04.12.2017", "9-1": "2.11.0", "9-2": "1. Method getUnreadCount() removed. Please use setUnreadCountUpdateListener(IPulsateUnreadCountUpdateListener listener) instead.\n2. New method setUnreadCountUpdateListener(IPulsateUnreadCountUpdateListener listener) - instead of repeating calls of getUnreadCount() to always be up to date the listener will automatically be updated by Pulsate about unread message changes.\n3. GetUnreadCountRequestListener removed", "8-0": "15.01.2018", "8-1": "2.11.1", "8-2": "1. Fixed crash when replying to a Card without a Personal Message", "7-0": "14.02.2018", "7-1": "2.12.0", "7-2": "1. Added Support for Android O:\n * removed all background services\n * added new Android Jobs that are responsible for Beacon Scanning, Geofencing and sending data to the server\n * added Inbox Notification Channel\n\n2. Design Update:\n * added shadow to Toolbar\n * added on click ripple effects to cards and buttons\n * updated drawables to vector drawables\n * unified layout files between different Android versions\n * added missing start/end margins - this fixes many layout issues when RTL is enabled in the Android Manifest\n\n3. Update Google Play Services Library version to 10.2.1. If you use any Google Play Services Library you must update to version 10.2.1.\n\n4. Updated Android Support Library to version 27.0.2. If you use any Android Support Library you must update to version 27.0.2. \n\n5. Simplified adding Pulsate to projects. Please check step 3 and step 4 in our guide to Installing the Pulsate SDK using Android Studio - https://pulsate.readme.io/docs/installing-sdk-android-studio", "6-0": "28.02.2018", "6-1": "2.12.1", "6-2": "1. Removing Wake Locks when receiving push notifications\n2. Fixed crash in InAppMessages caused by Casting CardView to ImageView", "5-0": "10.04.2018", "5-1": "2.12.2", "5-2": "1. Fixed possible null pointer in GeofenceTransitionsReceiver", "4-0": "06.07.2018", "4-1": "2.13.0", "4-2": "New Features:\n1. New method - setLocationUpdatesEnabled - this method allows Developer to turn on / off Geofencing and Beacon Scanning\n2. New Method isPushNotificationEnabled() - returns the value set with setPushNotificationEnabled(boolean enabled); for the given alias, by default true\n3. New Inbox Error Messages for deleted users\n\nImprovements:\n1. SDK values will now be alias dependant and will automatically update once the user alias is changed. Effected values are - avatar, firstName, lastName, email, age, gender, privacy, push notifications on/off, in app notifications on/off, location updates on/off, send location with beacon events on/off, microfencing on/off\n2. Reworked GCM - Pulsate will now accept empty GCM IDs and will properly start sessions without a proper GCM Token\n3. Email, Age and all custom attributes can now be set to empty values\n4. SetPrivacy, SetPushPreferences, SetLocationUpdates requests will now use Android Jobs to retry if they failed for any reason\n5. Method enableInAppNotification(boolean enabled); changed to setInAppNotificationEnabled(boolean enabled);\n6. Method disablePushNotication(boolean disable); changed to setPushNotificationEnabled(boolean enabled);\n7. Method setCustomerAlias removed (was never used)\n\nLibrary Updates:\n1. AltBeacon updated - 2.12.4 to 2.14\n7. Support library updated - 27.0.2 to 27.1.1", "3-1": "2.13.1", "3-0": "30.07.2018", "3-2": "1. Improved In App Notification Layouts", "2-1": "2.13.2", "2-2": "1. Fixed possible crash when more than 100 jobs are queued in the JobManager", "2-0": "07.09.2018", "1-0": "17.10.2018", "1-1": "2.13.6", "1-2": "1. Removed all logs from production builds\n2. Added default Proguard settings. The proguard settings will automatically be applied when proguard is enabled.\n3. Other minor layout improvements and cleanup", "0-0": "22.10.2018", "0-1": "2.13.8", "0-2": "1. Improved Card Layout. Cards should now scale properly with special characters.\n2. setNewThreadButtonEnabled(boolean enabled) will now be saved to the DB" }, "cols": 3, "rows": 31 } [/block]