diff --git a/assets/i18n/en-US.json b/assets/i18n/en-US.json
index c63a559..e076c0b 100644
--- a/assets/i18n/en-US.json
+++ b/assets/i18n/en-US.json
@@ -156,6 +156,7 @@
"accountConnectionProviderGoogle": "Google",
"accountConnectionProviderGithub": "GitHub",
"accountConnectionProviderDiscord": "Discord",
+ "accountConnectionProviderAfdian": "Afdian",
"checkIn": "Check In",
"checkInNone": "Not checked-in yet",
"checkInNoneHint": "Get your fortune tips and daily rewards by checking in.",
diff --git a/assets/images/oidc/afdian.svg b/assets/images/oidc/afdian.svg
new file mode 100644
index 0000000..74bc715
--- /dev/null
+++ b/assets/images/oidc/afdian.svg
@@ -0,0 +1,10 @@
+
\ No newline at end of file
diff --git a/lib/screens/account/me/settings_connections.dart b/lib/screens/account/me/settings_connections.dart
index 0605837..c85b5a2 100644
--- a/lib/screens/account/me/settings_connections.dart
+++ b/lib/screens/account/me/settings_connections.dart
@@ -28,6 +28,7 @@ Widget getProviderIcon(String provider, {double size = 24, Color? color}) {
case 'google':
case 'github':
case 'discord':
+ case 'afdian':
return SvgPicture.asset(
'assets/images/oidc/$providerLower.svg',
width: size,
@@ -51,6 +52,8 @@ String getLocalizedProviderName(String provider) {
return 'accountConnectionProviderGithub'.tr();
case 'discord':
return 'accountConnectionProviderDiscord'.tr();
+ case 'afdian':
+ return 'accountConnectionProviderAfdian'.tr();
default:
return provider;
}
@@ -141,7 +144,14 @@ class AccountConnectionNewSheet extends HookConsumerWidget {
final selectedProvider = useState('apple');
// List of available providers
- final providers = ['apple', 'microsoft', 'google', 'github', 'discord'];
+ final providers = [
+ 'apple',
+ 'microsoft',
+ 'google',
+ 'github',
+ 'discord',
+ 'afdian',
+ ];
Future addConnection() async {
final client = ref.watch(apiClientProvider);
@@ -182,7 +192,8 @@ class AccountConnectionNewSheet extends HookConsumerWidget {
case 'google':
case 'github':
case 'discord':
- await Navigator.of(context).push(
+ case 'afdian':
+ await Navigator.of(context, rootNavigator: true).push(
MaterialPageRoute(
builder:
(context) => OidcScreen(
diff --git a/lib/screens/auth/login.dart b/lib/screens/auth/login.dart
index e045d4a..21d23d9 100644
--- a/lib/screens/auth/login.dart
+++ b/lib/screens/auth/login.dart
@@ -652,7 +652,7 @@ class _LoginLookupScreen extends HookConsumerWidget {
}
Future withOidc(String provider) async {
- final challengeId = await Navigator.of(context).push(
+ final challengeId = await Navigator.of(context, rootNavigator: true).push(
MaterialPageRoute(
builder: (context) => OidcScreen(provider: provider.toLowerCase()),
),
diff --git a/lib/widgets/chat/call_overlay.dart b/lib/widgets/chat/call_overlay.dart
index 8cec63c..552b73d 100644
--- a/lib/widgets/chat/call_overlay.dart
+++ b/lib/widgets/chat/call_overlay.dart
@@ -6,9 +6,9 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/pods/call.dart';
import 'package:island/route.gr.dart';
import 'package:island/widgets/chat/call_participant_tile.dart';
+import 'package:island/widgets/content/sheet.dart';
import 'package:styled_widget/styled_widget.dart';
import 'package:livekit_client/livekit_client.dart';
-import '../../widgets/content/sheet.dart';
class CallControlsBar extends HookConsumerWidget {
const CallControlsBar({super.key});
@@ -150,9 +150,10 @@ class CallControlsBar extends HookConsumerWidget {
context: context,
builder: (BuildContext dialogContext) {
return SheetScaffold(
- titleText: deviceType == 'videoinput'
- ? 'selectCamera'.tr()
- : 'selectMicrophone'.tr(),
+ titleText:
+ deviceType == 'videoinput'
+ ? 'selectCamera'.tr()
+ : 'selectMicrophone'.tr(),
child: ListView.builder(
itemCount: devices.length,
itemBuilder: (context, index) {