Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
068d8cc
Split feature modules into api and impl modules
claraf3 Jun 12, 2025
af3ca67
Add NiaBackStack and BackStack providers
claraf3 Jul 11, 2025
d300830
Refactor feature modules to navigation3
claraf3 Jul 12, 2025
c9e38b3
Refactor app to navigation3
claraf3 Jul 11, 2025
4a8eaba
Refactor Interests to ListDetailScene
claraf3 Jul 11, 2025
e373828
Update feature ViewModels and tests
claraf3 Jul 17, 2025
a878b17
Update dependencyGuardBaseline
claraf3 Aug 19, 2025
b91a965
Refactored NiaNavigator
claraf3 Aug 19, 2025
dc29a5e
run spotless
claraf3 Nov 27, 2025
da4e087
Attempt to fix failing check graphs build step
dturner Dec 1, 2025
b054752
Update app module dependency graph
dturner Dec 1, 2025
ecb759d
Update the benchmarks dependency graph
dturner Dec 1, 2025
adcc387
Refactor navigation state management
dturner Dec 1, 2025
c9bba49
WIP remove DI
dturner Dec 2, 2025
386d1a0
WIP remove DI 2
dturner Dec 2, 2025
f682485
Refactor NavigationState and make tests pass
dturner Dec 2, 2025
af504d2
More NavigationState refactoring. Fix compilation errors.
dturner Dec 2, 2025
bd484eb
Title bar is now hidden on non top-level keys.
dturner Dec 2, 2025
b9a80fc
Refactor navigation routes to NavKeys
dturner Dec 2, 2025
fb185ed
Docs: Add dependency graphs for feature modules
dturner Dec 2, 2025
cedc689
Disable checkGraphs CI step as it is failing for an unknown reason
dturner Dec 2, 2025
56c4b24
Update NiaAppStateTest to use new InterestsNavKey
dturner Dec 2, 2025
5ea5a64
🤖 Updates screenshots
dturner Dec 2, 2025
1ded3e3
Refactor settings feature from api to impl
dturner Dec 2, 2025
ead99fa
feat: Update settings string resources
dturner Dec 2, 2025
eae7a5b
feat: Update target and compile SDK to 36
dturner Dec 2, 2025
53cbbbf
Rename settings feature string resources
dturner Dec 2, 2025
92fd6f6
Remove feature module READMEs (they will be replaced by submodule REA…
dturner Dec 2, 2025
8f269ff
Fix module graph generation.
dturner Dec 2, 2025
8abcb50
Refactor Navigator goUp to clearSubStack
dturner Dec 3, 2025
b828179
Scope ViewModels to navigation entries.
dturner Dec 3, 2025
fe5bfde
Fix spotless
dturner Dec 3, 2025
b51d49c
Disable graphUpdate due to flakiness
dturner Dec 3, 2025
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
43 changes: 22 additions & 21 deletions .github/workflows/Build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -77,27 +77,28 @@ jobs:
disable_globbing: true
commit_message: "🤖 Updates baselines for Dependency Guard"

- name: Update Graphs
run: ./gradlew graphUpdate

- name: Check Graphs
id: graphs_verify
run: git add -- '**/README.md' && git diff --cached --quiet --exit-code -- '**/README.md'

- name: Prevent updating graphs if this is a fork
id: checkfork_graphs
continue-on-error: false
if: steps.graphs_verify.outcome == 'failure' && github.event.pull_request.head.repo.full_name != github.repository
run: |
echo "::error::Check Graphs failed, please update graphs with: ./gradlew graphUpdate" && exit 1

- name: Push new graphs if available
if: steps.graphs_verify.outcome == 'failure' && github.event_name == 'pull_request'
uses: stefanzweifel/git-auto-commit-action@v5
with:
file_pattern: '**/README.md'
disable_globbing: true
commit_message: "🤖 Updates graphs"
# See https://github.com/android/nowinandroid/issues/2005
# - name: Update Graphs
# run: ./gradlew graphUpdate
#
# - name: Check Graphs
# id: graphs_verify
# run: git add -- "**/README.md" && git diff --cached --quiet --exit-code -- "**/README.md"
#
# - name: Prevent updating graphs if this is a fork
# id: checkfork_graphs
# continue-on-error: false
# if: steps.graphs_verify.outcome == 'failure' && github.event.pull_request.head.repo.full_name != github.repository
# run: |
# echo "::error::Check Graphs failed, please update graphs with: ./gradlew graphUpdate" && exit 1
#
# - name: Push new graphs if available
# if: steps.graphs_verify.outcome == 'failure' && github.event_name == 'pull_request'
# uses: stefanzweifel/git-auto-commit-action@v5
# with:
# file_pattern: '**/README.md'
# disable_globbing: true
# commit_message: "🤖 Updates graphs"

- name: Run all local screenshot tests (Roborazzi)
id: screenshotsverify
Expand Down
130 changes: 66 additions & 64 deletions app-nia-catalog/dependencies/releaseRuntimeClasspath.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,47 +12,49 @@ androidx.browser:browser:1.8.0
androidx.collection:collection-jvm:1.5.0
androidx.collection:collection-ktx:1.5.0
androidx.collection:collection:1.5.0
androidx.compose.animation:animation-android:1.10.0-alpha02
androidx.compose.animation:animation-core-android:1.10.0-alpha02
androidx.compose.animation:animation-core:1.10.0-alpha02
androidx.compose.animation:animation:1.10.0-alpha02
androidx.compose.foundation:foundation-android:1.10.0-alpha02
androidx.compose.foundation:foundation-layout-android:1.10.0-alpha02
androidx.compose.foundation:foundation-layout:1.10.0-alpha02
androidx.compose.foundation:foundation:1.10.0-alpha02
androidx.compose.material3.adaptive:adaptive-android:1.2.0-beta01
androidx.compose.material3.adaptive:adaptive:1.2.0-beta01
androidx.compose.material3:material3-adaptive-navigation-suite-android:1.5.0-alpha03
androidx.compose.material3:material3-adaptive-navigation-suite:1.5.0-alpha03
androidx.compose.material3:material3-android:1.5.0-alpha03
androidx.compose.material3:material3:1.5.0-alpha03
androidx.compose.animation:animation-android:1.10.0-alpha04
androidx.compose.animation:animation-core-android:1.10.0-alpha04
androidx.compose.animation:animation-core:1.10.0-alpha04
androidx.compose.animation:animation:1.10.0-alpha04
androidx.compose.foundation:foundation-android:1.10.0-alpha04
androidx.compose.foundation:foundation-layout-android:1.10.0-alpha04
androidx.compose.foundation:foundation-layout:1.10.0-alpha04
androidx.compose.foundation:foundation:1.10.0-alpha04
androidx.compose.material3.adaptive:adaptive-android:1.2.0-beta03
androidx.compose.material3.adaptive:adaptive:1.2.0-beta03
androidx.compose.material3:material3-adaptive-navigation-suite-android:1.5.0-alpha04
androidx.compose.material3:material3-adaptive-navigation-suite:1.5.0-alpha04
androidx.compose.material3:material3-android:1.5.0-alpha04
androidx.compose.material3:material3:1.5.0-alpha04
androidx.compose.material:material-icons-core-android:1.7.8
androidx.compose.material:material-icons-core:1.7.8
androidx.compose.material:material-icons-extended-android:1.7.8
androidx.compose.material:material-icons-extended:1.7.8
androidx.compose.material:material-ripple-android:1.10.0-alpha02
androidx.compose.material:material-ripple:1.10.0-alpha02
androidx.compose.runtime:runtime-android:1.10.0-alpha02
androidx.compose.runtime:runtime-annotation-android:1.10.0-alpha02
androidx.compose.runtime:runtime-annotation:1.10.0-alpha02
androidx.compose.runtime:runtime-saveable-android:1.10.0-alpha02
androidx.compose.runtime:runtime-saveable:1.10.0-alpha02
androidx.compose.runtime:runtime:1.10.0-alpha02
androidx.compose.ui:ui-android:1.10.0-alpha02
androidx.compose.ui:ui-geometry-android:1.10.0-alpha02
androidx.compose.ui:ui-geometry:1.10.0-alpha02
androidx.compose.ui:ui-graphics-android:1.10.0-alpha02
androidx.compose.ui:ui-graphics:1.10.0-alpha02
androidx.compose.ui:ui-text-android:1.10.0-alpha02
androidx.compose.ui:ui-text:1.10.0-alpha02
androidx.compose.ui:ui-tooling-preview-android:1.10.0-alpha02
androidx.compose.ui:ui-tooling-preview:1.10.0-alpha02
androidx.compose.ui:ui-unit-android:1.10.0-alpha02
androidx.compose.ui:ui-unit:1.10.0-alpha02
androidx.compose.ui:ui-util-android:1.10.0-alpha02
androidx.compose.ui:ui-util:1.10.0-alpha02
androidx.compose.ui:ui:1.10.0-alpha02
androidx.compose:compose-bom-alpha:2025.08.01
androidx.compose.material:material-ripple-android:1.10.0-alpha04
androidx.compose.material:material-ripple:1.10.0-alpha04
androidx.compose.runtime:runtime-android:1.10.0-alpha04
androidx.compose.runtime:runtime-annotation-android:1.10.0-alpha04
androidx.compose.runtime:runtime-annotation:1.10.0-alpha04
androidx.compose.runtime:runtime-retain-android:1.10.0-alpha04
androidx.compose.runtime:runtime-retain:1.10.0-alpha04
androidx.compose.runtime:runtime-saveable-android:1.10.0-alpha04
androidx.compose.runtime:runtime-saveable:1.10.0-alpha04
androidx.compose.runtime:runtime:1.10.0-alpha04
androidx.compose.ui:ui-android:1.10.0-alpha04
androidx.compose.ui:ui-geometry-android:1.10.0-alpha04
androidx.compose.ui:ui-geometry:1.10.0-alpha04
androidx.compose.ui:ui-graphics-android:1.10.0-alpha04
androidx.compose.ui:ui-graphics:1.10.0-alpha04
androidx.compose.ui:ui-text-android:1.10.0-alpha04
androidx.compose.ui:ui-text:1.10.0-alpha04
androidx.compose.ui:ui-tooling-preview-android:1.10.0-alpha04
androidx.compose.ui:ui-tooling-preview:1.10.0-alpha04
androidx.compose.ui:ui-unit-android:1.10.0-alpha04
androidx.compose.ui:ui-unit:1.10.0-alpha04
androidx.compose.ui:ui-util-android:1.10.0-alpha04
androidx.compose.ui:ui-util:1.10.0-alpha04
androidx.compose.ui:ui:1.10.0-alpha04
androidx.compose:compose-bom-alpha:2025.09.01
androidx.concurrent:concurrent-futures:1.1.0
androidx.core:core-ktx:1.16.0
androidx.core:core-viewtree:1.0.0
Expand All @@ -69,34 +71,34 @@ androidx.graphics:graphics-shapes-android:1.0.1
androidx.graphics:graphics-shapes:1.0.1
androidx.interpolator:interpolator:1.0.0
androidx.legacy:legacy-support-core-utils:1.0.0
androidx.lifecycle:lifecycle-common-java8:2.10.0-alpha03
androidx.lifecycle:lifecycle-common-jvm:2.10.0-alpha03
androidx.lifecycle:lifecycle-common:2.10.0-alpha03
androidx.lifecycle:lifecycle-livedata-core-ktx:2.10.0-alpha03
androidx.lifecycle:lifecycle-livedata-core:2.10.0-alpha03
androidx.lifecycle:lifecycle-livedata:2.10.0-alpha03
androidx.lifecycle:lifecycle-process:2.10.0-alpha03
androidx.lifecycle:lifecycle-runtime-android:2.10.0-alpha03
androidx.lifecycle:lifecycle-runtime-compose-android:2.10.0-alpha03
androidx.lifecycle:lifecycle-runtime-compose:2.10.0-alpha03
androidx.lifecycle:lifecycle-runtime-ktx-android:2.10.0-alpha03
androidx.lifecycle:lifecycle-runtime-ktx:2.10.0-alpha03
androidx.lifecycle:lifecycle-runtime:2.10.0-alpha03
androidx.lifecycle:lifecycle-viewmodel-android:2.10.0-alpha03
androidx.lifecycle:lifecycle-viewmodel-ktx:2.10.0-alpha03
androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.10.0-alpha03
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.10.0-alpha03
androidx.lifecycle:lifecycle-viewmodel:2.10.0-alpha03
androidx.lifecycle:lifecycle-common-java8:2.9.4
androidx.lifecycle:lifecycle-common-jvm:2.9.4
androidx.lifecycle:lifecycle-common:2.9.4
androidx.lifecycle:lifecycle-livedata-core-ktx:2.9.4
androidx.lifecycle:lifecycle-livedata-core:2.9.4
androidx.lifecycle:lifecycle-livedata:2.9.4
androidx.lifecycle:lifecycle-process:2.9.4
androidx.lifecycle:lifecycle-runtime-android:2.9.4
androidx.lifecycle:lifecycle-runtime-compose-android:2.9.4
androidx.lifecycle:lifecycle-runtime-compose:2.9.4
androidx.lifecycle:lifecycle-runtime-ktx-android:2.9.4
androidx.lifecycle:lifecycle-runtime-ktx:2.9.4
androidx.lifecycle:lifecycle-runtime:2.9.4
androidx.lifecycle:lifecycle-viewmodel-android:2.9.4
androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.4
androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.9.4
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.4
androidx.lifecycle:lifecycle-viewmodel:2.9.4
androidx.loader:loader:1.0.0
androidx.localbroadcastmanager:localbroadcastmanager:1.0.0
androidx.metrics:metrics-performance:1.0.0-beta01
androidx.print:print:1.0.0
androidx.profileinstaller:profileinstaller:1.4.0
androidx.savedstate:savedstate-android:1.4.0-alpha03
androidx.savedstate:savedstate-compose-android:1.4.0-alpha03
androidx.savedstate:savedstate-compose:1.4.0-alpha03
androidx.savedstate:savedstate-ktx:1.4.0-alpha03
androidx.savedstate:savedstate:1.4.0-alpha03
androidx.savedstate:savedstate-android:1.3.2
androidx.savedstate:savedstate-compose-android:1.3.2
androidx.savedstate:savedstate-compose:1.3.2
androidx.savedstate:savedstate-ktx:1.3.2
androidx.savedstate:savedstate:1.3.2
androidx.startup:startup-runtime:1.1.1
androidx.tracing:tracing-ktx:1.3.0-alpha02
androidx.tracing:tracing:1.3.0-alpha02
Expand Down Expand Up @@ -128,10 +130,10 @@ org.jetbrains.kotlin:kotlin-stdlib-common:2.2.21
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0
org.jetbrains.kotlin:kotlin-stdlib:2.2.21
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.1
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.1
org.jetbrains.kotlinx:kotlinx-datetime:0.6.1
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3
Expand Down
126 changes: 85 additions & 41 deletions app/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,42 @@ config:
nodePlacementStrategy: SIMPLE
---
graph TB
subgraph :feature
direction TB
subgraph :feature:settings
direction TB
:feature:settings:impl[impl]:::android-library
end
subgraph :feature:foryou
direction TB
:feature:foryou:api[api]:::android-library
:feature:foryou:impl[impl]:::android-library
end
subgraph :feature:bookmarks
direction TB
:feature:bookmarks:api[api]:::android-library
:feature:bookmarks:impl[impl]:::android-library
end
subgraph :feature:search
direction TB
:feature:search:api[api]:::android-library
:feature:search:impl[impl]:::android-library
end
subgraph :feature:interests
direction TB
:feature:interests:api[api]:::android-library
:feature:interests:impl[impl]:::android-library
end
subgraph :feature:topic
direction TB
:feature:topic:api[api]:::android-library
:feature:topic:impl[impl]:::android-library
end
end
subgraph :sync
direction TB
:sync:work[work]:::android-library
end
subgraph :core
direction TB
:core:analytics[analytics]:::android-library
Expand All @@ -22,23 +58,11 @@ graph TB
:core:designsystem[designsystem]:::android-library
:core:domain[domain]:::android-library
:core:model[model]:::jvm-library
:core:navigation[navigation]:::android-library
:core:network[network]:::android-library
:core:notifications[notifications]:::android-library
:core:ui[ui]:::android-library
end
subgraph :feature
direction TB
:feature:bookmarks[bookmarks]:::android-feature
:feature:foryou[foryou]:::android-feature
:feature:interests[interests]:::android-feature
:feature:search[search]:::android-feature
:feature:settings[settings]:::android-feature
:feature:topic[topic]:::android-feature
end
subgraph :sync
direction TB
:sync:work[work]:::android-library
end
:benchmarks[benchmarks]:::android-test
:app[app]:::android-application

Expand All @@ -49,12 +73,17 @@ graph TB
:app -.-> :core:designsystem
:app -.-> :core:model
:app -.-> :core:ui
:app -.-> :feature:bookmarks
:app -.-> :feature:foryou
:app -.-> :feature:interests
:app -.-> :feature:search
:app -.-> :feature:settings
:app -.-> :feature:topic
:app -.-> :feature:bookmarks:api
:app -.-> :feature:bookmarks:impl
:app -.-> :feature:foryou:api
:app -.-> :feature:foryou:impl
:app -.-> :feature:interests:api
:app -.-> :feature:interests:impl
:app -.-> :feature:search:api
:app -.-> :feature:search:impl
:app -.-> :feature:settings:impl
:app -.-> :feature:topic:api
:app -.-> :feature:topic:impl
:app -.-> :sync:work
:benchmarks -.->|testedApks| :app
:core:data -.-> :core:analytics
Expand All @@ -76,28 +105,43 @@ graph TB
:core:ui --> :core:analytics
:core:ui --> :core:designsystem
:core:ui --> :core:model
:feature:bookmarks -.-> :core:data
:feature:bookmarks -.-> :core:designsystem
:feature:bookmarks -.-> :core:ui
:feature:foryou -.-> :core:data
:feature:foryou -.-> :core:designsystem
:feature:foryou -.-> :core:domain
:feature:foryou -.-> :core:notifications
:feature:foryou -.-> :core:ui
:feature:interests -.-> :core:data
:feature:interests -.-> :core:designsystem
:feature:interests -.-> :core:domain
:feature:interests -.-> :core:ui
:feature:search -.-> :core:data
:feature:search -.-> :core:designsystem
:feature:search -.-> :core:domain
:feature:search -.-> :core:ui
:feature:settings -.-> :core:data
:feature:settings -.-> :core:designsystem
:feature:settings -.-> :core:ui
:feature:topic -.-> :core:data
:feature:topic -.-> :core:designsystem
:feature:topic -.-> :core:ui
:feature:bookmarks:api --> :core:navigation
:feature:bookmarks:impl -.-> :core:data
:feature:bookmarks:impl -.-> :core:designsystem
:feature:bookmarks:impl -.-> :core:ui
:feature:bookmarks:impl -.-> :feature:bookmarks:api
:feature:bookmarks:impl -.-> :feature:topic:api
:feature:foryou:api --> :core:navigation
:feature:foryou:impl -.-> :core:designsystem
:feature:foryou:impl -.-> :core:domain
:feature:foryou:impl -.-> :core:notifications
:feature:foryou:impl -.-> :core:ui
:feature:foryou:impl -.-> :feature:foryou:api
:feature:foryou:impl -.-> :feature:topic:api
:feature:interests:api --> :core:navigation
:feature:interests:impl -.-> :core:designsystem
:feature:interests:impl -.-> :core:domain
:feature:interests:impl -.-> :core:ui
:feature:interests:impl -.-> :feature:interests:api
:feature:interests:impl -.-> :feature:topic:api
:feature:search:api -.-> :core:domain
:feature:search:api --> :core:navigation
:feature:search:impl -.-> :core:designsystem
:feature:search:impl -.-> :core:domain
:feature:search:impl -.-> :core:ui
:feature:search:impl -.-> :feature:interests:api
:feature:search:impl -.-> :feature:search:api
:feature:search:impl -.-> :feature:topic:api
:feature:settings:impl -.-> :core:data
:feature:settings:impl -.-> :core:designsystem
:feature:settings:impl -.-> :core:ui
:feature:topic:api -.-> :core:designsystem
:feature:topic:api --> :core:navigation
:feature:topic:api -.-> :core:ui
:feature:topic:impl -.-> :core:data
:feature:topic:impl -.-> :core:designsystem
:feature:topic:impl -.-> :core:ui
:feature:topic:impl -.-> :feature:topic:api
:sync:work -.-> :core:analytics
:sync:work -.-> :core:data
:sync:work -.-> :core:notifications
Expand Down
Loading
Loading