Simon Marquis
daa2228132
Restore original `type` labels
1 year ago
Simon Marquis
0377fd8712
Replace `NewsResourceType` enum with simpler String type
...
See this discussion for rationale: https://github.com/android/nowinandroid/discussions/901
1 year ago
Adetunji Dahunsi
153b34fd50
Merge pull request #850 from qamarelsafadi/loading-progress-for-image
...
Fix #849 : Loading progress for image
1 year ago
Don Turner
492697ce6b
Merge pull request #873 from SimonMarquis/misc-warnings
...
Fix miscellaneous warnings
1 year ago
Qamar A. Safadi
2db3e0c804
Merge branch 'android:main' into loading-progress-for-image
1 year ago
Don Turner
8901e5932a
Merge pull request #872 from SimonMarquis/data-objects
...
Convert 'sealed' sub-object to 'data object'
1 year ago
Don Turner
0e13207a40
Merge pull request #874 from SimonMarquis/string-decoder
...
Replace StringDecoder injection with simpler API
1 year ago
Qamar A. Safadi
5abc69fb49
Merge branch 'android:main' into loading-progress-for-image
1 year ago
Simon Marquis
0418997f5a
Extract `UTF-8` character encoding
1 year ago
Don Turner
4d0efef3b4
Merge pull request #879 from tatsuyafujisaki/rename-constants
...
Rename constants
1 year ago
Qamar A. Safadi
8aa0457ca9
Merge branch 'android:main' into loading-progress-for-image
1 year ago
Adetunji Dahunsi
0a20cb729b
Merge pull request #877 from android/tj/scrollbars
...
Update feedItemsSize calculation
1 year ago
Tatsuya Fujisaki
4eeb045287
Rename constants
1 year ago
Adetunji Dahunsi
ec53d03854
Merge pull request #722 from android/tj/scrollbars
...
Add scrollbars to app
1 year ago
dahunsi
03610d229a
Update feedItemsSize calculation
...
Change-Id: I2bf6a2fa0e210cef1318707d948a49d2ef010452
1 year ago
Simon Marquis
e8449112b4
Replace StringDecoder injection with simpler API
...
The initial reason for this `StringDecoder` was to make sure the AndroidX navigation route would not use incompatible chars in the resulting String.
For that, `Uri.encode(String)` was used, but this is an Android API (`android.net.Uri`).
Unit tests would fail because Uri is not mocked (since we are not using Robolectric).
Therefore, a `StringDecoder` interface was introduced with 2 implementations: `UriDecoder` and `FakeStringDecoder`, Hilt modules were added, etc.
FWIW, the naming of the API was misleading: `StringDecoder.decodeString(encodedString: String)` does not inform how encoded the input is, so `UriDecoder` could "decode" something that was not necessarily uri "encoded".
The solution to this problem was to simply use regular Java APIs:
- `URLDecoder.decode(urlEncodedTopicId, "UTF-8")`
- `URLEncoder.encode(topicId, "UTF-8")`
1 year ago
Simon Marquis
4bdc9705af
Fix miscellaneous warnings
...
- Remove unused namespace declaration
- Collapse empty manifest tags
- Remove redundant qualifier name
- Remove redundant suppression
1 year ago
Simon Marquis
b7799f0475
Convert 'sealed' sub-object to 'data object'
1 year ago
Qamar A. Safadi
9f3103c212
Merge branch 'android:main' into loading-progress-for-image
1 year ago
Simon Marquis
995d7b643f
Add missing full stop in `search_not_ready` string
1 year ago
qamarelsafadi
f1a2993adc
feat: remove add placeholder todo
1 year ago
TJ Dahunsi
e13e84c155
Replace usages of 'displacement' to 'moved' in parameter names
...
Change-Id: I5b3da60041b046454e848d187f6dd2bfadf22b9a
1 year ago
TJ Dahunsi
eeb4973265
PR feedback
...
Change-Id: I48492e3c121ff8b2ee6bbbac08aa1829f6a6467f
1 year ago
TJ Dahunsi
bdf3ee3cb0
PR feedback
...
Change-Id: Ie22aa3c7fdf4c8ca8d8118837cfd279de8c6d80b
1 year ago
TJ Dahunsi
cb1d50e65e
Even better names
...
Change-Id: Ia699c3ce8fd1ce7a6e406b00c81dc196b487ed65
1 year ago
TJ Dahunsi
3aec705048
Add padding to scrollbars
1 year ago
TJ Dahunsi
31b4841cb2
Add scrollbars to app
1 year ago
Silvia García Bouza
0016b10037
Added TextStyle color for ClickableText
1 year ago
Milosz Moczkowski
9197b332c4
Merge pull request #825 from android/refactor/interest_item
...
Refactor InterestsItem to a Material3 ListItem
1 year ago
takahirom
ed90a382aa
Rename LazyListScope.TopicBody LazyListScope.topicBody
1 year ago
Miłosz Moczkowski
445c18a803
Refactor InterestsItem to Material3 ListItem
...
Change-Id: I12adc8820964aecd97ea0b4e22ae13e95e1428ab
2 years ago
Alex Vanyo
4d65946f95
Merge pull request #808 from SimonMarquis/compose-bom-2023-06-00
...
Upgrade Compose BoM `2023.06.00` and Compose compiler `1.4.7`
2 years ago
TJ Dahunsi
4af86580eb
Move analytics tracking of news deep link to an extension method
...
Change-Id: Id3d1a30d86634b9176067696db5ecfd4d02854a5
2 years ago
Milosz Moczkowski
7203460051
Merge branch 'main' into compose-bom-2023-06-00
2 years ago
TJ Dahunsi
c4686cfa54
Track when deep link notifications are opened
...
Change-Id: I223b1c8fbca36f9b7f2a35d9cb2fa901d6f5be91
2 years ago
Don Turner
21777aba65
Merge pull request #799 from android/tm/feed-content-type
...
Add contentType to news feed
2 years ago
Simon Marquis
40b5248302
Replace deprecated method `TextFieldDefaults.textFieldColors`
...
```
TextFieldColors' is deprecated. Renamed to `TextFieldDefaults.colors` with additional parameters to controlcontainer color based on state.
```
2 years ago
Alex Vanyo
9cd390c56a
Merge pull request #684 from MaximillianLeonov/feature-settings
...
Replace `if` condition with AnimatedVisibility component
2 years ago
Tomáš Mlynarič
19ffb53150
Don't use lambda contentType for a single item
...
Change-Id: I0588c031428d523707463c5f0f0b6c586ea5e2c3
2 years ago
Tomáš Mlynarič
4a8a43551a
Add contentType to news feed
...
Before
ScrollForYouFeedBenchmark_scrollFeedCompilationFull
frameDurationCpuMs P50 4.9, P90 6.9, P95 7.6, P99 9.5
frameOverrunMs P50 -10.3, P90 -6.8, P95 -2.8, P99 -2.1
Traces: Iteration 0 1 2 3 4 5 6 7 8 9
After
ScrollForYouFeedBenchmark_scrollFeedCompilationFull
frameDurationCpuMs P50 4.6, P90 6.3, P95 7.2, P99 9.2
frameOverrunMs P50 -10.6, P90 -8.7, P95 -7.8, P99 -4.7
Traces: Iteration 0 1 2 3 4 5 6 7 8 9
Change-Id: I5589776f9627c27154873529c9ca9dd055a8a8ef
2 years ago
Simon Marquis
cb84082ae7
Merge branch 'main' into patch/proguard
2 years ago
James Rose
7826b4f5f2
Merge pull request #748 from SimonMarquis/fix/permissions
...
Grant `POST_NOTIFICATIONS` permission in more instrumented tests
2 years ago
Amaury Medeiros
512930c239
Fix inline comment as suggested in PR
2 years ago
Amaury Medeiros
87c27f6b82
Apply suggested changes to inline comment
2 years ago
Amaury Medeiros
dd70bbd589
Fix ForYouScreen Compose Previews
...
Permissions should only be called in an Activity context, which is a layoutlib limitation. We need to avoid launching the permission request when in LocalInspectionMode, otherwise we'll have render errors on the ForYouScreen previews.
2 years ago
Maximillian Leonov
bea3661f81
Merge branch 'main' into feature-settings
...
# Conflicts:
# feature/settings/src/main/java/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt
2 years ago
Maximillian Leonov
7dadf033c1
Add comment for ColumnScope usage
2 years ago
Miłosz Moczkowski
7b30720b25
Remove nested scaffold from the bookmarks screen
...
Change-Id: Ie8b6f160d341156a6f9c02c0ca7f530095fb2950
2 years ago
Milosz Moczkowski
1345764649
Merge pull request #770 from android/refactor/remove_unused_statements
...
Remove unused statements
2 years ago
Miłosz Moczkowski
83fa8c887f
Spotless apply
...
Change-Id: I80457acc6a49fe9755240a3d52ff96a8fdfd6b92
2 years ago
Miłosz Moczkowski
99094199bc
Remove redundant suppressions
...
Change-Id: Iae08b6f284cf7a387922fdec34c8a0aa0da809ef
2 years ago
Miłosz Moczkowski
5bf66739bd
Remove redundant statements
...
Change-Id: Iaa25b7ba033d5e9c85cc2dc433197ed7b8b6cb89
2 years ago
Milosz Moczkowski
2bf3018898
Merge pull request #763 from SimonMarquis/cleanup/unused-resources
...
Cleanup unused string resources
2 years ago
Simon Marquis
9aba5cc0fe
Cleanup unused string resources
2 years ago
Simon Marquis
b453386327
Ellipsis string can be replaced with ellipsis character
...
Lint: Replace `...` with ellipsis character `…`
2 years ago
Simon Marquis
8f41a6b3ab
Cleanup proguard configuration
...
- Remove custom KotlinX Serialization config as it's already provided, see https://github.com/Kotlin/kotlinx.serialization#android .
- Delete empty config files.
2 years ago
Simon Marquis
823c4db201
Grant `POST_NOTIFICATIONS` permission in more instrumented tests
...
Continues the work initiated in #738 .
Extract the SDK version check inside a `GrantPostNotificationPermissionRule` class that delegates to a regular `GrantPermissionRule`.
2 years ago
Don Turner
a03307e14d
Merge pull request #738 from SimonMarquis/patch-5
...
Grant `POST_NOTIFICATIONS` permission in instrumented tests
2 years ago
Simon Marquis
a93cce92f7
Update ForYouScreenTest.kt
2 years ago
Simon Marquis
69879ff874
Grant permission only if TIRAMISU or above
2 years ago
Simon Marquis
331e8cffac
Grant `POST_NOTIFICATIONS` permission in instrumented tests
2 years ago
Simon Marquis
d6ba65c77f
Update `BookmarksGrid` horizontal spacing to fix #732
2 years ago
Miłosz Moczkowski
f809142cb2
Add missing appcompat dependency
...
Change-Id: I6192623d21986962c17204720fa1a1778b773b56
2 years ago
Miłosz Moczkowski
13f1f8d096
Exclude transient appcompat dependency
...
Change-Id: Ifdd7e34192c5db8598c42f67088ac292b38ee3e2
2 years ago
Miłosz Moczkowski
c7c2bb04aa
Spotless apply
...
Change-Id: I773059a755bebf99af30a71fd44aa12e58f46b23
2 years ago
Miłosz Moczkowski
fc3d0ced20
Replace hardcoded license file with OSS licenses plugin
...
Change-Id: I4427fd5d7b7abd8a2912a41f61ffedfac4af9d6a
2 years ago
Milosz Moczkowski
5f49c6ae25
Merge pull request #568 from vishesh211/vishesh211/bug-534-interests-multiple-click
...
Interests multiple click
2 years ago
Don Turner
aae307ee08
Fix spotless
...
Change-Id: I84da36ba957cb74f9fb4479e81d714c2d8928a01
2 years ago
Don Turner
6343b831b9
Use NoOpAnalyticsHelper for tests
...
Change-Id: I44657037f8f7ec6e38bcc3901e235ceab8c71237
2 years ago
Don Turner
0e40e26f22
Add analytics for search queries
...
Change-Id: If5290a903afb928fc1c3aaa66a52d2f182aba118
2 years ago
Takeshi Hagikura
6a8736d4d0
Improvement in the Search screen ( #717 )
...
Combine the search result of topics and news resources in one
LazyVerticalGrid so that topics don't get in the way.
Before this change, the result of topics created a LazyColumn and
the result of news resources created the LazyVerticalGrid separately
that made the situation where there were two separete vertical scrolling
lists.
2 years ago
Adetunji Dahunsi
3b1b1ea4c1
Merge pull request #712 from android/tj/news-notifications
...
Notify users when news are updated
2 years ago
Simon Marquis
0ebd0ab660
Remove unused import
2 years ago
Simon Marquis
2291eb0fe2
Remove unused imports
2 years ago
Simon Marquis
634e7f0289
Remove `toUri()`
2 years ago
Simon Marquis
3b11156af5
Replace manual URI handling with Compose's `LocalUriHandler`
2 years ago
TJ Dahunsi
5d51cdcd28
Fix navigation tests
2 years ago
TJ Dahunsi
ef97cb941c
Route notification deep link through for you screen
2 years ago
TJ Dahunsi
2499c0a0bd
Notify users when news are updated
2 years ago
vishesh211
794d84cf67
done required cleanup
2 years ago
vishesh211
079f92ea32
feat: added launchSingleTop in navigate
2 years ago
vishesh211
487a288191
fix: removed disableSplitMotionEvents
2 years ago
Takeshi Hagikura
b3cdc172cd
Implement search feature ( #685 )
...
Implement search feature
- Add a feature module named "search"
- Add a SearchScreen that is navigated by tapping the search icon at the top left corner
- Add a data layer that takes care of populating the *Fts tables and querying them by a search query
- Add a SearchViewModel that wires up the data layer of the Fts tables with the SearchScreen
The SearchScreen has following features:
- The user is able to type the search query in the TextField
- The search result is displayed as the user types
- When the search result is clicked, it navigates to:
- The InterestsScreen when a topic is clicked
- Chrome custom tab with the URL of the clicked news resource
- When the search result is clicked or the IME is explicitly closed by the user, the current search query in the TextField is saved as recent searches
- Latest recent searches are displayed in the SearchScreen
2 years ago
Maximillian Leonov
6c18b25d5d
Replace `if` condition with AnimatedVisibility component
2 years ago
Neelansh Sahai
bf747434cd
Add Undo snackbar on Bookmark removal
...
Change-Id: I1fefd6e72378e26ae35b66e032529a116cff9a79
2 years ago
Milosz Moczkowski
2c18740d62
Merge pull request #665 from AnirudhPudari/migrate-to-compose_flowlayouts
...
[Bug]: Migrate away from accompanist/flowlayout
2 years ago
James Rose
050db2cb72
Merge branch 'main' into jr/track-viewed
2 years ago
James Rose
b49767a88c
Rename getUserNewsResources to observeAll
2 years ago
AnirudhPudari
33a3e360a4
Deprecated FlowLayouts from accompanist
2 years ago
mlykotom
3b7e7e3c02
Use ReportDrawnWhen
...
Change-Id: I77b4db63f72f43c6c826e66358f7672792ef137d
2 years ago
Adetunji Dahunsi
08956492c8
Backend triggered sync
...
Change-Id: I53c43b136ebb755f6258b1e815301dddb3b536a3
2 years ago
Milosz Moczkowski
ba6a697844
Merge pull request #624 from SimonMarquis/gradle-sort
...
Sort and group Gradle dependencies
2 years ago
Chris Sinco
93c01ad184
Fix trailing commas based on spotless check
2 years ago
Chris Sinco
049750dd51
Merge branch 'main' into ui-polish
2 years ago
Amaury Medeiros
6b605a779c
Fix ForYouScreenTopicSelection Compose Preview
2 years ago
James Rose
57c13d84bd
Incorporate code review changes: Move UserNewsResourceRepository to data
...
module; move UserNewsResource to model module. Implement unread dot for
bookmarked articles. Keep the flows cold in UserNewsResourceRepository.
2 years ago
Simon Marquis
8ec54d19d8
Sort and group Gradle dependencies thanks to square/gradle-dependencies-sorter
2 years ago
James Rose
ebfbb5bafd
Display unread state on the news feed and bottom nav bar
...
When a news resource is unread, display a dot on its card in the news
feed. When the For You section has unread resources, display a dot on
its icon in the navigation bar.
Update the read status when a resource is opened.
2 years ago
James Rose
bd450099fb
Replace GetUserNewsResourcesUseCase with UserNewsResourceRepository
...
This moves the responsibility for joining the UserData and the
NewsResources to UserNewsResourceRepository. This way, the work can be
done once and shared with all consumers in a SharedFlow, rather than
having each consumer perform the join itself by invoking the UseCase.
2 years ago
Caren
098649d02f
Remove unnecessary text description for buttons on Interest page
...
Change-Id: I33968bf3a42de795eaa55e72cb86c2898f936dd1
2 years ago