提交 0f3d3747 authored 作者: 岳维路's avatar 岳维路

合并分支 'test' 到 'sim'

Test 查看合并请求 kiwitap/zijing-app!16
......@@ -17,7 +17,7 @@ class _BaiKePageState extends State<BaiKePage> {
return Scaffold(
appBar: AppBar(
centerTitle: false,
title: Text('${widget.keyword}百度百科',style: TextStyle(fontSize: 14.w,fontWeight: Fonts.medium,color: Colours.c3),),
title: Text(widget.keyword,style: TextStyle(fontSize: 14.w,fontWeight: Fonts.medium,color: Colours.c3),),
),
body: InAppWebView(
initialUrlRequest: URLRequest(
......
......@@ -117,6 +117,7 @@ class LoginController extends GetxController {
/// 登录
void onLogin(BuildContext context) async {
Tools.unfocus();
if (!agree) {
Toast.show('请先阅读并同意《用户协议》和《隐私政策》');
return;
......
......@@ -49,7 +49,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
bool get show => _show;
// 录音
final FlutterSoundRecorder _mRecorder = FlutterSoundRecorder(logLevel:Level.error);
FlutterSoundRecorder _mRecorder = FlutterSoundRecorder(logLevel:Level.error);
// 录音开始
bool startRecording = false;
// 是否存在离线文件
......@@ -90,6 +90,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
///------------------------------------------ 页面 生命周期--------------------------------------------------------
@override
void onInit() async {
......@@ -136,6 +137,9 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
contentInput.dispose();
flutterTts.stop();
searchInput.dispose();
if (_mRecorder != null) {
_mRecorder.closeRecorder();
}
// 关闭防截屏
// await ScreenProtector.preventScreenshotOff();
super.onClose();
......@@ -153,6 +157,8 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
model.selected = !model.selected;
}
}
setShowSearch(false);
searchInput.text = '';
toolModel = selectedModel;
update();
}
......@@ -306,14 +312,13 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
// 开启录音
void record() async {
openTheRecorder();
update();
startRecording = true;
String filePath = await Tools.getDirectory();
String fileName = Tools.generateVoiceFileName();
Console.log('record---------------------$filePath/$fileName');
String recordePath = '$filePath/$fileName';
Console.log('record---------------------$recordePath');
_mRecorder.startRecorder(
toFile: '$filePath/$fileName',
toFile: recordePath,
audioSource: AudioSource.microphone,
codec: Codec.aacMP4,
......@@ -334,12 +339,15 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
startRecording = false;
final path = await _mRecorder.stopRecorder();
Console.log('stopRecorder-----------path---------------------$path');
if(path!=null && path.isNotEmpty){
var duration = await audioPlayer.setFilePath(path!);
Console.log('-----duration---------------------$duration------');
AudioModel audioModel = AudioModel(path: path,duration: Tools.formatDuration(duration!),currentDuration: '0:00:00');
AudioModel audioModel = AudioModel(path: path!,duration: Tools.formatDuration(duration!),currentDuration: '0:00:00');
if(audioModel.duration !='0:00:00'){
discussInputAudios.add(audioModel);
}
}
update();
}
......
......@@ -87,6 +87,8 @@ class _ReadCategoryPageState extends State<ReadCategoryPage> {
],
),
widget.controller.showSearch? Expanded(
child: Container(
margin: EdgeInsets.only(top: 15.w),
child: CustomPullScrollView(
controller: widget.controller.refreshController,
onRefresh: widget.controller.onRefreshSearch,
......@@ -99,6 +101,7 @@ class _ReadCategoryPageState extends State<ReadCategoryPage> {
},
searchALlResults: widget.controller.searchALlResults
,),
),
)):
widget.controller.showSearch?const SizedBox():BuildBook(bookDetailModel: widget.controller.bookDetailModel,),
widget.controller.showSearch?const SizedBox():Expanded(
......
......@@ -88,6 +88,8 @@ class _ReadDiscussPageState extends State<ReadDiscussPage> {
],
),
controller.showSearch? Expanded(
child: Container(
margin: EdgeInsets.only(top: 15.w),
child: CustomPullScrollView(
controller: controller.refreshController,
onRefresh: controller.onRefreshSearch,
......@@ -100,6 +102,7 @@ class _ReadDiscussPageState extends State<ReadDiscussPage> {
},
searchALlResults: controller.searchALlResults,
),
),
)):
Expanded(child: Stack(
children: [
......@@ -130,12 +133,13 @@ class _ReadDiscussPageState extends State<ReadDiscussPage> {
Visibility(
visible: controller.showReply,
child: Positioned(
bottom:-69,
bottom:-69.w,
left: 0,
right: 0,
top: 0,
child: GestureDetector(
onTap: (){
Tools.unfocus();
controller.setShow();
},
child: Container(
......
......@@ -198,7 +198,7 @@ class _ReadInputDiscussState extends State<ReadInputDiscuss> {
);
widget.controller.addDiscussInputImages(assets!.path);
},
child: Container(
child: SizedBox(
// color: Colors.red,
width: 25,
height: 25,
......@@ -215,7 +215,7 @@ class _ReadInputDiscussState extends State<ReadInputDiscuss> {
}
},
child: Container(
child: SizedBox(
// color: Colors.red,
width: 23,
height: 23,
......
......@@ -88,6 +88,8 @@ class _ReadNotePageState extends State<ReadNotePage> {
],
),
controller.showSearch? Expanded(
child: Container(
margin: EdgeInsets.only(top: 15.w),
child: CustomPullScrollView(
controller: controller.refreshController,
onRefresh: controller.onRefreshSearch,
......@@ -100,6 +102,7 @@ class _ReadNotePageState extends State<ReadNotePage> {
},
searchALlResults: controller.searchALlResults
),
),
)):
controller.showSearch?const SizedBox():BuildBook(bookDetailModel: widget.bookDetailModel,),
controller.showSearch?const SizedBox():Expanded(
......
......@@ -34,6 +34,7 @@ class UserEditNoteController extends GetxController {
void onClose() {
contentInput.dispose();
audioPlayer.dispose();
Tools.unfocus();
super.onClose();
}
......@@ -186,6 +187,7 @@ class UserEditNoteController extends GetxController {
// 提交
Future<bool> submit() async {
CustomToast.loading();
// 循环上传图片获取地址
for(MediaModel mediaModel in model.noteContent!.image!){
if (mediaModel.id == 0){
......@@ -201,6 +203,7 @@ class UserEditNoteController extends GetxController {
mediaModel.content = url;
}
}
CustomToast.dismiss();
// 组织图片
List<Map> images = [];
......
......@@ -28,7 +28,9 @@ class _UserEditNotePageState extends State<UserEditNotePage> {
margin: EdgeInsets.symmetric(horizontal: 10.w),
child: Stack(
children: [
Container(
SingleChildScrollView(
padding:EdgeInsets.only(bottom: 100.w),
child: Container(
// color: Colours.cF8,
constraints: BoxConstraints(
minHeight: 100.w
......@@ -88,9 +90,7 @@ class _UserEditNotePageState extends State<UserEditNotePage> {
},
itemCount: controller.model.noteContent?.image?.length,
),
Container(
// color: Colors.red,
child: MediaQuery.removePadding(
MediaQuery.removePadding(
context: context,
removeTop: true,
child: ListView.builder(
......@@ -141,20 +141,21 @@ class _UserEditNotePageState extends State<UserEditNotePage> {
},
itemCount: controller.model.noteContent?.audio?.length,
),
),
)
],
)
],
),
),
),
Visibility(
visible: true,
child: Positioned(
left: 10,
right: 10,
left: 0,
right: 0,
bottom: 0,
child: Container(
color: Colors.white,
padding: EdgeInsets.symmetric(vertical: 10.w),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
......@@ -169,7 +170,12 @@ class _UserEditNotePageState extends State<UserEditNotePage> {
);
controller.addImage(assets!.path);
},
child: Image.asset('assets/images/read_add_img.png')),
child: SizedBox(
// color: Colors.red,
width: 25,
height: 25,
child: Image.asset('assets/images/read_add_img.png',fit: BoxFit.contain,)),
),
Gaps.hGaps10,
GestureDetector(
onTap: () async {
......@@ -181,7 +187,11 @@ class _UserEditNotePageState extends State<UserEditNotePage> {
}
},
child: Image.asset(controller.startRecording?'assets/images/stop.png':'assets/images/read_add_audio.png')
child: SizedBox(
width: 23,
height: 23,
child: Image.asset(controller.startRecording?'assets/images/stop.png':'assets/images/read_add_audio.png',fit: BoxFit.contain,)
)
),
GestureDetector(
onTap: (){
......@@ -191,7 +201,11 @@ class _UserEditNotePageState extends State<UserEditNotePage> {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Gaps.hGaps10,
Image.asset(controller.isPublic?'assets/images/pay_check.png':'assets/images/pay_uncheck.png'),
SizedBox(
width: 15,
height: 15,
child: Image.asset(controller.isPublic?'assets/images/pay_check.png':'assets/images/public.png',fit: BoxFit.contain,)
),
SizedBox(width: 3.w,),
Text('公开',style: TextStyle(fontSize: 13.w,height: 1.3,color: Colours.c9),)
],
......
......@@ -40,6 +40,7 @@ class _UserNickPageState extends State<UserNickPage> {
// print("保存昵称");
controller.changeInfo(_textFieldController.text);
_focusNode.unfocus();
Tools.unfocus();
},
child: Text(
'保存',
......
......@@ -86,7 +86,7 @@ class UserNotesDesController extends GetxController {
if(noteModel.noteContent!=null && noteModel.noteContent!.audio != null){
if(noteModel.noteContent!.audio!.isNotEmpty){
for(MediaModel? mediaModel in noteModel.noteContent!.audio!){
Duration? duration = await just_audio.AudioPlayer().setUrl(mediaModel?.content??'');
Duration? duration = await audioPlayer.setUrl(mediaModel?.content??'');
mediaModel?.duration = Tools.formatDuration(duration!);
}
......
......@@ -66,18 +66,20 @@ class BuildNote extends StatelessWidget {
_showText(model).isEmpty?const SizedBox():Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(_showText(model),style: TextStyle(
Expanded(
child: Text(_showText(model),style: TextStyle(
fontSize: 14.w,
height: 1.5,
// color: Colors.red,
color:Colours.c3
),),
),maxLines: 999,overflow: TextOverflow.ellipsis,),
),
Text(_showStatus(model),style: TextStyle(fontSize: 11.w,height: 1.5,color: AppTheme.primary),),
],
),
Gaps.vGaps13,
model.noteContent!.image!.isEmpty?const SizedBox():Gaps.vGaps13,
_buildImageGridView(),
Gaps.vGaps13,
model.noteContent!.audio!.isEmpty?const SizedBox():Gaps.vGaps13,
_buildAudioListView(),
Gaps.vGaps13,
Container(
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论