diff --git a/filcnaplo/lib/app.dart b/filcnaplo/lib/app.dart index 717b3b1..32ecb6d 100644 --- a/filcnaplo/lib/app.dart +++ b/filcnaplo/lib/app.dart @@ -14,6 +14,7 @@ import 'package:filcnaplo/theme/theme.dart'; import 'package:filcnaplo_kreta_api/client/client.dart'; import 'package:filcnaplo_kreta_api/providers/grade_provider.dart'; import 'package:filcnaplo_premium/providers/goal_provider.dart'; +import 'package:filcnaplo_premium/providers/share_provider.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -99,49 +100,78 @@ class App extends StatelessWidget { Provider(create: (_) => kreta), Provider(create: (context) => database), ChangeNotifierProvider( - create: (context) => - ThemeModeObserver(initialTheme: settings.theme)), + create: (context) => ThemeModeObserver( + initialTheme: settings.theme, + ), + ), ChangeNotifierProvider( - create: (context) => NewsProvider(context: context)), + create: (context) => NewsProvider(context: context), + ), ChangeNotifierProvider( - create: (context) => UpdateProvider(context: context)), + create: (context) => UpdateProvider(context: context), + ), ChangeNotifierProvider( - create: (context) => AdProvider(context: context)), + create: (context) => AdProvider(context: context), + ), // user data (kreten) providers ChangeNotifierProvider( - create: (_) => GradeProvider( - settings: settings, - user: user, - database: database, - kreta: kreta)), + create: (_) => GradeProvider( + settings: settings, + user: user, + database: database, + kreta: kreta, + ), + ), ChangeNotifierProvider(create: (_) => timetable), ChangeNotifierProvider( - create: (context) => ExamProvider(context: context)), + create: (context) => ExamProvider(context: context), + ), ChangeNotifierProvider( - create: (context) => - HomeworkProvider(context: context, database: database)), + create: (context) => HomeworkProvider( + context: context, + database: database, + ), + ), ChangeNotifierProvider( - create: (context) => MessageProvider(context: context)), + create: (context) => MessageProvider(context: context), + ), ChangeNotifierProvider( - create: (context) => NoteProvider(context: context)), + create: (context) => NoteProvider(context: context), + ), ChangeNotifierProvider( - create: (context) => EventProvider(context: context)), + create: (context) => EventProvider(context: context), + ), ChangeNotifierProvider( - create: (context) => AbsenceProvider(context: context)), + create: (context) => AbsenceProvider(context: context), + ), // other providers ChangeNotifierProvider( - create: (_) => GradeCalculatorProvider( - settings: settings, - user: user, - database: database, - kreta: kreta)), + create: (_) => GradeCalculatorProvider( + settings: settings, + user: user, + database: database, + kreta: kreta, + ), + ), ChangeNotifierProvider( - create: (context) => - LiveCardProvider(timetable: timetable, settings: settings)), + create: (context) => LiveCardProvider( + timetable: timetable, + settings: settings, + ), + ), ChangeNotifierProvider( - create: (context) => GoalProvider(database: database, user: user)), + create: (context) => GoalProvider( + database: database, + user: user, + ), + ), + ChangeNotifierProvider( + create: (context) => ShareProvider( + user: user, + ), + ), ], child: Consumer( builder: (context, themeMode, child) { diff --git a/filcnaplo_premium/lib/providers/share_provider.dart b/filcnaplo_premium/lib/providers/share_provider.dart index 5490566..b652cea 100644 --- a/filcnaplo_premium/lib/providers/share_provider.dart +++ b/filcnaplo_premium/lib/providers/share_provider.dart @@ -17,7 +17,7 @@ class ShareProvider extends ChangeNotifier { // Future shareTheme({required SharedTheme theme}) async { // } - Future shareCurrentTheme(BuildContext context, + Future shareCurrentTheme(BuildContext context, {bool isPublic = false, bool shareNick = true}) async { final SettingsProvider settings = Provider.of(context); @@ -37,7 +37,8 @@ class ShareProvider extends ChangeNotifier { }; SharedTheme theme = SharedTheme.fromJson(themeJson); - FilcAPI.addSharedTheme(theme); + + return theme; } } diff --git a/filcnaplo_premium/lib/ui/mobile/settings/theme.dart b/filcnaplo_premium/lib/ui/mobile/settings/theme.dart index 0a3bc86..d8ba210 100644 --- a/filcnaplo_premium/lib/ui/mobile/settings/theme.dart +++ b/filcnaplo_premium/lib/ui/mobile/settings/theme.dart @@ -1,4 +1,5 @@ import 'package:filcnaplo/models/settings.dart'; +import 'package:filcnaplo/models/shared_theme.dart'; import 'package:filcnaplo/theme/colors/accent.dart'; import 'package:filcnaplo/theme/colors/colors.dart'; import 'package:filcnaplo/theme/observer.dart'; @@ -13,6 +14,7 @@ import 'package:filcnaplo_mobile_ui/common/widgets/grade/new_grades.dart'; import 'package:filcnaplo_mobile_ui/common/widgets/homework/homework_tile.dart'; import 'package:filcnaplo_premium/models/premium_scopes.dart'; import 'package:filcnaplo_premium/providers/premium_provider.dart'; +import 'package:filcnaplo_premium/providers/share_provider.dart'; import 'package:filcnaplo_premium/ui/mobile/flutter_colorpicker/colorpicker.dart'; import 'package:filcnaplo_premium/ui/mobile/premium/upsell.dart'; import 'package:flutter/material.dart'; @@ -35,6 +37,7 @@ class _PremiumCustomAccentColorSettingState extends State with TickerProviderStateMixin { late final SettingsProvider settings; + late final ShareProvider shareProvider; bool colorSelection = false; bool customColorMenu = false; CustomColorMode colorMode = CustomColorMode.theme; @@ -99,6 +102,7 @@ class _PremiumCustomAccentColorSettingState _colorsTabController = TabController(length: 4, vsync: this); _testTabController = TabController(length: 4, vsync: this); settings = Provider.of(context, listen: false); + shareProvider = Provider.of(context, listen: false); _openAnimController = AnimationController( vsync: this, duration: const Duration(milliseconds: 750)); @@ -238,15 +242,18 @@ class _PremiumCustomAccentColorSettingState focusColor: Colors.transparent, highlightColor: Colors.transparent, splashColor: Colors.transparent, - onPressed: () { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar( - duration: Duration(milliseconds: 1000), - content: Text( - "Hamarosan...", - ), - ), - ); + onPressed: () async { + // ScaffoldMessenger.of(context).showSnackBar( + // const SnackBar( + // duration: Duration(milliseconds: 1000), + // content: Text( + // "Hamarosan...", + // ), + // ), + // ); + SharedTheme theme = + await shareProvider.shareCurrentTheme(context); + print(theme.id); }, icon: const Icon( FeatherIcons.share2,