The Rave SDK will always preserve your current user’s RaveID and credentials on upgrade.
Version-specific Upgrade Notes#
4.4.0 Upgrade Notes#
Maven Central & Migration#
The SDK is now published to Maven Central. This is the recommended way to integrate going forward.
New integrations should add the following to
build.gradle
:repositories { google() mavenCentral() } def raveVersion = "4.4.0" dependencies { implementation "co.ravesocial:rave-core:${raveVersion}" implementation "co.ravesocial:rave-xml-scene:${raveVersion}" implementation "co.ravesocial:rave-facebook-plugin:${raveVersion}" # if used implementation "co.ravesocial:rave-google-plugin:${raveVersion}" # if used }
If your project previously relied on local AARs:
Replace local AAR dependency lines with the Maven coordinates above.
Remove
flatDir { dirs 'libs' }
once you no longer rely on local AARs.Keep any app-specific ScenePack or demo pack as a module or separate artifact, as before.
Local AARs remain supported for backward compatibility, but Maven Central is strongly recommended to simplify dependency management and ensure forward compatibility.
Module Consolidation#
The standalone RaveUtils module has been removed.
The following classes have been consolidated into core modules for maintainability:
RaveCompat
andRaveLog
are now part of RaveSocial.ResourceIdGenerator
is now part of XMLScene.
No action is required. Class names and package paths remain unchanged, so existing imports will continue to work.
API Removals (Previously Deprecated)#
The following APIs were previously marked as deprecated and are now removed:
RaveSceneContext.showProgressDialog()
→ useRaveSocial.getProgress().show()
instead.RaveSceneContext.dismissProgressDialog()
→ useRaveSocial.getProgress().dismiss()
instead.RaveContacts.inviteToAppVia(...)
→ useRaveSharing.share(...)
instead.RaveContacts.addRaveContactsByUsername(...)
→ useRaveContacts.addContactsByUsername(...)
instead.
If your app still references these methods, you must migrate to the replacements above to compile with 4.4.0.
Dependency Updates#
Core and plugin dependencies have been updated to their latest stable versions (OkHttp 5.1.0, AndroidX Security 1.1.0, WorkManager 2.10.3, Facebook SDK 18.1.3, Google Identity/Auth 1.5.0 / 21.4.0).
Ensure your app’s dependency tree resolves correctly if you pin versions of these libraries.
4.3.4 Upgrade Notes#
Background Service Migration#
PendingActionsSendingService
andRaveSkinUnzippingService
have been removed and replaced with WorkManager-based implementations:PendingActionsWorker
now handles connectivity-based pending action retries.RaveSkinUnzipWorker
handles skin asset unzipping safely in the background.
These changes ensure full compliance with Android 12+ background execution restrictions.
No manual action is required unless your app interacts directly with these services (which it should not under normal SDK usage).
Manifest Clean-up#
If your project previously referenced the following services in AndroidManifest.xml
, they should now be removed:
<service android:name="co.ravesocial.sdk.internal.net.action.v2.pending.PendingActionsSendingService" />
<service android:name="co.ravesocial.sdk.service.RaveSkinUnzippingService" />
These services have been fully removed and are now handled internally using WorkManager.
RaveScheduler
and ScheduledTask
Removal#
RaveScheduler
andScheduledTask
have been fully removed from the SDK, as they are no longer needed with the WorkManager-based architecture.
4.3.3 Upgrade Notes#
Migration to Credential Manager for Google Sign-In#
RaveGooglePlugin
module now supports the modern
Credential Manager API,
recommended by Google for handling federated authentication like Sign-In with Google.
Dependency Updates#
The following dependencies are now required to support the updated sign-in flow:
// Provides a unified interface for credential management
implementation "androidx.credentials:credentials:1.5.0"
// Needed for credentials support from Play Services (Android 13 and below)
implementation "androidx.credentials:credentials-play-services-auth:1.5.0"
// Provides classes for managing Google ID tokens
implementation "com.google.android.libraries.identity.googleid:googleid:1.1.1"
// Authorize access to Google user data
implementation "com.google.android.gms:play-services-auth:21.3.0"
Why is this required?
These libraries integrate the Credential Manager framework with Google Identity Services.
This allows for a secure and consistent sign-in experience across Android versions.
Migration Instructions#
No changes are required in app logic if you already use Rave’s
RaveGooglePlugin
module.Just ensure the updated dependencies are included in your app’s build.
Backend token verification remains unchanged.
RaveGooglePlugin
now provides a future-proof, Google-recommended sign-in experience.
4.3.1 Upgrade Notes#
Restoration of Login Status Listener Behavior#
The behavior of
RaveLoginStatusListener
during SDK initialization has been restored to match pre-4.3.0 behavior.The listener will now trigger only once during initialization, maintaining compatibility with existing integrations.
If tracking when the user syncs with the server post sdk init is required, developers can use
RaveUsers.addCurrentUserObserver
.
Deprecations#
Deprecated Login Listener Status Values#
The following values in RaveLoginStatusListener.RaveLoginStatus
are deprecated and will be removed in a future release:
ERROR
NONE
These values haven’t been used since SDK 3.x and are no longer referenced by the SDK. If your code includes references to these values, they can now be safely removed. Clean-up is encouraged, as they will be fully removed in a future version.
Parameter deprecation in Login Listener#
The
exception
parameter inRaveLoginStatusListener.onLoginStatusChanged
is now alwaysnull
and should be ignored.In a future version, this parameter will be removed from the method signature.
Dependency Update#
The SDK now requires the AndroidX Preference Library.
If your project does not already include it, you may need to add the following dependency:
implementation 'androidx.preference:preference:1.2.1'
Why is this required?
The SDK now uses the modern AndroidX preference system instead of legacy APIs to manage user settings.
This ensures better support for devices running API level 23+ and future-proofs the SDK for upcoming Android releases.
4.3.0 Upgrade Notes#
SDK Initialization Changes#
SDK initialization is now performed without requiring immediate network calls, improving startup time, especially in poor network conditions.
Impact on Login Listener Behavior#
Previously,
RaveLoginStatusListener
was triggered once during initialization due to a blocking network request.New behavior:
The SDK first initializes in offline mode, triggering the login listener immediately, even before the server updates user data.
A second callback now occurs when the server finishes updating the user state.
If your implementation relies on a single callback, you may need to adjust your logic.
Removal of NetworkAvailableBroadcastReceiver
#
The SDK no longer includes
NetworkAvailableBroadcastReceiver
.Network connectivity is now handled using Android’s modern
ConnectivityManager.NetworkCallback
.If your project references this API, you will need to migrate to the new approach.
v4.2.13 Upgrade Notes#
The deprecated method RaveContacts.setPhoneBookAutoUpdate was removed. Ensure you update your code to use the phonebook plugin instead.
v4.2.0 Upgrade Notes#
The SDK now handles all operations, including initialization, asynchronously. To adapt to this change, ensure that your codebase can handle asynchronous operations.
All SDK public method callbacks now execute within the same thread as the original calls, ensuring thread safety and predictable behavior. Review your callback implementations to ensure they remain compatible with this behavior.
If your application uses custom connect plugins, note that token storage v3 migration method has been removed, it now happens as part of the plugin token retrieval, so remove any calls to
migrateV2TokenStorage
.Several settings have been deprecated as of version 2.8.0 and have now been removed from the SDK. To ensure your code works with the latest version, update your settings usage as follows:
Deprecated/Removed Setting |
Replacement Setting |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v4.1.0 Upgrade Notes#
Android API 34 support has been added. Ensure your project targets API 34, update dependencies, and test for compatibility.
We replaced Facebook publishing with Facebook Share API. If your app relied on the publishing API, please update it accordingly.
The Twitter integration was completely removed. Make sure to remove any code related to Twitter integration, as it is no longer supported.
The RaveFriends, RaveFollowers, and user blocking methods convenience classes have been deprecated. Please refactor your code to replace the usage of RaveFriends and RaveFollowers with alternative approaches for similar functionality, such as contacts v1 methods.
The RaveSocial’s FileCripter has been removed. If your application relied on RaveSocial’s FileCripter, implement an alternative solution for file encryption and decryption.
v4.0.0 Upgrade Notes#
We increased the Android SDK min version, make sure now your app supports at least API 19.
Some of the util classes were removed from the core SDK, if your app was relying on that, please update accordingly.
The manifest permissions were also cleaned up to reduce the amount of permissions required for the SDK to work.
The following deprecated settings has been removed:
RaveSettings.General.DefaultNewUserName
RaveSettings.RaveFBAutoUpdateContactsOnConnect
(replaced byRaveSettings.General.AutoSyncFriends
)RaveSettings.General.PhoneContactsUpdateInterval
(replaced byRaveSettings.General.ContactsUpdateInterval
)RaveSettings.Google.ContactsUpdateInterval
(replaced byRaveSettings.General.ContactsUpdateInterval
)RaveSettings.Facebook.ContactsUpdateInterval
(replaced byRaveSettings.General.ContactsUpdateInterval
)
v3.13.1 Upgrade Notes#
We removed the dependency on android-priority-jobqueue
library in favor of WorkManager
, the official deferred task library for Android.
If your project had previously included com.birbit:android-priority-jobqueue
dependency as a Rave dependency you can safely remove it.
Add both androidx.security:security-crypto
and androidx.work:work-runtime
dependencies to your build.gradle.
v3.9.15 Upgrade Notes#
The SDK now handles all operations, including initialization, asynchronously. To adapt to this change, ensure that your codebase can handle asynchronous operations.
All SDK public method callbacks now execute within the same thread as the original calls, ensuring thread safety and predictable behavior. Review your callback implementations to ensure they remain compatible with this behavior.
v3.6.1 Upgrade Notes#
We removed all the dependencies on external storage from the Rave SDK for Android. That means unless your app requires external storage for some other reason, you should be able to remove the following permissions from your AndroidManifest.xml:
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” /> <uses-permission android:name=”android.permission.READ_EXTERNAL_STORAGE” />
v3.5.1 Upgrade Notes#
The Rave Android SDK is now packaged in Android Archive (AAR) format. Remove any Rave submodules and jars from your project and compile the Rave AAR libraires by copying them from the SDK distribution ZIP into your project’s “libs” directory and adding the following to the dependencies section of your app’s build.gradle:
dependencies {
...
compile(name: "RaveSocial", ext: "aar")
compile 'com.facebook.android:facebook-android-sdk:4.25.0'
compile(name: "RaveFacebookPlugin", ext: "aar")
compile 'com.google.android.gms:play-services-identity:11.0.4'
compile 'com.google.android.gms:play-services-auth:11.0.4'
compile 'com.google.android.gms:play-services-plus:11.0.4'
compile(name: "RaveGooglePlugin", ext: "aar")
compile project(':BigFishScenePack')
...
}
Add a “flatDir” to the repositories section so the Gradle plugin can locate “libs” directory:
repositories {
...
flatDir {
dirs 'libs'
}
...
}
If your project contains submodules for Facebook or Google SDKs you can remove them and let the Android Gradle Plugin resolve them.
For Unity projects, copy the Rave AAR libaries from the distribution ZIP into Assets/Plugins/Android/, or reimport the Rave Unity asset package. The Unity demo now builds and runs from within the Unity editor using the internal Android build system. Also, the Unity demo project now includes it’s own user.keystore for Android builds. Both store and key passwords are “bfcdemo”.
v3.01 Upgrade Notes#
There are minor but sweeping changes to some basic methods in the RaveSocial API. If you’re using the scene pack as the front-end to your integration you should be largely unaffected. If, however, you’re using login and other APIs directly there are some important changes to consider.
More listeners have been simplified to RaveCompletionListener
. That means that success is represented by a null
result for the exception. User cancellation is now representated by an instance of RaveCanceledException
. Notable instances where the listener changed are RaveSocial.loginWith()
, RaveSocial.connectTo()
, RaveSocial.disconnectFrom()
.
Constants for referring to social network providers have been changed (e.g. Constants.SOCIAL_PROVIDER_FACEBOOK
is now RaveConstants.CONNECT_PLUGIN_FACEBOOK
). Some methods that referred to providers in their name now refer instead to plugins to more accurately reflect the extensible nature of Rave.
v2.8 Upgrade Notes#
Considerations for upgrading the Rave SDK for an Android project include changes to a number of scene listeners, removal of the Settings Scene, and minor changes to the gifting API.
NOTICE: Both Google and Facebook SDKs have been updated to their respective latest versions as of July 2014.
LoginSceneListener
andAccountInfoSceneListener
-onSceneComplete()
- Additional boolean parametercanceled
as well as some other parameters have been added. Thecanceled
parameter is used to determine if a scene was successfully completed or canceled/backed out of.SettingsScene
- This scene has been completely removed and all of its functionality has been merged intoRaveAccountInfoScene
, which previously inherited its functionalityRaveGifts.sendGiftWithKeyToContactsAndShareVia()
- Theinteractive
boolean parameter for this function has been removed. The functionality it provided has been made automatic.
Additional considerations specific to Big Fish Games are listed below.
BigFishActivity.reportUserPicture()
- This static function has been moved fromBigFishActivity
, which no longer exists in the scene pack, toBigFishScenePack.java.
BigFishMessageAlertDialogBuilder
and all other dialog classes have been removed. Built-in platform dialogs are now the standard for all BigFish dialogs.BigFishDialogScene.DismissHandler.onDismiss()
- Additional boolean parametercanceled
has been added. This additional parameter is used to determine if a scene was successfully completed or canceled/backed out of. o
Using Facebook Tokens From Previous Non-Rave Integration#
Rave will automatically find and use an active Facebook session on startup if the session was created using the default session storage in the Facebook SDK. If the session did not use default storage, Rave provides an API which can be used to set the token to use. When using the explicit token setting method, it should only be used once so an integrator should delete the token from local storage once handed off to Rave for initialization. Either method will result in an automatic login to Rave either for the existing user linked to the Facebook account or a new Rave user will be created and linked to the Facebook account.
Explicit Token Setting Method#
Use the AuthenticationManager
to get the Facebook Login Provider and set the token directly:
FacebookLoginProvider fbLoginProvider = new FacebookLoginProvider(context);
fbLoginProvider.useTokenForRaveUpgrade(myToken);
RaveSocial.addLoginProvider(fbLoginProvider);
This must be called before Rave initialization. The easiest location to set this is usually in the ScenePack class unless Rave is being used without a ScenePack.
Note
The explicit token method only works on Android for users having the Facebook app installed.