dotnet / dotnet/maui

Turn "initialization" into a first-class citizen in the mapper.

Open
#4,330 1 comment 1 reaction 1 assignee View on GitHub

Nobody has claimed this yet.

area-architecture proposal/open
Dominant language
C#
Stars
23.3k
Forks
2k
Avg merge
1d 14h
Merged PRs (30d)
296

Description

### Description

This [PR](https://github.com/dotnet/maui/pull/3372) introduced the idea of batching changes to reduce JNI calls. One of the current issues with this mechanism is that the initialization step of these Mapper properties is no longer replaceable. If a users replaces a mapper delegate for any of these properties then it will still propagate our logic through the custom JNI method and only update calls will call the user delegate. For the properties that are part of the initial PR we feel like this is going to cause minimal to no headaches but the problem will become more apparent once we start applying this strategy to more specific APIs (i.e. Label.Text, Label.TextColor, etc..)

### (Public) API Changes

### Proposed Ideas

#### Completely replace the SkipList with a mask

https://github.com/dotnet/maui/compare/main...jonathanpeppers:tests-androidbatchpropertymapper

### Usage Scenarios

TBD

### Backward Compatibility

N/A

### Difficulty

Medium

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.