forked from firka/student-legacy
did a lot in refilc+
This commit is contained in:
parent
23673a34d8
commit
d8b85ba1b4
@ -1,12 +1,12 @@
|
||||
import 'package:filcnaplo/theme/colors/colors.dart';
|
||||
import 'package:refilc_plus/models/premium_scopes.dart';
|
||||
import 'package:refilc_plus/providers/premium_provider.dart';
|
||||
import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
|
||||
// import 'package:refilc_plus/models/premium_scopes.dart';
|
||||
// import 'package:refilc_plus/providers/premium_provider.dart';
|
||||
// import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:dropdown_button2/dropdown_button2.dart';
|
||||
import 'package:filcnaplo_mobile_ui/pages/grades/grades_page.i18n.dart';
|
||||
import 'package:flutter_feather_icons/flutter_feather_icons.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
// import 'package:provider/provider.dart';
|
||||
|
||||
final Map<int, String> avgDropItems = {
|
||||
0: "annual_average",
|
||||
@ -47,17 +47,17 @@ class AverageSelectorState extends State<AverageSelector> {
|
||||
return DropdownButton2<int>(
|
||||
items: dropdownItems,
|
||||
onChanged: (int? value) {
|
||||
if (Provider.of<PremiumProvider>(context, listen: false)
|
||||
.hasScope(PremiumScopes.gradeStats)) {
|
||||
// if (Provider.of<PremiumProvider>(context, listen: false)
|
||||
// .hasScope(PremiumScopes.gradeStats)) {
|
||||
if (widget.onChanged != null) {
|
||||
setState(() {
|
||||
widget.onChanged!(value);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
PremiumLockedFeatureUpsell.show(
|
||||
context: context, feature: PremiumFeature.gradestats);
|
||||
}
|
||||
// } else {
|
||||
// PremiumLockedFeatureUpsell.show(
|
||||
// context: context, feature: PremiumFeature.gradestats);
|
||||
// }
|
||||
},
|
||||
value: widget.value,
|
||||
iconSize: 14,
|
||||
|
@ -26,10 +26,10 @@ import 'package:filcnaplo_mobile_ui/pages/grades/grades_count.dart';
|
||||
import 'package:filcnaplo_mobile_ui/pages/grades/graph.dart';
|
||||
import 'package:filcnaplo_mobile_ui/pages/grades/subject_grades_container.dart';
|
||||
import 'package:refilc_plus/ui/mobile/goal_planner/goal_planner_screen.dart';
|
||||
import 'package:refilc_plus/models/premium_scopes.dart';
|
||||
import 'package:refilc_plus/providers/premium_provider.dart';
|
||||
// import 'package:refilc_plus/models/premium_scopes.dart';
|
||||
// import 'package:refilc_plus/providers/premium_provider.dart';
|
||||
import 'package:refilc_plus/ui/mobile/goal_planner/goal_state_screen.dart';
|
||||
import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
|
||||
// import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_expandable_fab/flutter_expandable_fab.dart';
|
||||
@ -246,12 +246,12 @@ class _GradeSubjectViewState extends State<GradeSubjectView> {
|
||||
heroTag: "btn_goal_planner",
|
||||
backgroundColor: Theme.of(context).colorScheme.secondary,
|
||||
onPressed: () {
|
||||
if (!Provider.of<PremiumProvider>(context, listen: false)
|
||||
.hasScope(PremiumScopes.goalPlanner)) {
|
||||
PremiumLockedFeatureUpsell.show(
|
||||
context: context, feature: PremiumFeature.goalplanner);
|
||||
return;
|
||||
}
|
||||
// if (!Provider.of<PremiumProvider>(context, listen: false)
|
||||
// .hasScope(PremiumScopes.goalPlanner)) {
|
||||
// PremiumLockedFeatureUpsell.show(
|
||||
// context: context, feature: PremiumFeature.goalplanner);
|
||||
// return;
|
||||
// }
|
||||
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// const SnackBar(content: Text("Hamarosan...")));
|
||||
|
@ -32,11 +32,13 @@ import 'package:filcnaplo_mobile_ui/pages/grades/fail_warning.dart';
|
||||
import 'package:filcnaplo_mobile_ui/pages/grades/grades_count.dart';
|
||||
import 'package:filcnaplo_mobile_ui/pages/grades/graph.dart';
|
||||
import 'package:filcnaplo_mobile_ui/pages/grades/grade_subject_view.dart';
|
||||
import 'package:refilc_plus/models/premium_scopes.dart';
|
||||
import 'package:refilc_plus/providers/premium_provider.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_feather_icons/flutter_feather_icons.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:filcnaplo/helpers/average_helper.dart';
|
||||
import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
|
||||
import 'average_selector.dart';
|
||||
import 'package:refilc_plus/ui/mobile/premium/premium_inline.dart';
|
||||
import 'calculator/grade_calculator.dart';
|
||||
@ -499,6 +501,15 @@ class GradesPageState extends State<GradesPage> {
|
||||
child: IconButton(
|
||||
splashRadius: 24.0,
|
||||
onPressed: () {
|
||||
if (!Provider.of<PremiumProvider>(context,
|
||||
listen: false)
|
||||
.hasScope(PremiumScopes.totalGradeCalculator)) {
|
||||
PremiumLockedFeatureUpsell.show(
|
||||
context: context,
|
||||
feature: PremiumFeature.gradeCalculation);
|
||||
return;
|
||||
}
|
||||
|
||||
// SoonAlert.show(context: context);
|
||||
gradeCalcTotal(context);
|
||||
},
|
||||
|
@ -11,18 +11,17 @@ class ActiveSponsorCard extends StatelessWidget {
|
||||
const ActiveSponsorCard({super.key});
|
||||
|
||||
static PremiumFeatureLevel? estimateLevel(List<String> scopes) {
|
||||
if (scopes.contains(PremiumScopes.all)) {
|
||||
if (scopes.contains(PremiumScopes.all) ||
|
||||
scopes.contains(PremiumScopes.tierSponge)) {
|
||||
return PremiumFeatureLevel.sponge;
|
||||
}
|
||||
if (scopes.contains(PremiumScopes.tierInk)) {
|
||||
return PremiumFeatureLevel.ink;
|
||||
}
|
||||
if (scopes.contains(PremiumScopes.timetableWidget) ||
|
||||
scopes.contains(PremiumScopes.goalPlanner)) {
|
||||
return PremiumFeatureLevel.ink;
|
||||
}
|
||||
if (scopes.contains(PremiumScopes.customColors) ||
|
||||
scopes.contains(PremiumScopes.nickname)) {
|
||||
if (scopes.contains(PremiumScopes.tierCap)) {
|
||||
return PremiumFeatureLevel.cap;
|
||||
}
|
||||
return null;
|
||||
return PremiumFeatureLevel.old;
|
||||
}
|
||||
|
||||
IconData _levelIcon(PremiumFeatureLevel level) {
|
||||
@ -31,10 +30,10 @@ class ActiveSponsorCard extends StatelessWidget {
|
||||
return FilcIcons.kupak;
|
||||
case PremiumFeatureLevel.ink:
|
||||
return FilcIcons.tinta;
|
||||
case PremiumFeatureLevel.old:
|
||||
return FilcIcons.kupak;
|
||||
case PremiumFeatureLevel.sponge:
|
||||
return FilcIcons.kupak;
|
||||
case PremiumFeatureLevel.old:
|
||||
return FilcIcons.kupak;
|
||||
}
|
||||
}
|
||||
|
||||
@ -56,10 +55,10 @@ class ActiveSponsorCard extends StatelessWidget {
|
||||
case PremiumFeatureLevel.ink:
|
||||
glow = Colors.purple;
|
||||
break;
|
||||
case PremiumFeatureLevel.old:
|
||||
case PremiumFeatureLevel.sponge:
|
||||
glow = Colors.red;
|
||||
break;
|
||||
case PremiumFeatureLevel.sponge:
|
||||
case PremiumFeatureLevel.old:
|
||||
glow = Colors.red;
|
||||
break;
|
||||
}
|
||||
|
@ -105,7 +105,7 @@ class _PremiumButtonState extends State<PremiumButton>
|
||||
Icon(FilcIcons.premium, color: Colors.white),
|
||||
SizedBox(width: 12.0),
|
||||
Text(
|
||||
"reFilc Premium",
|
||||
"reFilc+",
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.bold,
|
||||
|
@ -13,9 +13,9 @@ import 'package:filcnaplo_kreta_api/providers/grade_provider.dart';
|
||||
import 'package:filcnaplo_kreta_api/providers/timetable_provider.dart';
|
||||
import 'package:filcnaplo_mobile_ui/common/panel/panel.dart';
|
||||
import 'package:filcnaplo_mobile_ui/common/panel/panel_button.dart';
|
||||
import 'package:refilc_plus/models/premium_scopes.dart';
|
||||
import 'package:refilc_plus/providers/premium_provider.dart';
|
||||
import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
|
||||
// import 'package:refilc_plus/models/premium_scopes.dart';
|
||||
// import 'package:refilc_plus/providers/premium_provider.dart';
|
||||
// import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_feather_icons/flutter_feather_icons.dart';
|
||||
@ -33,12 +33,12 @@ class MenuRenamedSubjects extends StatelessWidget {
|
||||
return PanelButton(
|
||||
padding: const EdgeInsets.only(left: 14.0),
|
||||
onPressed: () {
|
||||
if (!Provider.of<PremiumProvider>(context, listen: false)
|
||||
.hasScope(PremiumScopes.renameSubjects)) {
|
||||
PremiumLockedFeatureUpsell.show(
|
||||
context: context, feature: PremiumFeature.subjectrename);
|
||||
return;
|
||||
}
|
||||
// if (!Provider.of<PremiumProvider>(context, listen: false)
|
||||
// .hasScope(PremiumScopes.renameSubjects)) {
|
||||
// PremiumLockedFeatureUpsell.show(
|
||||
// context: context, feature: PremiumFeature.subjectrename);
|
||||
// return;
|
||||
// }
|
||||
|
||||
Navigator.of(context, rootNavigator: true).push(
|
||||
CupertinoPageRoute(builder: (context) => const ModifySubjectNames()),
|
||||
@ -58,12 +58,12 @@ class MenuRenamedSubjects extends StatelessWidget {
|
||||
trailingDivider: true,
|
||||
trailing: Switch(
|
||||
onChanged: (v) async {
|
||||
if (!Provider.of<PremiumProvider>(context, listen: false)
|
||||
.hasScope(PremiumScopes.renameSubjects)) {
|
||||
PremiumLockedFeatureUpsell.show(
|
||||
context: context, feature: PremiumFeature.subjectrename);
|
||||
return;
|
||||
}
|
||||
// if (!Provider.of<PremiumProvider>(context, listen: false)
|
||||
// .hasScope(PremiumScopes.renameSubjects)) {
|
||||
// PremiumLockedFeatureUpsell.show(
|
||||
// context: context, feature: PremiumFeature.subjectrename);
|
||||
// return;
|
||||
// }
|
||||
|
||||
settings.update(renamedSubjectsEnabled: v);
|
||||
await Provider.of<GradeProvider>(context, listen: false)
|
||||
|
@ -37,7 +37,9 @@ import 'package:filcnaplo_mobile_ui/screens/settings/modify_subject_names.dart';
|
||||
import 'package:filcnaplo_mobile_ui/screens/settings/notifications_screen.dart';
|
||||
import 'package:filcnaplo_mobile_ui/screens/settings/privacy_view.dart';
|
||||
import 'package:filcnaplo_mobile_ui/screens/settings/settings_helper.dart';
|
||||
import 'package:refilc_plus/models/premium_scopes.dart';
|
||||
import 'package:refilc_plus/providers/premium_provider.dart';
|
||||
import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
|
||||
import 'package:refilc_plus/ui/mobile/settings/app_icon_screen.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
@ -436,6 +438,15 @@ class SettingsScreenState extends State<SettingsScreen>
|
||||
// account settings
|
||||
PanelButton(
|
||||
onPressed: () {
|
||||
if (!Provider.of<PremiumProvider>(context,
|
||||
listen: false)
|
||||
.hasScope(PremiumScopes.maxTwoAccounts)) {
|
||||
PremiumLockedFeatureUpsell.show(
|
||||
context: context,
|
||||
feature: PremiumFeature.moreAccounts);
|
||||
return;
|
||||
}
|
||||
|
||||
Navigator.of(context)
|
||||
.pushNamed("login_back")
|
||||
.then((value) {
|
||||
@ -837,6 +848,15 @@ class SettingsScreenState extends State<SettingsScreen>
|
||||
if (defaultTargetPlatform == TargetPlatform.iOS)
|
||||
PanelButton(
|
||||
onPressed: () {
|
||||
if (!Provider.of<PremiumProvider>(context,
|
||||
listen: false)
|
||||
.hasScope(PremiumScopes.liveActivityColor)) {
|
||||
PremiumLockedFeatureUpsell.show(
|
||||
context: context,
|
||||
feature: PremiumFeature.liveActivity);
|
||||
return;
|
||||
}
|
||||
|
||||
SettingsHelper.liveActivityColor(context);
|
||||
setState(() {});
|
||||
},
|
||||
@ -1131,8 +1151,8 @@ class SettingsScreenState extends State<SettingsScreen>
|
||||
Provider.of<KretaClient>(context, listen: false)
|
||||
.accessToken!)),
|
||||
),
|
||||
// if (Provider.of<PremiumProvider>(context, listen: false)
|
||||
// .hasPremium)
|
||||
if (Provider.of<PremiumProvider>(context, listen: false)
|
||||
.hasPremium)
|
||||
PanelButton(
|
||||
leading: const Icon(FeatherIcons.key),
|
||||
title: const Text("Remove Premium"),
|
||||
@ -1141,7 +1161,8 @@ class SettingsScreenState extends State<SettingsScreen>
|
||||
.activate(removePremium: true);
|
||||
settings.update(
|
||||
accentColor: AccentColor.filc, store: true);
|
||||
Provider.of<ThemeModeObserver>(context, listen: false)
|
||||
Provider.of<ThemeModeObserver>(context,
|
||||
listen: false)
|
||||
.changeTheme(settings.theme);
|
||||
},
|
||||
),
|
||||
|
@ -15,11 +15,11 @@ import 'package:filcnaplo_mobile_ui/common/filter_bar.dart';
|
||||
import 'package:filcnaplo_mobile_ui/common/panel/panel.dart';
|
||||
import 'package:filcnaplo_mobile_ui/common/widgets/grade/new_grades.dart';
|
||||
import 'package:filcnaplo_mobile_ui/common/widgets/homework/homework_tile.dart';
|
||||
import 'package:refilc_plus/models/premium_scopes.dart';
|
||||
import 'package:refilc_plus/providers/premium_provider.dart';
|
||||
// import 'package:refilc_plus/models/premium_scopes.dart';
|
||||
// import 'package:refilc_plus/providers/premium_provider.dart';
|
||||
import 'package:filcnaplo_kreta_api/providers/share_provider.dart';
|
||||
import 'package:filcnaplo/ui/flutter_colorpicker/colorpicker.dart';
|
||||
import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
|
||||
// import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_feather_icons/flutter_feather_icons.dart';
|
||||
@ -205,8 +205,9 @@ class _PremiumCustomAccentColorSettingState
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
bool hasAccess = Provider.of<PremiumProvider>(context)
|
||||
.hasScope(PremiumScopes.customColors);
|
||||
// bool hasAccess = Provider.of<PremiumProvider>(context)
|
||||
// .hasScope(PremiumScopes.customColors);
|
||||
bool hasAccess = true;
|
||||
bool isBackgroundDifferent = Theme.of(context).colorScheme.background !=
|
||||
AppColors.of(context).background;
|
||||
|
||||
@ -723,16 +724,16 @@ class _PremiumCustomAccentColorSettingState
|
||||
// "colorpicker_icon".i18n)),
|
||||
],
|
||||
onTap: (index) {
|
||||
if (!hasAccess) {
|
||||
index = 0;
|
||||
_colorsTabController.animateTo(0,
|
||||
duration: Duration.zero);
|
||||
// if (!hasAccess) {
|
||||
// index = 0;
|
||||
// _colorsTabController.animateTo(0,
|
||||
// duration: Duration.zero);
|
||||
|
||||
PremiumLockedFeatureUpsell.show(
|
||||
context: context,
|
||||
feature: PremiumFeature
|
||||
.customcolors);
|
||||
}
|
||||
// PremiumLockedFeatureUpsell.show(
|
||||
// context: context,
|
||||
// feature: PremiumFeature
|
||||
// .customcolors);
|
||||
// }
|
||||
|
||||
switch (index) {
|
||||
case 0:
|
||||
|
@ -2,9 +2,9 @@ import 'package:filcnaplo/api/providers/database_provider.dart';
|
||||
import 'package:filcnaplo/api/providers/user_provider.dart';
|
||||
import 'package:filcnaplo/models/user.dart';
|
||||
import 'package:filcnaplo_mobile_ui/common/bottom_sheet_menu/bottom_sheet_menu_item.dart';
|
||||
import 'package:refilc_plus/models/premium_scopes.dart';
|
||||
import 'package:refilc_plus/providers/premium_provider.dart';
|
||||
import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
|
||||
// import 'package:refilc_plus/models/premium_scopes.dart';
|
||||
// import 'package:refilc_plus/providers/premium_provider.dart';
|
||||
// import 'package:refilc_plus/ui/mobile/premium/upsell.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_feather_icons/flutter_feather_icons.dart';
|
||||
import 'package:filcnaplo_mobile_ui/screens/settings/settings_screen.i18n.dart';
|
||||
@ -20,12 +20,12 @@ class UserMenuNickname extends StatelessWidget {
|
||||
Widget build(BuildContext context) {
|
||||
return BottomSheetMenuItem(
|
||||
onPressed: () {
|
||||
if (!Provider.of<PremiumProvider>(context, listen: false)
|
||||
.hasScope(PremiumScopes.nickname)) {
|
||||
PremiumLockedFeatureUpsell.show(
|
||||
context: context, feature: PremiumFeature.profile);
|
||||
return;
|
||||
}
|
||||
// if (!Provider.of<PremiumProvider>(context, listen: false)
|
||||
// .hasScope(PremiumScopes.nickname)) {
|
||||
// PremiumLockedFeatureUpsell.show(
|
||||
// context: context, feature: PremiumFeature.profile);
|
||||
// return;
|
||||
// }
|
||||
showDialog(
|
||||
context: context, builder: (context) => UserNicknameEditor(u));
|
||||
},
|
||||
|
@ -8,8 +8,8 @@ import 'package:filcnaplo/api/providers/database_provider.dart';
|
||||
import 'package:filcnaplo/api/providers/user_provider.dart';
|
||||
import 'package:filcnaplo/models/user.dart';
|
||||
import 'package:filcnaplo_mobile_ui/common/bottom_sheet_menu/bottom_sheet_menu_item.dart';
|
||||
import 'package:refilc_plus/models/premium_scopes.dart';
|
||||
import 'package:refilc_plus/providers/premium_provider.dart';
|
||||
// import 'package:refilc_plus/models/premium_scopes.dart';
|
||||
// import 'package:refilc_plus/providers/premium_provider.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_feather_icons/flutter_feather_icons.dart';
|
||||
@ -26,10 +26,10 @@ class UserMenuProfilePic extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (!Provider.of<PremiumProvider>(context)
|
||||
.hasScope(PremiumScopes.nickname)) {
|
||||
return const SizedBox();
|
||||
}
|
||||
// if (!Provider.of<PremiumProvider>(context)
|
||||
// .hasScope(PremiumScopes.nickname)) {
|
||||
// return const SizedBox();
|
||||
// }
|
||||
|
||||
return BottomSheetMenuItem(
|
||||
onPressed: () {
|
||||
|
Loading…
x
Reference in New Issue
Block a user