Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@cka-dev
Copy link
Contributor

@cka-dev cka-dev commented Oct 27, 2025

Bug: 452728815, 45088030, 455513544
Change-Id: I98d6fc54a0315f91e7892526bdaa5019cc008f8f

Bug: 452728815, 45088030, 455513544
Change-Id: I98d6fc54a0315f91e7892526bdaa5019cc008f8f
@cka-dev cka-dev requested a review from romanofranz as a code owner October 27, 2025 11:23
@gemini-code-assist
Copy link

Summary of Changes

Hello @cka-dev, 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 primarily focuses on migrating the application's Ink API dependency to its beta01 version. This upgrade necessitated widespread changes to how StockBrushes are referenced throughout the codebase, moving from property access to function calls. Additionally, the update includes a refinement to the brush selection logic to prevent unintended overwrites of user-chosen brushes and an improvement to the eraser's geometric calculations.

Highlights

  • Ink API Migration: The Ink library dependency has been updated from version "1.0.0-alpha05" to "1.0.0-beta01" in gradle/libs.versions.toml.
  • StockBrushes API Update: All direct property accesses to StockBrushes (e.g., markerLatest, highlighterLatest) have been replaced with their corresponding function calls (e.g., marker(), highlighter()) across the codebase to align with the new beta API.
  • Custom Brush Persistence Logic: A new isBrushSelectedInSession flag has been introduced in DrawingCanvasViewModel to prevent a user's explicitly selected brush from being overridden by a previously saved brush family when a note is loaded.
  • Eraser Implementation Refinement: The eraser functionality in DrawingCanvasViewModel has been updated to use MutableParallelogram().populateFromSegmentAndPadding() for more robust segment and padding handling.
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

@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 successfully migrates the Ink API to beta01 and updates the brush handling logic. The API changes from the Ink library update, such as replacing StockBrushes.xxxLatest with StockBrushes.xxx(), have been applied correctly across the codebase. I have one suggestion regarding the new isBrushSelectedInSession flag to ensure consistent behavior for the user when modifying brush properties.

Comment on lines +128 to 136
if (!isBrushSelectedInSession) {
val customBrush = customBrushes.value.find {
it.brushFamily.clientBrushFamilyId == id
}
customBrush?.let {
_selectedBrush.value =
_selectedBrush.value.copy(family = it.brushFamily)
}
}

Choose a reason for hiding this comment

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

medium

The introduction of isBrushSelectedInSession is a good improvement to prevent the selected brush from being reset. However, this flag is only set in changeBrush() and changeBrushAndSize(). For more consistent and predictable behavior, you should consider also setting isBrushSelectedInSession = true within changeBrushColor() and changeBrushSize().

Currently, if a user only changes the brush color or size (without changing the brush family), isBrushSelectedInSession remains false. This could lead to their color/size adjustments being unexpectedly overridden if the note data reloads, as the brush family would be reset to the one stored in the note. Treating any user modification to the brush as a 'selection' for the session would prevent this confusion.

Bug: 452728815, 45088030, 455513544
Change-Id: I5e4ffdaa27db3f122d1046f90819006c17e037ca
@cka-dev cka-dev merged commit 3c00d7a into main Oct 27, 2025
2 checks passed
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.

3 participants