Merge branch 'master' into app-icon-size-on-android
BIN
assets/2.0x/family_plan_leave.png
Normal file
After Width: | Height: | Size: 197 KiB |
BIN
assets/2.0x/gallery_locked.png
Normal file
After Width: | Height: | Size: 115 KiB |
BIN
assets/2.0x/loading_photos_background.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
assets/2.0x/loading_photos_background_dark.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
assets/2.0x/onboarding_lock.png
Normal file
After Width: | Height: | Size: 92 KiB |
BIN
assets/2.0x/onboarding_safe.png
Normal file
After Width: | Height: | Size: 133 KiB |
BIN
assets/2.0x/onboarding_sync.png
Normal file
After Width: | Height: | Size: 117 KiB |
BIN
assets/2.0x/storage_card_background.png
Normal file
After Width: | Height: | Size: 193 KiB |
BIN
assets/3.0x/family_plan_leave.png
Normal file
After Width: | Height: | Size: 408 KiB |
BIN
assets/3.0x/gallery_locked.png
Normal file
After Width: | Height: | Size: 127 KiB |
BIN
assets/3.0x/loading_photos_background.png
Normal file
After Width: | Height: | Size: 71 KiB |
BIN
assets/3.0x/loading_photos_background_dark.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
assets/3.0x/onboarding_lock.png
Normal file
After Width: | Height: | Size: 101 KiB |
BIN
assets/3.0x/onboarding_safe.png
Normal file
After Width: | Height: | Size: 148 KiB |
BIN
assets/3.0x/onboarding_sync.png
Normal file
After Width: | Height: | Size: 128 KiB |
BIN
assets/3.0x/storage_card_background.png
Normal file
After Width: | Height: | Size: 422 KiB |
Before Width: | Height: | Size: 91 KiB |
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 61 KiB |
BIN
assets/family_plan_leave.png
Normal file
After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 91 KiB |
BIN
assets/gallery_locked.png
Normal file
After Width: | Height: | Size: 91 KiB |
BIN
assets/loading_photos_background.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
assets/loading_photos_background_dark.png
Normal file
After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 22 KiB |
BIN
assets/onboarding_lock.png
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
assets/onboarding_safe.png
Normal file
After Width: | Height: | Size: 107 KiB |
BIN
assets/onboarding_sync.png
Normal file
After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 73 KiB |
BIN
assets/storage_card_background.png
Normal file
After Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 93 KiB |
|
@ -60,13 +60,13 @@ class _FreeSpacePageState extends State<FreeSpacePage> {
|
|||
children: [
|
||||
isLightMode
|
||||
? Image.asset(
|
||||
'assets/loading_photos_light.png',
|
||||
'assets/loading_photos_background.png',
|
||||
color: Colors.white.withOpacity(0.4),
|
||||
colorBlendMode: BlendMode.modulate,
|
||||
)
|
||||
: Image.asset('assets/loading_photos_dark.png'),
|
||||
: Image.asset('assets/loading_photos_background_dark.png'),
|
||||
Image.asset(
|
||||
"assets/backed_up_gallery.png",
|
||||
"assets/gallery_locked.png",
|
||||
height: 160,
|
||||
),
|
||||
],
|
||||
|
|
|
@ -26,14 +26,15 @@ class GrantPermissionsWidget extends StatelessWidget {
|
|||
children: [
|
||||
isLightMode
|
||||
? Image.asset(
|
||||
'assets/loading_photos_light.png',
|
||||
'assets/loading_photos_background.png',
|
||||
color: Colors.white.withOpacity(0.4),
|
||||
colorBlendMode: BlendMode.modulate,
|
||||
)
|
||||
: Image.asset('assets/loading_photos_dark.png'),
|
||||
: Image.asset(
|
||||
'assets/loading_photos_background_dark.png'),
|
||||
Center(
|
||||
child: Image.asset(
|
||||
"assets/gallery.png",
|
||||
"assets/gallery_locked.png",
|
||||
height: 160,
|
||||
),
|
||||
),
|
||||
|
|
|
@ -21,7 +21,6 @@ import 'package:photos/events/subscription_purchased_event.dart';
|
|||
import 'package:photos/events/sync_status_update_event.dart';
|
||||
import 'package:photos/events/tab_changed_event.dart';
|
||||
import 'package:photos/events/trigger_logout_event.dart';
|
||||
import 'package:photos/events/user_details_changed_event.dart';
|
||||
import 'package:photos/events/user_logged_out_event.dart';
|
||||
import 'package:photos/models/file_load_result.dart';
|
||||
import 'package:photos/models/galleryType.dart';
|
||||
|
@ -447,7 +446,7 @@ class _HomeWidgetState extends State<HomeWidget> {
|
|||
Padding(
|
||||
padding: const EdgeInsets.only(top: 64),
|
||||
child: Image.asset(
|
||||
"assets/preserved.png",
|
||||
"assets/onboarding_safe.png",
|
||||
height: 206,
|
||||
),
|
||||
),
|
||||
|
|
|
@ -120,19 +120,19 @@ class _LandingPageWidgetState extends State<LandingPageWidget> {
|
|||
child: PageView(
|
||||
children: [
|
||||
FeatureItemWidget(
|
||||
"assets/protected.png",
|
||||
"assets/onboarding_lock.png",
|
||||
"Private backups",
|
||||
"for your memories",
|
||||
"End-to-end encrypted by default",
|
||||
),
|
||||
FeatureItemWidget(
|
||||
"assets/preserved.png",
|
||||
"assets/onboarding_safe.png",
|
||||
"Safely stored",
|
||||
"at a fallout shelter",
|
||||
"Designed to outlive",
|
||||
),
|
||||
FeatureItemWidget(
|
||||
"assets/synced.png",
|
||||
"assets/onboarding_lock.png",
|
||||
"Available",
|
||||
"everywhere",
|
||||
Platform.isAndroid
|
||||
|
|
|
@ -95,12 +95,12 @@ class _LoadingPhotosWidgetState extends State<LoadingPhotosWidget> {
|
|||
children: [
|
||||
isLightMode
|
||||
? Image.asset(
|
||||
'assets/loading_photos_light.png',
|
||||
'assets/loading_photos_background.png',
|
||||
color: Colors.white.withOpacity(0.5),
|
||||
colorBlendMode: BlendMode.modulate,
|
||||
)
|
||||
: Image.asset(
|
||||
'assets/loading_photos_light.png',
|
||||
'assets/loading_photos_background_dark.png',
|
||||
color: Colors.white.withOpacity(0.25),
|
||||
colorBlendMode: BlendMode.modulate,
|
||||
),
|
||||
|
|
|
@ -34,8 +34,8 @@ class _LockScreenState extends State<LockScreen> {
|
|||
children: [
|
||||
Image.asset(
|
||||
MediaQuery.of(context).platformBrightness == Brightness.light
|
||||
? 'assets/loading_photos_light.png'
|
||||
: 'assets/loading_photos_dark.png',
|
||||
? 'assets/loading_photos_background.png'
|
||||
: 'assets/loading_photos_background_dark.png',
|
||||
),
|
||||
SizedBox(
|
||||
width: 172,
|
||||
|
|
|
@ -207,6 +207,9 @@ class FullScreenMemory extends StatefulWidget {
|
|||
class _FullScreenMemoryState extends State<FullScreenMemory> {
|
||||
int _index = 0;
|
||||
double _opacity = 1;
|
||||
// shows memory counter as index+1/totalFiles for large number of memories
|
||||
// when the top step indicator isn't visible.
|
||||
bool _showCounter = false;
|
||||
PageController _pageController;
|
||||
bool _shouldDisableScroll = false;
|
||||
final GlobalKey shareButtonKey = GlobalKey();
|
||||
|
@ -219,6 +222,7 @@ class _FullScreenMemoryState extends State<FullScreenMemory> {
|
|||
if (mounted) {
|
||||
setState(() {
|
||||
_opacity = 0;
|
||||
_showCounter = widget.memories.length > 60;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -297,7 +301,7 @@ class _FullScreenMemoryState extends State<FullScreenMemory> {
|
|||
children: [
|
||||
_buildSwiper(),
|
||||
bottomGradient(),
|
||||
_buildTitleText(),
|
||||
_buildInfoText(),
|
||||
_buildBottomIcons(),
|
||||
],
|
||||
),
|
||||
|
@ -305,23 +309,31 @@ class _FullScreenMemoryState extends State<FullScreenMemory> {
|
|||
);
|
||||
}
|
||||
|
||||
Hero _buildTitleText() {
|
||||
Hero _buildInfoText() {
|
||||
return Hero(
|
||||
tag: widget.title,
|
||||
child: Container(
|
||||
alignment: Alignment.bottomCenter,
|
||||
padding: EdgeInsets.fromLTRB(0, 0, 0, 28),
|
||||
child: AnimatedOpacity(
|
||||
opacity: _opacity,
|
||||
duration: Duration(milliseconds: 500),
|
||||
child: Text(
|
||||
widget.title,
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.headline4
|
||||
.copyWith(color: Colors.white),
|
||||
),
|
||||
),
|
||||
child: _showCounter
|
||||
? Text(
|
||||
'${_index + 1}/${widget.memories.length}',
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyText1
|
||||
.copyWith(color: Colors.white.withOpacity(0.4)),
|
||||
)
|
||||
: AnimatedOpacity(
|
||||
opacity: _opacity,
|
||||
duration: Duration(milliseconds: 500),
|
||||
child: Text(
|
||||
widget.title,
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.headline4
|
||||
.copyWith(color: Colors.white),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ class ChildSubscriptionWidget extends StatelessWidget {
|
|||
padding: const EdgeInsets.symmetric(vertical: 8),
|
||||
),
|
||||
Image.asset(
|
||||
"assets/family sharing.png",
|
||||
"assets/family_plan_leave.png",
|
||||
height: 256,
|
||||
),
|
||||
Padding(
|
||||
|
|
|
@ -39,7 +39,7 @@ class _DetailsSectionWidgetState extends State<DetailsSectionWidget> {
|
|||
}
|
||||
});
|
||||
_background = Image(
|
||||
image: AssetImage("assets/card_background.png"),
|
||||
image: AssetImage("assets/storage_card_background.png"),
|
||||
fit: BoxFit.fill,
|
||||
);
|
||||
}
|
||||
|
|