chore: bump app version to 1.0.2

This commit is contained in:
2026-06-12 01:30:54 +08:00
parent eb8b209c0c
commit 33e96072c9
5 changed files with 28 additions and 43 deletions
+1 -1
View File
@@ -168,7 +168,7 @@ class MeScreen extends StatelessWidget {
), ),
const SizedBox(height: 18), const SizedBox(height: 18),
Text( Text(
'Focus Seed 1.0.1', 'Focus Seed 1.0.2',
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: Theme.of(context).textTheme.bodySmall?.copyWith( style: Theme.of(context).textTheme.bodySmall?.copyWith(
color: Theme.of(context).colorScheme.onSurfaceVariant, color: Theme.of(context).colorScheme.onSurfaceVariant,
+16 -21
View File
@@ -62,8 +62,7 @@ import 'app_localizations_zh.dart';
/// be consistent with the languages listed in the AppLocalizations.supportedLocales /// be consistent with the languages listed in the AppLocalizations.supportedLocales
/// property. /// property.
abstract class AppLocalizations { abstract class AppLocalizations {
AppLocalizations(String locale) AppLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString());
: localeName = intl.Intl.canonicalizedLocale(locale.toString());
final String localeName; final String localeName;
@@ -71,8 +70,7 @@ abstract class AppLocalizations {
return Localizations.of<AppLocalizations>(context, AppLocalizations)!; return Localizations.of<AppLocalizations>(context, AppLocalizations)!;
} }
static const LocalizationsDelegate<AppLocalizations> delegate = static const LocalizationsDelegate<AppLocalizations> delegate = _AppLocalizationsDelegate();
_AppLocalizationsDelegate();
/// A list of this localizations delegate along with the default localizations /// A list of this localizations delegate along with the default localizations
/// delegates. /// delegates.
@@ -84,18 +82,17 @@ abstract class AppLocalizations {
/// Additional delegates can be added by appending to this list in /// Additional delegates can be added by appending to this list in
/// MaterialApp. This list does not have to be used at all if a custom list /// MaterialApp. This list does not have to be used at all if a custom list
/// of delegates is preferred or required. /// of delegates is preferred or required.
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates = static const List<LocalizationsDelegate<dynamic>> localizationsDelegates = <LocalizationsDelegate<dynamic>>[
<LocalizationsDelegate<dynamic>>[ delegate,
delegate, GlobalMaterialLocalizations.delegate,
GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
GlobalCupertinoLocalizations.delegate, GlobalWidgetsLocalizations.delegate,
GlobalWidgetsLocalizations.delegate, ];
];
/// A list of this localizations delegate's supported locales. /// A list of this localizations delegate's supported locales.
static const List<Locale> supportedLocales = <Locale>[ static const List<Locale> supportedLocales = <Locale>[
Locale('en'), Locale('en'),
Locale('zh'), Locale('zh')
]; ];
/// No description provided for @appTitle. /// No description provided for @appTitle.
@@ -1023,8 +1020,7 @@ abstract class AppLocalizations {
String get defaultHabitReflect; String get defaultHabitReflect;
} }
class _AppLocalizationsDelegate class _AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations> {
extends LocalizationsDelegate<AppLocalizations> {
const _AppLocalizationsDelegate(); const _AppLocalizationsDelegate();
@override @override
@@ -1033,26 +1029,25 @@ class _AppLocalizationsDelegate
} }
@override @override
bool isSupported(Locale locale) => bool isSupported(Locale locale) => <String>['en', 'zh'].contains(locale.languageCode);
<String>['en', 'zh'].contains(locale.languageCode);
@override @override
bool shouldReload(_AppLocalizationsDelegate old) => false; bool shouldReload(_AppLocalizationsDelegate old) => false;
} }
AppLocalizations lookupAppLocalizations(Locale locale) { AppLocalizations lookupAppLocalizations(Locale locale) {
// Lookup logic when only language code is specified. // Lookup logic when only language code is specified.
switch (locale.languageCode) { switch (locale.languageCode) {
case 'en': case 'en': return AppLocalizationsEn();
return AppLocalizationsEn(); case 'zh': return AppLocalizationsZh();
case 'zh':
return AppLocalizationsZh();
} }
throw FlutterError( throw FlutterError(
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
'an issue with the localizations generation tool. Please file an issue ' 'an issue with the localizations generation tool. Please file an issue '
'on GitHub with a reproducible sample app and the gen-l10n configuration ' 'on GitHub with a reproducible sample app and the gen-l10n configuration '
'that was used.', 'that was used.'
); );
} }
@@ -216,8 +216,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get deleteHabitTitle => 'Delete habit?'; String get deleteHabitTitle => 'Delete habit?';
@override @override
String get deleteHabitBody => String get deleteHabitBody => 'Past completion records for this habit will be removed.';
'Past completion records for this habit will be removed.';
@override @override
String get close => 'Close'; String get close => 'Close';
@@ -229,15 +228,13 @@ class AppLocalizationsEn extends AppLocalizations {
String get clearTodayDataTitle => 'Clear today?'; String get clearTodayDataTitle => 'Clear today?';
@override @override
String get clearTodayDataBody => String get clearTodayDataBody => 'This removes today\'s intention, habit checks, focus sessions, and reflection. Past days stay untouched.';
'This removes today\'s intention, habit checks, focus sessions, and reflection. Past days stay untouched.';
@override @override
String get clearAllDataTitle => 'Delete all local data?'; String get clearAllDataTitle => 'Delete all local data?';
@override @override
String get clearAllDataBody => String get clearAllDataBody => 'This deletes intentions, habits, focus sessions, and reflections on this device. It cannot be undone.';
'This deletes intentions, habits, focus sessions, and reflections on this device. It cannot be undone.';
@override @override
String get clear => 'Clear'; String get clear => 'Clear';
@@ -249,12 +246,10 @@ class AppLocalizationsEn extends AppLocalizations {
String get privacyTitle => 'Privacy'; String get privacyTitle => 'Privacy';
@override @override
String get privacyBodyOne => String get privacyBodyOne => 'Focus Seed stores your intention, habits, focus sessions, reflections, and settings locally on this device. This version has no sign-in, cloud sync, ads, analytics SDK, or billing SDK.';
'Focus Seed stores your intention, habits, focus sessions, reflections, and settings locally on this device. This version has no sign-in, cloud sync, ads, analytics SDK, or billing SDK.';
@override @override
String get privacyBodyTwo => String get privacyBodyTwo => 'You can clear today\'s progress or delete all local data from Me at any time.';
'You can clear today\'s progress or delete all local data from Me at any time.';
@override @override
String get reflectionEmptyError => 'Write one honest sentence.'; String get reflectionEmptyError => 'Write one honest sentence.';
@@ -402,15 +397,13 @@ class AppLocalizationsEn extends AppLocalizations {
String get emptyFocusHistoryTitle => 'No focus sessions yet'; String get emptyFocusHistoryTitle => 'No focus sessions yet';
@override @override
String get emptyFocusHistoryBody => String get emptyFocusHistoryBody => 'Start one session from Today and it will appear here.';
'Start one session from Today and it will appear here.';
@override @override
String get emptyNotesHistoryTitle => 'No notes yet'; String get emptyNotesHistoryTitle => 'No notes yet';
@override @override
String get emptyNotesHistoryBody => String get emptyNotesHistoryBody => 'Save a short reflection after focus to make your progress visible.';
'Save a short reflection after focus to make your progress visible.';
@override @override
String get recentFocus => 'Recent focus'; String get recentFocus => 'Recent focus';
@@ -463,8 +456,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get sevenDayGrowth => '7-day growth'; String get sevenDayGrowth => '7-day growth';
@override @override
String get sevenDayGrowthSubtitle => String get sevenDayGrowthSubtitle => 'Small actions become visible over time.';
'Small actions become visible over time.';
@override @override
String get growthSeed => 'seed'; String get growthSeed => 'seed';
@@ -490,8 +482,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get growthSproutSemantic => 'A sprout growing from today\'s intention'; String get growthSproutSemantic => 'A sprout growing from today\'s intention';
@override @override
String get growthLeavesSemantic => String get growthLeavesSemantic => 'A young plant growing with today\'s progress';
'A young plant growing with today\'s progress';
@override @override
String get growthFlowerSemantic => 'A flower marking a complete daily cycle'; String get growthFlowerSemantic => 'A flower marking a complete daily cycle';
@@ -246,8 +246,7 @@ class AppLocalizationsZh extends AppLocalizations {
String get privacyTitle => '隐私'; String get privacyTitle => '隐私';
@override @override
String get privacyBodyOne => String get privacyBodyOne => 'Focus Seed 只在本机保存目标、习惯、专注记录、复盘和设置。当前版本没有登录、云同步、广告、分析 SDK 或付费 SDK。';
'Focus Seed 只在本机保存目标、习惯、专注记录、复盘和设置。当前版本没有登录、云同步、广告、分析 SDK 或付费 SDK。';
@override @override
String get privacyBodyTwo => '你可以随时清理今日进度,或删除本机的全部本地数据。'; String get privacyBodyTwo => '你可以随时清理今日进度,或删除本机的全部本地数据。';
+1 -1
View File
@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts # In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix. # of the product and file versions while build-number is used as the build suffix.
version: 1.0.1+2 version: 1.0.2+3
environment: environment:
sdk: ^3.7.2 sdk: ^3.7.2