123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- //
- // RQExerciseModule.m
- // SDJK
- //
- // Created by 张嵘 on 2021/8/12.
- //
- #import "RQExerciseModule.h"
- /// 刷新TableView
- NSString * const RQRefreshExerciseTableViewNotification = @"RQRefreshExerciseTableViewNotification";
- /// 答题结果
- NSString * const RQAnswerResultsNotification = @"RQAnswerResultsNotification";
- /// 答题页面更新
- NSString * const RQQuestionReloadNotification = @"RQQuestionReloadNotification";
- /// 答题结果 key
- NSString * const RQAnswerResultsKey = @"RQAnswerResultsKey";
- /// 练习模式Key
- NSString * const RQExerciseTypeKey = @"RQExerciseTypeKey";
- /// 页面操作类型Key
- NSString * const RQExerciseDoTypeKey = @"RQExerciseDoTypeKey";
- /// 答题页面更新ExerciseModelKey
- NSString * const RQQuestionReloadExerciseModelKey = @"RQQuestionReloadExerciseModelKey";
- @interface RQExerciseModule ()
- @end
- @implementation RQExerciseModule
- static id rq_RQExerciseModule = nil;
- #pragma mark - init
- + (instancetype)sharedInstance {
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- rq_RQExerciseModule = [[self alloc] init];
- });
- return rq_RQExerciseModule;
- }
- - (instancetype)init {
- if (self = [super init]) {
- self.exerciseDoType = RQExerciseDoType_Default;
-
- }
- return self;
- }
- #pragma mark - PublicMethods
- - (void)rq_RACIsAutoRead {
- [[[RACSignal combineLatest:@[RACObserve(RQ_Exercise_Module, isAutoRead),RACObserve(RQ_Exercise_Module, currrentExerciseModel)] reduce:^(id isAutoRead, RQExerciseModel *exerciseModel){
- if (RQ_Exercise_Module.isAutoRead && !exerciseModel.isAuto) {
- return exerciseModel;
- } else if (RQ_Exercise_Module.isAutoRead && exerciseModel.isAuto) {
- [RQ_MUSIC_MANAGER rq_cancelStreamer];
- [RQNotificationCenter postNotificationName:RQQuestionReloadNotification object:@{RQQuestionReloadExerciseModelKey : exerciseModel}];
- RQExerciseModel *exerciseModel = nil;
- return exerciseModel;
- } else {
- exerciseModel.isAuto = NO;
- RQExerciseModel *exerciseModel = nil;
- return exerciseModel;
- }
- }] deliverOnMainThread] subscribeNext:^(RQExerciseModel *exerciseModel) {
- if (exerciseModel) {
- exerciseModel.isAuto = YES;
- NSLog(@"1.读题目---%@---%@",exerciseModel.issue,exerciseModel.issuemp3);
- [RQ_MUSIC_MANAGER rq_resetStreamerWithURLString:exerciseModel.issuemp3 DOUAudioStreamerStatusBlock:^(DOUAudioStreamerStatus status) {
- if (status == DOUAudioStreamerFinished) {
- NSLog(@"2.读技巧---%@---%@",exerciseModel.issue,exerciseModel.explain_mp3);
- [RQ_ALERTVIEW_MANAGER rq_showSkillExplanationAlertWithMessage:exerciseModel.explain_jq skillkeyword:exerciseModel.skillkeyword explainGifUrl:exerciseModel.explain_gif mp3Url:exerciseModel.explain_mp3 completeBlock:^{
- NSLog(@"3.结束---自动读题模式下: 当前题目正在自动读题 即将自动跳到下一题");
- exerciseModel.isShowSkillExplanation = YES;
- exerciseModel.isAuto = NO;
- // self.currrentExerciseModel = exerciseModel;
- [RQNotificationCenter postNotificationName:RQQuestionReloadNotification object:@{RQQuestionReloadExerciseModelKey : exerciseModel}];
- }];
- exerciseModel.userAnswer = exerciseModel.answer;
- // self.currrentExerciseModel = exerciseModel;
- [RQNotificationCenter postNotificationName:RQQuestionReloadNotification object:@{RQQuestionReloadExerciseModelKey : exerciseModel}];
- }
- }];
- }
- }];
-
- // [[RACObserve(RQ_Exercise_Module, isAutoRead) takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id _Nullable x) {
- // if (RQ_Exercise_Module.isAutoRead) {
- // self.currrentExerciseModel.isAuto = YES;
- // NSLog(@"1.读题目---%@---%@",self.currrentExerciseModel.issue,self.currrentExerciseModel.issuemp3);
- // [RQ_MUSIC_MANAGER rq_resetStreamerWithURLString:self.currrentExerciseModel.issuemp3 DOUAudioStreamerStatusBlock:^(DOUAudioStreamerStatus status) {
- // if (status == DOUAudioStreamerFinished) {
- // NSLog(@"2.读技巧---%@---%@",self.currrentExerciseModel.issue,self.currrentExerciseModel.explain_mp3);
- // [RQ_ALERTVIEW_MANAGER rq_showSkillExplanationAlertWithMessage:self.currrentExerciseModel.explain_jq skillkeyword:self.currrentExerciseModel.skillkeyword explainGifUrl:self.currrentExerciseModel.explain_gif mp3Url:self.currrentExerciseModel.explain_mp3 completeBlock:^{
- // NSLog(@"3.结束---%@\r\n -%@\r\n -%@\r\n -%@\r\n -%@",self.currrentExerciseModel.issue,self.currrentExerciseModel.issuemp3,self.currrentExerciseModel.answermp3,self.currrentExerciseModel.explain_mp3,self.currrentExerciseModel.explainjsmp3);
- // self.currrentExerciseModel.isShowSkillExplanation = YES;
- // self.currrentExerciseModel.isAuto = NO;
- // self.currrentExerciseModel = self.currrentExerciseModel;
- // [RQNotificationCenter postNotificationName:RQQuestionReloadNotification object:nil];
- // }];
- // self.currrentExerciseModel.userAnswer = self.currrentExerciseModel.answer;
- // self.currrentExerciseModel = self.currrentExerciseModel;
- // [RQNotificationCenter postNotificationName:RQQuestionReloadNotification object:nil];
- // }
- // }];
- // } else {
- // [RQ_MUSIC_MANAGER rq_cancelStreamer];
- // [RQNotificationCenter postNotificationName:RQQuestionReloadNotification object:nil];
- // }
- // }];
- }
-
- - (void)cancleAutoReadQuestion {
- [RQ_MUSIC_MANAGER rq_cancelStreamer];
- RQ_Exercise_Module.isAutoRead = NO;
- }
- @end
|