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

合并分支 'test' 到 'sim'

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