diff --git a/README.md b/README.md
index 696d46da..45aa32dc 100644
--- a/README.md
+++ b/README.md
@@ -10,128 +10,196 @@ A [Hacker News](https://news.ycombinator.com/) client built with Flutter.
[
](https://apps.apple.com/us/app/hacki/id1602043763?platform=iphone) [
](https://play.google.com/store/apps/details?id=com.jiaqifeng.hacki&hl=en_US&gl=US) [
](https://f-droid.org/en/packages/com.jiaqifeng.hacki/)
-
-Features:
-- Log in using your Hacker News account.
-- Browse stories from various categories.
-- Search for stories.
-- Submit stories.
-- Pin stories.
-- Mark stories as favorite.
-- Leave comments.
-- Collapse comments.
-- View parent comments without scrolling up.
-- View and participate in polls.
-- Browse comments and stories you have posted.
-- Vote on comments or stories.
-- Get in-app notification when there is new reply to your stories or comments.
-- Download stories and comments for offline reading.
-- Pick up where you left off.
-- Synced favorites and pins across devices. (iOS only)
-- Export or import your favorites.
-- Launch from system share sheet.
-- Share story or comment as image.
+# Features
+- Hacker News account [login](#login-reply-notification-favorites-sync-and-more)
+- [Favorites sync](#login-reply-notification-favorites-sync-and-more)
+- [Hacker News Search](#hacker-news-search)
+- [In-thread search](#in-thread-local-and-global-search)
+- [Ancestor lookup](#ancestor-lookup) so you don't have to scroll back up to regain context
+- [In-thread notification for new comments](#new-comments-notification-and-lookup) since your last visit
+- [In-app notification for new replies](#login-reply-notification-favorites-sync-and-more) to your comments or stories
+- [Offline mode](#settings)
+- Synced settings across devices (iOS only)
+- [Favorites import and export](#settings)
+- Open Hacker News link in Hacki via system share dialog
+- [Share story or comment as image](#share-story-or-comment-as-image)
+- [Reply](#reply-to-comment-or-story), vote, filter, block
+- [Polls](#polls)
+- [True dark mode](#true-dark-mode)
+- [Tablet support](#tablet-support)
+- [Accent color](#thread) and [font customization](#accent-color-and-font-customization)
- And more...
+## Home page and story tile customization
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Thread
+
+
+
+
+
+
-# Home page and story tile customization
+## New comments notification and lookup
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-# Thread reading experience
+## In-thread local and global search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Ancestor lookup
+
+
+
+
+
+
+
+
+
+
+
+
-### Thread
+## Share story or comment as image
-
-
-
-
+
+
+
+
+
+
-### New comments notification and lookup
-
-
+
+
+
+
+
+
-### In-thread search and other actions
+## Reply to comment or story
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-### Ancestor lookup
+## Open comment in separate thread
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
-### Story and comment sharing
+# Hacker News search
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
# Login, reply notification, favorites sync and more
-
-
-
+
+
+
-
-
-
+
+
+
# Settings
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
# Accent color and font customization
-
-
-
-
+
+
+
+
+
+
+# True dark mode
+
+
+
+
+
+
+
+# Polls
+
+
+
+
+
# Tablet support
diff --git a/assets/new_screenshots/hacki_100.png b/assets/new_screenshots/hacki_100.png
new file mode 100644
index 00000000..f7a46404
Binary files /dev/null and b/assets/new_screenshots/hacki_100.png differ
diff --git a/assets/new_screenshots/hacki_101.png b/assets/new_screenshots/hacki_101.png
new file mode 100644
index 00000000..8e930cc7
Binary files /dev/null and b/assets/new_screenshots/hacki_101.png differ
diff --git a/assets/new_screenshots/hacki_102.png b/assets/new_screenshots/hacki_102.png
new file mode 100644
index 00000000..1118d066
Binary files /dev/null and b/assets/new_screenshots/hacki_102.png differ
diff --git a/assets/new_screenshots/hacki_103.png b/assets/new_screenshots/hacki_103.png
new file mode 100644
index 00000000..7aca0ea7
Binary files /dev/null and b/assets/new_screenshots/hacki_103.png differ
diff --git a/assets/new_screenshots/hacki_104.png b/assets/new_screenshots/hacki_104.png
new file mode 100644
index 00000000..add728d5
Binary files /dev/null and b/assets/new_screenshots/hacki_104.png differ
diff --git a/assets/new_screenshots/hacki_105.png b/assets/new_screenshots/hacki_105.png
new file mode 100644
index 00000000..f2aa4edc
Binary files /dev/null and b/assets/new_screenshots/hacki_105.png differ
diff --git a/assets/new_screenshots/hacki_106.png b/assets/new_screenshots/hacki_106.png
new file mode 100644
index 00000000..8b3a00b9
Binary files /dev/null and b/assets/new_screenshots/hacki_106.png differ
diff --git a/assets/new_screenshots/hacki_107.png b/assets/new_screenshots/hacki_107.png
new file mode 100644
index 00000000..84d334eb
Binary files /dev/null and b/assets/new_screenshots/hacki_107.png differ
diff --git a/assets/new_screenshots/hacki_108.png b/assets/new_screenshots/hacki_108.png
new file mode 100644
index 00000000..7ef8ab1d
Binary files /dev/null and b/assets/new_screenshots/hacki_108.png differ
diff --git a/assets/new_screenshots/hacki_109.png b/assets/new_screenshots/hacki_109.png
new file mode 100644
index 00000000..0f7326d6
Binary files /dev/null and b/assets/new_screenshots/hacki_109.png differ
diff --git a/assets/new_screenshots/hacki_110.png b/assets/new_screenshots/hacki_110.png
new file mode 100644
index 00000000..9d36a9a2
Binary files /dev/null and b/assets/new_screenshots/hacki_110.png differ
diff --git a/assets/new_screenshots/hacki_111.png b/assets/new_screenshots/hacki_111.png
new file mode 100644
index 00000000..e92884d8
Binary files /dev/null and b/assets/new_screenshots/hacki_111.png differ
diff --git a/assets/new_screenshots/hacki_112.png b/assets/new_screenshots/hacki_112.png
new file mode 100644
index 00000000..59b4b6c0
Binary files /dev/null and b/assets/new_screenshots/hacki_112.png differ
diff --git a/assets/new_screenshots/hacki_113.png b/assets/new_screenshots/hacki_113.png
new file mode 100644
index 00000000..f7115c04
Binary files /dev/null and b/assets/new_screenshots/hacki_113.png differ
diff --git a/assets/new_screenshots/hacki_114.png b/assets/new_screenshots/hacki_114.png
new file mode 100644
index 00000000..9b427886
Binary files /dev/null and b/assets/new_screenshots/hacki_114.png differ
diff --git a/assets/new_screenshots/hacki_115.png b/assets/new_screenshots/hacki_115.png
new file mode 100644
index 00000000..b5728816
Binary files /dev/null and b/assets/new_screenshots/hacki_115.png differ
diff --git a/assets/new_screenshots/hacki_116.png b/assets/new_screenshots/hacki_116.png
new file mode 100644
index 00000000..686abf5a
Binary files /dev/null and b/assets/new_screenshots/hacki_116.png differ
diff --git a/assets/new_screenshots/hacki_117.png b/assets/new_screenshots/hacki_117.png
new file mode 100644
index 00000000..2efb42aa
Binary files /dev/null and b/assets/new_screenshots/hacki_117.png differ
diff --git a/assets/new_screenshots/hacki_118.png b/assets/new_screenshots/hacki_118.png
new file mode 100644
index 00000000..443b28d7
Binary files /dev/null and b/assets/new_screenshots/hacki_118.png differ
diff --git a/assets/new_screenshots/hacki_119.png b/assets/new_screenshots/hacki_119.png
new file mode 100644
index 00000000..f63637f9
Binary files /dev/null and b/assets/new_screenshots/hacki_119.png differ
diff --git a/assets/new_screenshots/hacki_120.png b/assets/new_screenshots/hacki_120.png
new file mode 100644
index 00000000..794078ac
Binary files /dev/null and b/assets/new_screenshots/hacki_120.png differ
diff --git a/assets/new_screenshots/hacki_121.png b/assets/new_screenshots/hacki_121.png
new file mode 100644
index 00000000..73deab1b
Binary files /dev/null and b/assets/new_screenshots/hacki_121.png differ
diff --git a/assets/new_screenshots/hacki_122.png b/assets/new_screenshots/hacki_122.png
new file mode 100644
index 00000000..b09b375d
Binary files /dev/null and b/assets/new_screenshots/hacki_122.png differ
diff --git a/assets/new_screenshots/hacki_123.png b/assets/new_screenshots/hacki_123.png
new file mode 100644
index 00000000..738c56e5
Binary files /dev/null and b/assets/new_screenshots/hacki_123.png differ
diff --git a/assets/new_screenshots/hacki_124.png b/assets/new_screenshots/hacki_124.png
new file mode 100644
index 00000000..d6fef3b0
Binary files /dev/null and b/assets/new_screenshots/hacki_124.png differ
diff --git a/assets/new_screenshots/hacki_125.png b/assets/new_screenshots/hacki_125.png
new file mode 100644
index 00000000..a87df16b
Binary files /dev/null and b/assets/new_screenshots/hacki_125.png differ
diff --git a/assets/new_screenshots/hacki_126.png b/assets/new_screenshots/hacki_126.png
new file mode 100644
index 00000000..a53e39b8
Binary files /dev/null and b/assets/new_screenshots/hacki_126.png differ
diff --git a/assets/new_screenshots/hacki_127.png b/assets/new_screenshots/hacki_127.png
new file mode 100644
index 00000000..7f4ee98a
Binary files /dev/null and b/assets/new_screenshots/hacki_127.png differ
diff --git a/assets/new_screenshots/hacki_128.png b/assets/new_screenshots/hacki_128.png
new file mode 100644
index 00000000..8880129f
Binary files /dev/null and b/assets/new_screenshots/hacki_128.png differ
diff --git a/assets/new_screenshots/hacki_129.png b/assets/new_screenshots/hacki_129.png
new file mode 100644
index 00000000..238c99d9
Binary files /dev/null and b/assets/new_screenshots/hacki_129.png differ
diff --git a/assets/new_screenshots/hacki_130.png b/assets/new_screenshots/hacki_130.png
new file mode 100644
index 00000000..5e26c4d6
Binary files /dev/null and b/assets/new_screenshots/hacki_130.png differ
diff --git a/assets/new_screenshots/hacki_131.png b/assets/new_screenshots/hacki_131.png
new file mode 100644
index 00000000..677c1d90
Binary files /dev/null and b/assets/new_screenshots/hacki_131.png differ
diff --git a/assets/new_screenshots/hacki_132.png b/assets/new_screenshots/hacki_132.png
new file mode 100644
index 00000000..642f353f
Binary files /dev/null and b/assets/new_screenshots/hacki_132.png differ
diff --git a/assets/new_screenshots/hacki_133.png b/assets/new_screenshots/hacki_133.png
new file mode 100644
index 00000000..e2ee474b
Binary files /dev/null and b/assets/new_screenshots/hacki_133.png differ
diff --git a/assets/new_screenshots/hacki_134.png b/assets/new_screenshots/hacki_134.png
new file mode 100644
index 00000000..554b0d87
Binary files /dev/null and b/assets/new_screenshots/hacki_134.png differ
diff --git a/assets/new_screenshots/hacki_135.png b/assets/new_screenshots/hacki_135.png
new file mode 100644
index 00000000..33ed369d
Binary files /dev/null and b/assets/new_screenshots/hacki_135.png differ
diff --git a/assets/new_screenshots/hacki_136.png b/assets/new_screenshots/hacki_136.png
new file mode 100644
index 00000000..266db0ba
Binary files /dev/null and b/assets/new_screenshots/hacki_136.png differ
diff --git a/assets/new_screenshots/hacki_137.png b/assets/new_screenshots/hacki_137.png
new file mode 100644
index 00000000..5c2192d3
Binary files /dev/null and b/assets/new_screenshots/hacki_137.png differ
diff --git a/assets/new_screenshots/hacki_138.png b/assets/new_screenshots/hacki_138.png
new file mode 100644
index 00000000..e623121b
Binary files /dev/null and b/assets/new_screenshots/hacki_138.png differ
diff --git a/assets/new_screenshots/hacki_139.png b/assets/new_screenshots/hacki_139.png
new file mode 100644
index 00000000..14372cc0
Binary files /dev/null and b/assets/new_screenshots/hacki_139.png differ
diff --git a/assets/new_screenshots/hacki_140.png b/assets/new_screenshots/hacki_140.png
new file mode 100644
index 00000000..b6a7a71a
Binary files /dev/null and b/assets/new_screenshots/hacki_140.png differ
diff --git a/assets/new_screenshots/hacki_141.png b/assets/new_screenshots/hacki_141.png
new file mode 100644
index 00000000..65e9430e
Binary files /dev/null and b/assets/new_screenshots/hacki_141.png differ
diff --git a/assets/new_screenshots/hacki_142.png b/assets/new_screenshots/hacki_142.png
new file mode 100644
index 00000000..e4d5c252
Binary files /dev/null and b/assets/new_screenshots/hacki_142.png differ
diff --git a/assets/new_screenshots/hacki_143.png b/assets/new_screenshots/hacki_143.png
new file mode 100644
index 00000000..b2650f9b
Binary files /dev/null and b/assets/new_screenshots/hacki_143.png differ
diff --git a/assets/new_screenshots/hacki_144.png b/assets/new_screenshots/hacki_144.png
new file mode 100644
index 00000000..9f9303d9
Binary files /dev/null and b/assets/new_screenshots/hacki_144.png differ
diff --git a/assets/new_screenshots/hacki_145.png b/assets/new_screenshots/hacki_145.png
new file mode 100644
index 00000000..e1969ff2
Binary files /dev/null and b/assets/new_screenshots/hacki_145.png differ
diff --git a/assets/new_screenshots/hacki_146.png b/assets/new_screenshots/hacki_146.png
new file mode 100644
index 00000000..47d9a5a9
Binary files /dev/null and b/assets/new_screenshots/hacki_146.png differ
diff --git a/assets/new_screenshots/hacki_147.png b/assets/new_screenshots/hacki_147.png
new file mode 100644
index 00000000..58992dab
Binary files /dev/null and b/assets/new_screenshots/hacki_147.png differ
diff --git a/assets/new_screenshots/hacki_148.png b/assets/new_screenshots/hacki_148.png
new file mode 100644
index 00000000..43e27859
Binary files /dev/null and b/assets/new_screenshots/hacki_148.png differ
diff --git a/assets/new_screenshots/hacki_149.png b/assets/new_screenshots/hacki_149.png
new file mode 100644
index 00000000..a413b5ba
Binary files /dev/null and b/assets/new_screenshots/hacki_149.png differ
diff --git a/assets/new_screenshots/hacki_150.png b/assets/new_screenshots/hacki_150.png
new file mode 100644
index 00000000..f846b106
Binary files /dev/null and b/assets/new_screenshots/hacki_150.png differ
diff --git a/assets/new_screenshots/hacki_91.png b/assets/new_screenshots/hacki_91.png
new file mode 100644
index 00000000..cba9f45d
Binary files /dev/null and b/assets/new_screenshots/hacki_91.png differ
diff --git a/assets/new_screenshots/hacki_92.png b/assets/new_screenshots/hacki_92.png
new file mode 100644
index 00000000..c550cbf1
Binary files /dev/null and b/assets/new_screenshots/hacki_92.png differ
diff --git a/assets/new_screenshots/hacki_93.png b/assets/new_screenshots/hacki_93.png
new file mode 100644
index 00000000..e7ffd0d7
Binary files /dev/null and b/assets/new_screenshots/hacki_93.png differ
diff --git a/assets/new_screenshots/hacki_94.png b/assets/new_screenshots/hacki_94.png
new file mode 100644
index 00000000..f01919c9
Binary files /dev/null and b/assets/new_screenshots/hacki_94.png differ
diff --git a/assets/new_screenshots/hacki_95.png b/assets/new_screenshots/hacki_95.png
new file mode 100644
index 00000000..57884977
Binary files /dev/null and b/assets/new_screenshots/hacki_95.png differ
diff --git a/assets/new_screenshots/hacki_96.png b/assets/new_screenshots/hacki_96.png
new file mode 100644
index 00000000..f24778c7
Binary files /dev/null and b/assets/new_screenshots/hacki_96.png differ
diff --git a/assets/new_screenshots/hacki_97.png b/assets/new_screenshots/hacki_97.png
new file mode 100644
index 00000000..e140e9b2
Binary files /dev/null and b/assets/new_screenshots/hacki_97.png differ
diff --git a/assets/new_screenshots/hacki_98.png b/assets/new_screenshots/hacki_98.png
new file mode 100644
index 00000000..0c58cad9
Binary files /dev/null and b/assets/new_screenshots/hacki_98.png differ
diff --git a/assets/new_screenshots/hacki_99.png b/assets/new_screenshots/hacki_99.png
new file mode 100644
index 00000000..ef844d76
Binary files /dev/null and b/assets/new_screenshots/hacki_99.png differ
diff --git a/lib/screens/item/item_screen.dart b/lib/screens/item/item_screen.dart
index 371a9bfc..53edaaf5 100644
--- a/lib/screens/item/item_screen.dart
+++ b/lib/screens/item/item_screen.dart
@@ -310,6 +310,7 @@ class _ItemScreenState extends State
rect,
parent: item,
onSearchInThreadTapped: () {
+ context.pop();
context.read()
..search(item.by)
..openInThreadSearch?.call();
@@ -418,6 +419,7 @@ class _ItemScreenState extends State
rect,
parent: widget.item,
onSearchInThreadTapped: () {
+ context.pop();
context.read()
..search(item.by)
..openInThreadSearch?.call();
diff --git a/lib/screens/item/widgets/item_screen_background.dart b/lib/screens/item/widgets/item_screen_background.dart
index adc73ec6..b483589c 100644
--- a/lib/screens/item/widgets/item_screen_background.dart
+++ b/lib/screens/item/widgets/item_screen_background.dart
@@ -38,7 +38,7 @@ class _ItemScreenBackgroundState extends State {
unawaited(
Future.delayed(
- AppDurations.oneAndHalfSeconds,
+ AppDurations.oneSecond,
() {
if (mounted) {
setState(() {
diff --git a/lib/screens/item/widgets/main_view.dart b/lib/screens/item/widgets/main_view.dart
index f38d8935..e118657f 100644
--- a/lib/screens/item/widgets/main_view.dart
+++ b/lib/screens/item/widgets/main_view.dart
@@ -474,6 +474,7 @@ class _ParentItemSection extends StatelessWidget {
child: Padding(
padding: const EdgeInsets.only(
left: Dimens.pt8,
+ bottom: Dimens.pt8,
),
child: ItemText(
item: item,
@@ -488,20 +489,18 @@ class _ParentItemSection extends StatelessWidget {
);
},
),
- if (item is Story && item.isPoll)
+ if (item is Story && item.isPoll) ...[
BlocProvider(
create: (BuildContext context) =>
PollCubit(story: item)..init(),
child: const PollView(),
),
+ SizedBoxes.pt6,
+ ],
],
),
),
),
- if (item.text.isNotEmpty)
- const SizedBox(
- height: Dimens.pt8,
- ),
const Divider(
height: Dimens.zero,
),
diff --git a/lib/screens/item/widgets/poll_view.dart b/lib/screens/item/widgets/poll_view.dart
index 5102ec8b..ba7a1701 100644
--- a/lib/screens/item/widgets/poll_view.dart
+++ b/lib/screens/item/widgets/poll_view.dart
@@ -23,9 +23,6 @@ class _PollViewState extends State with ItemActionMixin {
builder: (BuildContext context, PollState state) {
return Column(
children: [
- const SizedBox(
- height: Dimens.pt24,
- ),
if (state.status == Status.inProgress) ...[
const LinearProgressIndicator(),
const SizedBox(
diff --git a/lib/screens/item/widgets/reply_box.dart b/lib/screens/item/widgets/reply_box.dart
index 0176b8a1..d835e22f 100644
--- a/lib/screens/item/widgets/reply_box.dart
+++ b/lib/screens/item/widgets/reply_box.dart
@@ -122,7 +122,7 @@ class _ReplyBoxState extends State with ItemActionMixin {
),
if (!isLoading) ...[
...[
- if (replyingTo != null)
+ if (replyingTo != null && replyingTo is Comment)
AnimatedOpacity(
opacity:
expanded ? NumSwitch.on : NumSwitch.off,
diff --git a/pubspec.yaml b/pubspec.yaml
index 29922107..aa9a6010 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,6 +1,6 @@
name: hacki
description: A Hacker News client.
-version: 3.5.2+352
+version: 3.6.0+360
publish_to: none
environment: