General
You can check the TapTalk.io implementation type used in your application by calling
getTapTalkImplementationType()
.Java
Kotlin
TapTalkImplementationType implementationType = TapTalk.getTapTalkImplementationType();
var implementationType = TapTalk.getTapTalkImplementationType()
IMPLEMENTATION_TYPE
TapTalk implementation consists of 3 types which are:
- TapTalkImplementationTypeUI: used for implementation with only TapUI
- TapTalkImplementationTypeCore: used for implementation with only TapCore
- TapTalkImplementationTypeCombine: used for implementation with both of TapCore and TapUI combined
Calling
updateApplicationBadgeCount()
will refresh the number of unread messages in the application and trigger the callback onTapTalkUnreadChatRoomBadgeCountUpdated()
present in TapListener.Java
Kotlin
TapTalk.updateApplicationBadgeCount();
TapTalk.updateApplicationBadgeCount()
A TapTalk.io project owns a remote configuration, which consists of 3 configuration types: Core Configs, Project Configs, and Custom Configs. A configuration value can be obtained with the respective configuration type's getter method, and will return a Map object. To get a specific value, call the
get()
method from the returned Map with the respective key. The value obtained will always be in a String format and should be converted each according to their uses. Each configuration type will be explained below.Config Key | Value |
chatMediaMaxFileSize | Number of maximum allowed chat media file size in bytes |
roomPhotoMaxFileSize | Number of maximum allowed group chat room profile picture file size in bytes |
userPhotoMaxFileSize | Number of maximum allowed user profile picture file size in bytes |
groupMaxParticipants | Number of maximum allowed participants in a group chat room |
channelMaxParticipants | Number of maximum allowed participants in a channel |
Below is an example to get the value of chatMediaMaxFileSize:
Java
Kotlin
Map<String, String> coreConfigs = TapTalk.getCoreConfigs();
String maxFileSizeString = coreConfigs.get("chatMediaMaxFileSize");
long maxFileSizeValue = Long.valueOf(maxFileSize);
val coreConfigs = TapTalk.getCoreConfigs()
val maxFileSizeString = coreConfigs["chatMediaMaxFileSize"]
val maxFileSizeValue = maxFileSize?.toLong()
Config Key | Value |
usernameIgnoreCase | "0" if username in the project is case sensitive
"1" if username in the project is case insensitive |
An example to obtain usernameIgnoreCase value:
Java
Kotlin
Map<String, String> projectConfigs = TapTalk.getProjectConfigs();
String usernameIgnoreCase = projectConfigs.get("usernameIgnoreCase");
boolean isUsernameIgnoreCase;
if (usernameIgnoreCase.equals("0")) {
isUsernameIgnoreCase = false;
} else if (usernameIgnoreCase.equals("1")) {
isUsernameIgnoreCase = true;
}
val projectConfigs = TapTalk.getProjectConfigs()
val usernameIgnoreCase = projectConfigs["usernameIgnoreCase"]
val isUsernameIgnoreCase: Boolean
if (usernameIgnoreCase == "0") {
isUsernameIgnoreCase = false
} else if (usernameIgnoreCase == "1") {
isUsernameIgnoreCase = true
}
Custom config values are specified by the user, and can be customized through the TapTalk.io Dashboard. To get the project's custom configs, call the
getCustomConfigs()
method.JavaKotlinJava
Kotlin
Map<String, String> customConfigs = TapTalk.getCustomConfigs();
val customConfigs = TapTalk.getCustomConfigs()
To refresh remote configs with the latest updated values, call the
refreshRemoteConfigs()
method in TapTalk.io class.Java
Kotlin
TapTalk.refreshRemoteConfigs(new TapCommonListener() {
@Override
public void onSuccess(String successMessage) {
// Updated configs successfully
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
TapTalk.refreshRemoteConfigs(object : TapCommonListener() {
override fun onSuccess(successMessage: String?) {
// Updated configs successfully
}
override fun onError(errorCode: String?, errorMessage: String?) {
}
})
If you are using UI implementation method in your application, TapTalk.io provides a feature to automatically sync your user's phone contacts with their TapTalk.io contacts. You can choose to enable or disable auto contact sync by calling these methods. If auto contact sync is enabled, TapTalk.io will automatically sync your user's phone contacts and add them to TapTalk.io contacts if their phone number is registered to TapTalk.io when the application is opened. Please note that the default value is enabled.JavaKotlin
Java
Kotlin
@Override
public void onCreate() {
...
// Call this method to enable or disable auto contact sync
// The default value is set to enabled if you do not set this method
TapTalk.setAutoContactSyncEnabled(IS_ENABLED);
}
override fun onCreate(savedInstanceState: Bundle?) {
...
// Call this method to enable or disable auto contact sync
// The default value is set to enabled if you do not set this method
TapTalk.setAutoContactSyncEnabled(IS_ENABLED)
}
Parameters
IS_ENABLED
: (boolean) set to true to enable auto contact syncUse this method to obtain auto contact sync status. This method will return
true
if auto contact sync is enabled.Java
Kotlin
boolean isAutoContactSyncEnabled = TapTalk.isAutoContactSyncEnabled();
val isAutoContactSyncEnabled = TapTalk.isAutoContactSyncEnabled()
You can obtain the currently showing room list fragment, chat activity, or any TapTalk activity from TapUI using the following methods:
Java
Kotlin
// Obtain TapUIRoomListFragment
TapUI.getInstance().getCurrentTapTalkRoomListFragment();
// Obtain currently showing TapUIChatActivity
TapUI.getInstance().getCurrentTapTalkChatActivity();
// Obtain any AppCompatActivity in the foreground
TapUI.getInstance().getCurrentForegroundTapTalkActivity();
// Obtain TapUIRoomListFragment
TapUI.getInstance().getCurrentTapTalkRoomListFragment()
// Obtain currently showing TapUIChatActivity
TapUI.getInstance().getCurrentTapTalkChatActivity()
// Obtain any AppCompatActivity in the foreground
TapUI.getInstance().getCurrentForegroundTapTalkActivity()
Note: the methods above may return
null
if the selected activity or fragment is not found.You can customize the compression quality of images used for upload and download. The range of the compression quality is set between 10 and 100. The higher the quality, the better the images will look, but they will also take more storage space as their size increases.
Java
Kotlin
TapTalk.setImageCompressionQuality(IMAGE_COMPRESSION_QUALITY);
TapTalk.setImageCompressionQuality(IMAGE_COMPRESSION_QUALITY)
Parameters
IMAGE_COMPRESSION_QUALITY
: (int) image compression quality between 10 to 100In order to optimize storage usage and performance, TapTalk.io cleans any local data of messages that are older than 1 month. This cleanup runs on a scheduled interval. Deleted messages can later be retrieved from the server when required.
TapTalk.io SDK encrypts all message contents before sending them to the server to protect any sensitive content contained in the messages. All messages received and stored in the server will stay encrypted. Messages will be decrypted once fetched in end user's local device in order to show their contents. TapTalk.io uses AES Crypt combined with secure local password to encrypt and decrypt message contents.
Last modified 2mo ago