package com.hyphenate.easeui.ui;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.provider.MediaStore;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.ListView;
import android.widget.Toast;
import com.hyphenate.EMChatRoomChangeListener;
import com.hyphenate.EMMessageListener;
import com.hyphenate.EMValueCallBack;
import com.hyphenate.chat.EMChatRoom;
import com.hyphenate.chat.EMClient;
import com.hyphenate.chat.EMConversation;
import com.hyphenate.chat.EMGroup;
import com.hyphenate.chat.EMImageMessageBody;
import com.hyphenate.chat.EMMessage;
import com.hyphenate.chat.EMMessage.ChatType;
import com.hyphenate.chat.EMTextMessageBody;
import com.hyphenate.easeui.EaseConstant;
import com.hyphenate.easeui.R;
import com.hyphenate.easeui.controller.EaseUI;
import com.hyphenate.easeui.domain.EaseEmojicon;
import com.hyphenate.easeui.domain.EaseUser;
import com.hyphenate.easeui.model.EaseAtMessageHelper;
import com.hyphenate.easeui.utils.EaseCommonUtils;
import com.hyphenate.easeui.utils.EaseUserUtils;
import com.hyphenate.easeui.utils.ThreadUtils;
import com.hyphenate.easeui.widget.EaseAlertDialog;
import com.hyphenate.easeui.widget.EaseAlertDialog.AlertDialogUser;
import com.hyphenate.easeui.widget.EaseChatExtendMenu;
import com.hyphenate.easeui.widget.EaseChatInputMenu;
import com.hyphenate.easeui.widget.EaseChatInputMenu.ChatInputMenuListener;
import com.hyphenate.easeui.widget.EaseChatMessageList;
import com.hyphenate.easeui.widget.EaseVoiceRecorderView;
import com.hyphenate.easeui.widget.EaseVoiceRecorderView.EaseVoiceRecorderCallback;
import com.hyphenate.easeui.widget.chatrow.EaseCustomChatRowProvider;
import com.hyphenate.exceptions.EMServiceNotReadyException;
import com.hyphenate.util.EMLog;
import com.hyphenate.util.PathUtil;
import java.io.File;
import java.util.List;
/**
* you can new an EaseChatFragment to use or you can inherit it to expand.
* You need call setArguments to pass chatType and userId
* <br/>
* <br/>
* you can see ChatActivity in demo for your reference
*/
public class EaseChatFragment extends EaseBaseFragment implements EMMessageListener {
protected static final String TAG = "EaseChatFragment";
protected static final int REQUEST_CODE_MAP = 1;
protected static final int REQUEST_CODE_CAMERA = 2;
protected static final int REQUEST_CODE_LOCAL = 3;
/**
* params to fragment
*/
protected Bundle fragmentArgs;
protected int chatType;
protected String toChatUsername;
protected EaseChatMessageList messageList;
protected EaseChatInputMenu inputMenu;
protected EMConversation conversation;
protected InputMethodManager inputManager;
protected ClipboardManager clipboard;
protected Handler handler = new Handler();
protected File cameraFile;
protected EaseVoiceRecorderView voiceRecorderView;
protected SwipeRefreshLayout swipeRefreshLayout;
protected ListView listView;
protected boolean isloading;
protected boolean haveMoreData = true;
protected int pagesize = 20;
protected GroupListener groupListener;
protected EMMessage contextMenuMessage;
static final int ITEM_TAKE_PICTURE = 1;
static final int ITEM_PICTURE = 2;
static final int ITEM_LOCATION = 3;
static final int ITEM_CALL = 4;
protected int[] itemStrings = {R.string.attach_take_pic, R.string.attach_picture, R.string.attach_location, R.string.attach_call};
protected int[] itemdrawables = {R.drawable.ease_chat_takepic_selector, R.drawable.ease_chat_image_selector,
R.drawable.ease_chat_location_selector, R.drawable.ease_chat_call_selector};
protected int[] itemIds = {ITEM_TAKE_PICTURE, ITEM_PICTURE, ITEM_LOCATION, ITEM_CALL};
private EMChatRoomChangeListener chatRoomChangeListener;
private boolean isMessageListInited;
protected MyItemClickListener extendMenuItemClickListener;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.ease_fragment_chat, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
fragmentArgs = getArguments();
// check if single chat or group chat
chatType = fragmentArgs.getInt(EaseConstant.EXTRA_CHAT_TYPE, EaseConstant.CHATTYPE_SINGLE);
// userId you are chat with or group id
toChatUsername = fragmentArgs.getString(EaseConstant.EXTRA_USER_ID);
super.onActivityCreated(savedInstanceState);
}
/**
* init view
*/
protected void initView() {
// hold to record voice
//noinspection ConstantConditions
voiceRecorderView = (EaseVoiceRecorderView) getView().findViewById(R.id.voice_recorder);
// message list layout
messageList = (EaseChatMessageList) getView().findViewById(R.id.message_list);
if (chatType != EaseConstant.CHATTYPE_SINGLE)
messageList.setShowUserNick(true);
listView = messageList.getListView();
extendMenuItemClickListener = new MyItemClickListener();
inputMenu = (EaseChatInputMenu) getView().findViewById(R.id.input_menu);
registerExtendMenuItem();
// init input menu
inputMenu.init(null);
inputMenu.setChatInputMenuListener(new ChatInputMenuListener() {
@Override
public void onSendMessage(String content) {
sendTextMessage(content);
}
@Override
public boolean onPressToSpeakBtnTouch(View v, MotionEvent event) {
return voiceRecorderView.onPressToSpeakBtnTouch(v, event, new EaseVoiceRecorderCallback() {
@Override
public void onVoiceRecordComplete(String voiceFilePath, int voiceTimeLength) {
sendVoiceMessage(voiceFilePath, voiceTimeLength);
}
});
}
@Override
public void onBigExpressionClicked(EaseEmojicon emojicon) {
sendBigExpressionMessage(emojicon.getName(), emojicon.getIdentityCode());
}
});
swipeRefreshLayout = messageList.getSwipeRefreshLayout();
swipeRefreshLayout.setColorSchemeResources(R.color.holo_blue_bright, R.color.holo_green_light,
R.color.holo_orange_light, R.color.holo_red_light);
inputManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
protected void setUpView() {
titleBar.setTitle(toChatUsername);
if (chatType == EaseConstant.CHATTYPE_SINGLE) {
// set title
if (EaseUserUtils.getUserInfo(toChatUsername) != null) {
EaseUser user = EaseUserUtils.getUserInfo(toChatUsername);
if (user != null) {
titleBar.setTitle(user.getNick());
}
}
titleBar.setRightImageResource(R.drawable.ease_mm_title_remove);
} else {
titleBar.setRightImageResource(R.drawable.ease_to_group_details_no
没有合适的资源?快使用搜索试试~ 我知道了~
毕业设计项目:基于环信以及leanCloud作为后台的即时通讯项目
共791个文件
png:308个
xml:207个
java:202个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 129 浏览量
2023-10-26
20:16:19
上传
评论
收藏 28.46MB ZIP 举报
温馨提示
matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行!
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计项目:基于环信以及leanCloud作为后台的即时通讯项目 (791个子文件)
SMSSDKGUI-2.1.3.aar 253KB
SMSSDK-2.1.3.aar 125KB
gradlew.bat 2KB
.gitignore 63B
.gitignore 7B
.gitignore 7B
.gitignore 7B
build.gradle 2KB
build.gradle 1KB
build.gradle 973B
build.gradle 785B
build.gradle 540B
build.gradle 498B
settings.gradle 74B
gradlew 5KB
BaiduLBS_Android.jar 1.3MB
hyphenatechat_3.2.1.jar 688KB
google-play-services.jar 578KB
HwPush_SDK_V2705_nomap.jar 576KB
glide-3.6.1.jar 464KB
AMap_2DMap_v2.6.0_20150916.jar 444KB
MiPush_SDK_Client_2_2_19.jar 431KB
avoscloud-sdk-v3.15.3.jar 381KB
fastjson.jar 352KB
okhttp-2.6.0-leancloud.jar 323KB
zxing.jar 323KB
AMap_Search_v2.6.0_20150914.jar 318KB
AMap_Location_V2.4.0_20160308.jar 300KB
org.apache.http.legacy.jar 296KB
tbs_sdk_thirdapp_v3.1.0.1034_43100_sharewithdownload_obfs_20170301_182143.jar 294KB
MobTools-2016.1201.1839.jar 187KB
okio-1.6.0-leancloud.jar 67KB
MobCommons-2016.1201.1839.jar 63KB
EaseChatFragment.java 39KB
PhotoViewAttacher.java 27KB
NewItemBean.java 23KB
MainActivity.java 20KB
EaseNotifier.java 14KB
MyApplication.java 13KB
EaseChatRow.java 12KB
EaseConversationAdapter.java 11KB
CameraManager.java 11KB
EaseContactListFragment.java 11KB
EaseChatInputMenu.java 11KB
EaseConversationListFragment.java 11KB
EaseMessageAdapter.java 10KB
EaseEmojiconPagerView.java 10KB
WeatherActivity.java 10KB
ChooseAreaFragment.java 9KB
EaseImageView.java 9KB
EaseUI.java 9KB
MainActivity.java 9KB
CameraConfigurationManager.java 9KB
EaseBaiduMapActivity.java 9KB
EaseChatPrimaryMenu.java 9KB
EaseContactAdapter.java 9KB
ContactPresenterImpl.java 8KB
LoginActivity.java 8KB
MainActivity.java 8KB
VersionedGestureDetector.java 8KB
EaseVoiceRecorderView.java 8KB
ConversationAdapter.java 7KB
EaseAtMessageHelper.java 7KB
EaseCommonUtils.java 7KB
EaseChatRowImage.java 7KB
EaseChatRowVoicePlayClickListener.java 6KB
EaseShowBigImageActivity.java 6KB
EaseChatRowVideo.java 6KB
EaseSmileUtils.java 6KB
CaptureActivity.java 6KB
Intents.java 6KB
PluginItemActivity.java 6KB
ContactFragment.java 6KB
ViewfinderView.java 6KB
AddFriendActivity.java 6KB
EaseEmojiconMenu.java 5KB
IPhotoView.java 5KB
EaseChatMessageList.java 5KB
EaseChatExtendMenu.java 5KB
PluginFragment.java 5KB
EaseVoiceRecorder.java 5KB
ContactAdapter.java 5KB
RegistActivity.java 5KB
MainPresentImpl.java 5KB
EasePhotoView.java 5KB
FlashlightManager.java 5KB
EaseEmojiconIndicatorView.java 5KB
ChatActivity.java 5KB
CaptureActivityHandler.java 5KB
TitanicTextView.java 5KB
PluginFragment2.java 5KB
EaseChatRowFile.java 4KB
EaseSidebar.java 4KB
ChatAdapter.java 4KB
SlideBar.java 4KB
EaseEmojiconScrollTabBar.java 4KB
EaseConversationList.java 4KB
HeaderBean.java 4KB
EaseShowVideoActivity.java 4KB
PlanarYUVLuminanceSource.java 4KB
共 791 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
天天501
- 粉丝: 596
- 资源: 4666
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功