Update change log (#1511)
This commit is contained in:
commit
e99544e335
6 changed files with 99 additions and 55 deletions
18
CHANGELOG.md
18
CHANGELOG.md
|
@ -1,6 +1,24 @@
|
|||
# CHANGELOG
|
||||
|
||||
|
||||
## v0.7.118
|
||||
|
||||
### Added
|
||||
* #### Explore with the new Search Tab ✨
|
||||
|
||||
Introducing a dedicated search tab with distinct sections for effortless discovery.
|
||||
|
||||
You can now discover items that come under different Locations, Moments, Contacts, Photo descriptions, Albums and File types with ease.
|
||||
|
||||
* #### Black Friday Sale 🎉
|
||||
|
||||
You can now purchase Ente's plans for 3 years at 30% off and 5 years at 50% off.
|
||||
|
||||
The storage you purchase will be stacked on top of your current plan.
|
||||
|
||||
This is the lowest our prices will ever be, so do consider upgrading!
|
||||
|
||||
|
||||
## v0.7.82
|
||||
|
||||
### Added
|
||||
|
|
|
@ -16,7 +16,7 @@ class UpdateService {
|
|||
static final UpdateService instance = UpdateService._privateConstructor();
|
||||
static const kUpdateAvailableShownTimeKey = "update_available_shown_time_key";
|
||||
static const changeLogVersionKey = "update_change_log_key";
|
||||
static const currentChangeLogVersion = 12;
|
||||
static const currentChangeLogVersion = 13;
|
||||
|
||||
LatestVersionInfo? _latestVersion;
|
||||
final _logger = Logger("UpdateService");
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import "package:flutter_animate/flutter_animate.dart";
|
||||
import "package:photos/generated/l10n.dart";
|
||||
import 'package:photos/services/update_service.dart';
|
||||
import 'package:photos/theme/ente_theme.dart';
|
||||
import 'package:photos/ui/components/buttons/button_widget.dart';
|
||||
import 'package:photos/ui/components/divider_widget.dart';
|
||||
import 'package:photos/ui/components/models/button_type.dart';
|
||||
import "package:photos/ui/components/notification_widget.dart";
|
||||
import 'package:photos/ui/components/title_bar_title_widget.dart';
|
||||
import 'package:photos/ui/notification/update/change_log_entry.dart';
|
||||
import "package:photos/utils/black_friday_util.dart";
|
||||
import "package:url_launcher/url_launcher_string.dart";
|
||||
|
||||
class ChangeLogPage extends StatefulWidget {
|
||||
|
@ -64,6 +67,36 @@ class _ChangeLogPageState extends State<ChangeLogPage> {
|
|||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
shouldShowBfBanner()
|
||||
? RepaintBoundary(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(bottom: 8),
|
||||
child: NotificationWidget(
|
||||
isBlackFriday: true,
|
||||
startIcon: Icons.celebration,
|
||||
actionIcon: Icons.arrow_forward_outlined,
|
||||
text: S.of(context).blackFridaySale,
|
||||
subText: S.of(context).upto50OffUntil4thDec,
|
||||
type: NotificationType.goldenBanner,
|
||||
onTap: () async {
|
||||
launchUrlString(
|
||||
"https://ente.io/blackfriday",
|
||||
mode: LaunchMode.platformDefault,
|
||||
);
|
||||
},
|
||||
),
|
||||
)
|
||||
.animate(
|
||||
onPlay: (controller) => controller.repeat(),
|
||||
)
|
||||
.shimmer(
|
||||
duration: 1000.ms,
|
||||
delay: 3200.ms,
|
||||
size: 0.6,
|
||||
),
|
||||
)
|
||||
: const SizedBox.shrink(),
|
||||
|
||||
ButtonWidget(
|
||||
buttonType: ButtonType.trailingIconPrimary,
|
||||
buttonSize: ButtonSize.large,
|
||||
|
@ -89,19 +122,23 @@ class _ChangeLogPageState extends State<ChangeLogPage> {
|
|||
// await UpdateService.instance.launchReviewUrl();
|
||||
// },
|
||||
// ),
|
||||
ButtonWidget(
|
||||
buttonType: ButtonType.trailingIconSecondary,
|
||||
buttonSize: ButtonSize.large,
|
||||
labelText: "Join the ente community",
|
||||
icon: Icons.people_alt_rounded,
|
||||
iconColor: enteColorScheme.primary500,
|
||||
onTap: () async {
|
||||
launchUrlString(
|
||||
"https://ente.io/community",
|
||||
mode: LaunchMode.externalApplication,
|
||||
);
|
||||
},
|
||||
),
|
||||
|
||||
shouldShowBfBanner()
|
||||
? const SizedBox.shrink()
|
||||
: ButtonWidget(
|
||||
buttonType: ButtonType.trailingIconSecondary,
|
||||
buttonSize: ButtonSize.large,
|
||||
labelText: "Join the ente community",
|
||||
icon: Icons.people_alt_rounded,
|
||||
iconColor: enteColorScheme.primary500,
|
||||
onTap: () async {
|
||||
launchUrlString(
|
||||
"https://ente.io/community",
|
||||
mode: LaunchMode.externalApplication,
|
||||
);
|
||||
},
|
||||
),
|
||||
|
||||
const SizedBox(height: 8),
|
||||
],
|
||||
),
|
||||
|
@ -118,35 +155,20 @@ class _ChangeLogPageState extends State<ChangeLogPage> {
|
|||
final List<ChangeLogEntry> items = [];
|
||||
items.add(
|
||||
ChangeLogEntry(
|
||||
"Hidden albums ✨",
|
||||
'You can now hide albums, just like individual memories.\n',
|
||||
"Explore with the new Search Tab ✨",
|
||||
'Introducing a dedicated search tab with distinct sections for effortless discovery.\n'
|
||||
'\nYou can now discover items that come under different Locations, Moments, Contacts, Photo descriptions, Albums and File types with ease.\n',
|
||||
),
|
||||
);
|
||||
items.add(
|
||||
ChangeLogEntry(
|
||||
"Album improvements ✨",
|
||||
'You can now pin your favourite albums, and set cover photos for them.\n'
|
||||
'\nWe have also added a way to first create empty albums, and then add photos to it, both from ente and your device gallery.\n'),
|
||||
);
|
||||
|
||||
items.add(
|
||||
ChangeLogEntry(
|
||||
"Email verification ✨",
|
||||
'We have now made email verification optional, so you can sign in with'
|
||||
' just your email address and password, without waiting for a verification code.\n'
|
||||
'\nYou can opt in / out of email verification from Settings > Security.\n',
|
||||
"Black Friday Sale 🎉",
|
||||
"You can now purchase Ente's plans for 3 years at 30% off and 5 years at 50% off!\n"
|
||||
'\nThe storage you purchase will be stacked on top of your current plan.\n'
|
||||
'\nThis is the lowest our prices will ever be, so do consider upgrading!\n',
|
||||
),
|
||||
);
|
||||
|
||||
items.add(
|
||||
ChangeLogEntry(
|
||||
"Bug fixes & other enhancements",
|
||||
'We have squashed a few pesky bugs that were reported by our community,'
|
||||
'and have improved the experience for albums and quick links.\n'
|
||||
'\nIf you would like to help us improve ente, come join the ente community!',
|
||||
isFeature: false,
|
||||
),
|
||||
);
|
||||
return Container(
|
||||
padding: const EdgeInsets.only(left: 16),
|
||||
child: Scrollbar(
|
||||
|
|
|
@ -9,7 +9,6 @@ import 'package:photos/events/opened_settings_event.dart';
|
|||
import "package:photos/generated/l10n.dart";
|
||||
import 'package:photos/services/feature_flag_service.dart';
|
||||
import "package:photos/services/storage_bonus_service.dart";
|
||||
import "package:photos/services/user_service.dart";
|
||||
import 'package:photos/theme/colors.dart';
|
||||
import 'package:photos/theme/ente_theme.dart';
|
||||
import "package:photos/ui/components/notification_widget.dart";
|
||||
|
@ -28,6 +27,7 @@ import 'package:photos/ui/settings/storage_card_widget.dart';
|
|||
import 'package:photos/ui/settings/support_section_widget.dart';
|
||||
import 'package:photos/ui/settings/theme_switch_widget.dart';
|
||||
import "package:photos/ui/sharing/verify_identity_dialog.dart";
|
||||
import "package:photos/utils/black_friday_util.dart";
|
||||
import "package:photos/utils/navigation_util.dart";
|
||||
import "package:url_launcher/url_launcher_string.dart";
|
||||
|
||||
|
@ -188,23 +188,6 @@ class SettingsPage extends StatelessWidget {
|
|||
);
|
||||
}
|
||||
|
||||
bool shouldShowBfBanner() {
|
||||
if (!Platform.isAndroid && !kDebugMode) {
|
||||
return false;
|
||||
}
|
||||
// if date is after 5th of December 2023, 00:00:00, hide banner
|
||||
if (DateTime.now().isAfter(DateTime(2023, 12, 5))) {
|
||||
return false;
|
||||
}
|
||||
// if coupon is already applied, can hide the banner
|
||||
return (UserService.instance
|
||||
.getCachedUserDetails()
|
||||
?.bonusData
|
||||
?.getAddOnBonuses()
|
||||
.isEmpty ??
|
||||
true);
|
||||
}
|
||||
|
||||
Future<void> _showVerifyIdentityDialog(BuildContext context) async {
|
||||
await showDialog(
|
||||
context: context,
|
||||
|
|
21
lib/utils/black_friday_util.dart
Normal file
21
lib/utils/black_friday_util.dart
Normal file
|
@ -0,0 +1,21 @@
|
|||
import "dart:io";
|
||||
|
||||
import "package:flutter/foundation.dart";
|
||||
import "package:photos/services/user_service.dart";
|
||||
|
||||
bool shouldShowBfBanner() {
|
||||
if (!Platform.isAndroid && !kDebugMode) {
|
||||
return false;
|
||||
}
|
||||
// if date is after 5th of December 2023, 00:00:00, hide banner
|
||||
if (DateTime.now().isAfter(DateTime(2023, 12, 5))) {
|
||||
return false;
|
||||
}
|
||||
// if coupon is already applied, can hide the banner
|
||||
return (UserService.instance
|
||||
.getCachedUserDetails()
|
||||
?.bonusData
|
||||
?.getAddOnBonuses()
|
||||
.isEmpty ??
|
||||
true);
|
||||
}
|
|
@ -12,7 +12,7 @@ description: ente photos application
|
|||
# Read more about iOS versioning at
|
||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||
|
||||
version: 0.7.117+517
|
||||
version: 0.7.118+518
|
||||
|
||||
environment:
|
||||
sdk: ">=3.0.0 <4.0.0"
|
||||
|
|
Loading…
Add table
Reference in a new issue