mirror of
https://github.com/WuKongIM/WuKongIMFlutterSDK
synced 2025-05-29 07:02:19 +00:00
fix:修改切换网络时有时连接不上的问题
This commit is contained in:
commit
f6b405a0f7
@ -118,5 +118,7 @@
|
|||||||
* fix: Add query total unread quantity and query followed channels
|
* fix: Add query total unread quantity and query followed channels
|
||||||
### 1.5.9
|
### 1.5.9
|
||||||
* fix: Modify network monitoring
|
* fix: Modify network monitoring
|
||||||
|
### 1.6.0
|
||||||
|
* fix: Error in modifying the channel extension data synchronized to the most recent session
|
||||||
### 1.6.1
|
### 1.6.1
|
||||||
* fix: 修复网络切换时有时无法连接问题
|
* fix: 修复网络切换时有时无法连接问题
|
@ -319,7 +319,7 @@ class ListViewShowDataState extends State<ListViewShowData> {
|
|||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (_) => const ChatPage(),
|
builder: (context) => const ChatPage(),
|
||||||
settings: RouteSettings(
|
settings: RouteSettings(
|
||||||
arguments: ChatChannel(
|
arguments: ChatChannel(
|
||||||
msgList[pos].msg.channelID,
|
msgList[pos].msg.channelID,
|
||||||
@ -371,15 +371,15 @@ class ListViewShowDataState extends State<ListViewShowData> {
|
|||||||
_showDialog(BuildContext context) {
|
_showDialog(BuildContext context) {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (BuildContext _context) => InputDialog(
|
builder: (BuildContext ctx) => InputDialog(
|
||||||
title: const Text("创建新的聊天"),
|
title: const Text("创建新的聊天"),
|
||||||
back: (channelID, channelType) async {
|
back: (channelID, channelType) async {
|
||||||
bool isSuccess = await HttpUtils.createGroup(channelID);
|
bool isSuccess = await HttpUtils.createGroup(channelID);
|
||||||
if (isSuccess) {
|
if (isSuccess) {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
ctx,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (context) => ChatPage(),
|
builder: (context) => const ChatPage(),
|
||||||
settings: RouteSettings(
|
settings: RouteSettings(
|
||||||
arguments: ChatChannel(
|
arguments: ChatChannel(
|
||||||
channelID,
|
channelID,
|
||||||
|
@ -43,7 +43,6 @@ class MyApp extends StatelessWidget {
|
|||||||
|
|
||||||
class LoginDemo extends StatefulWidget {
|
class LoginDemo extends StatefulWidget {
|
||||||
const LoginDemo({super.key});
|
const LoginDemo({super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
LoginDemoState createState() => LoginDemoState();
|
LoginDemoState createState() => LoginDemoState();
|
||||||
}
|
}
|
||||||
@ -52,7 +51,9 @@ class LoginDemoState extends State<LoginDemo> {
|
|||||||
var apiStr = '';
|
var apiStr = '';
|
||||||
var uidStr = '';
|
var uidStr = '';
|
||||||
var tokenStr = '';
|
var tokenStr = '';
|
||||||
|
LoginDemoState() {
|
||||||
|
WKIM.shared.connectionManager.disconnect(false);
|
||||||
|
}
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
@ -156,10 +157,10 @@ class LoginDemoState extends State<LoginDemo> {
|
|||||||
UserInfo.uid = uidStr;
|
UserInfo.uid = uidStr;
|
||||||
IMUtils.initIM().then((result) {
|
IMUtils.initIM().then((result) {
|
||||||
if (result) {
|
if (result) {
|
||||||
Navigator.push(
|
Navigator.pushAndRemoveUntil(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(builder: (_) => const HomePage()),
|
||||||
builder: (_) => const HomePage()));
|
(Route<dynamic> route) => false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -160,8 +160,11 @@ class ChannelDB {
|
|||||||
Future<List<WKChannel>> queryWithMuted() async {
|
Future<List<WKChannel>> queryWithMuted() async {
|
||||||
List<WKChannel> list = [];
|
List<WKChannel> list = [];
|
||||||
var sql = "select * from ${WKDBConst.tableChannel} where mute=1";
|
var sql = "select * from ${WKDBConst.tableChannel} where mute=1";
|
||||||
List<Map<String, Object?>> results =
|
List<Map<String, Object?>>? results =
|
||||||
await WKDBHelper.shared.getDB()!.rawQuery(sql);
|
await WKDBHelper.shared.getDB()?.rawQuery(sql);
|
||||||
|
if (results == null || results.isEmpty) {
|
||||||
|
return list;
|
||||||
|
}
|
||||||
for (Map<String, Object?> data in results) {
|
for (Map<String, Object?> data in results) {
|
||||||
var channel = WKDBConst.serializeChannel(data);
|
var channel = WKDBConst.serializeChannel(data);
|
||||||
list.add(channel);
|
list.add(channel);
|
||||||
|
@ -32,6 +32,9 @@ class ConversationDB {
|
|||||||
for (Map<String, Object?> data in results) {
|
for (Map<String, Object?> data in results) {
|
||||||
WKConversationMsg msg = WKDBConst.serializeCoversation(data);
|
WKConversationMsg msg = WKDBConst.serializeCoversation(data);
|
||||||
WKChannel wkChannel = WKDBConst.serializeChannel(data);
|
WKChannel wkChannel = WKDBConst.serializeChannel(data);
|
||||||
|
wkChannel.remoteExtraMap =
|
||||||
|
WKDBConst.readDynamic(data, 'channel_remote_extra');
|
||||||
|
wkChannel.localExtra = WKDBConst.readDynamic(data, 'channel_extra');
|
||||||
WKUIConversationMsg uiMsg = getUIMsg(msg);
|
WKUIConversationMsg uiMsg = getUIMsg(msg);
|
||||||
uiMsg.setWkChannel(wkChannel);
|
uiMsg.setWkChannel(wkChannel);
|
||||||
list.add(uiMsg);
|
list.add(uiMsg);
|
||||||
@ -102,7 +105,7 @@ class ConversationDB {
|
|||||||
var channels = await ChannelDB.shared.queryWithMuted();
|
var channels = await ChannelDB.shared.queryWithMuted();
|
||||||
var channelIds = [];
|
var channelIds = [];
|
||||||
var sql = "";
|
var sql = "";
|
||||||
List<Map<String, Object?>> list;
|
List<Map<String, Object?>>? list;
|
||||||
if (channels.isNotEmpty) {
|
if (channels.isNotEmpty) {
|
||||||
for (var channel in channels) {
|
for (var channel in channels) {
|
||||||
channelIds.add(channel.channelID);
|
channelIds.add(channel.channelID);
|
||||||
@ -113,13 +116,14 @@ class ConversationDB {
|
|||||||
} else {
|
} else {
|
||||||
sql =
|
sql =
|
||||||
"select SUM(unread_count) count from ${WKDBConst.tableConversation}";
|
"select SUM(unread_count) count from ${WKDBConst.tableConversation}";
|
||||||
list = await WKDBHelper.shared.getDB()!.rawQuery(sql);
|
list = await WKDBHelper.shared.getDB()?.rawQuery(sql);
|
||||||
}
|
}
|
||||||
if (list.isNotEmpty) {
|
if (list == null || list.isEmpty) {
|
||||||
dynamic data = list[0];
|
return count;
|
||||||
count = WKDBConst.readInt(data, 'count');
|
|
||||||
Logs.error('总数量$count');
|
|
||||||
}
|
}
|
||||||
|
dynamic data = list[0];
|
||||||
|
count = WKDBConst.readInt(data, 'count');
|
||||||
|
Logs.error('总数量$count');
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,15 +34,17 @@ class ReminderDB {
|
|||||||
Future<List<WKReminder>> queryWithChannel(
|
Future<List<WKReminder>> queryWithChannel(
|
||||||
String channelID, int channelType, int done) async {
|
String channelID, int channelType, int done) async {
|
||||||
List<WKReminder> list = [];
|
List<WKReminder> list = [];
|
||||||
List<Map<String, Object?>> results = await WKDBHelper.shared.getDB()!.query(
|
List<Map<String, Object?>>? results = await WKDBHelper.shared
|
||||||
WKDBConst.tableReminders,
|
.getDB()
|
||||||
where: "channel_id=? and channel_type=? and done=?",
|
?.query(WKDBConst.tableReminders,
|
||||||
whereArgs: [channelID, channelType, done],
|
where: "channel_id=? and channel_type=? and done=?",
|
||||||
orderBy: "message_seq desc");
|
whereArgs: [channelID, channelType, done],
|
||||||
if (results.isNotEmpty) {
|
orderBy: "message_seq desc");
|
||||||
for (Map<String, Object?> data in results) {
|
if (results == null || results.isEmpty) {
|
||||||
list.add(WKDBConst.serializeReminder(data));
|
return list;
|
||||||
}
|
}
|
||||||
|
for (Map<String, Object?> data in results) {
|
||||||
|
list.add(WKDBConst.serializeReminder(data));
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user