{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","results":{"codes":[]},"settings":"","params":[]},"next":{"description":"","pages":[]},"title":"Updating from 2.x.x to 3.0.0.","type":"basic","slug":"updating-from-2xx-to-300-1","excerpt":"","body":"Version 3.0.0 is the next major release of the Pulsate SDK. There are a few changes that require Developers to update their current implementations. You can find a list of all important changes below.\n[block:api-header]\n{\n  \"title\": \"What's different in 3.0.0\"\n}\n[/block]\n1. \"*Pulsate.install(Application app)*\" has been removed. The Pulsate SDK now automatically starts with the Application. Please remove Pulsate.install(this) from your Application classes.\n\n2. minSdkVersion is now 16 up from 15, targetSdkVersion and compileSdkVersion is now 29 up from 28. Please update your gradle configs.\n\n3. The SDK now uses AndroidX. Please migrate your App to AndroidX.\n\n4. Play Services have been updated to version 17.0.0. Please make sure that if you use any Play Services Libraries to update them to version 17.0.0.\n\n5. The SDK now uses SQLCipher to encrypt data. SQLCipher is a native library and native libraries can increase App size. To reduce the App Size please read - https://pulsate.readme.io/v2.8/docs/reducing-apk-size-1.\n\n6. Firebase has been updated to - firebase-core:17.2.0 and firebase-messaging:20.0.0. Please use the same versions to prevent any bugs caused by version mismatches.\n\n7. Location Permission changes - to be able to Geofence and Beacon Scan on Android Q devices a new permission is required - android.permission.ACCESS_BACKGROUND_LOCATION. Please update your permission prompts to also ask for this permission.\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"int permissionCheck = ContextCompat.checkSelfPermission(getActivity(),\\n                Manifest.permission.ACCESS_FINE_LOCATION);\\nif (permissionCheck != PackageManager.PERMISSION_GRANTED) {\\n  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {\\n    ActivityCompat.requestPermissions(getActivity(),\\n        new String[]{Manifest.permission.ACCESS_FINE_LOCATION, \\n                     Manifest.permission.ACCESS_BACKGROUND_LOCATION}, 1);\\n  } else {\\n    ActivityCompat.requestPermissions(getActivity(),\\n        new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);\\n  }\\n}\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\n8. PulsateManager changes - isLocationUpdatesEnabled(), isMicrofencingEnabled(), isInAppNotificationEnabled(), isPushNotificationEnabled(), isUserAuthorized(), isNewThreadButtonEnabled(), isLocationWithBeaconEvents(), getPrivacy(), getLastKnownLocation() - no longer return values directly, these methods now return values to the new IPulsateValueListener.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"pulsateManager.isInAppNotificationEnabled(new IPulsateValueListener<Boolean>() {\\n  :::at:::Override\\n  public void onSuccess(Boolean value) {\\n\\n  }\\n\\n  @Override\\n  public void onError(Throwable e) {\\n\\n  }\\n});\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]","updates":[],"order":1,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"5f2ab3b79e023206d473130d","createdAt":"2020-08-05T13:27:19.373Z","user":"57bc3654b9c7f0220009c77b","category":{"sync":{"isSync":false,"url":""},"pages":[],"title":"Updates","slug":"updates","order":4,"from_sync":false,"reference":false,"_id":"5f2ab205bc35e507e8cead35","createdAt":"2020-08-05T13:20:05.677Z","version":"5e5019b49e8f240011cc6ade","project":"54aa7f773b56130b0056c86e","__v":0},"version":{"version":"2.8","version_clean":"2.8.0","codename":"Android SDK","is_stable":false,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["5e5019b49e8f240011cc6a47","55781fe35129590d003ff4f9","55781fe35129590d003ff4fa","5e5019b49e8f240011cc6a48","5e5019b49e8f240011cc6a49","5e5019b49e8f240011cc6a4a","5e5019b49e8f240011cc6a4b","5e5019b49e8f240011cc6a4c","565b66c446118c0d00dcb0bb","56898269f8dc340d00308c13","5e5019b49e8f240011cc6a4d","5e5019b49e8f240011cc6a4e","5c73dd27e8fdc000572a206a","5e5019b49e8f240011cc6a4f","5e501b7e7c8bdc00450ea66a","5e53daa9884b750025b5cad4","5f2ab0dfbf70f7063ad0c4f3","5f2ab1e9448d87068b348f9c","5f2ab1f9c1644603559149ac","5f2ab205bc35e507e8cead35"],"_id":"5e5019b49e8f240011cc6ade","project":"54aa7f773b56130b0056c86e","forked_from":"5e4fbbbda8fb41028f1861fe","__v":6,"createdAt":"2015-06-10T11:30:42.700Z","releaseDate":"2015-06-10T11:30:42.700Z"},"project":"54aa7f773b56130b0056c86e","__v":0,"parentDoc":null}

Updating from 2.x.x to 3.0.0.


Version 3.0.0 is the next major release of the Pulsate SDK. There are a few changes that require Developers to update their current implementations. You can find a list of all important changes below. [block:api-header] { "title": "What's different in 3.0.0" } [/block] 1. "*Pulsate.install(Application app)*" has been removed. The Pulsate SDK now automatically starts with the Application. Please remove Pulsate.install(this) from your Application classes. 2. minSdkVersion is now 16 up from 15, targetSdkVersion and compileSdkVersion is now 29 up from 28. Please update your gradle configs. 3. The SDK now uses AndroidX. Please migrate your App to AndroidX. 4. Play Services have been updated to version 17.0.0. Please make sure that if you use any Play Services Libraries to update them to version 17.0.0. 5. The SDK now uses SQLCipher to encrypt data. SQLCipher is a native library and native libraries can increase App size. To reduce the App Size please read - https://pulsate.readme.io/v2.8/docs/reducing-apk-size-1. 6. Firebase has been updated to - firebase-core:17.2.0 and firebase-messaging:20.0.0. Please use the same versions to prevent any bugs caused by version mismatches. 7. Location Permission changes - to be able to Geofence and Beacon Scan on Android Q devices a new permission is required - android.permission.ACCESS_BACKGROUND_LOCATION. Please update your permission prompts to also ask for this permission. [block:code] { "codes": [ { "code": "int permissionCheck = ContextCompat.checkSelfPermission(getActivity(),\n Manifest.permission.ACCESS_FINE_LOCATION);\nif (permissionCheck != PackageManager.PERMISSION_GRANTED) {\n if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {\n ActivityCompat.requestPermissions(getActivity(),\n new String[]{Manifest.permission.ACCESS_FINE_LOCATION, \n Manifest.permission.ACCESS_BACKGROUND_LOCATION}, 1);\n } else {\n ActivityCompat.requestPermissions(getActivity(),\n new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);\n }\n}", "language": "java" } ] } [/block] 8. PulsateManager changes - isLocationUpdatesEnabled(), isMicrofencingEnabled(), isInAppNotificationEnabled(), isPushNotificationEnabled(), isUserAuthorized(), isNewThreadButtonEnabled(), isLocationWithBeaconEvents(), getPrivacy(), getLastKnownLocation() - no longer return values directly, these methods now return values to the new IPulsateValueListener. [block:code] { "codes": [ { "code": "pulsateManager.isInAppNotificationEnabled(new IPulsateValueListener<Boolean>() {\n @Override\n public void onSuccess(Boolean value) {\n\n }\n\n @Override\n public void onError(Throwable e) {\n\n }\n});", "language": "java" } ] } [/block]