From deb4acff0dab85791452a9bf41e1b04169001bde Mon Sep 17 00:00:00 2001 From: KenChoi Date: Thu, 11 Jan 2018 10:35:27 +0800 Subject: [PATCH 1/4] fix #226 --- .../main/java/cn/jiguang/imui/chatinput/ChatInputView.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Android/chatinput/src/main/java/cn/jiguang/imui/chatinput/ChatInputView.java b/Android/chatinput/src/main/java/cn/jiguang/imui/chatinput/ChatInputView.java index 5c36db3b..8f6adfc1 100644 --- a/Android/chatinput/src/main/java/cn/jiguang/imui/chatinput/ChatInputView.java +++ b/Android/chatinput/src/main/java/cn/jiguang/imui/chatinput/ChatInputView.java @@ -135,7 +135,7 @@ public class ChatInputView extends LinearLayout private int mSoftKeyboardHeight; private int mNowh; private int mOldh; - public static int sMenuHeight = 800; + public static int sMenuHeight = 831; private boolean mShowSoftInput = false; @@ -1217,7 +1217,7 @@ public void onGlobalLayout() { if (mOldh != -1 && mNowh != mOldh) { mShowSoftInput = mNowh > 0; mSoftKeyboardHeight = mShowSoftInput ? mNowh : 0; - sMenuHeight = mSoftKeyboardHeight; + sMenuHeight = mSoftKeyboardHeight > 0 ? mSoftKeyboardHeight : 831; } mOldh = mNowh; } catch (Exception e) { From ef62bd2561acf4cdaea328aeb86b3838e7b3f3e0 Mon Sep 17 00:00:00 2001 From: KenChoi Date: Thu, 11 Jan 2018 14:18:30 +0800 Subject: [PATCH 2/4] fix code roll back bug --- Android/chatinput/build.gradle | 2 +- .../jiguang/imui/chatinput/ChatInputView.java | 6 ++- .../aurora_picture_not_found.png | Bin 6420 -> 3844 bytes .../aurora_picture_not_found.png | Bin 6420 -> 3844 bytes .../messagelist/ReactChatInputManager.java | 40 ++++++++++++++---- 5 files changed, 36 insertions(+), 12 deletions(-) diff --git a/Android/chatinput/build.gradle b/Android/chatinput/build.gradle index 3972f369..3988f034 100644 --- a/Android/chatinput/build.gradle +++ b/Android/chatinput/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'com.android.library' ext { PUBLISH_GROUP_ID = 'cn.jiguang.imui' PUBLISH_ARTIFACT_ID = 'chatinput' - PUBLISH_VERSION = '0.6.2' + PUBLISH_VERSION = '0.6.3' } android { diff --git a/Android/chatinput/src/main/java/cn/jiguang/imui/chatinput/ChatInputView.java b/Android/chatinput/src/main/java/cn/jiguang/imui/chatinput/ChatInputView.java index 8f6adfc1..2a9e3140 100644 --- a/Android/chatinput/src/main/java/cn/jiguang/imui/chatinput/ChatInputView.java +++ b/Android/chatinput/src/main/java/cn/jiguang/imui/chatinput/ChatInputView.java @@ -1216,8 +1216,10 @@ public void onGlobalLayout() { mNowh = mHeight - r.bottom; if (mOldh != -1 && mNowh != mOldh) { mShowSoftInput = mNowh > 0; - mSoftKeyboardHeight = mShowSoftInput ? mNowh : 0; - sMenuHeight = mSoftKeyboardHeight > 0 ? mSoftKeyboardHeight : 831; + if (mShowSoftInput) { + mSoftKeyboardHeight = mNowh; + sMenuHeight = mSoftKeyboardHeight; + } } mOldh = mNowh; } catch (Exception e) { diff --git a/Android/chatinput/src/main/res/drawable-xhdpi/aurora_picture_not_found.png b/Android/chatinput/src/main/res/drawable-xhdpi/aurora_picture_not_found.png index 33641ec188fe3fae773491b2277859f5d1dfe519..2f7ef1d3465f4f42ef5b7deda062de8e16f34947 100644 GIT binary patch literal 3844 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 z { private static final String ON_FULL_SCREEN_EVENT = "onFullScreen"; private static final String ON_RECOVER_SCREEN_EVENT = "onRecoverScreen"; private static final String ON_INPUT_SIZE_CHANGED_EVENT = "onSizeChange"; + private static final String ON_CLICK_SELECT_ALBUM_EVENT = "onClickSelectAlbum"; private final int REQUEST_PERMISSION = 0x0001; private final int CLOSE_SOFT_INPUT = 100; private final int GET_INPUT_TEXT = 101; @@ -91,8 +92,12 @@ public class ReactChatInputManager extends ViewGroupManager { private boolean mInitState = true; private boolean mShowMenu = false; private double mCurrentInputHeight = 48; - private int InitialChatInputHeight = 100; + private int mInitialChatInputHeight = 100; private int mScreenWidth; + /** + * Initial soft input height, set this value via {@link #setMenuContainerHeight} + */ + private int mMenuContainerHeight = 831; @Override public String getName() { @@ -163,7 +168,7 @@ public boolean onSendTextMessage(CharSequence input) { return false; } WritableMap map = Arguments.createMap(); - map.putDouble("height", InitialChatInputHeight); + map.putDouble("height", mInitialChatInputHeight); reactContext.getJSModule(RCTEventEmitter.class).receiveEvent(mChatInput.getId(), ON_INPUT_SIZE_CHANGED_EVENT, map); WritableMap event = Arguments.createMap(); event.putString("text", input.toString()); @@ -274,7 +279,7 @@ public void onStartRecord() { @Override public void onFinishRecord(File voiceFile, int duration) { WritableMap event = Arguments.createMap(); - event.putString("mediaPath", voiceFile.getName()); + event.putString("mediaPath", voiceFile.getAbsolutePath()); event.putInt("duration", duration); reactContext.getJSModule(RCTEventEmitter.class).receiveEvent(mChatInput.getId(), FINISH_RECORD_VOICE_EVENT, event); @@ -304,7 +309,7 @@ public void onRecoverScreenClick() { reactContext.getJSModule(RCTEventEmitter.class).receiveEvent(mChatInput.getId(), ON_RECOVER_SCREEN_EVENT, null); WritableMap map = Arguments.createMap(); - map.putDouble("height", InitialChatInputHeight + mChatInput.getSoftKeyboardHeight() / density); + map.putDouble("height", mInitialChatInputHeight + mChatInput.getSoftKeyboardHeight() / density); reactContext.getJSModule(RCTEventEmitter.class).receiveEvent(mChatInput.getId(), ON_INPUT_SIZE_CHANGED_EVENT, map); } @@ -318,6 +323,12 @@ public void onSwitchCameraModeClick() { } }); + mChatInput.getSelectAlbumBtn().setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + reactContext.getJSModule(RCTEventEmitter.class).receiveEvent(mChatInput.getId(), ON_CLICK_SELECT_ALBUM_EVENT, null); + } + }); return mChatInput; } @@ -332,12 +343,16 @@ private void initMenu(float density) { EventBus.getDefault().post(new ScrollEvent(true)); } WritableMap event = Arguments.createMap(); - event.putDouble("height", InitialChatInputHeight + mChatInput.getSoftKeyboardHeight() / density); + if (mChatInput.getSoftKeyboardHeight() == 0) { + event.putDouble("height", mInitialChatInputHeight + mMenuContainerHeight / density); + } else { + event.putDouble("height", mInitialChatInputHeight + mChatInput.getSoftKeyboardHeight() / density); + } mContext.getJSModule(RCTEventEmitter.class).receiveEvent(mChatInput.getId(), ON_INPUT_SIZE_CHANGED_EVENT, event); } private double calculateMenuHeight(float density) { - double layoutHeight = InitialChatInputHeight; + double layoutHeight = mInitialChatInputHeight; if (mShowMenu) { layoutHeight += mChatInput.getSoftKeyboardHeight() / density; } @@ -378,7 +393,7 @@ public void onEvent(StopPlayVoiceEvent event) { @Subscribe(threadMode = ThreadMode.MAIN) public void onEvent(OnTouchMsgListEvent event) { WritableMap map = Arguments.createMap(); - map.putDouble("height", InitialChatInputHeight); + map.putDouble("height", mInitialChatInputHeight); mContext.getJSModule(RCTEventEmitter.class).receiveEvent(mChatInput.getId(), ON_INPUT_SIZE_CHANGED_EVENT, map); } @@ -391,7 +406,8 @@ public void setBackgroundColor(ChatInputView chatInputView, String color) { @ReactProp(name = "menuContainerHeight") public void setMenuContainerHeight(ChatInputView chatInputView, int height) { Log.d("ReactChatInputManager", "Setting menu container height: " + height); - chatInputView.setMenuContainerHeight(height); + mMenuContainerHeight = height; +// chatInputView.setMenuContainerHeight(height); } @ReactProp(name = "isDismissMenuContainer") @@ -408,6 +424,11 @@ public void setEditTextHeight(ChatInputView chatInputView, int height) { editText.setLayoutParams(new LinearLayout.LayoutParams(mWidth, height)); } + @ReactProp(name = "showSelectAlbumBtn") + public void showSelectAlbumBtn(ChatInputView chatInputView, boolean flag) { + chatInputView.getSelectAlbumBtn().setVisibility(flag? View.VISIBLE: View.GONE); + } + @Override public Map getExportedCustomDirectEventTypeConstants() { return MapBuilder.builder() @@ -428,6 +449,7 @@ public Map getExportedCustomDirectEventTypeConstants() { .put(ON_FULL_SCREEN_EVENT, MapBuilder.of("registrationName", ON_FULL_SCREEN_EVENT)) .put(ON_RECOVER_SCREEN_EVENT, MapBuilder.of("registrationName", ON_RECOVER_SCREEN_EVENT)) .put(ON_INPUT_SIZE_CHANGED_EVENT, MapBuilder.of("registrationName", ON_INPUT_SIZE_CHANGED_EVENT)) + .put(ON_CLICK_SELECT_ALBUM_EVENT, MapBuilder.of("registrationName", ON_CLICK_SELECT_ALBUM_EVENT)) .build(); } @@ -460,7 +482,7 @@ public void receiveCommand(ChatInputView root, int commandId, @Nullable Readable float dp = mContext.getResources().getDisplayMetrics().density; mContext.getCurrentActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); if (mInitState) { - event.putDouble("height", InitialChatInputHeight); + event.putDouble("height", mInitialChatInputHeight); } else { event.putDouble("height", calculateMenuHeight(dp)); } From 2922f8f5c647ccb76faaff6a6ef02ffc13173196 Mon Sep 17 00:00:00 2001 From: KenChoi Date: Thu, 11 Jan 2018 14:20:19 +0800 Subject: [PATCH 3/4] prepare release rn 0.6.9 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6dfcc0a5..7b74bf03 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aurora-imui-react-native", - "version": "0.6.8", + "version": "0.6.9", "description": "aurora imui plugin for react native application", "main": "index.js", From 16b89e4156c06b9d13b03acf6a8061098665e47d Mon Sep 17 00:00:00 2001 From: KenChoi Date: Thu, 11 Jan 2018 16:58:59 +0800 Subject: [PATCH 4/4] prepare release ChatInput 0.6.3 --- Android/chatinput/README.md | 9 ++++----- Android/chatinput/README_EN.md | 14 +++++++------- .../jiguang/imui/messagelist/CustomViewHolder.java | 11 +++++++---- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/Android/chatinput/README.md b/Android/chatinput/README.md index d6f841ba..c43b47c7 100644 --- a/Android/chatinput/README.md +++ b/Android/chatinput/README.md @@ -12,7 +12,7 @@ - Gradle ```groovy -compile 'cn.jiguang.imui:chatinput:0.6.2' +compile 'cn.jiguang.imui:chatinput:0.6.3' ``` - Maven @@ -20,7 +20,7 @@ compile 'cn.jiguang.imui:chatinput:0.6.2' cn.jiguang.imui chatinput - 0.6.2 + 0.6.3 pom ``` @@ -42,7 +42,7 @@ compile 'cn.jiguang.imui:chatinput:0.6.2' ```groovy dependencies { - compile 'com.github.jpush:imui:0.6.6' + compile 'com.github.jpush:imui:0.6.9' } ``` @@ -73,8 +73,7 @@ chatInputView.setMenuContainerHeight(softInputHeight); **初始化后一定要设置一下 MenuContainer 的高度,最好设置为软键盘的高度,否则会导致第一次打开菜单时高度不正常(此时打开软键盘会导致界面伸缩)。** - 建议在跳转到聊天界面之前使用 onSizeChanged 方法监听软键盘的高度,然后在初始化的时候设置即可, - 关于监听软键盘高度的方法可以参考 sample 下的 MessageListActivity 及 ChatView 中的 onSizeChanged 相关方法。 + 建议在跳转到聊天界面之前使用 onSizeChanged 方法监听软键盘的高度,然后在初始化的时候设置即可。 ## 重要接口及事件 ChatInputView 提供了各种按钮及事件的监听回调,所以用户可以灵活地运用监听事件做一些操作,如发送消息等事件。 diff --git a/Android/chatinput/README_EN.md b/Android/chatinput/README_EN.md index 8c7f8805..b243f668 100644 --- a/Android/chatinput/README_EN.md +++ b/Android/chatinput/README_EN.md @@ -11,7 +11,7 @@ Provides several ways to add dependency, you can choose one of them: - Via Gradle ```groovy -compile 'cn.jiguang.imui:chatinput:0.6.2' +compile 'cn.jiguang.imui:chatinput:0.6.3' ``` - Via Maven @@ -20,7 +20,7 @@ compile 'cn.jiguang.imui:chatinput:0.6.2' cn.jiguang.imui chatinput - 0.6.2 + 0.6.3 pom ``` @@ -41,7 +41,7 @@ allprojects { ```groovy dependencies { - compile 'com.github.jpush:imui:0.6.6' + compile 'com.github.jpush:imui:0.6.9' } ``` @@ -72,16 +72,16 @@ ChatInputView chatInputView = (ChatInputView) findViewById(R.id.chat_input); chatInputView.setMenuContainerHeight(softInputHeight); ``` -Attention please, **MUST** set MenuContainer's height after init ChatInputView. Best suggestion: get -soft keyboard height from other activity(Like login Activity), then set soft keyboard height via: +**Attention please, for perfect display, MUST set MenuContainer's height after init ChatInputView.** + +Best suggestion: get soft keyboard height from other activity(Like login Activity, just before chat Activity), then set soft keyboard height via: + ```java ChatInputView chatinput = (ChatInputView) findViewById(R.id.chat_input); chatinput.setMenuContainerHeight(softKeyboardHeight); ``` As for how to get soft keyboard height, you can listen `onSizeChanged` method. -Please [refer onSizeChanged in sample's MessageListActivity](./../sample/exampleui/src/main/java/imui/jiguang/cn/imuisample/messages/MessageListActivity.java#L340), -and [onSizedChanged in sample's ChatView](./../sample/exampleui/src/main/java/imui/jiguang/cn/imuisample/views/ChatView.java#L102). ## Import interface and event diff --git a/ReactNative/android/src/main/java/cn/jiguang/imui/messagelist/CustomViewHolder.java b/ReactNative/android/src/main/java/cn/jiguang/imui/messagelist/CustomViewHolder.java index fbce4b61..b58174db 100644 --- a/ReactNative/android/src/main/java/cn/jiguang/imui/messagelist/CustomViewHolder.java +++ b/ReactNative/android/src/main/java/cn/jiguang/imui/messagelist/CustomViewHolder.java @@ -11,6 +11,7 @@ import android.os.Build; import android.text.Editable; import android.text.Html; +import android.text.TextUtils; import android.util.Log; import android.util.LruCache; import android.view.View; @@ -75,10 +76,12 @@ public void onBind(final MESSAGE message) { mMsgTv.setLayoutParams(params); } String text = message.getText(); - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { - mMsgTv.setText(Html.fromHtml(text, new MyImageGetter(), null)); - } else { - mMsgTv.setText(Html.fromHtml(text, Html.FROM_HTML_MODE_COMPACT, new MyImageGetter(), null)); + if (!TextUtils.isEmpty(text)) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { + mMsgTv.setText(Html.fromHtml(text, new MyImageGetter(), null)); + } else { + mMsgTv.setText(Html.fromHtml(text, Html.FROM_HTML_MODE_COMPACT, new MyImageGetter(), null)); + } } if (message.getTimeString() != null) {