refactor: replace copyWith method with withButtonPosition for ActionButtonContext

pull/24645/head
idubnori 2025-12-17 23:37:36 +09:00
parent de36f9a215
commit e966ee5544
2 changed files with 18 additions and 32 deletions

View File

@ -63,35 +63,21 @@ class ActionButtonContext {
this.buttonPosition = ButtonPosition.other, this.buttonPosition = ButtonPosition.other,
}); });
ActionButtonContext copyWith({ ActionButtonContext withButtonPosition(ButtonPosition position) {
BaseAsset? asset,
bool? isOwner,
bool? isArchived,
bool? isTrashEnabled,
bool? isStacked,
bool? isInLockedView,
RemoteAlbum? currentAlbum,
bool? advancedTroubleshooting,
ActionSource? source,
bool? isCasting,
TimelineOrigin? timelineOrigin,
ThemeData? originalTheme,
ButtonPosition? buttonPosition,
}) {
return ActionButtonContext( return ActionButtonContext(
asset: asset ?? this.asset, asset: asset,
isOwner: isOwner ?? this.isOwner, isOwner: isOwner,
isArchived: isArchived ?? this.isArchived, isArchived: isArchived,
isTrashEnabled: isTrashEnabled ?? this.isTrashEnabled, isTrashEnabled: isTrashEnabled,
isStacked: isStacked ?? this.isStacked, isStacked: isStacked,
isInLockedView: isInLockedView ?? this.isInLockedView, isInLockedView: isInLockedView,
currentAlbum: currentAlbum ?? this.currentAlbum, currentAlbum: currentAlbum,
advancedTroubleshooting: advancedTroubleshooting ?? this.advancedTroubleshooting, advancedTroubleshooting: advancedTroubleshooting,
source: source ?? this.source, source: source,
isCasting: isCasting ?? this.isCasting, isCasting: isCasting,
timelineOrigin: timelineOrigin ?? this.timelineOrigin, timelineOrigin: timelineOrigin,
originalTheme: originalTheme ?? this.originalTheme, originalTheme: originalTheme,
buttonPosition: buttonPosition ?? this.buttonPosition, buttonPosition: position,
); );
} }
} }
@ -358,7 +344,7 @@ class ActionButtonBuilder {
} }
static List<ActionButtonType> getViewerBottomBarTypes(ActionButtonContext context) { static List<ActionButtonType> getViewerBottomBarTypes(ActionButtonContext context) {
final bottomBarContext = context.copyWith(buttonPosition: ButtonPosition.bottomBar); final bottomBarContext = context.withButtonPosition(ButtonPosition.bottomBar);
return _defaultViewerBottomBarOrder.where((type) => type.shouldShow(bottomBarContext)).take(4).toList(); return _defaultViewerBottomBarOrder.where((type) => type.shouldShow(bottomBarContext)).take(4).toList();
} }

View File

@ -1019,7 +1019,7 @@ void main() {
final bottomBarTypes = ActionButtonBuilder.getViewerBottomBarTypes(context); final bottomBarTypes = ActionButtonBuilder.getViewerBottomBarTypes(context);
final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes( final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes(
context.copyWith(buttonPosition: ButtonPosition.kebabMenu), context.withButtonPosition(ButtonPosition.kebabMenu),
); );
expect(const ListEquality().equals(bottomBarTypes, expectedTypes), isTrue); expect(const ListEquality().equals(bottomBarTypes, expectedTypes), isTrue);
@ -1049,7 +1049,7 @@ void main() {
final bottomBarTypes = ActionButtonBuilder.getViewerBottomBarTypes(context); final bottomBarTypes = ActionButtonBuilder.getViewerBottomBarTypes(context);
final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes( final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes(
context.copyWith(buttonPosition: ButtonPosition.kebabMenu), context.withButtonPosition(ButtonPosition.kebabMenu),
); );
expect(const ListEquality().equals(bottomBarTypes, expectedTypes), isTrue); expect(const ListEquality().equals(bottomBarTypes, expectedTypes), isTrue);
@ -1080,7 +1080,7 @@ void main() {
final bottomBarTypes = ActionButtonBuilder.getViewerBottomBarTypes(context); final bottomBarTypes = ActionButtonBuilder.getViewerBottomBarTypes(context);
final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes( final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes(
context.copyWith(buttonPosition: ButtonPosition.kebabMenu), context.withButtonPosition(ButtonPosition.kebabMenu),
); );
expect(const ListEquality().equals(bottomBarTypes, expectedTypes), isTrue); expect(const ListEquality().equals(bottomBarTypes, expectedTypes), isTrue);