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 Merged-In: I4a89fd753c14d4e23cdd7a79c1c950c8cdd8f07b
Loading
Please register or sign in to comment