Compare commits
2 Commits
caf2f5f1f6
...
0509f37c96
| Author | SHA1 | Date | |
|---|---|---|---|
|
0509f37c96
|
|||
|
a7dc9ac6fa
|
@@ -162,6 +162,7 @@
|
|||||||
"accountConnectionProviderGithub": "GitHub",
|
"accountConnectionProviderGithub": "GitHub",
|
||||||
"accountConnectionProviderDiscord": "Discord",
|
"accountConnectionProviderDiscord": "Discord",
|
||||||
"accountConnectionProviderAfdian": "Afdian",
|
"accountConnectionProviderAfdian": "Afdian",
|
||||||
|
"accountConnectionProviderSpotify": "Spotify",
|
||||||
"checkIn": "Check In",
|
"checkIn": "Check In",
|
||||||
"checkInNone": "Not checked-in yet",
|
"checkInNone": "Not checked-in yet",
|
||||||
"checkInNoneHint": "Get your fortune tips and daily rewards by checking in.",
|
"checkInNoneHint": "Get your fortune tips and daily rewards by checking in.",
|
||||||
|
|||||||
BIN
assets/images/oidc/spotify.png
Normal file
BIN
assets/images/oidc/spotify.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
@@ -1,5 +1,4 @@
|
|||||||
import 'package:easy_localization/easy_localization.dart';
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
@@ -9,7 +8,6 @@ import 'package:island/models/auth.dart';
|
|||||||
import 'package:island/pods/config.dart';
|
import 'package:island/pods/config.dart';
|
||||||
import 'package:island/pods/network.dart';
|
import 'package:island/pods/network.dart';
|
||||||
import 'package:island/screens/account/me/account_settings.dart';
|
import 'package:island/screens/account/me/account_settings.dart';
|
||||||
import 'package:island/screens/auth/oidc.native.dart';
|
|
||||||
import 'package:island/utils/text.dart';
|
import 'package:island/utils/text.dart';
|
||||||
import 'package:island/services/time.dart';
|
import 'package:island/services/time.dart';
|
||||||
import 'package:island/widgets/alert.dart';
|
import 'package:island/widgets/alert.dart';
|
||||||
@@ -38,6 +36,13 @@ Widget getProviderIcon(String provider, {double size = 24, Color? color}) {
|
|||||||
height: size,
|
height: size,
|
||||||
color: color,
|
color: color,
|
||||||
);
|
);
|
||||||
|
case 'spotify':
|
||||||
|
return Image.asset(
|
||||||
|
'assets/images/oidc/spotify.png',
|
||||||
|
width: size,
|
||||||
|
height: size,
|
||||||
|
color: color,
|
||||||
|
);
|
||||||
default:
|
default:
|
||||||
return Icon(Symbols.link, size: size);
|
return Icon(Symbols.link, size: size);
|
||||||
}
|
}
|
||||||
@@ -57,6 +62,8 @@ String getLocalizedProviderName(String provider) {
|
|||||||
return 'accountConnectionProviderDiscord'.tr();
|
return 'accountConnectionProviderDiscord'.tr();
|
||||||
case 'afdian':
|
case 'afdian':
|
||||||
return 'accountConnectionProviderAfdian'.tr();
|
return 'accountConnectionProviderAfdian'.tr();
|
||||||
|
case 'spotify':
|
||||||
|
return 'accountConnectionProviderSpotify'.tr();
|
||||||
default:
|
default:
|
||||||
return provider;
|
return provider;
|
||||||
}
|
}
|
||||||
@@ -156,6 +163,7 @@ class AccountConnectionNewSheet extends HookConsumerWidget {
|
|||||||
'github',
|
'github',
|
||||||
'discord',
|
'discord',
|
||||||
'afdian',
|
'afdian',
|
||||||
|
'spotify',
|
||||||
];
|
];
|
||||||
|
|
||||||
Future<void> addConnection() async {
|
Future<void> addConnection() async {
|
||||||
@@ -196,25 +204,13 @@ class AccountConnectionNewSheet extends HookConsumerWidget {
|
|||||||
case 'github':
|
case 'github':
|
||||||
case 'discord':
|
case 'discord':
|
||||||
case 'afdian':
|
case 'afdian':
|
||||||
if (kIsWeb) {
|
case 'spotify':
|
||||||
final serverUrl = ref.watch(serverUrlProvider);
|
final serverUrl = ref.watch(serverUrlProvider);
|
||||||
final accessToken = ref.watch(tokenProvider);
|
final accessToken = ref.watch(tokenProvider);
|
||||||
launchUrlString(
|
launchUrlString(
|
||||||
'$serverUrl/pass/auth/login/${selectedProvider.value}?tk=${accessToken!.token}',
|
'$serverUrl/pass/auth/login/${selectedProvider.value}?tk=${accessToken!.token}',
|
||||||
);
|
);
|
||||||
} else {
|
if (context.mounted) Navigator.pop(context, true);
|
||||||
await Navigator.of(context, rootNavigator: true).push(
|
|
||||||
MaterialPageRoute(
|
|
||||||
builder:
|
|
||||||
(context) => OidcScreen(
|
|
||||||
provider: selectedProvider.value.toLowerCase(),
|
|
||||||
title:
|
|
||||||
'Connect with ${selectedProvider.value.capitalizeEachWord()}',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
if (context.mounted) Navigator.pop(context, true);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
showSnackBar('accountConnectionAddError'.tr());
|
showSnackBar('accountConnectionAddError'.tr());
|
||||||
|
|||||||
Reference in New Issue
Block a user