Skip to content

Commit

Permalink
Merge pull request #120 from jpush/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
KenChoi1992 authored Sep 18, 2017
2 parents 8c96292 + 6412e5a commit 6807b5b
Show file tree
Hide file tree
Showing 66 changed files with 1,479 additions and 621 deletions.
17 changes: 9 additions & 8 deletions .github/issue_template.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
### My environment
### My environment:
<!-- if react-native
- `react-native` version:
- `aurora-imui-react-native` version:
-->
- `react-native` version:
- `aurora-imui-react-native` version:
-->

<!-- if native iOS
- native version
-->
- native version
-->

<!-- if native android
- native version
-->
- native version
-->

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.7'
PUBLISH_VERSION = '0.4.8'
}

android {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ public abstract class BaseMessageViewHolder<MESSAGE extends IMessage>
protected MsgListAdapter.OnMsgStatusViewClickListener<MESSAGE> mMsgStatusViewClickListener;
protected MediaPlayer mMediaPlayer;
protected boolean mScroll;
protected boolean mIsEarPhoneOn;

public BaseMessageViewHolder(View itemView) {
super(itemView);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public class MessageList extends RecyclerView implements GestureDetector.OnGestu
private MessageListStyle mMsgListStyle;
private final GestureDetector mGestureDetector;
private MsgListAdapter mAdapter;
private ScrollMoreListener mScrollMoreListener;

public MessageList(Context context) {
this(context, null);
Expand Down Expand Up @@ -60,10 +61,15 @@ public <MESSAGE extends IMessage> void setAdapter(MsgListAdapter<MESSAGE> adapte

adapter.setLayoutManager(layoutManager);
adapter.setStyle(mContext, mMsgListStyle);
addOnScrollListener(new ScrollMoreListener(layoutManager, adapter));
mScrollMoreListener = new ScrollMoreListener(layoutManager, adapter);
addOnScrollListener(mScrollMoreListener);
super.setAdapter(adapter);
}

public void forbidScrollToRefresh(boolean disable) {
mScrollMoreListener.forbidScrollToRefresh(disable);
}

public void setSendBubbleDrawable(int resId) {
mMsgListStyle.setSendBubbleDrawable(resId);
}
Expand All @@ -76,7 +82,7 @@ public void setSendBubblePressedColor(int color) {
mMsgListStyle.setSendBubblePressedColor(color);
}

public void setSendBubbleTextSize(int size) {
public void setSendBubbleTextSize(float size) {
mMsgListStyle.setSendBubbleTextSize(size);
}

Expand Down Expand Up @@ -112,7 +118,7 @@ public void setReceiveBubblePressedColor(int color) {
mMsgListStyle.setReceiveBubblePressedColor(color);
}

public void setReceiveBubbleTextSize(int size) {
public void setReceiveBubbleTextSize(float size) {
mMsgListStyle.setReceiveBubbleTextSize(size);
}

Expand All @@ -136,7 +142,7 @@ public void setReceiveBubblePaddingBottom(int paddingBottom) {
mMsgListStyle.setReceiveBubblePaddingBottom(paddingBottom);
}

public void setDateTextSize(int size) {
public void setDateTextSize(float size) {
mMsgListStyle.setDateTextSize(size);
}

Expand All @@ -152,7 +158,7 @@ public void setEventTextColor(int color) {
mMsgListStyle.setEventTextColor(color);
}

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

Expand All @@ -172,8 +178,12 @@ public void setAvatarRadius(int radius) {
mMsgListStyle.setAvatarRadius(radius);
}

public void setShowDisplayName(int showDisplayName) {
mMsgListStyle.setShowDisplayName(showDisplayName);
public void setShowSenderDisplayName(int showDisplayName) {
mMsgListStyle.setShowSenderDisplayName(showDisplayName);
}

public void setShowReceiverDisplayName(int showDisplayName) {
mMsgListStyle.setShowReceiverDisplayName(showDisplayName);
}

public void setSendVoiceDrawable(int resId) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ public class MessageListStyle extends Style {
private int avatarWidth;
private int avatarHeight;
private int avatarRadius;
private int showDisplayName;
private int showSenderDisplayName;
private int showReceiverDisplayName;
private int receiveBubbleDrawable;
private int receiveBubbleColor;
private int receiveBubblePressedColor;
Expand Down Expand Up @@ -91,8 +92,8 @@ public static MessageListStyle parse(Context context, AttributeSet attrs) {
context.getResources().getDimensionPixelSize(R.dimen.aurora_height_msg_avatar));
style.avatarRadius = typedArray.getDimensionPixelSize(R.styleable.MessageList_avatarRadius,
context.getResources().getDimensionPixelSize(R.dimen.aurora_radius_avatar_default));
style.showDisplayName = typedArray.getInt(R.styleable.MessageList_showDisplayName, 0);

style.showSenderDisplayName = typedArray.getInt(R.styleable.MessageList_showSenderDisplayName, 0);
style.showReceiverDisplayName = typedArray.getInt(R.styleable.MessageList_showReceiverDisplayName, 0);
style.receiveBubbleDrawable = typedArray.getResourceId(R.styleable.MessageList_receiveBubbleDrawable, -1);
style.receiveBubbleColor = typedArray.getColor(R.styleable.MessageList_receiveBubbleColor,
ContextCompat.getColor(context, R.color.aurora_msg_receive_bubble_default_color));
Expand Down Expand Up @@ -207,8 +208,12 @@ public void setAvatarRadius(int radius) {
this.avatarRadius = radius;
}

public int getShowDisplayName() {
return showDisplayName;
public int getShowSenderDisplayName() {
return showSenderDisplayName;
}

public int getShowReceiverDisplayName() {
return showReceiverDisplayName;
}

public void setReceiveBubbleDrawable(int resId) {
Expand Down Expand Up @@ -267,7 +272,7 @@ public int getEventTextColor() {
return this.eventTextColor;
}

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

Expand All @@ -287,8 +292,12 @@ public void setAvatarHeight(int avatarHeight) {
this.avatarHeight = avatarHeight;
}

public void setShowDisplayName(int showDisplayName) {
this.showDisplayName = showDisplayName;
public void setShowSenderDisplayName(int showSenderDisplayName) {
this.showSenderDisplayName = showSenderDisplayName;
}

public void setShowReceiverDisplayName(int showReceiverDisplayName) {
this.showReceiverDisplayName = showReceiverDisplayName;
}

public void setReceiveBubbleColor(int receiveBubbleColor) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Build;
import android.support.annotation.LayoutRes;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
Expand Down Expand Up @@ -66,7 +67,6 @@ public class MsgListAdapter<MESSAGE extends IMessage> extends RecyclerView.Adapt
private LinearLayoutManager mLayoutManager;
private MessageListStyle mStyle;
private MediaPlayer mMediaPlayer;
private boolean mIsEarPhoneOn;
private List<Wrapper> mItems;
private boolean mScroll;

Expand All @@ -93,17 +93,18 @@ public boolean getScrolling() {
public void setAudioPlayByEarPhone(int state) {
AudioManager audioManager = (AudioManager) mContext
.getSystemService(Context.AUDIO_SERVICE);
int currVolume = audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL);
audioManager.setMode(AudioManager.MODE_IN_CALL);
// 外放模式
if (state == 0) {
mIsEarPhoneOn = false;
audioManager.setMode(AudioManager.MODE_NORMAL);
audioManager.setSpeakerphoneOn(true);
audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,
audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL),
AudioManager.STREAM_VOICE_CALL);
// 耳机模式
} else if (state == 1) {
audioManager.setSpeakerphoneOn(false);
// 听筒模式
} else {
mIsEarPhoneOn = true;
audioManager.setSpeakerphoneOn(false);
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
int currVolume = audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL);
audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, currVolume,
AudioManager.STREAM_VOICE_CALL);
}
Expand All @@ -117,6 +118,10 @@ public void pauseVoice() {
}
}

public MediaPlayer getMediaPlayer() {
return mMediaPlayer;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
switch (viewType) {
Expand Down Expand Up @@ -220,7 +225,6 @@ public void onBindViewHolder(ViewHolder holder, int position) {
((BaseMessageViewHolder) holder).mMsgStatusViewClickListener = this.mMsgStatusViewClickListener;
((BaseMessageViewHolder) holder).mMediaPlayer = this.mMediaPlayer;
((BaseMessageViewHolder) holder).mScroll = this.mScroll;
((BaseMessageViewHolder) holder).mIsEarPhoneOn = this.mIsEarPhoneOn;
}
holder.onBind(wrapper.item);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,14 @@ public class PhotoViewHolder<MESSAGE extends IMessage> extends BaseMessageViewHo

private boolean mIsSender;
private TextView mDateTv;
private TextView mDisplayNameTv;
private ImageView mPhotoIv;
private RoundImageView mAvatarIv;
private ProgressBar mSendingPb;
private ImageButton mResendIb;



public PhotoViewHolder(View itemView, boolean isSender) {
super(itemView);
this.mIsSender = isSender;
Expand All @@ -33,6 +35,9 @@ public PhotoViewHolder(View itemView, boolean isSender) {
if (mIsSender) {
mSendingPb = (ProgressBar) itemView.findViewById(R.id.aurora_pb_msgitem_sending);
mResendIb = (ImageButton) itemView.findViewById(R.id.aurora_ib_msgitem_resend);
mDisplayNameTv = (TextView) itemView.findViewById(R.id.aurora_tv_msgitem_sender_display_name);
} else {
mDisplayNameTv = (TextView) itemView.findViewById(R.id.aurora_tv_msgitem_receiver_display_name);
}
}

Expand Down Expand Up @@ -85,7 +90,9 @@ public boolean onLongClick(View view) {
return true;
}
});

if (mDisplayNameTv.getVisibility() == View.VISIBLE) {
mDisplayNameTv.setText(message.getFromUser().getDisplayName());
}
if (mIsSender) {
switch (message.getMessageStatus()) {
case SEND_GOING:
Expand Down Expand Up @@ -127,7 +134,13 @@ public void applyStyle(MessageListStyle style) {
if (style.getSendingIndeterminateDrawable() != null) {
mSendingPb.setIndeterminateDrawable(style.getSendingIndeterminateDrawable());
}
if (style.getShowSenderDisplayName() == 1) {
mDisplayNameTv.setVisibility(View.VISIBLE);
}
} else {
if (style.getShowReceiverDisplayName() == 1) {
mDisplayNameTv.setVisibility(View.VISIBLE);
}
mPhotoIv.setBackground(style.getReceivePhotoMsgBg());
}
android.view.ViewGroup.LayoutParams layoutParams = mAvatarIv.getLayoutParams();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public class ScrollMoreListener extends RecyclerView.OnScrollListener {
private int mPreviousTotalItemCount = 0;
private boolean mLoading = false;
private boolean mScrolled = false;
private boolean mDisable = false;

public ScrollMoreListener(LinearLayoutManager layoutManager, MsgListAdapter adapter) {
this.mLayoutManager = layoutManager;
Expand Down Expand Up @@ -54,6 +55,10 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
lastVisibleItemPosition = ((GridLayoutManager) mLayoutManager).findLastVisibleItemPosition();
}

if (mDisable) {
return;
}

if (totalItemCount < mPreviousTotalItemCount) {
mCurrentPage = 0;
mPreviousTotalItemCount = totalItemCount;
Expand Down Expand Up @@ -96,6 +101,10 @@ public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}

public void forbidScrollToRefresh(boolean disable) {
mDisable = disable;
}

interface OnLoadMoreListener {
void onLoadMore(int page, int total);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,25 @@ public class TxtViewHolder<MESSAGE extends IMessage>
extends BaseMessageViewHolder<MESSAGE>
implements MsgListAdapter.DefaultMessageViewHolder {

protected TextView mMsgTv;
protected TextView mDateTv;
protected TextView mDisplayNameTv;
protected RoundImageView mAvatarIv;
protected ImageButton mResendIb;
protected ProgressBar mSendingPb;
protected boolean mIsSender;
private TextView mMsgTv;
private TextView mDateTv;
private TextView mDisplayNameTv;
private RoundImageView mAvatarIv;
private ImageButton mResendIb;
private ProgressBar mSendingPb;
private boolean mIsSender;

public TxtViewHolder(View itemView, boolean isSender) {
super(itemView);
this.mIsSender = isSender;
mMsgTv = (TextView) itemView.findViewById(R.id.aurora_tv_msgitem_message);
mDateTv = (TextView) itemView.findViewById(R.id.aurora_tv_msgitem_date);
mAvatarIv = (RoundImageView) itemView.findViewById(R.id.aurora_iv_msgitem_avatar);
mDisplayNameTv = (TextView) itemView.findViewById(R.id.aurora_tv_msgitem_display_name);
if (isSender) {
mDisplayNameTv = (TextView) itemView.findViewById(R.id.aurora_tv_msgitem_sender_display_name);
} else {
mDisplayNameTv = (TextView) itemView.findViewById(R.id.aurora_tv_msgitem_receiver_display_name);
}
mResendIb = (ImageButton) itemView.findViewById(R.id.aurora_ib_msgitem_resend);
mSendingPb = (ProgressBar) itemView.findViewById(R.id.aurora_pb_msgitem_sending);
}
Expand All @@ -48,11 +52,10 @@ public void onBind(final MESSAGE message) {
} else if (mImageLoader == null) {
mAvatarIv.setVisibility(View.GONE);
}
if (!mIsSender) {
if (mDisplayNameTv.getVisibility() == View.VISIBLE) {
mDisplayNameTv.setText(message.getFromUser().getDisplayName());
}
} else {
if (mDisplayNameTv.getVisibility() == View.VISIBLE) {
mDisplayNameTv.setText(message.getFromUser().getDisplayName());
}
if (mIsSender) {
switch (message.getMessageStatus()) {
case SEND_GOING:
mSendingPb.setVisibility(View.VISIBLE);
Expand Down Expand Up @@ -130,6 +133,11 @@ public void applyStyle(MessageListStyle style) {
if (style.getSendingIndeterminateDrawable() != null) {
mSendingPb.setIndeterminateDrawable(style.getSendingIndeterminateDrawable());
}
if (style.getShowSenderDisplayName() == 1) {
mDisplayNameTv.setVisibility(View.VISIBLE);
} else {
mDisplayNameTv.setVisibility(View.GONE);
}
} else {
mMsgTv.setBackground(style.getReceiveBubbleDrawable());
mMsgTv.setTextColor(style.getReceiveBubbleTextColor());
Expand All @@ -138,8 +146,10 @@ public void applyStyle(MessageListStyle style) {
style.getReceiveBubblePaddingTop(),
style.getReceiveBubblePaddingRight(),
style.getReceiveBubblePaddingBottom());
if (style.getShowDisplayName() == 1) {
if (style.getShowReceiverDisplayName() == 1) {
mDisplayNameTv.setVisibility(View.VISIBLE);
} else {
mDisplayNameTv.setVisibility(View.GONE);
}
}
mDateTv.setTextSize(style.getDateTextSize());
Expand Down
Loading

0 comments on commit 6807b5b

Please sign in to comment.