Skip to content

Fix permissions formatting logging 9989925042154523083#112

Closed
harrydbarnes wants to merge 12 commits intomainfrom
fix-permissions-formatting-logging-9989925042154523083
Closed

Fix permissions formatting logging 9989925042154523083#112
harrydbarnes wants to merge 12 commits intomainfrom
fix-permissions-formatting-logging-9989925042154523083

Conversation

@harrydbarnes
Copy link
Owner

No description provided.

google-labs-jules bot and others added 10 commits January 20, 2026 07:02
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
- Implemented permission result handling in MainActivity to refresh data or show feedback.
- Replaced hardcoded SimpleDateFormat with DateUtils in CalendarCard to respect user time format preference.
- Added TODO in MainViewModel regarding hardcoded news category.
- Replaced e.printStackTrace() with Log.e() in repositories for better error tracking.
- Added TAG constants to repositories.
- Implemented permission result handling in MainActivity.
- Replaced hardcoded date format with DateUtils in CalendarCard.
- Re-implemented dynamic news category selection in MainViewModel.
- Added isLoading state to MainViewModel.
- Replaced e.printStackTrace() with Log.e() in repositories.
- Updated repositories to return Boolean success/failure status.
- Implemented transactional replaceAll in ArticleDao/NewsRepository to prevent data loss.
- Implemented retry logic in WidgetUpdateWorker based on refresh success.
- Created missing colors.xml to fix build failure.
- Implemented settings navigation in HomeScreen.
- Implemented permission result handling in MainActivity.
- Replaced hardcoded date format with DateUtils in CalendarCard.
- Re-implemented dynamic news category selection in MainViewModel.
- Added isLoading state to MainViewModel.
- Fixed combine function signature in MainViewModel to handle 8 flows.
- Replaced e.printStackTrace() with Log.e() in repositories.
- Updated repositories to return Boolean success/failure status.
- Implemented transactional replaceAll in ArticleDao/NewsRepository to prevent data loss.
- Implemented retry logic in WidgetUpdateWorker based on refresh success.
- Created missing colors.xml to fix build failure.
- Implemented settings navigation in HomeScreen.
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @harrydbarnes, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request represents a substantial modernization effort, completely transforming the application's foundation. It transitions the codebase from an older Java-based Android View system to a contemporary Kotlin and Jetpack Compose framework, underpinned by a robust MVVM architecture with Hilt for dependency injection and Room for persistent data storage. This comprehensive refactoring aims to enhance the application's maintainability, scalability, and overall developer experience by adopting best practices in modern Android development.

Highlights

  • Full Migration to Kotlin and Jetpack Compose: The entire application has been migrated from Java and traditional Android Views (XML layouts, RecyclerView Adapters) to Kotlin and Jetpack Compose for UI development. This includes MainActivity, DayAheadWidget, and all associated UI components and data models.
  • Architectural Overhaul with MVVM, Hilt, and Room: The project now adheres to a modern MVVM (Model-View-ViewModel) architecture. Hilt has been integrated for dependency injection, and Room Persistence Library is used for local data caching across weather, news, and calendar events. This significantly improves data management and separation of concerns.
  • Introduction of Repository Pattern: New repository classes (WeatherRepository, NewsRepository, CalendarRepository, FunFactRepository) have been introduced to abstract data sources, providing a clean API for the ViewModel to interact with data, whether from network, local database, or other sources.
  • Reactive UI State Management: The MainViewModel has been refactored to use Kotlin Flow and StateFlow for managing and exposing UI state, enabling a more reactive and efficient data flow to the Compose UI.
  • Widget Update Worker Modernization: The WidgetUpdateWorker has been converted to a HiltWorker and updated to leverage the new repository pattern for fetching and processing data, ensuring consistency with the main application's data layer.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a significant architectural overhaul, migrating the application from a traditional Android View-based approach (Java, XML layouts, LiveData) to a modern, reactive architecture using Kotlin, Jetpack Compose for UI, Hilt for dependency injection, Room for local data persistence, and Kotlin Flows for data streams. This is a substantial improvement in maintainability, scalability, and developer experience. The changes are well-structured, introducing dedicated repositories for data handling and clearly separating concerns. The new Compose UI is set up correctly with theming and state management. Overall, this is a very positive and well-executed migration.

harrydbarnes and others added 2 commits January 21, 2026 09:31
…Repository.kt

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
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