added test button and share provider to app

This commit is contained in:
Kima 2023-09-08 21:04:54 +02:00
parent 991097fa34
commit 070e3cf18c
3 changed files with 74 additions and 36 deletions

View File

@ -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<KretaClient>(create: (_) => kreta),
Provider<DatabaseProvider>(create: (context) => database),
ChangeNotifierProvider<ThemeModeObserver>(
create: (context) =>
ThemeModeObserver(initialTheme: settings.theme)),
create: (context) => ThemeModeObserver(
initialTheme: settings.theme,
),
),
ChangeNotifierProvider<NewsProvider>(
create: (context) => NewsProvider(context: context)),
create: (context) => NewsProvider(context: context),
),
ChangeNotifierProvider<UpdateProvider>(
create: (context) => UpdateProvider(context: context)),
create: (context) => UpdateProvider(context: context),
),
ChangeNotifierProvider<AdProvider>(
create: (context) => AdProvider(context: context)),
create: (context) => AdProvider(context: context),
),
// user data (kreten) providers
ChangeNotifierProvider<GradeProvider>(
create: (_) => GradeProvider(
settings: settings,
user: user,
database: database,
kreta: kreta)),
create: (_) => GradeProvider(
settings: settings,
user: user,
database: database,
kreta: kreta,
),
),
ChangeNotifierProvider<TimetableProvider>(create: (_) => timetable),
ChangeNotifierProvider<ExamProvider>(
create: (context) => ExamProvider(context: context)),
create: (context) => ExamProvider(context: context),
),
ChangeNotifierProvider<HomeworkProvider>(
create: (context) =>
HomeworkProvider(context: context, database: database)),
create: (context) => HomeworkProvider(
context: context,
database: database,
),
),
ChangeNotifierProvider<MessageProvider>(
create: (context) => MessageProvider(context: context)),
create: (context) => MessageProvider(context: context),
),
ChangeNotifierProvider<NoteProvider>(
create: (context) => NoteProvider(context: context)),
create: (context) => NoteProvider(context: context),
),
ChangeNotifierProvider<EventProvider>(
create: (context) => EventProvider(context: context)),
create: (context) => EventProvider(context: context),
),
ChangeNotifierProvider<AbsenceProvider>(
create: (context) => AbsenceProvider(context: context)),
create: (context) => AbsenceProvider(context: context),
),
// other providers
ChangeNotifierProvider<GradeCalculatorProvider>(
create: (_) => GradeCalculatorProvider(
settings: settings,
user: user,
database: database,
kreta: kreta)),
create: (_) => GradeCalculatorProvider(
settings: settings,
user: user,
database: database,
kreta: kreta,
),
),
ChangeNotifierProvider<LiveCardProvider>(
create: (context) =>
LiveCardProvider(timetable: timetable, settings: settings)),
create: (context) => LiveCardProvider(
timetable: timetable,
settings: settings,
),
),
ChangeNotifierProvider<GoalProvider>(
create: (context) => GoalProvider(database: database, user: user)),
create: (context) => GoalProvider(
database: database,
user: user,
),
),
ChangeNotifierProvider<ShareProvider>(
create: (context) => ShareProvider(
user: user,
),
),
],
child: Consumer<ThemeModeObserver>(
builder: (context, themeMode, child) {

View File

@ -17,7 +17,7 @@ class ShareProvider extends ChangeNotifier {
// Future<void> shareTheme({required SharedTheme theme}) async {
// }
Future<void> shareCurrentTheme(BuildContext context,
Future<SharedTheme> shareCurrentTheme(BuildContext context,
{bool isPublic = false, bool shareNick = true}) async {
final SettingsProvider settings = Provider.of<SettingsProvider>(context);
@ -37,7 +37,8 @@ class ShareProvider extends ChangeNotifier {
};
SharedTheme theme = SharedTheme.fromJson(themeJson);
FilcAPI.addSharedTheme(theme);
return theme;
}
}

View File

@ -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<PremiumCustomAccentColorSetting>
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<SettingsProvider>(context, listen: false);
shareProvider = Provider.of<ShareProvider>(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,