diff --git a/CHANGELOG.md b/CHANGELOG.md index ece5cdc3..89a8fb02 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,23 @@ # Changelog +### v3.6.0 (Jun 23, 2023) with Chat SDK `v4.9.1` +* Support feature configuration + * Added `UIKitConfig` object + * Added `setChannelConfig(ChannelConfig)` in `ChannelFragment.Builder`, `MessageThreadFragment.Builder` + * Added `setChanneListConfig(ChannelListConfig)` in `ChannelListFragment.Builder` + * Added `setChannelSettingConfig(ChannelSettingConfig)` in `ChannelSettingsFragment.Builder` + * Added `setOpenChannelConfig(OpenChannelConfig)` in `OpenChannelFragment.Builder` + * Deprecated `setUseDefaultUserProfile(boolean)`, `shouldUseDefaultUserProfile()` in `SendbirdUIKit` + * Deprecated `setUseChannelListTypingIndicators(boolean)`, `isUsingChannelListTypingIndicators()` in `SendbirdUIKit` + * Deprecated `setUseChannelListMessageReceiptStatus(boolean)`, `isUsingChannelListMessageReceiptStatus` in `SendbirdUIKit` + * Deprecated `setUseUserMention(boolean)`, `isUsingUserMention()` in `SendbirdUIKit` + * Deprecated `setUseVoiceMessage(boolean)`, `isUsingVoiceMessage()` in `SendbirdUIKit` + * Deprecated `setReplyType(ReplyType)`, `getReplyType()` in `SendbirdUIKit` + * Deprecated `setThreadReplySelectType(ThreadReplySelectType)`, `getThreadReplySelectType()` in `SendbirdUIKit` + * Deprecated `setUseTypingIndicator(boolean)` in `ChannelFragment.Builder` + * Deprecated `ReactionUtils` +* Improved voice recorder +* Improved stability + ### v3.5.7 (Jun 9, 2023) with Chat SDK `v4.9.0` * An interface has been added to modify the data used for the Views displayed in the RecyclerView. Through each Provider, it is possible to change the data of the Views displayed in the RecyclerView. * Added `setMessageListAdapter(MessageListAdapter, MessageDisplayDataProvider)` in `ChannelFragment.Builder` diff --git a/gradle.properties b/gradle.properties index 817557b5..f04bfa3e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,5 +16,5 @@ org.gradle.jvmargs=-Xmx1536m # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true -UIKIT_VERSION = 3.5.7 +UIKIT_VERSION = 3.6.0 UIKIT_VERSION_CODE = 1 diff --git a/uikit-custom-sample/src/main/java/com/sendbird/uikit/customsample/BaseApplication.java b/uikit-custom-sample/src/main/java/com/sendbird/uikit/customsample/BaseApplication.java index 4ca31b7d..244bfa2d 100644 --- a/uikit-custom-sample/src/main/java/com/sendbird/uikit/customsample/BaseApplication.java +++ b/uikit-custom-sample/src/main/java/com/sendbird/uikit/customsample/BaseApplication.java @@ -37,6 +37,7 @@ import com.sendbird.uikit.interfaces.UserInfo; import com.sendbird.uikit.log.Logger; import com.sendbird.uikit.model.UserMentionConfig; +import com.sendbird.uikit.model.configurations.UIKitConfig; import java.util.ArrayList; import java.util.List; @@ -113,10 +114,10 @@ public void onInitSucceed() { // set logger SendbirdUIKit.setLogLevel(SendbirdUIKit.LogLevel.ALL); // set whether to use user profile - SendbirdUIKit.setUseDefaultUserProfile(false); + UIKitConfig.getCommon().setEnableUsingDefaultUserProfile(false); // set reply type - SendbirdUIKit.setReplyType(ReplyType.THREAD); - SendbirdUIKit.setThreadReplySelectType(ThreadReplySelectType.THREAD); + UIKitConfig.getGroupChannelConfig().setReplyType(ReplyType.THREAD); + UIKitConfig.getGroupChannelConfig().setThreadReplySelectType(ThreadReplySelectType.THREAD); // set custom user list query SendbirdUIKit.setCustomUserListQueryHandler(getCustomUserListQuery()); initState.setValue(InitState.SUCCEED); @@ -167,9 +168,9 @@ public void onBeforeCreateOpenChannel(@NonNull OpenChannelCreateParams params) { // set custom UIKit fragment factory SendbirdUIKit.setUIKitFragmentFactory(new CustomFragmentFactory()); // set whether to use user mention - SendbirdUIKit.setUseUserMention(true); + UIKitConfig.getGroupChannelConfig().setEnableMention(true); // set the voice message - SendbirdUIKit.setUseVoiceMessage(true); + UIKitConfig.getGroupChannelConfig().setEnableVoiceMessage(true); // set the mention configuration SendbirdUIKit.setMentionConfig(new UserMentionConfig.Builder() .setMaxMentionCount(5) diff --git a/uikit-sample/src/main/java/com/sendbird/uikit_messaging_android/BaseApplication.java b/uikit-sample/src/main/java/com/sendbird/uikit_messaging_android/BaseApplication.java index d73fccce..b4c9d669 100644 --- a/uikit-sample/src/main/java/com/sendbird/uikit_messaging_android/BaseApplication.java +++ b/uikit-sample/src/main/java/com/sendbird/uikit_messaging_android/BaseApplication.java @@ -14,6 +14,8 @@ import com.sendbird.uikit.consts.ThreadReplySelectType; import com.sendbird.uikit.interfaces.CustomParamsHandler; import com.sendbird.uikit.interfaces.UserInfo; +import com.sendbird.uikit.log.Logger; +import com.sendbird.uikit.model.configurations.UIKitConfig; import com.sendbird.uikit_messaging_android.consts.InitState; import com.sendbird.uikit_messaging_android.consts.StringSet; import com.sendbird.uikit_messaging_android.fcm.MyFirebaseMessagingService; @@ -40,7 +42,17 @@ public void onCreate() { @Override @NonNull public String getAppId() { - return APP_ID; + String appId; + if (com.sendbird.uikit_messaging_android.BuildConfig.DEBUG) { + appId = PreferenceUtils.getAppId(); + if (appId.isEmpty()) { + appId = APP_ID; + } + } else { + appId = APP_ID; + } + Logger.d("++ app id : %s", appId); + return appId; } @Override @@ -102,18 +114,18 @@ public void onInitSucceed() { // set logger SendbirdUIKit.setLogLevel(SendbirdUIKit.LogLevel.ALL); // set whether to use user profile - SendbirdUIKit.setUseDefaultUserProfile(true); + UIKitConfig.getCommon().setEnableUsingDefaultUserProfile(true); // set whether to use typing indicators in channel list - SendbirdUIKit.setUseChannelListTypingIndicators(true); + UIKitConfig.getGroupChannelListConfig().setEnableTypingIndicator(true); // set whether to use read/delivery receipt in channel list - SendbirdUIKit.setUseChannelListMessageReceiptStatus(true); + UIKitConfig.getGroupChannelListConfig().setEnableMessageReceiptStatus(true); // set whether to use user mention - SendbirdUIKit.setUseUserMention(true); + UIKitConfig.getGroupChannelConfig().setEnableMention(true); // set reply type - SendbirdUIKit.setReplyType(ReplyType.THREAD); - SendbirdUIKit.setThreadReplySelectType(ThreadReplySelectType.THREAD); + UIKitConfig.getGroupChannelConfig().setReplyType(ReplyType.THREAD); + UIKitConfig.getGroupChannelConfig().setThreadReplySelectType(ThreadReplySelectType.THREAD); // set whether to use voice message - SendbirdUIKit.setUseVoiceMessage(true); + UIKitConfig.getGroupChannelConfig().setEnableVoiceMessage(true); // set custom params SendbirdUIKit.setCustomParamsHandler(new CustomParamsHandler() { diff --git a/uikit-sample/src/main/java/com/sendbird/uikit_messaging_android/LoginActivity.java b/uikit-sample/src/main/java/com/sendbird/uikit_messaging_android/LoginActivity.java index 8227479f..61cb0575 100644 --- a/uikit-sample/src/main/java/com/sendbird/uikit_messaging_android/LoginActivity.java +++ b/uikit-sample/src/main/java/com/sendbird/uikit_messaging_android/LoginActivity.java @@ -32,6 +32,25 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { View view = binding.getRoot(); setContentView(view); + if (com.sendbird.uikit_messaging_android.BuildConfig.DEBUG) { + binding.applicationId.setVisibility(View.VISIBLE); + binding.btSave.setVisibility(View.VISIBLE); + if (SendbirdUIKit.getAdapter() != null) { + binding.applicationId.setText(SendbirdUIKit.getAdapter().getAppId()); + } + binding.btSave.setOnClickListener(v -> { + final Editable appId = binding.applicationId.getText(); + if (!TextUtils.isEmpty(appId)) { + PreferenceUtils.setAppId(appId.toString()); + finish(); + android.os.Process.killProcess(android.os.Process.myPid()); + } + }); + } else { + binding.applicationId.setVisibility(View.GONE); + binding.btSave.setVisibility(View.GONE); + } + binding.etUserId.setSelectAllOnFocus(true); binding.etNickname.setSelectAllOnFocus(true); diff --git a/uikit-sample/src/main/java/com/sendbird/uikit_messaging_android/utils/PreferenceUtils.java b/uikit-sample/src/main/java/com/sendbird/uikit_messaging_android/utils/PreferenceUtils.java index 75f214a2..c3692ac4 100644 --- a/uikit-sample/src/main/java/com/sendbird/uikit_messaging_android/utils/PreferenceUtils.java +++ b/uikit-sample/src/main/java/com/sendbird/uikit_messaging_android/utils/PreferenceUtils.java @@ -11,6 +11,7 @@ */ public class PreferenceUtils { + private static final String PREFERENCE_KEY_APP_ID = "PREFERENCE_KEY_APP_ID"; private static final String PREFERENCE_KEY_USER_ID = "PREFERENCE_KEY_USER_ID"; private static final String PREFERENCE_KEY_NICKNAME = "PREFERENCE_KEY_NICKNAME"; private static final String PREFERENCE_KEY_PROFILE_URL = "PREFERENCE_KEY_PROFILE_URL"; @@ -32,6 +33,16 @@ private static SharedPreferences getSharedPreferences() { return context.getSharedPreferences("sendbird", Context.MODE_PRIVATE); } + public static void setAppId(@NonNull String appId) { + SharedPreferences.Editor editor = getSharedPreferences().edit(); + editor.putString(PREFERENCE_KEY_APP_ID, appId).commit(); + } + + @NonNull + public static String getAppId() { + return getSharedPreferences().getString(PREFERENCE_KEY_APP_ID, ""); + } + public static void setUserId(@NonNull String userId) { SharedPreferences.Editor editor = getSharedPreferences().edit(); editor.putString(PREFERENCE_KEY_USER_ID, userId).apply(); diff --git a/uikit-sample/src/main/res/layout/activity_login.xml b/uikit-sample/src/main/res/layout/activity_login.xml index 2032b4ad..62bee606 100644 --- a/uikit-sample/src/main/res/layout/activity_login.xml +++ b/uikit-sample/src/main/res/layout/activity_login.xml @@ -43,6 +43,40 @@ android:text="@string/text_title_login_activity" /> + + + +