Preserve detail navigation origin (#66)

This commit is contained in:
Georg Bauer
2026-08-15 12:06:41 +02:00
parent 2f5269a6e9
commit 69d1709523
2 changed files with 14 additions and 9 deletions

View File

@@ -247,9 +247,17 @@ source update are published, and installs or updates Gotcha through AltStore PAL
first activity-feed page without requiring a manual pull-up; the empty first activity-feed page without requiring a manual pull-up; the empty
state appears only after every available page has been checked. state appears only after every available page has been checked.
- [ ] Tap repository, issue, pull-request, and commit activity. Each opens the - [ ] Tap repository, issue, pull-request, and commit activity. Each opens the
matching native tab and destination. matching destination on the Home navigation stack. The navigation-bar
Back button and left-edge interactive swipe return directly to Home.
- [ ] Non-linkable server activity does not navigate or appear tappable. - [ ] Non-linkable server activity does not navigate or appear tappable.
## Milestone navigation
- [ ] Open a milestone, then open one of its issues and one of its pull
requests. For each detail, the navigation-bar Back button and left-edge
interactive swipe return directly to that milestone, preserving its
rows and scroll position.
## Home-screen widgets ## Home-screen widgets
- [ ] Upgrade over a build with an existing server. Launch Gotcha once, then - [ ] Upgrade over a build with an existing server. Launch Gotcha once, then

View File

@@ -96,10 +96,10 @@ final class AppContext {
} }
func route(_ activity: ActivityRow) { func route(_ activity: ActivityRow) {
let navigation = navigationControllers[0]
switch activity.target { switch activity.target {
case .repository: case .repository:
tabs.selectedIndex = 1 navigation.pushViewController(
navigationControllers[1].pushViewController(
IssuesViewController( IssuesViewController(
context: self, context: self,
owner: activity.owner, owner: activity.owner,
@@ -108,8 +108,7 @@ final class AppContext {
animated: true animated: true
) )
case .issue: case .issue:
tabs.selectedIndex = 1 navigation.pushViewController(
navigationControllers[1].pushViewController(
IssueViewController( IssueViewController(
context: self, context: self,
owner: activity.owner, owner: activity.owner,
@@ -119,8 +118,7 @@ final class AppContext {
animated: true animated: true
) )
case .pullRequest: case .pullRequest:
tabs.selectedIndex = 3 navigation.pushViewController(
navigationControllers[3].pushViewController(
PullViewController( PullViewController(
context: self, context: self,
owner: activity.owner, owner: activity.owner,
@@ -130,8 +128,7 @@ final class AppContext {
animated: true animated: true
) )
case .commit: case .commit:
tabs.selectedIndex = 2 navigation.pushViewController(
navigationControllers[2].pushViewController(
FilesViewController( FilesViewController(
context: self, context: self,
owner: activity.owner, owner: activity.owner,