11111
This commit is contained in:
parent
838ae0815b
commit
5c42767ea3
@ -1,21 +1,27 @@
|
||||
package com.yunbao.common.dialog;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.PopupWindow;
|
||||
|
||||
import com.yunbao.common.R;
|
||||
|
||||
import io.rong.imlib.model.Message;
|
||||
|
||||
/**
|
||||
* 消息長按彈窗
|
||||
*/
|
||||
public class MessageLongClickPopuwindow {
|
||||
public class MessageLongClickPopuwindow implements View.OnClickListener {
|
||||
private Activity mContext;
|
||||
private View popupView;
|
||||
private PopupWindow popupWindow;
|
||||
private LinearLayout copyLinear;
|
||||
private Message message;
|
||||
|
||||
public MessageLongClickPopuwindow(Activity context) {
|
||||
this.mContext = context;
|
||||
@ -23,6 +29,48 @@ public class MessageLongClickPopuwindow {
|
||||
initView();
|
||||
}
|
||||
|
||||
public MessageLongClickPopuwindow setMessage(Message message) {
|
||||
this.message = message;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 展示弹窗
|
||||
*
|
||||
* @param view 显示在什么组件的上面
|
||||
* @return
|
||||
*/
|
||||
public void show(View view) {
|
||||
popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
|
||||
int[] location = new int[2];
|
||||
view.getLocationOnScreen(location);
|
||||
popupWindow.setBackgroundDrawable(new BitmapDrawable());
|
||||
popupView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
|
||||
|
||||
int popupWidth = popupView.getMeasuredWidth();
|
||||
int popupHeight = popupView.getMeasuredHeight();
|
||||
|
||||
popupWindow.showAtLocation(view, Gravity.NO_GRAVITY, (location[0] + view.getWidth() / 2) - popupWidth / 2,
|
||||
location[1] - popupHeight);
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
popupView.findViewById(R.id.copy_linear).setOnClickListener(this);
|
||||
popupView.findViewById(R.id.withdraw_linear).setOnClickListener(this);
|
||||
popupView.findViewById(R.id.quote_linear).setOnClickListener(this);
|
||||
long sentTime = message.getSentTime();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
//复制
|
||||
if (id == R.id.copy_linear) {
|
||||
|
||||
} else if (id == R.id.withdraw_linear) {//撤回
|
||||
|
||||
} else if (id == R.id.quote_linear) {//引用
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.yunbao.common.manager.imrongcloud;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.text.TextUtils;
|
||||
@ -9,6 +10,7 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.google.gson.Gson;
|
||||
import com.yunbao.common.bean.IMLoginModel;
|
||||
import com.yunbao.common.bean.ImUserInfoModel;
|
||||
import com.yunbao.common.dialog.MessageLongClickPopuwindow;
|
||||
import com.yunbao.common.event.MessageIMEvent;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.http.HttpClient;
|
||||
@ -209,6 +211,7 @@ public class MessageIMManager {
|
||||
private ConversationClickListener listener = new ConversationClickListener() {
|
||||
@Override
|
||||
public boolean onUserPortraitClick(Context context, Conversation.ConversationType conversationType, UserInfo userInfo, String targetId) {
|
||||
if (!TextUtils.isEmpty(userInfo.getExtra())){
|
||||
IMLoginModel model = new Gson().fromJson(userInfo.getExtra(), IMLoginModel.class);
|
||||
long userId = IMLoginManager.get(context).getUserInfo().getId();
|
||||
if (!TextUtils.equals(model.getIsAdmin(), "1") && userId != model.getId()) {
|
||||
@ -216,6 +219,8 @@ public class MessageIMManager {
|
||||
} else if (userId == model.getId()) {
|
||||
RouteUtil.forwardUserHome(mContext, userInfo.getUserId(), 2);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -234,7 +239,9 @@ public class MessageIMManager {
|
||||
*/
|
||||
@Override
|
||||
public boolean onMessageLongClick(Context context, View view, Message message) {
|
||||
ToastUtil.show(message.getContent().toString());
|
||||
new MessageLongClickPopuwindow((Activity) context)
|
||||
.setMessage(message)
|
||||
.show(view);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,7 @@
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawableTop="@mipmap/icon_message_copy"
|
||||
android:drawableTop="@mipmap/icon_message_withdraw"
|
||||
android:drawablePadding="5dp"
|
||||
android:text="@string/withdraw"
|
||||
android:textColor="@color/white"
|
||||
@ -56,6 +56,7 @@
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/quote_linear"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
|
BIN
common/src/main/res/mipmap-xxhdpi/icon_message_withdraw.png
Normal file
BIN
common/src/main/res/mipmap-xxhdpi/icon_message_withdraw.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 748 B |
@ -164,10 +164,13 @@ public class ConversationIMListManager {
|
||||
public boolean onConversationPortraitClick(Context context, Conversation.ConversationType conversationType, String targetId) {
|
||||
//非指导员都可以点击
|
||||
UserInfo userInfo = RongUserInfoManager.getInstance().getUserInfo(targetId);
|
||||
if (userInfo!=null&&!TextUtils.isEmpty(userInfo.getExtra())){
|
||||
IMLoginModel model = new Gson().fromJson(userInfo.getExtra(), IMLoginModel.class);
|
||||
if (!TextUtils.equals(model.getIsAdmin(), "1")) {
|
||||
RouteUtil.forwardUserHome(mContext, targetId, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user