Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

feat: switch to auto_scrolling package #67

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
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
66 changes: 66 additions & 0 deletions lib/common/scroll.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import 'package:auto_scrolling/auto_scrolling.dart';
import 'package:fluent_ui/fluent_ui.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/gestures.dart';

class AppScrollBehavior extends FluentScrollBehavior {
const AppScrollBehavior();

@override
Set<PointerDeviceKind> get dragDevices => {PointerDeviceKind.touch};

Widget _defaultAutoScroll(
final Widget child,
final Axis axis,
final ScrollController? controller,
) =>
AutoScroll(
controller: controller,
scrollDirection: axis,
anchorBuilder: (final _) => SingleDirectionAnchor(
direction: axis,
),
child: child,
);

@override
Widget buildScrollbar(
final BuildContext context,
final Widget child,
final ScrollableDetails details,
) {
final axis = axisDirectionToAxis(details.direction);

switch (getPlatform(context)) {
case TargetPlatform.macOS:
case TargetPlatform.iOS:
return _defaultAutoScroll(
switch (axis) {
Axis.horizontal => child,
Axis.vertical => CupertinoScrollbar(
controller: details.controller,
child: child,
),
},
axis,
details.controller,
);
case TargetPlatform.linux:
case TargetPlatform.windows:
return _defaultAutoScroll(
switch (axis) {
Axis.horizontal => child,
Axis.vertical => Scrollbar(
controller: details.controller,
child: child,
),
},
axis,
details.controller,
);
case TargetPlatform.android:
case TargetPlatform.fuchsia:
return child;
}
}
}
3 changes: 3 additions & 0 deletions lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import 'package:auto_scrolling/auto_scrolling.dart';
import 'package:fluent_ui/fluent_ui.dart';
import 'package:flutter/services.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:youtube_api/youtube_api.dart';

import 'common/scroll.dart';
import 'const.dart';
import 'helper/command_parser.dart';
import 'intent.dart';
Expand Down Expand Up @@ -74,6 +76,7 @@ class App extends StatelessWidget {
return GestureDetector(
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
child: FluentApp(
scrollBehavior: const AppScrollBehavior(),
title: 'Yatta Video Search',
shortcuts: {
...WidgetsApp.defaultShortcuts,
Expand Down
3 changes: 1 addition & 2 deletions lib/page/feed.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import 'dart:async';

import 'package:autoscroll/autoscroll.dart';
import 'package:collection/collection.dart';
import 'package:fluent_ui/fluent_ui.dart';
import 'package:http/http.dart' as http;
Expand Down Expand Up @@ -99,7 +98,7 @@ class _FeedPageState extends State<FeedPage> {
),
),
content: KeyboardNavigation(
child: AutoscrollListView.builder(
child: ListView.builder(
itemCount: filteredList?.length ?? 0,
itemBuilder: (final context, final index) {
final youtubeVideo =
Expand Down
3 changes: 1 addition & 2 deletions lib/page/history.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import 'dart:async';

import 'package:autoscroll/autoscroll.dart';
import 'package:fluent_ui/fluent_ui.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:youtube_api/youtube_api.dart';
Expand Down Expand Up @@ -84,7 +83,7 @@ class _HistoryPageState extends State<HistoryPage> {
),
),
content: KeyboardNavigation(
child: AutoscrollListView.builder(
child: ListView.builder(
itemCount: filteredList?.length ?? 0,
itemBuilder: (final context, final index) {
final youtubeVideo =
Expand Down
32 changes: 17 additions & 15 deletions lib/page/home.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import 'package:autoscroll/autoscroll.dart';
import 'package:fluent_ui/fluent_ui.dart';
import 'package:flutter/material.dart' show showLicensePage;
import 'package:shared_preferences/shared_preferences.dart';
Expand All @@ -18,7 +17,7 @@ class WelcomeMessage extends StatelessWidget {
final isWide = windowWidth >= 1500;

return KeyboardNavigation(
child: AutoscrollListView(
child: ListView(
padding: const EdgeInsets.symmetric(horizontal: 32),
children: [
const SizedBox(height: 8),
Expand Down Expand Up @@ -197,19 +196,22 @@ class RecentHistory extends StatelessWidget {
],
),
const SizedBox(height: 8),
AutoscrollSingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
children: snapshot.data!
.toList()
.reversed
.where((final e) => e.kind == 'video')
.take(10)
.map(
(final data) =>
_HomeVideoThumbnail(youtubeVideo: data),
)
.toList()),
SizedBox(
height: 220,
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
children: snapshot.data!
.toList()
.reversed
.where((final e) => e.kind == 'video')
.take(10)
.map(
(final data) =>
_HomeVideoThumbnail(youtubeVideo: data),
)
.toList()),
),
),
],
),
Expand Down
3 changes: 1 addition & 2 deletions lib/page/settings.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import 'package:autoscroll/autoscroll.dart';
import 'package:fluent_ui/fluent_ui.dart';
import 'package:flutter/material.dart' show ToggleButtons;
import 'package:flutter_riverpod/flutter_riverpod.dart';
Expand Down Expand Up @@ -68,7 +67,7 @@ class SettingsPage extends StatelessWidget {
_ => ['']
};

return AutoscrollListView(
return ListView(
children: [
const Padding(
padding: EdgeInsets.symmetric(horizontal: 32, vertical: 16),
Expand Down
3 changes: 1 addition & 2 deletions lib/widget/search_result.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
library search_result;

import 'package:autoscroll/autoscroll.dart';
import 'package:fluent_ui/fluent_ui.dart';
import 'package:youtube_api/youtube_api.dart';

Expand Down Expand Up @@ -28,7 +27,7 @@ class _SearchResultState extends State<SearchResult> {
@override
Widget build(final BuildContext context) {
return KeyboardNavigation(
child: AutoscrollListView.builder(
child: ListView.builder(
itemCount: widget.result.length + 1,
itemBuilder: (final context, final index) {
if (index == widget.result.length) {
Expand Down
29 changes: 0 additions & 29 deletions package/autoscroll/.gitignore

This file was deleted.

10 changes: 0 additions & 10 deletions package/autoscroll/.metadata

This file was deleted.

3 changes: 0 additions & 3 deletions package/autoscroll/CHANGELOG.md

This file was deleted.

21 changes: 0 additions & 21 deletions package/autoscroll/LICENSE

This file was deleted.

39 changes: 0 additions & 39 deletions package/autoscroll/README.md

This file was deleted.

4 changes: 0 additions & 4 deletions package/autoscroll/analysis_options.yaml

This file was deleted.

43 changes: 0 additions & 43 deletions package/autoscroll/example/.gitignore

This file was deleted.

Loading
Loading