Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 96109b02 authored by Malcolm Chen's avatar Malcolm Chen
Browse files

Avoid send back and forth message.

If there's back to back setUserDataEnabled request to DcTracker with
opposite decision, it may form an infinite loop between DcTracker and
MultiSimSettingController such that data enablement keeps flickering.

Steps to repro:
1) DcTracker received user data enable to true and sends a message to
MultiSimSettingController about it.
2) DcTracker received user data enable to false and sends a message to
MultiSimSettingController about it.
3) MultiSimSettingController handles message of data turning on, which
in return turns on DcTracker if subscription is grouped, and queues a
message in MultiSimSettingController to turn it on.
4) MultiSimSettingController handles message of data turning off, which
in return turns off DcTracker if subscription is grouped, and queues a
message in MultiSimSettingController to turn it on.

3 and 4 enters an ifinite loop of flickering it on and off.

Fix is do not re-propagate the message from DcTracker to MultiSimSettingController
if it's already handling a userDataEnable event.

Bug: 138933419
Test: unittest
Change-Id: I4a89fd753c14d4e23cdd7a79c1c950c8cdd8f07b
parent a83264fb
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment