Skip to content

Develop refactor architecture#37

Merged
MihaiCristianCondrea merged 57 commits intomasterfrom
develop_refactor_architecture
Mar 7, 2026
Merged

Develop refactor architecture#37
MihaiCristianCondrea merged 57 commits intomasterfrom
develop_refactor_architecture

Conversation

@MihaiCristianCondrea
Copy link
Owner

No description provided.

- Updated `LessonCard` to support different layouts based on lesson type (`SquareImageLessonItem` and `FullImageBannerLessonItem`).
- Added support for displaying lesson descriptions and tags (using `AssistChip` in a `LazyRow`) within lesson items.
- Added `lessonSquareImageUrl` to `ListingLesson` domain model, DTO, and UI state.
- Updated `ListingLessonMappers` to correctly map both thumbnail and square image URLs.
- Simplified `LessonListItem` by removing local banner types and renaming ad-related constants in `LessonConstants`.
- Refactored `LessonListLayout` to pass the full lesson object to `LessonCard` and updated item key logic.
- Modified domain mapping to validate lessons based on `lessonType` instead of `lessonId`.
- Updated `LessonCard` to support different layouts based on lesson type (`SquareImageLessonItem` and `FullImageBannerLessonItem`).
- Added support for displaying lesson descriptions and tags (using `AssistChip` in a `LazyRow`) within lesson items.
- Added `lessonSquareImageUrl` to `ListingLesson` domain model, DTO, and UI state.
- Updated `ListingLessonMappers` to correctly map both thumbnail and square image URLs.
- Simplified `LessonListItem` by removing local banner types and renaming ad-related constants in `LessonConstants`.
- Refactored `LessonListLayout` to pass the full lesson object to `LessonCard` and updated item key logic.
- Modified domain mapping to validate lessons based on `lessonType` instead of `lessonId`.
- Updated `ListingLessonMappers.kt` to provide a default deep link path using the lesson ID if the original path is blank.
- Refactored `LessonViewModel.kt` to use `catchReport` for error handling and reporting.
- Removed unused `FirebaseController` dependency from `LessonViewModel` and its dependency injection module.
- Updated snackbar timestamps in `LessonViewModel` to use `System.nanoTime()` for better precision.
…-template-based-architecture

Refactor listing pipeline for new template structure, fix manifest wiring and navigation
- Updated `ListingLessonMappers.kt` to provide a default deep link path using the lesson ID if the original path is blank.
- Refactored `LessonViewModel.kt` to use `catchReport` for error handling and reporting.
- Removed unused `FirebaseController` dependency from `LessonViewModel` and its dependency injection module.
- Updated snackbar timestamps in `LessonViewModel` to use `System.nanoTime()` for better precision.
- Updated the Android namespace to `com.d4rk.androidtutorials` in `build.gradle.kts`.
- Updated `FAQ_PRODUCT_ID` to `com.d4rk.androidtutorials` in `HelpConstants.kt`.
- Updated the Android namespace to `com.d4rk.androidtutorials` in `build.gradle.kts`.
- Updated `FAQ_PRODUCT_ID` to `com.d4rk.androidtutorials` in `HelpConstants.kt`.
- Updated the Android namespace to `com.d4rk.androidtutorials` in `build.gradle.kts`.
- Updated `FAQ_PRODUCT_ID` to `com.d4rk.androidtutorials` in `HelpConstants.kt`.
- Updated the Android namespace to `com.d4rk.androidtutorials` in `build.gradle.kts`.
- Updated `FAQ_PRODUCT_ID` to `com.d4rk.androidtutorials` in `HelpConstants.kt`.
- Updated the Android namespace to `com.d4rk.androidtutorials` in `build.gradle.kts`.
- Updated `FAQ_PRODUCT_ID` to `com.d4rk.androidtutorials` in `HelpConstants.kt`.
- Removed `FavoritesScreen` and `BannerAdView` in favor of a unified listing infrastructure.
- Renamed `LessonListLayout` to `ListingColumn` and refactored it to use a new rendering system.
- Introduced `ListingSectionRenderer` to handle different lesson types and ads dynamically.
- Refactored `LessonCard` into a generic container, moving specific content implementations to `SquareImageLessonItem` and `FullImageBannerLessonItem`.
- Updated `ListingScreen` to handle lesson filtering for "All" and "Favorites" modes locally.
- Organized list item views into a new `ui.views.list` package structure.
- Removed `ListingListItemMappers` as the mapping logic was integrated into the renderer.
- Removed `FavoritesScreen` and `BannerAdView` in favor of a unified listing infrastructure.
- Renamed `LessonListLayout` to `ListingColumn` and refactored it to use a new rendering system.
- Introduced `ListingSectionRenderer` to handle different lesson types and ads dynamically.
- Refactored `LessonCard` into a generic container, moving specific content implementations to `SquareImageLessonItem` and `FullImageBannerLessonItem`.
- Updated `ListingScreen` to handle lesson filtering for "All" and "Favorites" modes locally.
- Organized list item views into a new `ui.views.list` package structure.
- Removed `ListingListItemMappers` as the mapping logic was integrated into the renderer.
- Modified the item key generation logic to ensure uniqueness by combining the ID (or type) with the index.
- Added `ToggleLessonFavorite` and `ShareLesson` events to `ListingEvent`.
- Added `ShareLessonAction` to handle lesson sharing via intent.
- Implemented `toggleFavorite` logic in `ListingViewModel` to update UI state.
- Updated `ListingScreen` to handle share and open details actions using `LaunchedEffect`.
- Modified `SquareImageLessonItem` and `FullImageBannerLessonItem` to include favorite and share buttons.
- Added `LessonTagsRow` and `LessonButtonsRow` reusable components for lesson cards.
- Refactored `LessonCard` to remove `bounceClick` modifier, moving it to specific action buttons.
- Added helper functions for safe activity starting and sharing intent creation.
- Added `ToggleLessonFavorite` and `ShareLesson` events to `ListingEvent`.
- Added `ShareLessonAction` to handle lesson sharing via intent.
- Implemented `toggleFavorite` logic in `ListingViewModel` to update UI state.
- Updated `ListingScreen` to handle share and open details actions using `LaunchedEffect`.
- Modified `SquareImageLessonItem` and `FullImageBannerLessonItem` to include favorite and share buttons.
- Added `LessonTagsRow` and `LessonButtonsRow` reusable components for lesson cards.
- Refactored `LessonCard` to remove `bounceClick` modifier, moving it to specific action buttons.
- Added helper functions for safe activity starting and sharing intent creation.
- Added `ToggleLessonFavorite` and `ShareLesson` events to `ListingEvent`.
- Added `ShareLessonAction` to handle lesson sharing via intent.
- Implemented `toggleFavorite` logic in `ListingViewModel` to update UI state.
- Updated `ListingScreen` to handle share and open details actions using `LaunchedEffect`.
- Modified `SquareImageLessonItem` and `FullImageBannerLessonItem` to include favorite and share buttons.
- Added `LessonTagsRow` and `LessonButtonsRow` reusable components for lesson cards.
- Refactored `LessonCard` to remove `bounceClick` modifier, moving it to specific action buttons.
- Added helper functions for safe activity starting and sharing intent creation.
- Added `ToggleLessonFavorite` and `ShareLesson` events to `ListingEvent`.
- Added `ShareLessonAction` to handle lesson sharing via intent.
- Implemented `toggleFavorite` logic in `ListingViewModel` to update UI state.
- Updated `ListingScreen` to handle share and open details actions using `LaunchedEffect`.
- Modified `SquareImageLessonItem` and `FullImageBannerLessonItem` to include favorite and share buttons.
- Added `LessonTagsRow` and `LessonButtonsRow` reusable components for lesson cards.
- Refactored `LessonCard` to remove `bounceClick` modifier, moving it to specific action buttons.
- Added helper functions for safe activity starting and sharing intent creation.
- Added `ToggleLessonFavorite` and `ShareLesson` events to `ListingEvent`.
- Added `ShareLessonAction` to handle lesson sharing via intent.
- Implemented `toggleFavorite` logic in `ListingViewModel` to update UI state.
- Updated `ListingScreen` to handle share and open details actions using `LaunchedEffect`.
- Modified `SquareImageLessonItem` and `FullImageBannerLessonItem` to include favorite and share buttons.
- Added `LessonTagsRow` and `LessonButtonsRow` reusable components for lesson cards.
- Refactored `LessonCard` to remove `bounceClick` modifier, moving it to specific action buttons.
- Added helper functions for safe activity starting and sharing intent creation.
- Added `ToggleLessonFavorite` and `ShareLesson` events to `ListingEvent`.
- Added `ShareLessonAction` to handle lesson sharing via intent.
- Implemented `toggleFavorite` logic in `ListingViewModel` to update UI state.
- Updated `ListingScreen` to handle share and open details actions using `LaunchedEffect`.
- Modified `SquareImageLessonItem` and `FullImageBannerLessonItem` to include favorite and share buttons.
- Added `LessonTagsRow` and `LessonButtonsRow` reusable components for lesson cards.
- Refactored `LessonCard` to remove `bounceClick` modifier, moving it to specific action buttons.
- Added helper functions for safe activity starting and sharing intent creation.
- Added `ToggleLessonFavorite` and `ShareLesson` events to `ListingEvent`.
- Added `ShareLessonAction` to handle lesson sharing via intent.
- Implemented `toggleFavorite` logic in `ListingViewModel` to update UI state.
- Updated `ListingScreen` to handle share and open details actions using `LaunchedEffect`.
- Modified `SquareImageLessonItem` and `FullImageBannerLessonItem` to include favorite and share buttons.
- Added `LessonTagsRow` and `LessonButtonsRow` reusable components for lesson cards.
- Refactored `LessonCard` to remove `bounceClick` modifier, moving it to specific action buttons.
- Added helper functions for safe activity starting and sharing intent creation.
- Added `ToggleLessonFavorite` and `ShareLesson` events to `ListingEvent`.
- Added `ShareLessonAction` to handle lesson sharing via intent.
- Implemented `toggleFavorite` logic in `ListingViewModel` to update UI state.
- Updated `ListingScreen` to handle share and open details actions using `LaunchedEffect`.
- Modified `SquareImageLessonItem` and `FullImageBannerLessonItem` to include favorite and share buttons.
- Added `LessonTagsRow` and `LessonButtonsRow` reusable components for lesson cards.
- Refactored `LessonCard` to remove `bounceClick` modifier, moving it to specific action buttons.
- Added helper functions for safe activity starting and sharing intent creation.
- Added `ToggleLessonFavorite` and `ShareLesson` events to `ListingEvent`.
- Added `ShareLessonAction` to handle lesson sharing via intent.
- Implemented `toggleFavorite` logic in `ListingViewModel` to update UI state.
- Updated `ListingScreen` to handle share and open details actions using `LaunchedEffect`.
- Modified `SquareImageLessonItem` and `FullImageBannerLessonItem` to include favorite and share buttons.
- Added `LessonTagsRow` and `LessonButtonsRow` reusable components for lesson cards.
- Refactored `LessonCard` to remove `bounceClick` modifier, moving it to specific action buttons.
- Added helper functions for safe activity starting and sharing intent creation.
- Added `ToggleLessonFavorite` and `ShareLesson` events to `ListingEvent`.
- Added `ShareLessonAction` to handle lesson sharing via intent.
- Implemented `toggleFavorite` logic in `ListingViewModel` to update UI state.
- Updated `ListingScreen` to handle share and open details actions using `LaunchedEffect`.
- Modified `SquareImageLessonItem` and `FullImageBannerLessonItem` to include favorite and share buttons.
- Added `LessonTagsRow` and `LessonButtonsRow` reusable components for lesson cards.
- Refactored `LessonCard` to remove `bounceClick` modifier, moving it to specific action buttons.
- Added helper functions for safe activity starting and sharing intent creation.
- Added `ToggleLessonFavorite` and `ShareLesson` events to `ListingEvent`.
- Added `ShareLessonAction` to handle lesson sharing via intent.
- Implemented `toggleFavorite` logic in `ListingViewModel` to update UI state.
- Updated `ListingScreen` to handle share and open details actions using `LaunchedEffect`.
- Modified `SquareImageLessonItem` and `FullImageBannerLessonItem` to include favorite and share buttons.
- Added `LessonTagsRow` and `LessonButtonsRow` reusable components for lesson cards.
- Refactored `LessonCard` to remove `bounceClick` modifier, moving it to specific action buttons.
- Added helper functions for safe activity starting and sharing intent creation.
…o-bot-to-use-app-toolkit-architecture

Refactor Studio Bot: add conversations layer and local Room persistence
…o-bot-architecture-and-ui

Refactor Studio Bot into host + conversations architecture with persistence
…details

- Moved `StudioBotEntryBuilder` from `studiobot.chat.ui.navigation` to `studiobot.ui.navigation` and updated associated imports.
- Renamed `anim_splash_screen.xml` to `anim_splash.xml`.
- Refactored `StudiobotViewModel` to use `androidx.core.content.edit` for SharedPreferences updates and explicitly invoked `observeConversationsUseCase`.
- Added a FIXME comment in `StudiobotScreen` regarding the use of `LocalConfiguration` for screen width detection.
…details

- Moved `StudioBotEntryBuilder` from `studiobot.chat.ui.navigation` to `studiobot.ui.navigation` and updated associated imports.
- Renamed `anim_splash_screen.xml` to `anim_splash.xml`.
- Refactored `StudiobotViewModel` to use `androidx.core.content.edit` for SharedPreferences updates and explicitly invoked `observeConversationsUseCase`.
- Added a FIXME comment in `StudiobotScreen` regarding the use of `LocalConfiguration` for screen width detection.
- Added `LessonCodeContent` component to display and copy code snippets.
- Updated `Lesson` domain model, DTOs, and UI state to include `contentCode` and `programmingLanguage`.
- Integrated `CODE`, `AD_BANNER_FULL`, and `FULL_IMAGE_BANNER` types into `LessonSectionRenderer`.
- Added `SelectStartupScreenAlertDialog` to `AppDisplaySettingsProvider`.
- Refactored `LessonWriterFooterItem` to use the new `lesson_written_by` string resource.
- Cleaned up redundant permission summaries and language arrays across multiple `strings.xml` locales.
- Added `font_google_sans_code.ttf` for monospace code rendering.
- Added `LessonCodeContent` component to display and copy code snippets.
- Updated `Lesson` domain model, DTOs, and UI state to include `contentCode` and `programmingLanguage`.
- Integrated `CODE`, `AD_BANNER_FULL`, and `FULL_IMAGE_BANNER` types into `LessonSectionRenderer`.
- Added `SelectStartupScreenAlertDialog` to `AppDisplaySettingsProvider`.
- Refactored `LessonWriterFooterItem` to use the new `lesson_written_by` string resource.
- Cleaned up redundant permission summaries and language arrays across multiple `strings.xml` locales.
- Added `font_google_sans_code.ttf` for monospace code rendering.
- Added `LessonCodeContent` component to display and copy code snippets.
- Updated `Lesson` domain model, DTOs, and UI state to include `contentCode` and `programmingLanguage`.
- Integrated `CODE`, `AD_BANNER_FULL`, and `FULL_IMAGE_BANNER` types into `LessonSectionRenderer`.
- Added `SelectStartupScreenAlertDialog` to `AppDisplaySettingsProvider`.
- Refactored `LessonWriterFooterItem` to use the new `lesson_written_by` string resource.
- Cleaned up redundant permission summaries and language arrays across multiple `strings.xml` locales.
- Added `font_google_sans_code.ttf` for monospace code rendering.
- Added `LessonCodeContent` component to display and copy code snippets.
- Updated `Lesson` domain model, DTOs, and UI state to include `contentCode` and `programmingLanguage`.
- Integrated `CODE`, `AD_BANNER_FULL`, and `FULL_IMAGE_BANNER` types into `LessonSectionRenderer`.
- Added `SelectStartupScreenAlertDialog` to `AppDisplaySettingsProvider`.
- Refactored `LessonWriterFooterItem` to use the new `lesson_written_by` string resource.
- Cleaned up redundant permission summaries and language arrays across multiple `strings.xml` locales.
- Added `font_google_sans_code.ttf` for monospace code rendering.
…-empty-chats-in-studio-bot

Avoid persisting empty Studio Bot conversations
…o-bot-architecture-and-ui-9rcs4b

Refine Studio Bot conversations flow and hide bottom nav on scroll
…ext-for-lessons

Update lesson sharing copy for listing screen
…-request-handling

Fix pagination append state race that triggered extra requests
…nversations-control

Add conversation list UI, back navigation, and conversation creation flow for Studio Bot
…e-to-dismiss-for-chats

Add Gmail-style swipe-to-delete for Studio Bot chat messages
…etodismissbox-for-chats

Add Gmail-like swipe-to-delete for Studio Bot conversations
- Added `LessonCodeContent` component to display and copy code snippets.
- Updated `Lesson` domain model, DTOs, and UI state to include `contentCode` and `programmingLanguage`.
- Integrated `CODE`, `AD_BANNER_FULL`, and `FULL_IMAGE_BANNER` types into `LessonSectionRenderer`.
- Added `SelectStartupScreenAlertDialog` to `AppDisplaySettingsProvider`.
- Refactored `LessonWriterFooterItem` to use the new `lesson_written_by` string resource.
- Cleaned up redundant permission summaries and language arrays across multiple `strings.xml` locales.
- Added `font_google_sans_code.ttf` for monospace code rendering.
…n existence, update the AppToolkit dependency source, and refine build configuration fields and packaging rules.
@MihaiCristianCondrea MihaiCristianCondrea merged commit 2c110db into master Mar 7, 2026
1 check failed
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.

1 participant