Merge branch 'online_stream' of http://192.168.2.201:8099/laiiihz/recook into online_stream

* 'online_stream' of http://192.168.2.201:8099/laiiihz/recook:
  回放跳转主播首页
  直播常亮
  fix chewie unknown fault 用户关注页面添加加载结束 收起弹框
master
zhang 5 years ago
commit 173cd36a29

@ -27,6 +27,7 @@ import 'package:tencent_im_plugin/message_node/group_system_message_node.dart';
import 'package:tencent_im_plugin/tencent_im_plugin.dart';
import 'package:tencent_live_fluttify/tencent_live_fluttify.dart';
import 'package:image_picker/image_picker.dart';
import 'package:wakelock/wakelock.dart';
class LivePage extends StatefulWidget {
LivePage({Key key}) : super(key: key);
@ -52,12 +53,13 @@ class _LivePageState extends State<LivePage> {
@override
void initState() {
super.initState();
Wakelock.enable();
_editingController.text = '${UserManager.instance.user.info.nickname}正在直播';
}
@override
void dispose() {
Wakelock.disable();
_livePusher?.stopPush();
_livePusher?.stopPreview();
_editingController?.dispose();
@ -485,9 +487,9 @@ class _LivePageState extends State<LivePage> {
print(customParams);
switch (customParams['type']) {
case 'UnExplain':
break;
break;
case 'Explain':
break;
break;
case 'LiveStop':
}
}

@ -8,7 +8,9 @@ import 'package:recook/manager/http_manager.dart';
import 'package:recook/manager/user_manager.dart';
import 'package:recook/pages/live/live_stream/show_goods_list.dart';
import 'package:recook/pages/live/models/live_stream_info_model.dart';
import 'package:recook/pages/live/sub_page/user_home_page.dart';
import 'package:recook/pages/live/widget/live_user_bar.dart';
import 'package:recook/utils/custom_route.dart';
import 'package:recook/widgets/bottom_sheet/action_sheet.dart';
import 'package:recook/widgets/custom_image_button.dart';
import 'package:video_player/video_player.dart';
@ -125,6 +127,16 @@ class _LivePlaybackViewPageState extends State<LivePlaybackViewPage> {
child: Row(
children: [
LiveUserBar(
onTapAvatar: () {
CRoute.pushReplace(
context,
UserHomePage(
userId: _streamInfoModel.userId,
initAttention:
_streamInfoModel.isFollow == 1,
),
);
},
initAttention: _streamInfoModel.userId ==
UserManager.instance.user.info.id
? true

@ -10,6 +10,7 @@ import 'package:recook/manager/user_manager.dart';
import 'package:recook/pages/live/live_stream/live_blur_page.dart';
import 'package:recook/pages/live/live_stream/show_goods_list.dart';
import 'package:recook/pages/live/models/live_stream_info_model.dart';
import 'package:recook/pages/live/sub_page/user_home_page.dart';
import 'package:recook/pages/live/tencent_im/tencent_im_tool.dart';
import 'package:recook/pages/live/widget/live_user_bar.dart';
import 'package:recook/pages/live/widget/more_people.dart';
@ -22,6 +23,7 @@ import 'package:tencent_im_plugin/message_node/group_system_message_node.dart';
import 'package:tencent_im_plugin/message_node/text_message_node.dart';
import 'package:tencent_im_plugin/tencent_im_plugin.dart';
import 'package:tencent_live_fluttify/tencent_live_fluttify.dart';
import 'package:wakelock/wakelock.dart';
class LiveStreamViewPage extends StatefulWidget {
final int id;
@ -44,6 +46,7 @@ class _LiveStreamViewPageState extends State<LiveStreamViewPage> {
@override
void initState() {
super.initState();
Wakelock.enable();
// Future.delayed(Duration(seconds: 10), () {
// _livePlayer?.pausePlay();
// CRoute.transparent(context, LiveBlurPage());
@ -164,6 +167,7 @@ class _LiveStreamViewPageState extends State<LiveStreamViewPage> {
TencentImPlugin.logout();
_scrollController?.dispose();
DPrint.printLongJson('用户退出');
Wakelock.disable();
super.dispose();
}
@ -220,6 +224,15 @@ class _LiveStreamViewPageState extends State<LiveStreamViewPage> {
child: Row(
children: [
LiveUserBar(
onTapAvatar: () {
CRoute.pushReplace(
context,
UserHomePage(
userId: _streamInfoModel.userId,
initAttention: _streamInfoModel.isFollow == 1,
),
);
},
initAttention: _streamInfoModel.userId ==
UserManager.instance.user.info.id
? true

@ -53,7 +53,10 @@ class _UserAttentionViewState extends State<UserAttentionView>
getUserModels().then((models) {
followModels.addAll(models);
if (mounted) setState(() {});
_controller.loadComplete();
if (models.isEmpty)
_controller.loadNoData();
else
_controller.loadComplete();
});
},
body: ListView.builder(

@ -46,14 +46,26 @@ class _UserActivityViewState extends State<UserActivityView>
return RefreshWidget(
controller: _controller,
onRefresh: () {
_page = 1;
getActivityModels().then((models) {
_page = 1;
setState(() {
activityListModels = models;
});
_controller.refreshCompleted();
});
},
onLoadMore: () {
_page++;
getActivityModels().then((models) {
setState(() {
activityListModels.addAll(models);
});
if (models.isEmpty)
_controller.loadNoData();
else
_controller.loadComplete();
});
},
body: ListView.builder(
itemBuilder: (context, index) {
return UserActivityCard(

@ -50,14 +50,17 @@ class _UserPlaybackViewState extends State<UserPlaybackView>
_page++;
getActivityVideoList().then((models) {
setState(() {
_videoModels.addAll(models) ;
_videoModels.addAll(models);
});
_controller.loadComplete();
if (models.isEmpty)
_controller.loadNoData();
else
_controller.loadComplete();
});
},
body: ListView.builder(
itemBuilder: (context, index) {
return UserPlaybackCard(model:_videoModels[index]);
return UserPlaybackCard(model: _videoModels[index]);
},
itemCount: _videoModels.length,
),

@ -8,6 +8,7 @@ class LiveUserBar extends StatefulWidget {
final String title;
final String subTitle;
final String avatar;
final VoidCallback onTapAvatar;
LiveUserBar({
Key key,
@required this.initAttention,
@ -15,6 +16,7 @@ class LiveUserBar extends StatefulWidget {
@required this.title,
this.subTitle,
@required this.avatar,
this.onTapAvatar,
}) : super(key: key);
@override
@ -40,13 +42,16 @@ class _LiveUserBarState extends State<LiveUserBar> {
),
child: Row(
children: [
ClipRRect(
borderRadius: BorderRadius.circular(rSize(16)),
child: FadeInImage.assetNetwork(
placeholder: R.ASSETS_PLACEHOLDER_NEW_1X1_A_PNG,
image: Api.getImgUrl(widget.avatar),
height: rSize(32),
width: rSize(32),
GestureDetector(
onTap: widget.onTapAvatar,
child: ClipRRect(
borderRadius: BorderRadius.circular(rSize(16)),
child: FadeInImage.assetNetwork(
placeholder: R.ASSETS_PLACEHOLDER_NEW_1X1_A_PNG,
image: Api.getImgUrl(widget.avatar),
height: rSize(32),
width: rSize(32),
),
),
),
Padding(

@ -147,7 +147,8 @@ class _TabBarWidgetState extends State<TabBarWidget>
.then((value) {
PermissionTool.haveAudioPermission()
.then((value) {
CRoute.push(context, LivePage());
CRoute.pushReplace(
context, LivePage());
});
});
},
@ -155,7 +156,7 @@ class _TabBarWidgetState extends State<TabBarWidget>
verticalButton(
'视频',
R.ASSETS_LIVE_ADD_VIDEO_PNG,
onTap: () => CRoute.push(
onTap: () => CRoute.pushReplace(
context, AddVideoPage()),
),
// verticalButton(

@ -1139,7 +1139,7 @@ packages:
source: hosted
version: "0.2.7"
wakelock:
dependency: transitive
dependency: "direct main"
description:
name: wakelock
url: "https://pub.flutter-io.cn"

@ -59,7 +59,7 @@ dependencies:
url_launcher: ^5.1.3
# 视频组件
video_player: ^0.10.11+1
chewie: ^0.9.8
chewie: ^0.9.10
# 权限组件
permission_handler: 3.3.0
@ -181,6 +181,8 @@ dependencies:
#腾讯直播
tencent_live_fluttify: ^0.2.0+1
#腾讯IM
#TODO 已经将错误提交到上游代码,后期请使用新版本
#more at https://github.com/JiangJuHong/FlutterTencentImPlugin/pull/101
tencent_im_plugin:
git:
url: https://gitee.com/laiiihz/FlutterTencentImPlugin
@ -196,6 +198,9 @@ dependencies:
#点赞组件
many_like: ^0.0.3
wakelock:
dev_dependencies:
flutter_test:
sdk: flutter

Loading…
Cancel
Save