2022-11-09 08:06:10 +00:00
import ' package:flutter/material.dart ' ;
2022-11-09 08:18:58 +00:00
import ' package:photos/services/update_service.dart ' ;
2022-11-09 08:06:10 +00:00
import ' package:photos/theme/ente_theme.dart ' ;
2022-12-17 04:59:15 +00:00
import ' package:photos/ui/components/button_widget.dart ' ;
2022-11-09 09:45:56 +00:00
import ' package:photos/ui/components/divider_widget.dart ' ;
2022-12-17 04:59:15 +00:00
import ' package:photos/ui/components/models/button_type.dart ' ;
2022-11-09 08:06:10 +00:00
import ' package:photos/ui/components/title_bar_title_widget.dart ' ;
import ' package:photos/ui/notification/update/change_log_entry.dart ' ;
2022-12-17 04:59:15 +00:00
import ' package:url_launcher/url_launcher_string.dart ' ;
2022-11-09 08:06:10 +00:00
class ChangeLogPage extends StatefulWidget {
const ChangeLogPage ( {
Key ? key ,
} ) : super ( key: key ) ;
@ override
State < ChangeLogPage > createState ( ) = > _ChangeLogPageState ( ) ;
}
class _ChangeLogPageState extends State < ChangeLogPage > {
@ override
void initState ( ) {
super . initState ( ) ;
}
@ override
Widget build ( BuildContext context ) {
final enteColorScheme = getEnteColorScheme ( context ) ;
return Scaffold (
appBar: null ,
body: Container (
color: enteColorScheme . backgroundElevated ,
child: Column (
mainAxisAlignment: MainAxisAlignment . center ,
children: [
const SizedBox (
height: 36 ,
) ,
2022-11-23 07:54:02 +00:00
Container (
alignment: Alignment . centerLeft ,
child: const Padding (
padding: EdgeInsets . symmetric ( horizontal: 16.0 ) ,
child: TitleBarTitleWidget (
title: " What's new " ,
2022-11-09 08:06:10 +00:00
) ,
) ,
) ,
2022-11-23 07:54:02 +00:00
const SizedBox (
height: 24 ,
) ,
2022-11-09 08:06:10 +00:00
Expanded ( child: _getChangeLog ( ) ) ,
2022-11-09 09:45:56 +00:00
const DividerWidget (
dividerType: DividerType . solid ,
) ,
2022-11-09 08:06:10 +00:00
SafeArea (
child: Padding (
2022-11-09 09:45:56 +00:00
padding: const EdgeInsets . only (
left: 16.0 ,
right: 16 ,
top: 16 ,
bottom: 8 ,
) ,
2022-11-09 08:06:10 +00:00
child: Column (
crossAxisAlignment: CrossAxisAlignment . start ,
children: [
2022-12-17 04:59:15 +00:00
ButtonWidget (
buttonType: ButtonType . trailingIconPrimary ,
buttonSize: ButtonSize . large ,
labelText: " Continue " ,
icon: Icons . arrow_forward_outlined ,
onTap: ( ) async {
await UpdateService . instance . hideChangeLog ( ) ;
if ( mounted & & Navigator . of ( context ) . canPop ( ) ) {
Navigator . of ( context ) . pop ( ) ;
}
} ,
) ,
const SizedBox (
height: 8 ,
2022-11-09 08:06:10 +00:00
) ,
2022-12-17 04:59:15 +00:00
ButtonWidget (
buttonType: ButtonType . trailingIconSecondary ,
buttonSize: ButtonSize . large ,
labelText: " Rate the app " ,
icon: Icons . favorite_rounded ,
iconColor: enteColorScheme . primary500 ,
onTap: ( ) async {
launchUrlString (
2022-12-30 03:29:48 +00:00
UpdateService . instance . getRateDetails ( ) . item2 ,
) ;
2022-12-17 04:59:15 +00:00
} ,
2022-11-09 08:06:10 +00:00
) ,
const SizedBox ( height: 8 ) ,
] ,
) ,
) ,
) ,
] ,
) ,
) ,
) ;
}
Widget _getChangeLog ( ) {
final scrollController = ScrollController ( ) ;
final List < ChangeLogEntry > items = [ ] ;
items . add (
ChangeLogEntry (
2022-12-17 04:02:31 +00:00
" Collect photos from anyone! " ,
" You can now enable \" Allow adding photos \" under shared link "
" settings to allow anyone with access to the link to also add "
" photos to that shared album. \n \n This is the perfect fit for "
" occasions where you want to ask all your friends and relatives who attended the event to add the photos they took to an album. You can then prune them there; plus everyone can view them in a single place. " ,
2022-11-09 08:06:10 +00:00
) ,
) ;
items . add (
ChangeLogEntry (
2022-12-17 04:02:31 +00:00
''' Customize photo grid size ''' ,
" You can now change the number of photos that are shown in a row. "
" \n \n Since this was a much requested feature we've released it as "
" an option in Settings > General > Advanced; later we'll also try a gesture for easier access. " ,
2022-11-09 08:06:10 +00:00
) ,
) ;
items . add (
ChangeLogEntry (
2022-12-17 04:02:31 +00:00
''' Better multi-select, and hide ''' ,
" The item selector gets a new, expanded look with clearly marked "
" actions. We'll use this revamped space to show even more actions "
" you can take on selected photos. \n \n And we've already added new "
" actions! You can now select multiple items and hide all of them in one go. " ,
2022-11-23 03:39:52 +00:00
) ,
) ;
items . add (
ChangeLogEntry (
2022-12-17 04:02:31 +00:00
''' Per album free up space ''' ,
" There is now an option to free up space within each on device album. This provides both a more granular, and faster, way to save storage your phone. " ,
) ,
) ;
items . add (
ChangeLogEntry (
''' Longer photo descriptions ''' ,
" The previous 280 character limit on photo captions and descriptions has been increased to 5000. " ,
2022-11-23 03:39:52 +00:00
isFeature: false ,
2022-11-09 08:06:10 +00:00
) ,
) ;
return Container (
padding: const EdgeInsets . only ( left: 16 ) ,
child: Scrollbar (
controller: scrollController ,
thumbVisibility: true ,
thickness: 2.0 ,
child: ListView . builder (
2022-11-23 15:52:34 +00:00
physics: const BouncingScrollPhysics ( ) ,
2022-11-09 08:06:10 +00:00
itemBuilder: ( context , index ) {
return Padding (
padding: const EdgeInsets . only ( right: 16.0 ) ,
child: ChangeLogEntryWidget ( entry: items [ index ] ) ,
) ;
} ,
itemCount: items . length ,
) ,
) ,
) ;
}
}