Skip to content

fix: Keep proxy-chain deletion targets tied to stable row keys - #6200

Merged
2dust merged 1 commit into
2dust:masterfrom
eliotcougar:fix/proxy-chain-delete-target
Sep 10, 2026
Merged

2dust merged 1 commit into
2dust:masterfrom
eliotcougar:fix/proxy-chain-delete-target

Conversation

@eliotcougar

Copy link
Copy Markdown
Contributor

Store the pending member key instead of its list position and resolve that key when deletion is confirmed. Remove the member and its corresponding row key together; if the target no longer exists, leave the draft unchanged. Reuse the same key-based removal for blank members.

Store the pending member key instead of its list position and resolve that key when deletion is confirmed. Remove the member and its corresponding row key together; if the target no longer exists, leave the draft unchanged.

Extract the deletion fix from the accessibility assembly without importing accessibility actions, dialog wording changes, or drag refactors. Reuse the same key-based removal for blank members.

Validation: 75 JVM tests passed, including five deletion regressions; Play Store debug Kotlin compilation and x86_64 assembly passed. Emulator smoke check covered confirmation across rotation and immediate blank-member removal. Keyboard/D-pad and runtime reorder-during-confirmation scenarios were not run.
@eliotcougar

Copy link
Copy Markdown
Contributor Author

Compatibility note for #6202: Git can auto-merge these branches, but the resulting Kotlin source does not compile. This PR deliberately replaces memberToDeleteIndex with memberToDeleteKey; #6202's named chain-member confirmation is then inserted into that block while still referring to the removed index variable.

Preferred reconciliation: merge/rebase this stable-key fix first, then rebase #6202 and resolve the displayed member name through memberToDeleteKey plus memberKeys, never through a captured list index. The combined regression coverage should include reordering while the confirmation is open, verifying that both the displayed name and deletion target still refer to the same stable member.

@2dust
2dust merged commit 01b4758 into 2dust:master Sep 10, 2026
1 check passed
@eliotcougar
eliotcougar deleted the fix/proxy-chain-delete-target branch September 10, 2026 07:16
eliotcougar added a commit to eliotcougar/v2rayNG that referenced this pull request Sep 10, 2026
Upstream 2dust#6200 replaced pending member indices with stable keys. The textual rebase of 2dust#6202 retained an out-of-scope index reference in the confirmation text, breaking compilation.

Look up the current member name through memberKeys, using the same pending identity as deletion. Reordering no longer separates the displayed target from the member removed on confirmation.
Maolaohei pushed a commit to Maolaohei/v2rayNG that referenced this pull request Sep 11, 2026
Store the pending member key instead of its list position and resolve that key when deletion is confirmed. Remove the member and its corresponding row key together; if the target no longer exists, leave the draft unchanged.

Extract the deletion fix from the accessibility assembly without importing accessibility actions, dialog wording changes, or drag refactors. Reuse the same key-based removal for blank members.

Validation: 75 JVM tests passed, including five deletion regressions; Play Store debug Kotlin compilation and x86_64 assembly passed. Emulator smoke check covered confirmation across rotation and immediate blank-member removal. Keyboard/D-pad and runtime reorder-during-confirmation scenarios were not run.
(cherry picked from commit 01b4758)
jimmand pushed a commit to jimmand/v2rayNG that referenced this pull request Sep 14, 2026
Store the pending member key instead of its list position and resolve that key when deletion is confirmed. Remove the member and its corresponding row key together; if the target no longer exists, leave the draft unchanged.

Extract the deletion fix from the accessibility assembly without importing accessibility actions, dialog wording changes, or drag refactors. Reuse the same key-based removal for blank members.

Validation: 75 JVM tests passed, including five deletion regressions; Play Store debug Kotlin compilation and x86_64 assembly passed. Emulator smoke check covered confirmation across rotation and immediate blank-member removal. Keyboard/D-pad and runtime reorder-during-confirmation scenarios were not run.
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