Update change log (#1511)

This commit is contained in:
Vishnu Mohandas 2023-11-17 16:38:54 +05:30 committed by GitHub
commit e99544e335
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 99 additions and 55 deletions

View file

@ -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

View file

@ -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");

View file

@ -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(

View file

@ -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,

View 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);
}

View file

@ -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"