Merge pull request #5294 from pangeachat/5263-disable-vocab-practice-for-unsubscribed-users
chore: throw expection while loading practice session is user is unsu…
This commit is contained in:
commit
5561ad2ce2
4 changed files with 15 additions and 4 deletions
|
|
@ -245,6 +245,8 @@ class AnalyticsPracticeState extends State<AnalyticsPractice>
|
|||
Future<void> _startSession() async {
|
||||
await _waitForAnalytics();
|
||||
await _sessionLoader.load();
|
||||
if (_sessionLoader.isError) return;
|
||||
|
||||
progressNotifier.value = _sessionLoader.value!.progress;
|
||||
await _continueSession();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import 'package:fluffychat/pangea/analytics_misc/construct_type_enum.dart';
|
|||
import 'package:fluffychat/pangea/analytics_misc/construct_use_type_enum.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/analytics_practice_constants.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/analytics_practice_session_model.dart';
|
||||
import 'package:fluffychat/pangea/common/network/requests.dart';
|
||||
import 'package:fluffychat/pangea/constructs/construct_identifier.dart';
|
||||
import 'package:fluffychat/pangea/events/event_wrappers/pangea_message_event.dart';
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_model.dart';
|
||||
|
|
@ -21,6 +22,11 @@ class AnalyticsPracticeSessionRepo {
|
|||
static Future<AnalyticsPracticeSessionModel> get(
|
||||
ConstructTypeEnum type,
|
||||
) async {
|
||||
if (MatrixState.pangeaController.subscriptionController.isSubscribed ==
|
||||
false) {
|
||||
throw UnsubscribedException();
|
||||
}
|
||||
|
||||
final r = Random();
|
||||
final activityTypes = ActivityTypeEnum.analyticsPracticeTypes(type);
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import 'package:fluffychat/l10n/l10n.dart';
|
|||
import 'package:fluffychat/pangea/analytics_misc/construct_type_enum.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/analytics_practice_page.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/analytics_practice_session_model.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/analytics_practice_session_repo.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/choice_cards/audio_choice_card.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/choice_cards/game_choice_card.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/choice_cards/grammar_choice_card.dart';
|
||||
|
|
@ -20,6 +19,7 @@ import 'package:fluffychat/pangea/instructions/instructions_inline_tooltip.dart'
|
|||
import 'package:fluffychat/pangea/phonetic_transcription/phonetic_transcription_widget.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/activity_type_enum.dart';
|
||||
import 'package:fluffychat/pangea/practice_activities/practice_activity_model.dart';
|
||||
import 'package:fluffychat/utils/localized_exception_extension.dart';
|
||||
import 'package:fluffychat/widgets/layouts/max_width_body.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
|
|
@ -86,9 +86,7 @@ class AnalyticsPracticeView extends StatelessWidget {
|
|||
return switch (state) {
|
||||
AsyncError<AnalyticsPracticeSessionModel>(:final error) =>
|
||||
ErrorIndicator(
|
||||
message: error is InsufficientDataException
|
||||
? L10n.of(context).notEnoughToPractice
|
||||
: error.toString(),
|
||||
message: error.toLocalizedString(context),
|
||||
),
|
||||
AsyncLoaded<AnalyticsPracticeSessionModel>(:final value) =>
|
||||
value.isComplete
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import 'package:matrix/encryption.dart';
|
|||
import 'package:matrix/matrix.dart';
|
||||
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/analytics_practice_session_repo.dart';
|
||||
import 'package:fluffychat/pangea/common/network/requests.dart';
|
||||
import 'package:fluffychat/utils/other_party_can_receive.dart';
|
||||
import 'uia_request_manager.dart';
|
||||
|
|
@ -34,6 +35,10 @@ extension LocalizedExceptionExtension on Object {
|
|||
if (this is UnsubscribedException) {
|
||||
return L10n.of(context).unsubscribedResponseError;
|
||||
}
|
||||
|
||||
if (this is InsufficientDataException) {
|
||||
return L10n.of(context).notEnoughToPractice;
|
||||
}
|
||||
// Pangea#
|
||||
if (this is FileTooBigMatrixException) {
|
||||
final exception = this as FileTooBigMatrixException;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue