Advertisement
etekumoses

SentenceProvider

May 8th, 2022
1,117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 6.15 KB | None | 0 0
  1. import 'dart:convert';
  2. import 'dart:io';
  3.  
  4. import 'package:flutter/material.dart';
  5. import 'package:nlp/data/model/response/audioclips_model.dart';
  6. import 'package:nlp/data/model/response/base/api_response.dart';
  7. import 'package:nlp/data/model/response/report_model.dart';
  8. import 'package:nlp/data/model/response/response_model.dart';
  9. import 'package:nlp/data/model/response/sentences_model.dart';
  10. import 'package:nlp/data/repository/sentence_repo.dart';
  11. import 'package:nlp/helper/api_checker.dart';
  12. import 'package:nlp/helper/route_helper.dart';
  13. import 'package:nlp/provider/sql_provider.dart';
  14. import 'package:nlp/utill/app_constants.dart';
  15. import 'package:nlp/view/screens/menu/menu_screen.dart';
  16. import 'package:http/http.dart' as http;
  17.  
  18. class SentenceProvider extends ChangeNotifier {
  19.   final SentenceRepo sentenceRepo;
  20.  
  21.   SentenceProvider({@required this.sentenceRepo});
  22.   SentenceModel _sentence;
  23.   bool _isLoading = false;
  24.   bool get isLoading => _isLoading;
  25.   SentenceModel get sentence => _sentence;
  26.   List<SentenceModel> _sentenceList = [];
  27.  
  28.   bool _hasData;
  29.  
  30.   List<SentenceModel> get sentenceList => _sentenceList;
  31.  
  32.   bool get hasData => _hasData;
  33.  
  34.  
  35.  
  36.   File _file;
  37.   File get file => _file;
  38.  
  39.   //
  40.   bool _isrecorded = false;
  41.   bool get isrecorded => _isrecorded;
  42.   int _sentenceNumber = 0;
  43.   int get sentenceNumber => _sentenceNumber;
  44.  
  45. // get all sentences
  46.   Future<void> initsentenceList(String language, BuildContext context) async {
  47.     _isLoading = true;
  48.     _sentenceList = [];
  49.     _hasData = true;
  50.     ApiResponse apiResponse = await sentenceRepo.getSentenceList(language);
  51.     if (apiResponse.response != null &&
  52.         apiResponse.response.statusCode == 200) {
  53.       _isLoading = true;
  54.       _sentenceList = [];
  55.       apiResponse.response.data.forEach((s) {
  56.         _sentenceList.add(SentenceModel.fromJson(s));
  57.         SQLHelper.insertSentence(SentenceModel.fromJson(s));
  58.       });
  59.       print('=================');
  60.       print(sentence);
  61.       print('===============');
  62.       List<SentenceModel> _sentences = [];
  63.       _sentences.addAll(_sentenceList);
  64.  
  65.       print(sentence);
  66.       _isLoading = false;
  67.       notifyListeners();
  68.     } else {
  69.       ApiChecker.checkApi(context, apiResponse);
  70.     }
  71.   }
  72.  
  73. // next sentence
  74.   void nextSentence() async{
  75.     _sentenceNumber++;
  76.     notifyListeners();
  77.   }
  78.  
  79.   // upload sentences
  80.   Future<ResponseModel> sendAudios(
  81.       List<Map<String, dynamic>> localdb, String token) async {
  82.     _isLoading = true;
  83.     notifyListeners();
  84.     ResponseModel _responseModel;
  85.     ApiResponse response = await sentenceRepo.submitAudios(localdb, token);
  86.     _isLoading = false;
  87.     if (response.response.statusCode == 200) {
  88.       // Map map = jsonDecode(await response.stream.bytesToString());
  89.       String message = await response.response.statusMessage;
  90.       _responseModel = ResponseModel(true, message);
  91.       print(message);
  92.     } else {
  93.       _responseModel = ResponseModel(false,
  94.           '${response.response.statusCode} ${response.response.statusMessage}');
  95.       print(
  96.           '${response.response.statusCode} ${response.response.statusMessage}');
  97.     }
  98.     _sentenceNumber = 0;
  99.     notifyListeners();
  100.     return _responseModel;
  101.   }
  102.  
  103. // has issue
  104.   Future<void> hasIssue(
  105.       ReportModel reportModel, String token, BuildContext context) async {
  106.     _isLoading = true;
  107.     notifyListeners();
  108.     ApiResponse apiResponse = await sentenceRepo.hasissue(reportModel, token);
  109.     if (apiResponse.response != null &&
  110.         apiResponse.response.statusCode == 200) {
  111.       // _sentenceList.removeWhere((e) => e.id == int.parse(reportModel.id));
  112.       SQLHelper.deletesentence(int.parse(reportModel.id));
  113.       print('====id======');
  114.       print(reportModel.id);
  115.       print('=====id==');
  116.       print('====Remove======');
  117.       print(_sentenceList);
  118.       print('=====Removed==');
  119.       // _sentenceList.add(SentenceModel.fromJson(apiResponse.response.data));
  120.       SQLHelper.insertSentence(
  121.           SentenceModel.fromJson(apiResponse.response.data));
  122.       print(_sentenceList.length);
  123.       _isLoading = false;
  124.       notifyListeners();
  125.     } else {
  126.       ApiChecker.checkApi(context, apiResponse);
  127.     }
  128.   }
  129.  
  130.   //
  131.  
  132.   // skipped
  133.   // has
  134.   // Future<void> skipsentence(int id, BuildContext context) async {
  135.   //   _isLoading = true;
  136.   //   notifyListeners();
  137.   //   ApiResponse apiResponse = await sentenceRepo.skippedsentence(id);
  138.   //   if (apiResponse.response != null &&
  139.   //       apiResponse.response.statusCode == 200) {
  140.   //     _sentenceList.removeWhere((e) => e.id == id);
  141.   //     SQLHelper.deletesentence(id).then((value) {
  142.   //       _sentenceList.add(SentenceModel.fromJson(apiResponse.response.data));
  143.   //       SQLHelper.insertSentence(
  144.   //           SentenceModel.fromJson(apiResponse.response.data));
  145.   //       notifyListeners();
  146.   //     });
  147.   //     print('====id======');
  148.   //     print(id);
  149.   //     print('=====id==');
  150.   //     print('====Remove======');
  151.   //     print(_sentenceList.length);
  152.   //     print('=====Removed==');
  153.   //     print(_sentenceList);
  154.   //     _isLoading = false;
  155.   //     notifyListeners();
  156.   //   } else {
  157.   //     ApiChecker.checkApi(context, apiResponse);
  158.   //   }
  159.   // }
  160.   //
  161.  
  162.   bool _loading = false;
  163.   bool get loading => _loading;
  164.   Future<void> skipsentence(int id, BuildContext context) async {
  165.     _loading = true;
  166.     notifyListeners();
  167.     ApiResponse apiResponse = await sentenceRepo.skippedsentence(id);
  168.     if (apiResponse.response != null &&
  169.         apiResponse.response.statusCode == 200) {
  170.       // _sentenceList.removeWhere((e) => e.id == id);
  171.       SQLHelper.deletesentence(id);
  172.       // _sentenceList.add(SentenceModel.fromJson(apiResponse.response.data));
  173.  
  174.       SQLHelper.insertSentence(
  175.           SentenceModel.fromJson(apiResponse.response.data));
  176.       print('====id======');
  177.       print(id);
  178.       print('=====id==');
  179.       print('====Remove======');
  180.       print(_sentenceList);
  181.       print('=====Removed==');
  182.  
  183.       print(_sentenceList.length);
  184.       _loading = false;
  185.       notifyListeners();
  186.     } else {
  187.       ApiChecker.checkApi(context, apiResponse);
  188.     }
  189.   }
  190. }
  191.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement