package com.example.achuan.teammanagement.ui.conversation.fragment;
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.support.v7.widget.Toolbar;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
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.example.achuan.teammanagement.R;
import com.example.achuan.teammanagement.base.SimpleFragment;
import com.example.achuan.teammanagement.util.DialogUtil;
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.controller.EaseUI;
import com.hyphenate.easeui.domain.EaseEmojicon;
import com.hyphenate.easeui.domain.EaseUser;
import com.hyphenate.easeui.model.EaseAtMessageHelper;
import com.hyphenate.easeui.ui.EaseBaiduMapActivity;
import com.hyphenate.easeui.ui.EaseGroupRemoveListener;
import com.hyphenate.easeui.utils.EaseCommonUtils;
import com.hyphenate.easeui.utils.EaseUserUtils;
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.util.EMLog;
import com.hyphenate.util.PathUtil;
import java.io.File;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* you can new an MyChatFragment 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
* <p>
* 功能:在easeui中的EaseChatFragment文件的基础上进行部分修改的碎片文件
* 聊天功能实现
*
* 针对fragment中使用toolbar的坑,参考链接如下:
* http://wuxiaolong.me/2015/12/21/fragmentToolbar/
*/
public class MyChatFragment extends SimpleFragment implements EMMessageListener {
@BindView(R.id.toolbar)
Toolbar mToolbar;
protected static final String TAG = "MyChatFragment";
//跳转请求码
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;
//获取从上个活动传递过来的:会话类型+会话id号
protected int chatType;
protected String toChatUsername;
//创建全局处理者实例
protected Handler handler = new Handler();
Context mContext;//上下文对象
//键盘相关
protected InputMethodManager inputManager;
protected ClipboardManager clipboard;
/*-----------------会话及列表--------------------*/
protected EMConversation conversation;
protected EaseChatMessageList messageList;
protected SwipeRefreshLayout swipeRefreshLayout;
protected ListView listView;
protected EMMessage contextMenuMessage;//消息列表中的消息实例引用变量
protected boolean haveMoreData = true;
protected int pagesize = 20;//默认初次加载和加载更多时的消息数量
private boolean isMessageListInited;//消息列表是否已经初始化的标志
protected boolean isloading;//记录是否下拉加载过的标志
/*-------------------------InputMenu相关-----------------------*/
protected EaseChatInputMenu inputMenu;
protected EaseVoiceRecorderView voiceRecorderView;//语音输入视图
protected File cameraFile;//打开相机后存储图片的路径
//ExtendMenu
static final int ITEM_TAKE_PICTURE = 1;
static final int ITEM_PICTURE = 2;
static final int ITEM_LOCATION = 3;//id序号
//item名称
protected int[] itemStrings = {R.string.attach_take_pic, R.string.attach_picture, R.string.attach_location};
protected int[] itemdrawables = {R.drawable.ease_chat_takepic_selector, R.drawable.ease_chat_image_selector,
R.drawable.ease_chat_location_selector};
protected int[] itemIds = {ITEM_TAKE_PICTURE, ITEM_PICTURE, ITEM_LOCATION};
/*-----------------------监听器对象------------------*/
protected GroupListener groupListener;//群聊
protected MyItemClickListener extendMenuItemClickListener;//extendMenu
private EMChatRoomChangeListener chatRoomChangeListener;//聊天室变动
@Override
protected int getLayoutId() {
return R.layout.em_fragment_chat;
}
/*该方法是在:onCreateView()中执行的,该方法会在onActivityCreated()前执行*/
@Override
protected void initEventAndData() {
mContext = getActivity();
}
/*确保与碎片相关联的活动一定已经创建完毕的时候调用*/
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(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);
initView();
setUpView();
/*想让Fragment中的onCreateOptionsMenu生效必须先调用setHasOptionsMenu方法,
否则Toolbar没有菜单。*/
setHasOptionsMenu(true);
}
/*恢复交互时刷新列表显示*/
@Override
public void onResume() {
super.onResume();
if (isMessageListInited){
messageList.refresh();
}
EaseUI.getInstance().pushActivity(getActivity());
// register the event listener when enter the foreground
EMClient.getInstance().chatManager().addMessageListener(this);
if (chatType == EaseConstant.CHATTYPE_GROUP) {
EaseAtMessageHelper.get().removeAtMeGroup(toChatUsername);
}
}
/*移除消息监听器*/
@Override
public void onStop() {
super.onStop();
// unregister this event listener when this activity enters the
// background
EMClient.getInstance().chatManager().removeMessageListener(this);
// remove activity from foreground activity list
EaseUI.getInstance().popActivity(getActivity());
}
/*销毁时移除群变动监听+聊天室退出操作*/
@Override
public void onDestroy() {
super.onDestroy();
/*群聊*/
if (groupListener != null) {
EMClient.getInstance().groupManager().removeGroupChangeListener(groupListener);
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于Android的团队管理系统.zip
共598个文件
png:220个
xml:212个
java:126个
需积分: 5 0 下载量 56 浏览量
2024-03-13
15:01:55
上传
评论
收藏 7.19MB ZIP 举报
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
资源推荐
资源详情
资源评论
收起资源包目录
基于Android的团队管理系统.zip (598个子文件)
SMSSDKGUI-2.1.3.aar 253KB
SMSSDK-2.1.3.aar 125KB
gradlew.bat 2KB
.classpath 466B
.gitignore 465B
.gitignore 7B
build.gradle 2KB
build.gradle 2KB
build.gradle 676B
settings.gradle 26B
gradlew 5KB
BaiduLBS_Android.jar 1.3MB
MobTools-2016.1201.1839.jar 187KB
pinyin4j-2.5.0.jar 184KB
MobCommons-2016.1201.1839.jar 63KB
gradle-wrapper.jar 52KB
MyChatFragment.java 43KB
EaseChatFragment.java 38KB
PhotoViewAttacher.java 27KB
MainActivity.java 21KB
ChatActivity.java 19KB
NewFriendsMsgAdapter.java 19KB
ConversationMainFragment.java 17KB
ContactsMainFragment.java 15KB
EaseNotifier.java 14KB
EaseChatRow.java 12KB
LoginActivity.java 12KB
EaseConversationAdapter.java 11KB
EaseContactListFragment.java 11KB
EaseChatInputMenu.java 11KB
EaseConversationListFragment.java 11KB
DialogUtil.java 11KB
EaseMessageAdapter.java 10KB
EaseEmojiconPagerView.java 10KB
EaseMobHelper.java 10KB
EaseImageView.java 9KB
NewGroupActivity.java 9KB
EaseUI.java 9KB
EaseBaiduMapActivity.java 9KB
EaseChatPrimaryMenu.java 9KB
EaseContactAdapter.java 9KB
VersionedGestureDetector.java 8KB
ImageUtil.java 8KB
EaseVoiceRecorderView.java 8KB
GroupsActivity.java 8KB
EaseCommonUtils.java 8KB
RegisterActivity.java 8KB
EaseAtMessageHelper.java 7KB
GroupPickContactsActivity.java 7KB
PickContactAdapter.java 7KB
ConversationAdapter.java 7KB
EaseChatRowImage.java 7KB
RyItemTouchHelperCallback.java 7KB
EaseChatRowVoicePlayClickListener.java 6KB
EaseShowBigImageActivity.java 6KB
SystemUtil.java 6KB
EaseCommonUtils.java 6KB
SideBar.java 6KB
EaseSmileUtils.java 6KB
EaseChatRowVideo.java 6KB
ContactAdapter.java 6KB
ChatMessageAdapter.java 6KB
EaseEmojiconMenu.java 5KB
IPhotoView.java 5KB
EaseChatMessageList.java 5KB
EaseChatExtendMenu.java 5KB
EaseVoiceRecorder.java 5KB
LitePalDBHelper.java 5KB
MyselfMainFragment.java 5KB
EasePhotoView.java 5KB
EaseEmojiconIndicatorView.java 5KB
AddContactActivity.java 5KB
EaseChatRowFile.java 4KB
SplashActivity.java 4KB
StringUtil.java 4KB
EaseSidebar.java 4KB
GroupAdapter.java 4KB
BaseActivity.java 4KB
BaseRyAdapter.java 4KB
EaseEmojiconScrollTabBar.java 4KB
EaseConversationList.java 4KB
EaseEmojicon.java 4KB
EaseChatRowVoice.java 4KB
EaseContactList.java 4KB
EaseAlertDialog.java 4KB
ScrollerProxy.java 4KB
EaseTitleBar.java 4KB
EaseChatRowLocation.java 3KB
EaseShowVideoActivity.java 3KB
App.java 3KB
EaseChatPrimaryMenuBase.java 3KB
InviteMessage.java 3KB
BaseFragment.java 3KB
MvpFragment.java 3KB
EaseChatRowText.java 3KB
EaseDefaultEmojiconDatas.java 3KB
ContactUser.java 3KB
EaseBaseActivity.java 2KB
EaseShowNormalFileActivity.java 2KB
EaseLoadLocalBigImgTask.java 2KB
共 598 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功