Skip to content

Starred issues#296

Open
scottpeterson wants to merge 7 commits intomasterfrom
starred-issues
Open

Starred issues#296
scottpeterson wants to merge 7 commits intomasterfrom
starred-issues

Conversation

@scottpeterson
Copy link
Collaborator

@scottpeterson scottpeterson commented Mar 16, 2026

What type of PR is this? (check all applicable)

  • Refactor
  • Feature
  • Bug Fix
  • Optimization

Description

Added a Bookmarking feature to the app.

Issues can be bookmarked/unbookmarked from the List view or the Details view.

There is a db schema change.

The way a user's Bookmarked Issues are accessed is via the Top Issues filter.

There is analytics tracking via Plausible.

Related Issues

  • Related Issue #
  • Closes #

Were the changes tested?

  • Yes, automated tests in please name test methods or files
  • Yes, manually tested: please provide steps performed to test changes
  • No, and this is why: please replace this line with details on why tests
    have not been included
  • I need help with writing tests

Users can bookmark individual issues
This requires a database schema change!
@scottpeterson scottpeterson requested a review from dektar March 16, 2026 20:42
@scottpeterson scottpeterson self-assigned this Mar 16, 2026
Copy link
Collaborator

@dektar dektar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great! I haven't had time yet to try it on a device, and I'll do that before I approve to check edge cases manually (I'm more likely to catch something that way than reading the code). I also haven't fully read the IssuesAdapterTest.

  • I think we could add to MainActivityHappyPathTest to try adding/removing a bookmark, or add a TODO for that.
  • You'll need Spanish strings before the changes pass the checks. I've been using Google Translate since we don't have a large Spanish-language presence at this point...
  • Sorry about the merge conflict, please make sure not to show a bookmark icon on the demo issue (we could do like if isPlaceholder { bookmarkIcon.setVisiblity(View.GONE) } or something in issuesAdapter.
  • Some minor comments below.

Adding in spanish translations
* origin/master:
  Add a demonstration issue shown until the user has made 2 calls (#295)
@dektar
Copy link
Collaborator

dektar commented Mar 18, 2026

Some comments from trying it on Pixel XL running Android 10 (SDK 29) and Pixel 9 emulator running SDK 36. It looks like a lot, but there's only a few functional issues that I think are big. If you want help or more details about these let me know.

Functional

  • Blocking launch: When I open the filter list using TalkBack, TalkBack's focus doesn't jump into the list. In fact, I can't get to the list at all using TalkBack's linear navigation. Similarly, when I open it with keyboard the keyboard focus isn't moved into the list. The filter list needs to get accessibility (and keyboard) focus when it opens up.
  • Blocking launch: When I bookmark an issue in the list using TalkBack, accessibility focus jumps to a different bookmark icon. Focus shouldn't jump when taking an inline action like this.
  • Blocking launch: The filter needs to have "Top issues" selected by default, not "all issues".
  • Because the filter drop-down is now shown below the filter red bar, I'm able to tap on the red bar while the drop-down is open. This quickly closes and re-opens the filter rather than just closing it. This was confusing -- can a click on it when it's already open just close it?
  • When I start to scroll on the filter drop-down list, the whole list view moves up/down as I scroll. This is minor but a bit weird.

Layout

  • The UI looks strange before a location is set. What about not showing bookmarks yet in this case? Otherwise we'd have to shift the layout -- there's too much whitespace.
image
  • The vertical height still seems a little tall when there's no previous calls, compared to before this change. Can we shrink the bottom padding of the row so the button ends up closer to the edges?
    image.

  • Can we line up the right edge of the bookmarks bar with the right edge of the state label?

image
  • The bookmark icon is a little smaller perhaps on the IssueActivity? Can it be made the same size as in the MainActivity? Also, super minor, but it seems to not be centered on this one-line issue title, and it's mostly centered on the multi-line issue title. What if it's always in the top right corner no matter the issue title length, next to or below the (sometimes visible) state name? It seems kind of out of place when it floats against such a long issue title.
image image image

Fixed accessibility issues (talkback)

Moved top issues to top in Filter list, so index 0 as the default
selection just works as before

fixed the filter re-opening on filter bar tap issue

fixed scroll issue of filter list partially over filter bar

bookmark icon hidden when no location set

reduced bottom whitespace since bookmark icon provides some additional bottom padding

bookmark icon size is identical between MainActivity and IssueActivity

bookmark icon on IssueActivity locked to Top intead of centered vertically on Issue title
@scottpeterson
Copy link
Collaborator Author

Should have fixed all comments. Commit pushed! @dektar

Copy link
Collaborator

@dektar dektar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will try it on the phone tomorrow, sorry I've run out of time today! Just a few things.

// so it still reserves space for consistent row height.
if (issue.isPlaceholder) {
vh.bookmarkIcon.setVisibility(View.GONE);
vh.bookmarkIcon.setVisibility(View.INVISIBLE);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we also need to get rid of the content description or is this sufficient to hide for a11y? (i can test this later).

if (issue.isPlaceholder) {
vh.bookmarkIcon.setVisibility(View.GONE);
vh.bookmarkIcon.setVisibility(View.INVISIBLE);
vh.bookmarkIcon.setClickable(false);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we ever set it to clickable(true)? if this view gets recycled it'll still have an unclickable icon?

return maxWidthPx;
}


Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: extra newlines

android:layout_width="54dp"
android:layout_height="54dp"
android:padding="12dp"
android:layout_width="48dp"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please prefer using constants for dimens rather than hard-coding.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants