Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 402280e

Browse files
move delta inference to framework
1 parent f082965 commit 402280e

File tree

2 files changed

+4
-77
lines changed

2 files changed

+4
-77
lines changed

shell/platform/android/io/flutter/plugin/editing/ListenableEditingState.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,12 +218,9 @@ public SpannableStringBuilder replace(
218218
mBatchTextEditingDeltas.add(
219219
new TextEditingDelta(
220220
oldText,
221-
toString(),
222221
start,
223222
end,
224223
tb,
225-
tbstart,
226-
tbend,
227224
getSelectionStart(),
228225
getSelectionEnd(),
229226
getComposingStart(),
@@ -285,7 +282,6 @@ public void setSpan(Object what, int start, int end, int flags) {
285282
new TextEditingDelta(
286283
toString(),
287284
"",
288-
"TextEditingDeltaType.nonTextUpdate",
289285
-1,
290286
-1,
291287
getSelectionStart(),

shell/platform/android/io/flutter/plugin/editing/TextEditingDelta.java

Lines changed: 4 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
public final class TextEditingDelta {
1515
private CharSequence oldText;
1616
private CharSequence deltaText;
17-
private CharSequence deltaType;
1817
private int deltaStart;
1918
private int deltaEnd;
2019
private int newSelectionStart;
@@ -26,12 +25,9 @@ public final class TextEditingDelta {
2625

2726
public TextEditingDelta(
2827
CharSequence oldEditable,
29-
CharSequence newEditable,
3028
int start,
3129
int end,
3230
CharSequence tb,
33-
int tbstart,
34-
int tbend,
3531
int selectionStart,
3632
int selectionEnd,
3733
int composingStart,
@@ -40,72 +36,14 @@ public TextEditingDelta(
4036
newSelectionEnd = selectionEnd;
4137
newComposingStart = composingStart;
4238
newComposingEnd = composingEnd;
43-
final boolean isDeletionGreaterThanOne = end - (start + tbend) > 1;
44-
final boolean isCalledFromDelete = tb == "" && tbstart == 0 && tbstart == tbend;
45-
46-
final boolean isReplacedByShorter = isDeletionGreaterThanOne && (tbend - tbstart < end - start);
47-
final boolean isReplacedByLonger = tbend - tbstart > end - start;
48-
final boolean isReplacedBySame = tbend - tbstart == end - start;
49-
50-
// Is deleting/inserting at the end of a composing region.
51-
final boolean isDeletingInsideComposingRegion = !isReplacedByShorter && start + tbend < end;
52-
final boolean isInsertingInsideComposingRegion = start + tbend > end;
53-
54-
// To consider the cases when autocorrect increases the length of the text being composed by
55-
// one, but changes more than one character.
56-
final boolean isOriginalComposingRegionTextChanged =
57-
(isCalledFromDelete || isDeletingInsideComposingRegion || isReplacedByShorter)
58-
|| !oldEditable
59-
.subSequence(start, end)
60-
.toString()
61-
.equals(tb.subSequence(tbstart, end - start).toString());
62-
63-
final boolean isEqual = oldEditable.equals(newEditable);
64-
65-
// A replacement means the original composing region has changed, anything else will be
66-
// considered an insertion.
67-
final boolean isReplaced =
68-
isOriginalComposingRegionTextChanged
69-
&& (isReplacedByLonger || isReplacedBySame || isReplacedByShorter);
70-
71-
if (isEqual) {
72-
Log.v(TAG, "A TextEditingDelta for an TextEditingDeltaType.nonTextUpdate has been created.");
73-
setDeltas(oldEditable, "", "TextEditingDeltaType.nonTextUpdate", -1, -1);
74-
} else if (isCalledFromDelete || isDeletingInsideComposingRegion) {
75-
Log.v(TAG, "A TextEditingDelta for a TextEditingDeltaType.deletion has been created.");
76-
final int startOfDelete;
77-
if (isDeletionGreaterThanOne) {
78-
startOfDelete = start;
79-
} else {
80-
startOfDelete = end - 1;
81-
}
82-
83-
setDeltas(oldEditable, "", "TextEditingDeltaType.deletion", startOfDelete, end);
84-
} else if ((start == end || isInsertingInsideComposingRegion)
85-
&& !isOriginalComposingRegionTextChanged) {
86-
Log.v(TAG, "A TextEditingDelta for an TextEditingDeltaType.insertion has been created.");
87-
setDeltas(
88-
oldEditable,
89-
tb.subSequence(end - start, tbend).toString(),
90-
"TextEditingDeltaType.insertion",
91-
end,
92-
end);
93-
} else if (isReplaced) {
94-
Log.v(TAG, "A TextEditingDelta for a TextEditingDeltaType.replacement has been created.");
95-
setDeltas(
96-
oldEditable,
97-
tb.subSequence(tbstart, tbend).toString(),
98-
"TextEditingDeltaType.replacement",
99-
start,
100-
end);
101-
}
39+
40+
setDeltas(oldEditable, tb.toString(), start, end);
10241
}
10342

10443
@VisibleForTesting
10544
public TextEditingDelta(
10645
CharSequence oldText,
10746
CharSequence deltaText,
108-
CharSequence deltaType,
10947
int deltaStart,
11048
int deltaEnd,
11149
int selectionStart,
@@ -117,7 +55,7 @@ public TextEditingDelta(
11755
newComposingStart = composingStart;
11856
newComposingEnd = composingEnd;
11957

120-
setDeltas(oldText, deltaText, deltaType, deltaStart, deltaEnd);
58+
setDeltas(oldText, deltaText, deltaStart, deltaEnd);
12159
}
12260

12361
public CharSequence getOldText() {
@@ -128,10 +66,6 @@ public CharSequence getDeltaText() {
12866
return deltaText;
12967
}
13068

131-
public CharSequence getDeltaType() {
132-
return deltaType;
133-
}
134-
13569
public int getDeltaStart() {
13670
return deltaStart;
13771
}
@@ -156,13 +90,11 @@ public int getNewComposingEnd() {
15690
return newComposingEnd;
15791
}
15892

159-
private void setDeltas(
160-
CharSequence oldTxt, CharSequence newTxt, CharSequence type, int newStart, int newExtent) {
93+
private void setDeltas(CharSequence oldTxt, CharSequence newTxt, int newStart, int newExtent) {
16194
oldText = oldTxt;
16295
deltaText = newTxt;
16396
deltaStart = newStart;
16497
deltaEnd = newExtent;
165-
deltaType = type;
16698
}
16799

168100
public JSONObject toJSON() {
@@ -171,7 +103,6 @@ public JSONObject toJSON() {
171103
try {
172104
delta.put("oldText", oldText.toString());
173105
delta.put("deltaText", deltaText.toString());
174-
delta.put("deltaType", deltaType.toString());
175106
delta.put("deltaStart", deltaStart);
176107
delta.put("deltaEnd", deltaEnd);
177108
delta.put("selectionBase", newSelectionStart);

0 commit comments

Comments
 (0)