Commit Graph

998 Commits

Author SHA1 Message Date
Nebojsa Vuksic
a682e6dc25 Refactor: Replace ContentItemRow with simplified SimpleListItem in locations list rendering 2025-08-08 00:33:05 +02:00
Nebojsa Vuksic
222a296868 Move WeatherAppViewModel to ui package 2025-08-07 17:48:35 +02:00
Nebojsa Vuksic
4167fae9d7 Refactor: Simplify location state management by introducing LocationsUIState and updating related ViewModel and UI logic 2025-08-07 17:46:13 +02:00
Nebojsa Vuksic
8bb804c683 Add the LocationsUIState class for managing location selection logic. 2025-08-07 17:41:20 +02:00
Nebojsa Vuksic
d62e8e9594 Introduce loading, error and success state for weather forecast loading scenario. 2025-08-07 15:27:10 +02:00
Nebojsa Vuksic
4824b28177 Increase network simulation delay in WeatherForecastService to 3000ms for showcasing scenarios. 2025-08-07 15:06:16 +02:00
Nebojsa Vuksic
cf248aa19b Add PulsingText Composable for animated text appearance in loading scenarios 2025-08-07 14:55:36 +02:00
Nebojsa Vuksic
54ca91fea4 Cancel ongoing weather forecast job before launching a new one to prevent duplicate requests 2025-08-07 11:59:03 +02:00
Nebojsa Vuksic
de0692bba6 Only reload weather data for location if the location weather forecast isn't already previewed 2025-08-07 11:59:03 +02:00
Nebojsa Vuksic
015bd0426c Refactor: Make ViewModel APIs Disposable and rename cancel to dispose for cleanup consistency 2025-08-07 11:59:03 +02:00
Nebojsa Vuksic
9591bc93f3 Refactor: Rename MyLocationsViewModel to WeatherAppViewModel and update references accordingly 2025-08-07 10:42:34 +02:00
Nebojsa Vuksic
c137351389 Properly scope the coroutine scope of the WeatherAppSample
ViewModel's scope is now tied to the scope of a WeatherAppSample Composable. Once WeatherAppSample Composable exits the composition tree, the used view model coroutine scope will be disposed.
2025-08-07 10:42:34 +02:00
Nebojsa Vuksic
85f3a32137 Refactor: Convert WeatherForecastService to an interface-based implementation and improve coroutine handling 2025-08-07 10:05:51 +02:00
Nebojsa Vuksic
4673a445bf Fix: Autocomplete popup confirms the last selected item instead of clicked one 2025-08-07 09:57:53 +02:00
Nebojsa Vuksic
a205391e0a Add CoroutineScopeHolder service for project-wide coroutine management 2025-08-07 09:57:53 +02:00
Nebojsa Vuksic
a079747d44 Fix: Remove trailing '%' from weather.app.time.text in ComposeTemplate properties 2025-08-06 18:08:38 +02:00
Nebojsa Vuksic
ccd0a7a0b1 Refactor: Remove unused setContentWrappedInTheme extension function 2025-08-05 23:54:46 +02:00
Nebojsa Vuksic
f25ee25399 Make WeatherDetailsCard vertically scrollable and add safeContentPadding 2025-08-05 12:41:19 +02:00
Nebojsa Vuksic
11dfe41249 Refactor: Rename MyToolWindowFactory to ComposeSamplesToolWindowFactory and update related plugin.xml references 2025-08-01 13:36:13 +02:00
Nebojsa Vuksic
53b4a2cb55 Bump IntelliJ Platform version to 2025.1.4.1 2025-08-01 13:31:20 +02:00
Nebojsa Vuksic
b603edf110 Use localized string for weather time display in WeatherDetailsCard 2025-08-01 13:18:33 +02:00
Nebojsa Vuksic
376292e5f8 Refactor: Replace id with label for improved naming clarity 2025-08-01 13:18:06 +02:00
Nebojsa Vuksic
324fea18bf Add documentation for PreviewableItem interface 2025-08-01 13:00:41 +02:00
Nebojsa Vuksic
ef4e5c8c6c Refactor: Rename isSearchApplicable to matches for clarity and consistency 2025-08-01 13:00:03 +02:00
Nebojsa Vuksic
8fe4926fb7 Drop 'internal' modifier for readability and shortness of examples 2025-08-01 12:57:39 +02:00
Nebojsa Vuksic
edb8fb0b28 Properly notify parents when SearchBarWithAutoCompletion text field text is cleared 2025-08-01 12:57:39 +02:00
Nebojsa Vuksic
cb6c908769 Refactor: Improve completion handling logic in SearchBarWithAutoCompletion 2025-08-01 12:57:39 +02:00
Nebojsa Vuksic
5b4ff635c4 Use localized content description for Clear button icon 2025-08-01 12:57:39 +02:00
Nebojsa Vuksic
80a485b4bd Remove unnecessary PopupMenu modifiers 2025-08-01 12:57:39 +02:00
Nebojsa Vuksic
7996e74e24 Refactor: Introduce isInputFieldEmpty for clarity in SearchBarWithAutoCompletion 2025-08-01 12:57:39 +02:00
Nebojsa Vuksic
2eb729d331 Remove unnecessary content description in SearchBarWithAutoCompletion icon 2025-08-01 12:57:39 +02:00
Nebojsa Vuksic
267f35bbbc Replace onGloballyPositioned with onSizeChanged in SearchBarWithAutoCompletion 2025-08-01 12:57:39 +02:00
Nebojsa Vuksic
0657ead6a5 Remove unnecessary Column usage 2025-08-01 12:57:39 +02:00
Nebojsa Vuksic
5bae830655 Cleanup SearchBarWithAutoCompletion function parameters 2025-08-01 12:57:39 +02:00
Nebojsa Vuksic
a6435ba771 Refactor: Replace the param type 'LocationsProvider' with 'SearchAutoCompletionItemProvider' 2025-07-31 15:38:38 +02:00
Nebojsa Vuksic
25d2d25132 Extract ComposeBasedTestCase class for setting up Compose test 2025-07-31 15:33:49 +02:00
Nebojsa Vuksic
45ef9a28da Add additional test cases for MyLocationsList 2025-07-31 15:01:00 +02:00
Nebojsa Vuksic
e791d63d22 Add an empty list placeholder for MyLocationsList 2025-07-31 14:25:12 +02:00
Nebojsa Vuksic
88c1d4b4bd Add test dependencies and update libraries in build files 2025-07-31 14:12:51 +02:00
Nebojsa Vuksic
54e147242e Extract MyLocations Widget to a separate function 2025-07-31 10:45:24 +02:00
Nebojsa Vuksic
3dcefe6fed Fix: Preselecting location in MyLocations list 2025-07-30 14:33:53 +02:00
Nebojsa Vuksic
e9188b61cb Fix UI bugs with reloading weather data 2025-07-29 16:04:18 +02:00
Nebojsa Vuksic
da436500bf Increase font on wind and humidity texts 2025-07-29 15:47:26 +02:00
Nebojsa Vuksic
2a0daaa806 Use Bundle to load string resources 2025-07-29 15:47:03 +02:00
Nebojsa Vuksic
bafad75cea Use the arrow symbol for a wind direction 2025-07-29 15:43:30 +02:00
Nebojsa Vuksic
01d981038c Add a 7-Days forecast widget 2025-07-29 15:25:33 +02:00
Nebojsa Vuksic
b800d6bb17 Cleanup modifier usages 2025-07-29 15:21:44 +02:00
Nebojsa Vuksic
291a35b6bd Extract Weather colors to WeatherAppColor object 2025-07-29 15:00:11 +02:00
Nebojsa Vuksic
07ab7b2f05 Cleanup 2025-07-28 16:44:48 +02:00
Nebojsa Vuksic
4a5b2f32f6 Rename MyLocationsViewModel to WeatherAppViewModel 2025-07-28 16:19:57 +02:00