Kotlin高仿微信-第53篇-添加好友
创始人
2024-03-13 16:48:40
0

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。

Kotlin高仿微信-项目实践58篇,点击查看详情

效果图:

实现代码:




/*** Author : wangning* Email : maoning20080809@163.com* Date : 2022/4/22 20:01* Description : 查询朋友详情-添加到通讯录*/
class SearchFriendsDetailsFragment : BaseDataBindingFragment() {override fun getLayoutRes()= R.layout.wc_fragment_contacts_search_detailsoverride fun onViewCreated(view: View, savedInstanceState: Bundle?) {super.onViewCreated(view, savedInstanceState)super.builder().setTitleContent(R.string.wc_base_top_add_friends)//var account = arguments?.getString("account")?:"默认值demo1"var userBean = arguments?.getSerializable("userbean") as UserBeanTagUtils.d("接收的值:${userBean}")search_details_add.setOnClickListener {if(!NetWorkUtils.isNetworkConnected()){ToastUtils.makeText(R.string.wc_base_network_error)} else {showLoadingDialog()addFriend(userBean?.account)}}userBean.let {search_details_account.text = "账号:${it.account}"search_details_name.text = "${it.nickName}"//var avatar = if(TextUtils.isEmpty(it.avatar)) "" else it.avatarvar avatar = it.avatar ?:""TagUtils.d("头像:${avatar}")GlideUtils.load(search_details_icon, CommonUtils.Base.getReallyImage(avatar))}}//添加好友fun addFriend(toAccount : String){CoroutineScope(Dispatchers.IO).launch {var result = UserRepository.getUserServer(toAccount)if(result.isSuccess){//插入朋友账户到用户表UserRepository.insertUser(GsonUtils.getUserBean(result.data!!))//插入朋友账户到通讯录表var fromAccount = DataStoreUtils.getAccount()var contactsBean = ContactsBean(fromAccount, toAccount)ContactsRepository.insertContactsLocal(contactsBean)ContactsRepository.insertContactsServer(contactsBean)//先保证本地数据库有好友账户信息, 再关联xmpp账户,否则很容易出现xmpp成功了,本地数据库没数据。var subscription = Presence(Presence.Type.subscribe)subscription.to = toAccount +"@" + BaseUtils.SERVER_NAMEvar connection = WcApp.getXmppConnection()var roster = connection.rosterroster.setSubscriptionMode(Roster.SubscriptionMode.accept_all)TagUtils.d("我的添加好友:${toAccount}")//添加好友roster.createEntry(toAccount +"@" + BaseUtils.SERVER_NAME, toAccount, null)connection.sendPacket(subscription)//刷新好友列表EventBus.getDefault().post(EventMsgBean(EventMsgBean.TYPE_REFRESH_CONTACTS))CoroutineScope(Dispatchers.Main).launch {ToastUtils.makeText(requireActivity(), "添加好友:${toAccount}")Navigation.findNavController(search_details_add).popBackStack()}} else {CoroutineScope(Dispatchers.Main).launch {ToastUtils.makeText(R.string.wc_add_friend_failure)}}dismissLoadingDialog()}}private var loadingUtils : BaseDialogUtils? = null//显示加载对话框private fun showLoadingDialog(){loadingUtils = BaseDialogUtils(requireActivity())loadingUtils!!.builder().hideCancel().hideConfirm().setCancelable(true).setOnLoadingClick(object : BaseDialogUtils.OnLoadingClick{override fun onClickCancel() {ToastUtils.makeText(requireActivity(), "对话框取消按钮")}override fun onClickConfirm() {ToastUtils.makeText(requireActivity(), "对话框确定按钮")}})loadingUtils?.show()}//隐藏加载对话框private fun dismissLoadingDialog(){loadingUtils?.dismiss()}}

相关内容

热门资讯

美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...