Skip to content

fix: updated freakykit to latest#190

Merged
FreakyAli merged 4 commits intomasterfrom
fix/adding-tests
Apr 18, 2026
Merged

fix: updated freakykit to latest#190
FreakyAli merged 4 commits intomasterfrom
fix/adding-tests

Conversation

@FreakyAli
Copy link
Copy Markdown
Owner

@FreakyAli FreakyAli commented Apr 17, 2026

Summary by CodeRabbit

  • Chores

    • Updated NuGet dependencies: Svg.Skia to version 4.3.0 and FreakyEffects to 0.2.0
    • Updated sample app dependencies including CommunityToolkit.Maui, CommunityToolkit.Mvvm, and Android AppCompat
  • Bug Fixes

    • Improved image conversion handling on Android with better drawable-to-bitmap conversion

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 17, 2026

Warning

Rate limit exceeded

@FreakyAli has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 41 minutes and 30 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 41 minutes and 30 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: fee9f3cf-32a1-4a22-9258-ed3b08ec8e4f

📥 Commits

Reviewing files that changed from the base of the PR and between f79b385 and 62dcf67.

📒 Files selected for processing (1)
  • MAUI.FreakyControls/MAUI.FreakyControls/Extensions/Extensions.cs
📝 Walkthrough

Walkthrough

The PR refactors handler registration to use generic types with platform-specific conditionals, updates the ToNativeImageSourceAsync return type while restructuring platform-specific image conversion logic, bumps multiple NuGet dependencies, reorganizes MSBuild file inclusion rules with a new Apple platform re-add target, and adjusts handler namespace/conditional compilation.

Changes

Cohort / File(s) Summary
Handler Registration & Image Conversion
MAUI.FreakyControls/MAUI.FreakyControls/Extensions/Extensions.cs
Converts generic AddHandler<TControl, THandler>() calls with platform conditionals; changes ToNativeImageSourceAsync return type to non-nullable Task<NativeImage> while maintaining null returns in implementation; refactors Android drawable retrieval via service.GetDrawableAsync() without CurrentActivity fallback; removes platform-specific using directives.
Build Configuration & Packaging
MAUI.FreakyControls/MAUI.FreakyControls/Maui.FreakyControls.csproj
Adjusts <None Remove> entries for platform-specific folders; upgrades Svg.Skia (3.7.0→4.3.0) and FreakyEffects (0.1.6→0.2.0); converts FreakySignatureCanvasViewHandler.dotnet.cs compile handling to conditional net10.0- targeting; introduces MSBuild target _FreakyReAddApplePlatformFiles for Apple platform re-inclusion; removes MauiXaml update for SignaturePadView.xaml.
Sample Dependencies
MAUI.FreakyControls/Samples/Samples.csproj
Updates package versions: Xamarin.AndroidX.AppCompat (1.7.1.1→1.7.1.3), CommunityToolkit.Mvvm (8.4.0→8.4.2), CommunityToolkit.Maui (13.0.0→14.1.0), Microsoft.Maui.Controls (10.0.10→10.0.51).
Handler Namespace & Conditionals
MAUI.FreakyControls/MAUI.FreakyControls/Dotnet/FreakySignatureCanvasViewHandler.dotnet.cs
Moves FreakySignatureCanvasViewHandler and FreakyAutoCompleteViewHandler from Maui.FreakyControls.Dotnet to Maui.FreakyControls namespace; wraps compilation in #if !ANDROID && !IOS && !MACCATALYST && !WINDOWS.
File Formatting
MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/NativeControls/FreakyNativeAutoCompleteView.cs
Adds newline at end of file.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • fix: made changes for 16KB page sizes and removed unused code #185: Both PRs modify the same Extensions.cs file with changes to ToNativeImageSourceAsync and handler registration logic.
  • 176: Both PRs implement conditional handler registration and compile-time platform guards, with overlapping handler and platform build configuration changes.
  • 188: Both PRs alter Maui.FreakyControls.csproj MSBuild item inclusion/exclusion rules and platform-specific file globs.

Poem

🐰 Handlers now generic, platforms aligned,
Images convert where nulls were signed,
MSBuild targets weave iOS back in place,
Dependencies hop at a faster pace!

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'fix: updated freakykit to latest' is vague and generic, using non-descriptive terms that don't clearly convey the specific changes made in the changeset. Provide a more specific title that describes the main changes, such as 'fix: update dependencies and conditional platform handling' or 'fix: modernize handler registration and refactor image conversion'.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/adding-tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@MAUI.FreakyControls/MAUI.FreakyControls/Extensions/Extensions.cs`:
- Around line 68-78: The ToNativeImageSourceAsync method's signature
(Task<NativeImage>) is non-nullable but its implementation (returns
result?.Value and returns null on Android) can return null; revert the return
type to Task<NativeImage?> or make the method guarantee a non-null result (e.g.,
throw when image cannot be resolved or return a default/fallback NativeImage).
Update the signature of ToNativeImageSourceAsync accordingly and adjust callers
(Platforms/Apple/FreakyEntryHandler.cs and
Platforms/Android/FreakyEntryHandler.android.cs which currently perform `is not
null` checks) to match the chosen contract.
- Around line 75-87: The Android branch returns the internal Bitmap from a
BitmapDrawable (variable bd and bd.Bitmap) which shares ownership and can be
mutated or recycled; change the logic in the method containing
service.GetDrawableAsync so that even when drawable is a BitmapDrawable you
allocate a new Android.Graphics.Bitmap (ARGB_8888) and draw the drawable into it
(use Canvas, SetBounds, Draw) and return that fresh copy instead of bd.Bitmap to
avoid aliasing and lifetime issues.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6a9ffb47-68a5-43d0-8977-f125b10b1475

📥 Commits

Reviewing files that changed from the base of the PR and between e0cf9dd and f79b385.

📒 Files selected for processing (25)
  • MAUI.FreakyControls/MAUI.FreakyControls/Dotnet/FreakySignatureCanvasViewHandler.dotnet.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Extensions/Extensions.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Maui.FreakyControls.csproj
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/FreakyAutoCompleteViewHandler.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/FreakyButtonHandler.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/FreakyCircularImageHandler.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/FreakyDatePickerHandler.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/FreakyEditorHandler.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/FreakyEntryHandler.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/FreakyPickerHandler.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/FreakySignatureCanvasViewHandler.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/FreakyTimePickerHandler.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/NativeControls/FreakyCircularUIImageView.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/NativeControls/FreakyNativeAutoCompleteView.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/NativeControls/FreakyUITextView.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/NativeControls/FreakyUITextfield.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/NativeControls/Signature/ImageConstructionSettings.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/NativeControls/Signature/InkPresenter.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/NativeControls/Signature/InkStroke.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/NativeControls/Signature/PathSmoothing.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/NativeControls/Signature/SignaturePadCanvasView.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/NativeControls/Signature/SizeOrScale.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/NativeExtensions.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/TouchAndPressEffect.cs
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/TouchReleaseEffect.cs
✅ Files skipped from review due to trivial changes (1)
  • MAUI.FreakyControls/MAUI.FreakyControls/Platforms/Apple/NativeControls/FreakyNativeAutoCompleteView.cs
🚧 Files skipped from review as they are similar to previous changes (1)
  • MAUI.FreakyControls/MAUI.FreakyControls/Maui.FreakyControls.csproj

Comment thread MAUI.FreakyControls/MAUI.FreakyControls/Extensions/Extensions.cs Outdated
Comment thread MAUI.FreakyControls/MAUI.FreakyControls/Extensions/Extensions.cs
@FreakyAli FreakyAli merged commit e45f2d0 into master Apr 18, 2026
4 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.

2 participants