Kotlin高仿微信-第55篇-同步数据
admin
2024-03-14 22:16:04
0

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

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

效果图:后台同步数据,没有效果图

实现代码:

/*** Author : wangning* Email : maoning20080809@163.com* Date : 2022/6/27 14:41* Description : 同步信息*/
object SyncRepository {//第一次安装、或者卸载后安装,同步服务器信息fun syncFirst (account : String, packageName : String, iCommonCallback: ICommonCallback) {var isFirstLogin = DataStoreUtils.get(DataStoreParams.User.DS_IS_FIRST_LOGIN, true) as Boolean//首次安装if(!isFirstLogin){return}CoroutineScope(Dispatchers.IO).launch {var result = ApiResult.create {SyncService.getApi().syncFirst(account, packageName)}if(result.isSuccess){var data = result.datavar syncFirstBean = Gson().fromJson(data, SyncFirstBean::class.java)syncFirstBean?.let {processBaseSystem(it.sync_base_system)processUserList(it.sync_user)processContactsList(it.sync_contacts)processChatList(it.sync_chat)processVipBean(it.sync_vip)//如果同步成功,设置登陆标识符DataStoreUtils.put(DataStoreParams.User.DS_IS_FIRST_LOGIN, false)}iCommonCallback?.onSuccess(0)} else {iCommonCallback?.onFailure(0)}}}//每次进入主页面,要查询服务器重要数据fun syncEnterMain(account: String){syncVip(account)}//获取服务器vip信息fun syncVip(account: String){if(TextUtils.isEmpty(account)){return}CoroutineScope(Dispatchers.IO).launch {var vipBean = VipManagerRepository.getVipLocal(account)if(vipBean != null && CommonUtils.Vip.isVip(vipBean)){//如果还是vip,不需要加载。return@launch}var result = VipManagerRepository.getVipServer(account)if(result.isSuccess){var vipBean = Gson().fromJson(result.data, VipBean::class.java)VipManagerRepository.insertVipLocal(vipBean)}}}/*** 同步系统基本信息*/private fun processBaseSystem(baseSystemBean: BaseSystemBean){baseSystemBean?.let {BaseSystemRepository.insertBaseSystem(it)}}/*** 同步vip信息*/private fun processVipBean(vipBean: VipBean){vipBean?.let {VipManagerRepository.insertVipLocal(vipBean)}}/*** 同步账户信息*/private fun processUserList(userListServer : ArrayList){userListServer?.let {UserRepository.syncUserFirst(it)}}/*** 同步聊天信息*/private fun processChatList(userListServer : ArrayList){userListServer?.let {ChatRepository.syncInsertChatListLocal(it)}}/*** 同步联系人*/private fun processContactsList(contactsListServer : ArrayList){contactsListServer?.let {ContactsRepository.syncInsertContactsListLocal(it)}}}

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...