Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev #65

Merged
merged 14 commits into from
Jul 3, 2017
Merged

Dev #65

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ captures/

# Intellij
*.iml
*.idea/
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
Expand Down
2 changes: 1 addition & 1 deletion Android/messagelist/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apply plugin: 'com.android.library'
ext {
PUBLISH_GROUP_ID = 'cn.jiguang.imui'
PUBLISH_ARTIFACT_ID = 'messagelist'
PUBLISH_VERSION = '0.4.0'
PUBLISH_VERSION = '0.4.2'
}

android {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ public interface IMessage {
* Type of Message
*/
enum MessageType {
EVENT,
SEND_TEXT,
RECEIVE_TEXT,

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package cn.jiguang.imui.messages;

import android.view.View;
import android.widget.TextView;

import cn.jiguang.imui.R;
import cn.jiguang.imui.commons.models.IMessage;


public class EventViewHolder<MESSAGE extends IMessage>
extends BaseMessageViewHolder<MESSAGE>
implements MsgListAdapter.DefaultMessageViewHolder {

private TextView mEvent;

public EventViewHolder(View itemView, boolean isSender) {
super(itemView);
mEvent = (TextView) itemView.findViewById(R.id.aurora_tv_msgitem_event);
}

@Override
public void onBind(MESSAGE message) {
mEvent.setText(message.getText());
}

@Override
public void applyStyle(MessageListStyle style) {
mEvent.setTextColor(style.getEventTextColor());
mEvent.setTextSize(style.getEventTextSize());
mEvent.setPadding(style.getEventPadding(), style.getEventPadding(), style.getEventPadding(), style.getEventPadding());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,18 @@ public void setDatePadding(int padding) {
mMsgListStyle.setDatePadding(padding);
}

public void setEventTextColor(int color) {
mMsgListStyle.setEventTextColor(color);
}

public void setEventTextSize(int size) {
mMsgListStyle.setEventTextSize(size);
}

public void setEventTextPadding(int padding) {
mMsgListStyle.setEventTextPadding(padding);
}

public void setAvatarWidth(int width) {
mMsgListStyle.setAvatarWidth(width);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ public class MessageListStyle extends Style {
private float dateTextSize;
private int dateTextColor;
private int datePadding;
private int eventPadding;
private float eventTextSize;
private int eventTextColor;
private String dateFormat;

private int avatarWidth;
Expand Down Expand Up @@ -66,12 +69,19 @@ public static MessageListStyle parse(Context context, AttributeSet attrs) {
MessageListStyle style = new MessageListStyle(context, attrs);
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.MessageList);
int dateTextSizePixel = typedArray.getDimensionPixelSize(R.styleable.MessageList_dateTextSize,
context.getResources().getDimensionPixelOffset(R.dimen.aurora_size_date_text));
context.getResources().getDimensionPixelSize(R.dimen.aurora_size_date_text));
style.dateTextSize = getSPTextSize(context, dateTextSizePixel);
style.dateTextColor = typedArray.getColor(R.styleable.MessageList_dateTextColor,
ContextCompat.getColor(context, R.color.aurora_msg_date_text_color));
style.datePadding = typedArray.getDimensionPixelSize(R.styleable.MessageList_datePadding,
context.getResources().getDimensionPixelSize(R.dimen.aurora_padding_date_text));
int eventTextSizePixel = typedArray.getDimensionPixelSize(R.styleable.MessageList_eventTextSize,
context.getResources().getDimensionPixelSize(R.dimen.aurora_size_event_text));
style.eventTextSize = getSPTextSize(context, eventTextSizePixel);
style.eventPadding = typedArray.getDimensionPixelSize(R.styleable.MessageList_eventPadding,
context.getResources().getDimensionPixelSize(R.dimen.aurora_padding_event_text));
style.eventTextColor = typedArray.getColor(R.styleable.MessageList_eventTextColor,
ContextCompat.getColor(context, R.color.aurora_msg_event_text_color));
style.dateFormat = typedArray.getString(R.styleable.MessageList_dateFormat);

style.avatarWidth = typedArray.getDimensionPixelSize(R.styleable.MessageList_avatarWidth,
Expand Down Expand Up @@ -230,6 +240,30 @@ public void setDatePadding(int datePadding) {
this.datePadding = datePadding;
}

public void setEventTextPadding(int padding) {
this.eventPadding = padding;
}

public int getEventPadding() {
return this.eventPadding;
}

public void setEventTextColor(int eventTextColor) {
this.eventTextColor = eventTextColor;
}

public int getEventTextColor() {
return this.eventTextColor;
}

public void setEventTextSize(int textSize) {
this.eventTextSize = textSize;
}

public float getEventTextSize() {
return this.eventTextSize;
}

public void setDateFormat(String dateFormat) {
this.dateFormat = dateFormat;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public class MsgListAdapter<MESSAGE extends IMessage> extends RecyclerView.Adapt
private final int TYPE_RECEIVE_VIDEO = 9;

// Group change message
private final int TYPE_GROUP_CHANGE = 10;
private final int TYPE_EVENT = 10;

// Custom message
private final int TYPE_CUSTOM_SEND_MSG = 11;
Expand Down Expand Up @@ -98,6 +98,8 @@ public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return getHolder(parent, mHolders.mSendVideoLayout, mHolders.mSendVideoHolder, true);
case TYPE_RECEIVE_VIDEO:
return getHolder(parent, mHolders.mReceiveVideoLayout, mHolders.mReceiveVideoHolder, false);
case TYPE_EVENT:
return getHolder(parent, mHolders.mEventLayout, mHolders.mEventMsgHolder, true);
case TYPE_CUSTOM_SEND_MSG:
return getHolder(parent, mHolders.mCustomSendMsgLayout, mHolders.mCustomSendMsgHolder, true);
default:
Expand Down Expand Up @@ -127,6 +129,8 @@ public int getItemViewType(int position) {
return TYPE_SEND_VIDEO;
case RECEIVE_VIDEO:
return TYPE_RECEIVE_VIDEO;
case EVENT:
return TYPE_EVENT;
case SEND_CUSTOM:
return TYPE_CUSTOM_SEND_MSG;
default:
Expand Down Expand Up @@ -561,6 +565,8 @@ public static class HoldersConfig {
private Class<? extends BaseMessageViewHolder<? extends IMessage>> mCustomSendMsgHolder;
private Class<? extends BaseMessageViewHolder<? extends IMessage>> mCustomReceiveMsgHolder;

private Class<? extends BaseMessageViewHolder<? extends IMessage>> mEventMsgHolder;

private int mSendTxtLayout;
private int mReceiveTxtLayout;

Expand All @@ -576,6 +582,8 @@ public static class HoldersConfig {
private int mCustomSendMsgLayout;
private int mCustomReceiveMsgLayout;

private int mEventLayout;

public HoldersConfig() {
mSendTxtHolder = DefaultTxtViewHolder.class;
mReceiveTxtHolder = DefaultTxtViewHolder.class;
Expand All @@ -600,6 +608,9 @@ public HoldersConfig() {

mSendVideoLayout = R.layout.item_send_video;
mReceiveVideoLayout = R.layout.item_receive_video;

mEventMsgHolder = DefaultEventMsgViewHolder.class;
mEventLayout = R.layout.item_event_message;
}

/**
Expand Down Expand Up @@ -782,6 +793,12 @@ public void setReceiveCustomMsg(Class<? extends BaseMessageViewHolder<? extends
this.mCustomReceiveMsgLayout = layout;
}

public void setEventMessage(Class<? extends BaseMessageViewHolder<? extends IMessage>> holder,
@LayoutRes int layout) {
this.mEventMsgHolder = holder;
this.mEventLayout = layout;
}

}

private static class DefaultTxtViewHolder extends TxtViewHolder<IMessage> {
Expand Down Expand Up @@ -813,6 +830,12 @@ public DefaultVideoViewHolder(View itemView, boolean isSender) {
}
}

private static class DefaultEventMsgViewHolder extends EventViewHolder<IMessage> {
public DefaultEventMsgViewHolder(View itemView, boolean isSender) {
super(itemView, isSender);
}
}

@Override
public void onViewDetachedFromWindow(ViewHolder holder) {
super.onViewDetachedFromWindow(holder);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public void notifyAnimStop(int resId) {
}

public void remove(int position) {
if (mData.size() > 0) {
if (null != mData && mData.size() > 0) {
mData.remove(position);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle" >
<corners android:radius="3dp" />
<solid android:color="#CECECE" />
</shape>
</item>
</selector>
17 changes: 17 additions & 0 deletions Android/messagelist/src/main/res/layout/item_event_message.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">

<TextView
android:id="@+id/aurora_tv_msgitem_event"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/aurora_bg_event_message"
android:gravity="center"
android:padding="5dp"
android:text="TextView"
android:textColor="#ffffff" />
</LinearLayout>
3 changes: 3 additions & 0 deletions Android/messagelist/src/main/res/values/attrs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
<attr name="dateTextColor" format="color|reference"/>
<attr name="dateFormat" format="string|reference"/>
<attr name="datePadding" format="dimension|reference"/>
<attr name="eventTextSize" format="dimension|reference" />
<attr name="eventTextColor" format="color|reference" />
<attr name="eventPadding" format="dimension|reference" />

<attr name="avatarWidth" format="dimension|reference"/>
<attr name="avatarHeight" format="dimension|reference"/>
Expand Down
1 change: 1 addition & 0 deletions Android/messagelist/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

<!-->Message List<-->
<color name="aurora_msg_date_text_color">#4e4e4e</color>
<color name="aurora_msg_event_text_color">#ffffff</color>
<color name="aurora_msg_receive_bubble_default_color">#2977fa</color>
<color name="aurora_msg_receive_bubble_pressed_color">#005af2</color>
<color name="aurora_msg_receive_bubble_selected_color">#0e63f0</color>
Expand Down
2 changes: 2 additions & 0 deletions Android/messagelist/src/main/res/values/dimens.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@

<!-->Message List<-->
<dimen name="aurora_size_date_text">16sp</dimen>
<dimen name="aurora_size_event_text">12sp</dimen>
<dimen name="aurora_padding_date_text">5dp</dimen>
<dimen name="aurora_padding_event_text">5dp</dimen>
<dimen name="aurora_width_msg_avatar">50dp</dimen>
<dimen name="aurora_height_msg_avatar">50dp</dimen>
<dimen name="aurora_size_receive_text">18sp</dimen>
Expand Down
4 changes: 3 additions & 1 deletion Android/sample/exampleui/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ apply from: "$project.rootDir/tools/script-git-version.gradle"
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
flavorDimensions "prod"
flavorDimensions "versionCode"

defaultConfig {
applicationId "imui.jiguang.cn.imuisample"
Expand All @@ -20,12 +20,14 @@ android {
versionCode gitVersionCodeTime
versionName gitVersionName
applicationId "imui.jiguang.cn.imuisample.dev"
dimension "versionCode"
}

prod {
versionCode gitVersionCode
versionName gitVersionName
applicationId "imui.jiguang.cn.imuisample"
dimension "versionCode"
}
}
buildTypes {
Expand Down
24 changes: 15 additions & 9 deletions ReactNative/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,16 +78,16 @@ if you haven't define this property, default value is "send_succeed".**
status: "send_going",
msgType: "text",
isOutgoing: true,
text: "text"
text: "text",
fromUser: {}
}

message = { // image message
msgId: "msgid",
msgType: "image",
isOutGoing: true,
progress: "progress string"
mediaPath: "image path"
progress: "progress string",
mediaPath: "image path",
fromUser: {}
}

Expand All @@ -96,8 +96,8 @@ message = { // voice message
msgId: "msgid",
msgType: "voice",
isOutGoing: true,
duration: number
mediaPath: "voice path"
duration: number,
mediaPath: "voice path",
fromUser: {}
}

Expand All @@ -106,18 +106,24 @@ message = { // video message
status: "send_failed",
msgType: "video",
isOutGoing: true,
druation: number
mediaPath: "voice path"
druation: number,
mediaPath: "voice path",
fromUser: {}
}

message = { // event message
msgId: "msgid",
msgType: "event",
text: "the event text"
}
```

- fromUser object format:

```
fromUser = {
userId: ""
displayName: ""
userId: "",
displayName: "",
avatarPath: "avatar image path"
}
```
Expand Down
6 changes: 6 additions & 0 deletions ReactNative/README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,12 @@ message = { // video message
mediaPath: "voice path"
fromUser: {}
}

message = { // event message
msgId: "msgid",
msgType: "event",
text: "the event text"
}
```

- `fromUser` 对象格式:
Expand Down
2 changes: 1 addition & 1 deletion ReactNative/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ dependencies {
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'cn.jiguang.imui:messagelist:0.3.1-beta'
compile 'cn.jiguang.imui:messagelist:0.4.2'
compile 'cn.jiguang.imui:chatinput:0.3.4-beta'
compile 'com.android.support:appcompat-v7:25.3.1'
compile "com.facebook.react:react-native:+"
Expand Down
Loading