@ -7,9 +7,11 @@ import 'package:fluffychat/pangea/choreographer/controllers/span_data_controller
import ' package:fluffychat/pangea/models/igc_text_data_model.dart ' ;
import ' package:fluffychat/pangea/models/pangea_match_model.dart ' ;
import ' package:fluffychat/pangea/repo/igc_repo.dart ' ;
import ' package:fluffychat/pangea/repo/tokens_repo.dart ' ;
import ' package:fluffychat/pangea/widgets/igc/span_card.dart ' ;
import ' package:flutter/foundation.dart ' ;
import ' package:flutter/material.dart ' ;
import ' package:sentry_flutter/sentry_flutter.dart ' ;
import ' ../../models/span_card_model.dart ' ;
import ' ../../utils/error_handler.dart ' ;
@ -32,12 +34,6 @@ class IgcController {
try {
if ( choreographer . currentText . isEmpty ) return clear ( ) ;
/ / the error spans are going to be reloaded , so clear the cache
/ / @ ggurdin: Why is this separate from the clear ( ) call ?
/ / Also , if the spans are equal according the to the equals method , why not reuse the cached span data ?
/ / It seems this would save some calls if the user makes some tiny changes to the text that don ' t
/ / change the matches at all .
spanDataController . clearCache ( ) ;
debugPrint ( ' getIGCTextData called with ${ choreographer . currentText } ' ) ;
debugPrint (
' getIGCTextData called with tokensOnly = $ onlyTokensAndLanguageDetection ' ,
@ -87,61 +83,61 @@ class IgcController {
}
}
/ / Future < void > justGetTokensAndAddThemToIGCTextData ( ) async {
/ / try {
/ / if ( igcTextData = = null ) {
/ / debugger ( when: kDebugMode ) ;
/ / choreographer . getLanguageHelp ( ) ;
/ / return ;
/ / }
/ / igcTextData ! . loading = true ;
/ / choreographer . startLoading ( ) ;
/ / if ( igcTextData ! . originalInput ! = choreographer . textController . text ) {
/ / debugger ( when: kDebugMode ) ;
/ / ErrorHandler . logError (
/ / m: " igcTextData fullText does not match current text " ,
/ / s: StackTrace . current ,
/ / data: igcTextData ! . toJson ( ) ,
/ / ) ;
/ / }
/ / if ( choreographer . l1LangCode = = null | |
/ / choreographer . l2LangCode = = null ) {
/ / debugger ( when: kDebugMode ) ;
/ / ErrorHandler . logError (
/ / m: " l1LangCode and/or l2LangCode is null " ,
/ / s: StackTrace . current ,
/ / data: {
/ / " l1LangCode " : choreographer . l1LangCode ,
/ / " l2LangCode " : choreographer . l2LangCode ,
/ / } ,
/ / ) ;
/ / return ;
/ / }
/ / final TokensResponseModel res = await TokensRepo . tokenize (
/ / await choreographer . pangeaController . userController . accessToken ,
/ / TokensRequestModel (
/ / fullText: igcTextData ! . originalInput ,
/ / userL1: choreographer . l1LangCode ! ,
/ / userL2: choreographer . l2LangCode ! ,
/ / ) ,
/ / ) ;
/ / igcTextData ? . tokens = res . tokens ;
/ / } catch ( err , stack ) {
/ / debugger ( when: kDebugMode ) ;
/ / choreographer . errorService . setError (
/ / ChoreoError ( type: ChoreoErrorType . unknown , raw: err ) ,
/ / ) ;
/ / Sentry . addBreadcrumb (
/ / Breadcrumb . fromJson ( { " igctextDdata " : igcTextData ? . toJson ( ) } ) ,
/ / ) ;
/ / ErrorHandler . logError ( e: err , s: stack ) ;
/ / } finally {
/ / igcTextData ? . loading = false ;
/ / choreographer . stopLoading ( ) ;
/ / }
/ / }
Future < void > justGetTokensAndAddThemToIGCTextData ( ) async {
try {
if ( igcTextData = = null ) {
debugger ( when: kDebugMode ) ;
choreographer . getLanguageHelp ( ) ;
return ;
}
igcTextData ! . loading = true ;
choreographer . startLoading ( ) ;
if ( igcTextData ! . originalInput ! = choreographer . textController . text ) {
debugger ( when: kDebugMode ) ;
ErrorHandler . logError (
m: " igcTextData fullText does not match current text " ,
s: StackTrace . current ,
data: igcTextData ! . toJson ( ) ,
) ;
}
if ( choreographer . l1LangCode = = null | |
choreographer . l2LangCode = = null ) {
debugger ( when: kDebugMode ) ;
ErrorHandler . logError (
m: " l1LangCode and/or l2LangCode is null " ,
s: StackTrace . current ,
data: {
" l1LangCode " : choreographer . l1LangCode ,
" l2LangCode " : choreographer . l2LangCode ,
} ,
) ;
return ;
}
final TokensResponseModel res = await TokensRepo . tokenize (
await choreographer . pangeaController . userController . accessToken ,
TokensRequestModel (
fullText: igcTextData ! . originalInput ,
userL1: choreographer . l1LangCode ! ,
userL2: choreographer . l2LangCode ! ,
) ,
) ;
igcTextData ? . tokens = res . tokens ;
} catch ( err , stack ) {
debugger ( when: kDebugMode ) ;
choreographer . errorService . setError (
ChoreoError ( type: ChoreoErrorType . unknown , raw: err ) ,
) ;
Sentry . addBreadcrumb (
Breadcrumb . fromJson ( { " igctextDdata " : igcTextData ? . toJson ( ) } ) ,
) ;
ErrorHandler . logError ( e: err , s: stack ) ;
} finally {
igcTextData ? . loading = false ;
choreographer . stopLoading ( ) ;
}
}
void showFirstMatch ( BuildContext context ) {
if ( igcTextData = = null | | igcTextData ! . matches . isEmpty ) {