refactor(mobile): refactor to use context helpers for consistency (#14235)

refactor to use context helpers for consistency

Co-authored-by: dvbthien <dvbthien@gmail.com>
This commit is contained in:
dvbthien 2024-11-21 22:35:58 +07:00 committed by GitHub
parent 45ba0cc3ac
commit e8da6604c9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
28 changed files with 66 additions and 46 deletions

View file

@ -49,7 +49,7 @@ class AlbumViewerEditableTitle extends HookConsumerWidget {
style: context.textTheme.headlineMedium,
controller: titleTextEditController,
onTap: () {
FocusScope.of(context).requestFocus(titleFocusNode);
context.focusScope.requestFocus(titleFocusNode);
ref.watch(albumViewerProvider.notifier).setEditTitleText(album.name);
ref.watch(albumViewerProvider.notifier).enableEditAlbum();

View file

@ -54,7 +54,7 @@ class AdvancedBottomSheet extends HookConsumerWidget {
text: assetDetail.toString(),
),
).then((_) {
ScaffoldMessenger.of(context).showSnackBar(
context.scaffoldMessenger.showSnackBar(
SnackBar(
content: Text(
"Copied to clipboard",

View file

@ -188,7 +188,7 @@ class BottomGalleryBar extends ConsumerWidget {
void handleEdit() async {
final image = Image(image: ImmichImage.imageProvider(asset: asset));
Navigator.of(context).push(
context.navigator.push(
MaterialPageRoute(
builder: (context) => EditImagePage(
asset: asset,

View file

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/widgets/asset_viewer/video_position.dart';
/// The video controls for the [videoPlayerControlsProvider]
@ -8,8 +9,7 @@ class VideoControls extends ConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final isPortrait =
MediaQuery.orientationOf(context) == Orientation.portrait;
final isPortrait = context.orientation == Orientation.portrait;
return isPortrait
? const VideoPosition()
: const Padding(

View file

@ -261,7 +261,7 @@ class ImmichAppBarDialog extends HookConsumerWidget {
return Dismissible(
behavior: HitTestBehavior.translucent,
direction: DismissDirection.down,
onDismissed: (_) => Navigator.of(context).pop(),
onDismissed: (_) => context.pop(),
key: const Key('app_bar_dialog'),
child: Dialog(
clipBehavior: Clip.hardEdge,

View file

@ -5,6 +5,7 @@ import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/entities/user.entity.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/services/api.service.dart';
import 'package:immich_mobile/widgets/common/transparent_image.dart';
@ -23,7 +24,7 @@ class UserCircleAvatar extends ConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
bool isDarkTheme = Theme.of(context).brightness == Brightness.dark;
bool isDarkTheme = context.themeData.brightness == Brightness.dark;
final profileImageUrl =
'${Store.get(StoreKey.serverEndpoint)}/users/${user.id}/profile-image?d=${Random().nextInt(1024)}';

View file

@ -19,7 +19,7 @@ class MapAppBar extends HookWidget implements PreferredSizeWidget {
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.only(top: MediaQuery.paddingOf(context).top + 25),
padding: EdgeInsets.only(top: context.padding.top + 25),
child: ValueListenableBuilder(
valueListenable: selectedAssets,
builder: (ctx, value, child) => value.isNotEmpty

View file

@ -26,7 +26,7 @@ class PositionedAssetMarkerIcon extends StatelessWidget {
@override
Widget build(BuildContext context) {
final ratio = Platform.isIOS ? 1.0 : MediaQuery.devicePixelRatioOf(context);
final ratio = Platform.isIOS ? 1.0 : context.devicePixelRatio;
return AnimatedPositioned(
left: point.x / ratio - size / 2,
top: point.y / ratio - size,

View file

@ -47,7 +47,7 @@ class FilterBottomSheetScaffold extends StatelessWidget {
OutlinedButton(
onPressed: () {
onClear();
Navigator.of(context).pop();
context.pop();
},
child: const Text('action_common_clear').tr(),
),
@ -55,7 +55,7 @@ class FilterBottomSheetScaffold extends StatelessWidget {
ElevatedButton(
onPressed: () {
onSearch();
Navigator.of(context).pop();
context.pop();
},
child: const Text('search_filter_apply').tr(),
),

View file

@ -33,7 +33,7 @@ class BackgroundBackupSettings extends ConsumerWidget {
),
backgroundColor: Colors.red,
);
ScaffoldMessenger.of(context).showSnackBar(snackBar);
context.scaffoldMessenger.showSnackBar(snackBar);
}
void showBatteryOptimizationInfoToUser() {

View file

@ -2,6 +2,7 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/services/app_settings.service.dart';
import 'package:immich_mobile/widgets/settings/preference_settings/primary_color_setting.dart';
import 'package:immich_mobile/widgets/settings/settings_sub_title.dart';
@ -58,8 +59,7 @@ class ThemeSetting extends HookConsumerWidget {
isSystemTheme.value = true;
ref.watch(immichThemeModeProvider.notifier).state = ThemeMode.system;
} else {
final currentSystemBrightness =
MediaQuery.platformBrightnessOf(context);
final currentSystemBrightness = context.platformBrightness;
isSystemTheme.value = false;
isDarkTheme.value = currentSystemBrightness == Brightness.dark;
if (currentSystemBrightness == Brightness.light) {

View file

@ -94,7 +94,7 @@ class SharedLinkItem extends ConsumerWidget {
Clipboard.setData(
ClipboardData(text: "${serverUrl}share/${sharedLink.key}"),
).then((_) {
ScaffoldMessenger.of(context).showSnackBar(
context.scaffoldMessenger.showSnackBar(
SnackBar(
content: Text(
"shared_link_clipboard_copied_massage",