chore: update splash and icon assets for improved branding
- Replaced splash screen images across various resolutions (hdpi, mdpi, xhdpi, xxhdpi, xxxhdpi) to enhance visual consistency. - Updated the app icon to align with the new branding guidelines. - Ensured that all asset paths are correctly referenced in the project structure.
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 20 KiB |
@@ -24,7 +24,6 @@ class ConnectionIssuePage extends ConsumerStatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _ConnectionIssuePageState extends ConsumerState<ConnectionIssuePage> {
|
class _ConnectionIssuePageState extends ConsumerState<ConnectionIssuePage> {
|
||||||
bool _isRetrying = false;
|
|
||||||
bool _isLoggingOut = false;
|
bool _isLoggingOut = false;
|
||||||
String? _statusMessage;
|
String? _statusMessage;
|
||||||
|
|
||||||
@@ -48,16 +47,6 @@ class _ConnectionIssuePageState extends ConsumerState<ConnectionIssuePage> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
children: [
|
children: [
|
||||||
Align(
|
|
||||||
alignment: Alignment.centerLeft,
|
|
||||||
child: ConduitIconButton(
|
|
||||||
icon: Platform.isIOS
|
|
||||||
? CupertinoIcons.gear_alt_fill
|
|
||||||
: Icons.settings_ethernet,
|
|
||||||
onPressed: () => context.go(Routes.serverConnection),
|
|
||||||
tooltip: l10n.backToServerSetup,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Center(
|
child: Center(
|
||||||
child: ConstrainedBox(
|
child: ConstrainedBox(
|
||||||
@@ -186,8 +175,9 @@ class _ConnectionIssuePageState extends ConsumerState<ConnectionIssuePage> {
|
|||||||
children: [
|
children: [
|
||||||
ConduitButton(
|
ConduitButton(
|
||||||
text: l10n.retry,
|
text: l10n.retry,
|
||||||
onPressed: _isRetrying || _isLoggingOut ? null : () => _retry(l10n),
|
onPressed: _isLoggingOut
|
||||||
isLoading: _isRetrying,
|
? null
|
||||||
|
: () => context.go(Routes.serverConnection),
|
||||||
icon: Platform.isIOS
|
icon: Platform.isIOS
|
||||||
? CupertinoIcons.refresh
|
? CupertinoIcons.refresh
|
||||||
: Icons.refresh_rounded,
|
: Icons.refresh_rounded,
|
||||||
@@ -196,9 +186,7 @@ class _ConnectionIssuePageState extends ConsumerState<ConnectionIssuePage> {
|
|||||||
const SizedBox(height: Spacing.sm),
|
const SizedBox(height: Spacing.sm),
|
||||||
ConduitButton(
|
ConduitButton(
|
||||||
text: l10n.signOut,
|
text: l10n.signOut,
|
||||||
onPressed: _isRetrying || _isLoggingOut
|
onPressed: _isLoggingOut ? null : () => _logout(l10n),
|
||||||
? null
|
|
||||||
: () => _logout(l10n),
|
|
||||||
isLoading: _isLoggingOut,
|
isLoading: _isLoggingOut,
|
||||||
isSecondary: true,
|
isSecondary: true,
|
||||||
icon: Platform.isIOS
|
icon: Platform.isIOS
|
||||||
@@ -225,39 +213,6 @@ class _ConnectionIssuePageState extends ConsumerState<ConnectionIssuePage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _retry(AppLocalizations l10n) async {
|
|
||||||
setState(() {
|
|
||||||
_isRetrying = true;
|
|
||||||
_statusMessage = null;
|
|
||||||
});
|
|
||||||
|
|
||||||
try {
|
|
||||||
final service = ref.read(connectivityServiceProvider);
|
|
||||||
final isOnline = await service.checkConnectivity();
|
|
||||||
|
|
||||||
if (!mounted) return;
|
|
||||||
|
|
||||||
if (isOnline) {
|
|
||||||
await ref.read(authActionsProvider).refresh();
|
|
||||||
} else {
|
|
||||||
setState(() {
|
|
||||||
_statusMessage = l10n.stillOfflineMessage;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} catch (_) {
|
|
||||||
if (!mounted) return;
|
|
||||||
setState(() {
|
|
||||||
_statusMessage = l10n.couldNotConnectGeneric;
|
|
||||||
});
|
|
||||||
} finally {
|
|
||||||
if (mounted) {
|
|
||||||
setState(() {
|
|
||||||
_isRetrying = false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> _logout(AppLocalizations l10n) async {
|
Future<void> _logout(AppLocalizations l10n) async {
|
||||||
setState(() {
|
setState(() {
|
||||||
_isLoggingOut = true;
|
_isLoggingOut = true;
|
||||||
|
|||||||
@@ -708,11 +708,11 @@ class _ChatsDrawerState extends ConsumerState<ChatsDrawer> {
|
|||||||
return Material(
|
return Material(
|
||||||
color: isHover ? hoverColor : baseColor,
|
color: isHover ? hoverColor : baseColor,
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.zero,
|
borderRadius: BorderRadius.circular(AppBorderRadius.small),
|
||||||
side: BorderSide(color: borderColor, width: BorderWidth.thin),
|
side: BorderSide(color: borderColor, width: BorderWidth.thin),
|
||||||
),
|
),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
borderRadius: BorderRadius.zero,
|
borderRadius: BorderRadius.circular(AppBorderRadius.small),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
final current = {...ref.read(_expandedFoldersProvider)};
|
final current = {...ref.read(_expandedFoldersProvider)};
|
||||||
final next = !isExpanded;
|
final next = !isExpanded;
|
||||||
@@ -1171,7 +1171,7 @@ class _ChatsDrawerState extends ConsumerState<ChatsDrawer> {
|
|||||||
? theme.navigationSelectedBackground
|
? theme.navigationSelectedBackground
|
||||||
: theme.surfaceContainer,
|
: theme.surfaceContainer,
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.zero,
|
borderRadius: BorderRadius.circular(AppBorderRadius.small),
|
||||||
side: BorderSide(
|
side: BorderSide(
|
||||||
color: show
|
color: show
|
||||||
? theme.navigationSelected
|
? theme.navigationSelected
|
||||||
@@ -1180,7 +1180,7 @@ class _ChatsDrawerState extends ConsumerState<ChatsDrawer> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
borderRadius: BorderRadius.zero,
|
borderRadius: BorderRadius.circular(AppBorderRadius.small),
|
||||||
onTap: () => ref.read(_showArchivedProvider.notifier).set(!show),
|
onTap: () => ref.read(_showArchivedProvider.notifier).set(!show),
|
||||||
overlayColor: WidgetStateProperty.resolveWith((states) {
|
overlayColor: WidgetStateProperty.resolveWith((states) {
|
||||||
if (states.contains(WidgetState.pressed)) {
|
if (states.contains(WidgetState.pressed)) {
|
||||||
@@ -1452,7 +1452,7 @@ class _ConversationDragFeedback extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final borderRadius = BorderRadius.zero;
|
final borderRadius = BorderRadius.circular(AppBorderRadius.small);
|
||||||
final borderColor = theme.surfaceContainerHighest.withValues(alpha: 0.40);
|
final borderColor = theme.surfaceContainerHighest.withValues(alpha: 0.40);
|
||||||
|
|
||||||
return Material(
|
return Material(
|
||||||
@@ -1614,7 +1614,7 @@ class _ConversationTile extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final theme = context.conduitTheme;
|
final theme = context.conduitTheme;
|
||||||
final borderRadius = BorderRadius.zero;
|
final borderRadius = BorderRadius.circular(AppBorderRadius.small);
|
||||||
final Color background = selected
|
final Color background = selected
|
||||||
? theme.buttonPrimary.withValues(alpha: 0.1)
|
? theme.buttonPrimary.withValues(alpha: 0.1)
|
||||||
: theme.surfaceContainer;
|
: theme.surfaceContainer;
|
||||||
|
|||||||