Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/screens/control_panel/control_panel_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ class _ControlPanelScreenState extends ConsumerState<ControlPanelScreen> {
AdaptiveLayout.layoutModeOf(context) == LayoutMode.dual && context.tabsRouter.current.name == route.routeName;

return Padding(
padding: EdgeInsets.only(left: AdaptiveLayout.of(context).sideBarWidth),
padding: EdgeInsetsDirectional.only(start: AdaptiveLayout.of(context).sideBarWidth),
child: Container(
color: context.colors.surface,
child: SettingsScaffold(
Expand Down
12 changes: 8 additions & 4 deletions lib/screens/library_search/library_search_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,13 @@ class _LibrarySearchScreenState extends ConsumerState<LibrarySearchScreen> {
(value) => value.backgroundImage == BackgroundType.blurred && value.enableBlurEffects,
));

final sideBarPadding = EdgeInsets.only(left: adaptiveLayout.sideBarWidth);
final sideBarPadding = EdgeInsetsDirectional.only(start: adaptiveLayout.sideBarWidth);
final horizontalSafeArea = EdgeInsetsDirectional.fromSTEB(
mediaQuery.padding.left,
0,
mediaQuery.padding.right,
0,
);

return MediaQuery(
data: mediaQuery.copyWith(
Expand Down Expand Up @@ -533,9 +539,7 @@ class _LibrarySearchScreenState extends ConsumerState<LibrarySearchScreen> {
),
if (postersList.isNotEmpty)
SliverPadding(
padding: EdgeInsets.only(
left: MediaQuery.of(context).padding.left + sideBarPadding.left,
right: MediaQuery.of(context).padding.right),
padding: sideBarPadding.add(horizontalSafeArea),
sliver: LibraryViews(
key: uniqueKey,
items: postersList,
Expand Down
18 changes: 9 additions & 9 deletions lib/screens/live_tv/live_tv_guide.dart
Original file line number Diff line number Diff line change
Expand Up @@ -291,15 +291,15 @@ class _LiveTvGuideState extends ConsumerState<LiveTvGuide> {
builder: (context, child) {
final scrollOffset =
widget.horizontalScrollController.hasClients ? widget.horizontalScrollController.offset : 0.0;
final left = (GuideConstants.leftColumnWidth + nowLeft - scrollOffset);
final lineLeft =
left.clamp(GuideConstants.leftColumnWidth, GuideConstants.leftColumnWidth + timelineWidth);
final bubbleLeft =
(left - 24).clamp(GuideConstants.leftColumnWidth, GuideConstants.leftColumnWidth + timelineWidth);
final start = (GuideConstants.leftColumnWidth + nowLeft - scrollOffset);
final lineStart =
start.clamp(GuideConstants.leftColumnWidth, GuideConstants.leftColumnWidth + timelineWidth);
final bubbleStart =
(start - 24).clamp(GuideConstants.leftColumnWidth, GuideConstants.leftColumnWidth + timelineWidth);
return Stack(
children: [
Positioned(
left: lineLeft - 2,
PositionedDirectional(
start: lineStart - 2,
top: 0,
bottom: 0,
child: IgnorePointer(
Expand All @@ -309,8 +309,8 @@ class _LiveTvGuideState extends ConsumerState<LiveTvGuide> {
),
),
),
Positioned(
left: bubbleLeft,
PositionedDirectional(
start: bubbleStart,
top: 0,
child: Container(
padding: const EdgeInsets.symmetric(horizontal: 6.0, vertical: 4.0),
Expand Down
14 changes: 7 additions & 7 deletions lib/screens/live_tv/widgets/channel_row.dart
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ class ChannelRowState extends ConsumerState<ChannelRow> {

if (channel.programs.isEmpty) {
return Align(
alignment: Alignment.centerLeft,
alignment: AlignmentDirectional.centerStart,
child: Padding(
padding: const EdgeInsets.only(
left: GuideConstants.padding, right: GuideConstants.padding, top: GuideConstants.padding / 2),
Expand Down Expand Up @@ -117,15 +117,15 @@ class ChannelRowState extends ConsumerState<ChannelRow> {
final minWidth = GuideConstants.padding;
final width = rawWidth < minWidth ? minWidth : rawWidth;

final clampedLeft = startOffset.clamp(0.0, timelineWidth);
final clampedWidth = ((clampedLeft + width) > timelineWidth) ? (timelineWidth - clampedLeft) : width;
final clampedStart = startOffset.clamp(0.0, timelineWidth);
final clampedWidth = ((clampedStart + width) > timelineWidth) ? (timelineWidth - clampedStart) : width;

final endDateIsAfterNow = program.endDate.isAfter(DateTime.now());

final isSelected = widget.selectedProgram?.id == program.id;

return Positioned(
left: clampedLeft,
return PositionedDirectional(
start: clampedStart,
top: GuideConstants.padding / 2,
height: GuideConstants.channelRowHeight - GuideConstants.padding / 2,
width: clampedWidth,
Expand All @@ -148,11 +148,11 @@ class ChannelRowState extends ConsumerState<ChannelRow> {
borderRadius: BorderRadius.circular(8.0),
onFocusChanged: (focus) {
if (focus) {
widget.scrollToPosition(clampedLeft - (GuideConstants.widthPerMinute * 10));
widget.scrollToPosition(clampedStart - (GuideConstants.widthPerMinute * 10));
}
},
child: Container(
margin: const EdgeInsets.only(right: GuideConstants.padding),
margin: const EdgeInsetsDirectional.only(end: GuideConstants.padding),
decoration: BoxDecoration(
color: colorFromString(
program.name,
Expand Down
8 changes: 4 additions & 4 deletions lib/screens/live_tv/widgets/timeline_header.dart
Original file line number Diff line number Diff line change
Expand Up @@ -48,17 +48,17 @@ class TimelineHeader extends StatelessWidget {
.toDouble()
.clamp(0.0, timelineWidth);
return [
Positioned(
left: leftPos,
PositionedDirectional(
start: leftPos,
bottom: 0,
child: Container(
width: 2,
height: timeLineTopPadding / 2,
color: Theme.of(context).colorScheme.onSurface.withAlpha(50),
),
),
Positioned(
left: leftPos + 2,
PositionedDirectional(
start: leftPos + 2,
bottom: 0,
child: SizedBox(
width: 48.0,
Expand Down
2 changes: 1 addition & 1 deletion lib/screens/seerr/seerr_search_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ class _SeerrSearchScreenState extends ConsumerState<SeerrSearchScreen> {
return NestedScaffold(
background: BackgroundImage(images: backgroundImages),
body: Padding(
padding: EdgeInsets.only(left: AdaptiveLayout.of(context).sideBarWidth),
padding: EdgeInsetsDirectional.only(start: AdaptiveLayout.of(context).sideBarWidth),
child: Scaffold(
extendBody: true,
backgroundColor: Colors.transparent,
Expand Down
79 changes: 36 additions & 43 deletions lib/screens/settings/client_sections/client_settings_dashboard.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import 'package:fladder/screens/settings/settings_list_tile.dart';
import 'package:fladder/screens/settings/widgets/settings_label_divider.dart';
import 'package:fladder/screens/settings/widgets/settings_list_group.dart';
import 'package:fladder/util/localization_helper.dart';
import 'package:fladder/widgets/shared/enum_selection.dart';
import 'package:fladder/widgets/shared/item_actions.dart';

List<Widget> buildClientSettingsDashboard(BuildContext context, WidgetRef ref) {
Expand All @@ -18,65 +17,59 @@ List<Widget> buildClientSettingsDashboard(BuildContext context, WidgetRef ref) {
context,
SettingsLabelDivider(label: context.localized.dashboard),
[
SettingsListTile(
SettingsListTileEnum(
label: Text(context.localized.settingsHomeBannerTitle),
subLabel: Text(context.localized.settingsHomeBannerDescription),
trailing: EnumBox(
current: ref.watch(
homeSettingsProvider.select(
(value) => value.homeBanner.label(context),
),
current: ref.watch(
homeSettingsProvider.select(
(value) => value.homeBanner.label(context),
),
itemBuilder: (context) => HomeBanner.values
.map(
(entry) => ItemActionButton(
label: Text(entry.label(context)),
action: () =>
ref.read(homeSettingsProvider.notifier).update((context) => context.copyWith(homeBanner: entry)),
),
)
.toList(),
),
itemBuilder: (context) => HomeBanner.values
.map(
(entry) => ItemActionButton(
label: Text(entry.label(context)),
action: () =>
ref.read(homeSettingsProvider.notifier).update((context) => context.copyWith(homeBanner: entry)),
),
)
.toList(),
),
if (ref.watch(homeSettingsProvider.select((value) => value.homeBanner)) != HomeBanner.hide)
SettingsListTile(
SettingsListTileEnum(
label: Text(context.localized.settingsHomeBannerInformationTitle),
subLabel: Text(context.localized.settingsHomeBannerInformationDesc),
trailing: EnumBox(
current: ref.watch(
homeSettingsProvider.select((value) => value.carouselSettings.label(context)),
),
itemBuilder: (context) => HomeCarouselSettings.values
.map(
(entry) => ItemActionButton(
label: Text(entry.label(context)),
action: () => ref
.read(homeSettingsProvider.notifier)
.update((context) => context.copyWith(carouselSettings: entry)),
),
)
.toList(),
),
),
SettingsListTile(
label: Text(context.localized.settingsHomeNextUpTitle),
subLabel: Text(context.localized.settingsHomeNextUpDesc),
trailing: EnumBox(
current: ref.watch(
homeSettingsProvider.select(
(value) => value.nextUp.label(context),
),
homeSettingsProvider.select((value) => value.carouselSettings.label(context)),
),
itemBuilder: (context) => HomeNextUp.values
itemBuilder: (context) => HomeCarouselSettings.values
.map(
(entry) => ItemActionButton(
label: Text(entry.label(context)),
action: () =>
ref.read(homeSettingsProvider.notifier).update((context) => context.copyWith(nextUp: entry)),
action: () => ref
.read(homeSettingsProvider.notifier)
.update((context) => context.copyWith(carouselSettings: entry)),
),
)
.toList(),
),
SettingsListTileEnum(
label: Text(context.localized.settingsHomeNextUpTitle),
subLabel: Text(context.localized.settingsHomeNextUpDesc),
current: ref.watch(
homeSettingsProvider.select(
(value) => value.nextUp.label(context),
),
),
itemBuilder: (context) => HomeNextUp.values
.map(
(entry) => ItemActionButton(
label: Text(entry.label(context)),
action: () =>
ref.read(homeSettingsProvider.notifier).update((context) => context.copyWith(nextUp: entry)),
),
)
.toList(),
),
SettingsListTile(
label: Text(context.localized.clientSettingsShowAllCollectionsTitle),
Expand Down
67 changes: 30 additions & 37 deletions lib/screens/settings/client_sections/client_settings_visual.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import 'package:fladder/screens/settings/widgets/settings_list_group.dart';
import 'package:fladder/screens/shared/input_fields.dart';
import 'package:fladder/util/adaptive_layout/adaptive_layout.dart';
import 'package:fladder/util/localization_helper.dart';
import 'package:fladder/widgets/shared/enum_selection.dart';
import 'package:fladder/widgets/shared/fladder_slider.dart';
import 'package:fladder/widgets/shared/item_actions.dart';

Expand All @@ -27,39 +26,36 @@ List<Widget> buildClientSettingsVisual(
context,
SettingsLabelDivider(label: context.localized.settingsVisual),
[
SettingsListTile(
SettingsListTileEnum(
label: Text(context.localized.displayLanguage),
trailing: Localizations.override(
currentWidget: Localizations.override(
context: context,
locale: ref.watch(clientSettingsProvider.select((value) => (value.selectedLocale ?? currentLocale))),
child: Builder(builder: (context) {
String language = "English";
try {
language = context.localized.nativeName;
} catch (_) {}
return EnumBox(
current: language,
itemBuilder: (context) {
return [
...AppLocalizations.supportedLocales.map(
(entry) => ItemActionButton(
label: Localizations.override(
context: context,
locale: entry,
child: Builder(builder: (context) {
return Text("${context.localized.nativeName} (${entry.toDisplayCode()})");
}),
),
action: () => ref
.read(clientSettingsProvider.notifier)
.update((state) => state.copyWith(selectedLocale: entry)),
),
)
];
},
);
return Text(language);
}),
),
itemBuilder: (context) {
return [
...AppLocalizations.supportedLocales.map(
(entry) => ItemActionButton(
label: Localizations.override(
context: context,
locale: entry,
child: Builder(builder: (context) {
return Text("${context.localized.nativeName} (${entry.toDisplayCode()})");
}),
),
action: () =>
ref.read(clientSettingsProvider.notifier).update((state) => state.copyWith(selectedLocale: entry)),
),
)
];
},
),
SettingsListTile(
label: Text(context.localized.settingsBlurredPlaceholderTitle),
Expand Down Expand Up @@ -108,21 +104,18 @@ List<Widget> buildClientSettingsVisual(
onChanged: (value) => ref.read(clientSettingsProvider.notifier).setExpandedTVLayout(value),
),
),
SettingsListTile(
SettingsListTileEnum(
label: Text(context.localized.enableBackgroundPostersTitle),
subLabel: Text(context.localized.enableBackgroundPostersDesc),
trailing: EnumBox(
current: clientSettings.backgroundImage.label(context),
itemBuilder: (context) => BackgroundType.values
.map(
(e) => ItemActionButton(
label: Text(e.label(context)),
action: () =>
ref.read(clientSettingsProvider.notifier).update((cb) => cb.copyWith(backgroundImage: e)),
),
)
.toList(),
),
current: clientSettings.backgroundImage.label(context),
itemBuilder: (context) => BackgroundType.values
.map(
(e) => ItemActionButton(
label: Text(e.label(context)),
action: () => ref.read(clientSettingsProvider.notifier).update((cb) => cb.copyWith(backgroundImage: e)),
),
)
.toList(),
),
SettingsListTile(
label: Text(context.localized.usePostersForLibraryIconsTitle),
Expand Down
Loading
Loading