notification page navigation
This commit is contained in:
parent
85c3ff3590
commit
138e0d93e5
4 changed files with 44 additions and 8 deletions
|
|
@ -66,6 +66,7 @@ import 'package:fluffychat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.
|
|||
import 'package:fluffychat/widgets/config_viewer.dart';
|
||||
import 'package:fluffychat/widgets/layouts/empty_page.dart';
|
||||
import 'package:fluffychat/widgets/layouts/two_column_layout.dart';
|
||||
import 'package:fluffychat/widgets/local_notifications_extension.dart';
|
||||
import 'package:fluffychat/widgets/log_view.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
import 'package:fluffychat/widgets/share_scaffold_dialog.dart';
|
||||
|
|
@ -216,6 +217,14 @@ abstract class AppRoutes {
|
|||
state,
|
||||
const EnableNotifications(),
|
||||
),
|
||||
redirect: (context, state) async {
|
||||
final redirect =
|
||||
await PAuthGaurd.onboardingRedirect(context, state);
|
||||
if (redirect != null) return redirect;
|
||||
final enabled = await Matrix.of(context).notificationsEnabled;
|
||||
if (enabled) return "/registration/course";
|
||||
return null;
|
||||
},
|
||||
),
|
||||
GoRoute(
|
||||
path: 'course',
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import 'package:fluffychat/l10n/l10n.dart';
|
|||
import 'package:fluffychat/pangea/authentication/p_logout.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/login/pages/pangea_login_scaffold.dart';
|
||||
import 'package:fluffychat/widgets/local_notifications_extension.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class EnableNotifications extends StatefulWidget {
|
||||
|
|
@ -45,6 +46,24 @@ class EnabledNotificationsController extends State<EnableNotifications> {
|
|||
}
|
||||
}
|
||||
|
||||
Future<void> _requestNotificationPermission() async {
|
||||
try {
|
||||
await Matrix.of(context).requestPermission();
|
||||
} catch (e, s) {
|
||||
final permisson = await Matrix.of(context).notificationsEnabled;
|
||||
ErrorHandler.logError(
|
||||
e: e,
|
||||
s: s,
|
||||
data: {
|
||||
'notification_permission': permisson,
|
||||
},
|
||||
);
|
||||
}
|
||||
if (mounted) {
|
||||
context.push("/registration/course");
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return PangeaLoginScaffold(
|
||||
|
|
@ -92,7 +111,7 @@ class EnabledNotificationsController extends State<EnableNotifications> {
|
|||
textAlign: TextAlign.center,
|
||||
),
|
||||
ElevatedButton(
|
||||
onPressed: null,
|
||||
onPressed: _requestNotificationPermission,
|
||||
style: ElevatedButton.styleFrom(
|
||||
backgroundColor: Theme.of(context).colorScheme.primaryContainer,
|
||||
foregroundColor:
|
||||
|
|
@ -107,7 +126,7 @@ class EnabledNotificationsController extends State<EnableNotifications> {
|
|||
),
|
||||
TextButton(
|
||||
child: Text(L10n.of(context).skipForNow),
|
||||
onPressed: () => context.go("/registration/course"),
|
||||
onPressed: () => context.push("/registration/course"),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import 'package:matrix/matrix.dart';
|
|||
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pages/onboarding/space_code_onboarding.dart';
|
||||
import 'package:fluffychat/pangea/authentication/p_logout.dart';
|
||||
import 'package:fluffychat/pangea/login/pages/pangea_login_scaffold.dart';
|
||||
|
||||
class SpaceCodeOnboardingView extends StatelessWidget {
|
||||
|
|
@ -27,10 +26,7 @@ class SpaceCodeOnboardingView extends StatelessWidget {
|
|||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
BackButton(
|
||||
onPressed: () => pLogoutAction(
|
||||
context,
|
||||
bypassWarning: true,
|
||||
),
|
||||
onPressed: Navigator.of(context).pop,
|
||||
),
|
||||
const SizedBox(
|
||||
width: 40.0,
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import 'package:fluffychat/config/app_config.dart';
|
|||
import 'package:fluffychat/config/setting_keys.dart';
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pages/settings_notifications/push_rule_extensions.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/utils/localized_exception_extension.dart';
|
||||
import 'package:fluffychat/widgets/adaptive_dialogs/adaptive_dialog_action.dart';
|
||||
import 'package:fluffychat/widgets/adaptive_dialogs/show_modal_action_popup.dart';
|
||||
|
|
@ -208,7 +209,18 @@ class SettingsNotificationsController extends State<SettingsNotifications> {
|
|||
}
|
||||
|
||||
Future<void> requestNotificationPermission() async {
|
||||
await Matrix.of(context).requestPermission();
|
||||
try {
|
||||
await Matrix.of(context).requestPermission();
|
||||
} catch (e, s) {
|
||||
final permisson = await Matrix.of(context).notificationsEnabled;
|
||||
ErrorHandler.logError(
|
||||
e: e,
|
||||
s: s,
|
||||
data: {
|
||||
'notification_permission': permisson,
|
||||
},
|
||||
);
|
||||
}
|
||||
if (mounted) setState(() {});
|
||||
}
|
||||
// Pangea#
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue