Rebrand to iiEasy: naming, logo, l10n, docs, assets
Some checks failed
L10n / l10n (push) Has been cancelled

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-19 23:21:16 +05:00
parent cd536ff8f2
commit 5947edec45
119 changed files with 1180 additions and 541 deletions

View File

@@ -35,9 +35,6 @@ import '../../../shared/widgets/model_avatar.dart';
/// Profile page (You tab) showing user info and main actions
/// Enhanced with production-grade design tokens for better cohesion
class ProfilePage extends ConsumerWidget {
static const _githubSponsorsUrl = 'https://github.com/sponsors/cogwheel0';
static const _buyMeACoffeeUrl = 'https://www.buymeacoffee.com/cogwheel0';
const ProfilePage({super.key});
@override
@@ -117,113 +114,10 @@ class ProfilePage extends ConsumerWidget {
_buildProfileHeader(context, userData, api),
const SizedBox(height: Spacing.xl),
_buildAccountSection(context, ref),
const SizedBox(height: Spacing.xl),
_buildSupportSection(context),
],
);
}
Widget _buildSupportSection(BuildContext context) {
final theme = context.conduitTheme;
final textTheme =
theme.bodySmall?.copyWith(
color: theme.sidebarForeground.withValues(alpha: 0.75),
) ??
TextStyle(color: theme.sidebarForeground.withValues(alpha: 0.75));
final supportTiles = [
_buildSupportOption(
context,
icon: UiUtils.platformIcon(
ios: CupertinoIcons.gift,
android: Icons.coffee,
),
title: AppLocalizations.of(context)!.buyMeACoffeeTitle,
subtitle: AppLocalizations.of(context)!.buyMeACoffeeSubtitle,
url: _buyMeACoffeeUrl,
color: theme.warning,
),
_buildSupportOption(
context,
icon: UiUtils.platformIcon(
ios: CupertinoIcons.heart,
android: Icons.favorite_border,
),
title: AppLocalizations.of(context)!.githubSponsorsTitle,
subtitle: AppLocalizations.of(context)!.githubSponsorsSubtitle,
url: _githubSponsorsUrl,
color: theme.success,
),
];
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
AppLocalizations.of(context)!.supportConduit,
style: theme.headingSmall?.copyWith(color: theme.sidebarForeground),
),
const SizedBox(height: Spacing.xs),
Text(
AppLocalizations.of(context)!.supportConduitSubtitle,
style: textTheme,
),
const SizedBox(height: Spacing.sm),
for (var i = 0; i < supportTiles.length; i++) ...[
supportTiles[i],
if (i != supportTiles.length - 1) const SizedBox(height: Spacing.md),
],
],
);
}
Widget _buildSupportOption(
BuildContext context, {
required IconData icon,
required String title,
required String subtitle,
required String url,
required Color color,
}) {
final theme = context.conduitTheme;
return _ProfileSettingTile(
onTap: () => _openExternalLink(context, url),
leading: _buildIconBadge(context, icon, color: color),
title: title,
subtitle: subtitle,
trailing: Icon(
UiUtils.platformIcon(
ios: CupertinoIcons.arrow_up_right,
android: Icons.open_in_new,
),
color: theme.iconSecondary,
size: IconSize.small,
),
);
}
Future<void> _openExternalLink(BuildContext context, String url) async {
try {
final launched = await launchUrlString(
url,
mode: LaunchMode.externalApplication,
);
if (!launched && context.mounted) {
UiUtils.showMessage(
context,
AppLocalizations.of(context)!.errorMessage,
);
}
} on PlatformException catch (_) {
if (!context.mounted) return;
UiUtils.showMessage(context, AppLocalizations.of(context)!.errorMessage);
} catch (_) {
if (!context.mounted) return;
UiUtils.showMessage(context, AppLocalizations.of(context)!.errorMessage);
}
}
Widget _buildProfileHeader(
BuildContext context,
dynamic user,
@@ -551,8 +445,8 @@ class ProfilePage extends ConsumerWidget {
try {
final info = await PackageInfo.fromPlatform();
// Update dialog with dynamic version each time
// GitHub repo URL source of truth
const githubUrl = 'https://github.com/cogwheel0/conduit';
// Developer / app info URL
const githubUrl = 'https://iiEasy.ru';
if (!context.mounted) return;
await showDialog<void>(
@@ -606,6 +500,13 @@ class ProfilePage extends ConsumerWidget {
],
),
),
const SizedBox(height: Spacing.sm),
Text(
'Based on Conduit',
style: ctx.conduitTheme.bodySmall?.copyWith(
color: ctx.sidebarTheme.foreground.withValues(alpha: 0.6),
),
),
],
),
actions: [