This CL fixes the ANR by moving possible blocking IDumpstateDevice
IPC call from main thread to background thread.
Settings develop options depends on IDumpstateDevice IPC call to
set and get Vendor Verbose Logging feature. The IPC may occasionally
get blocked in system_server which is extremely busy (e.g. during
bugreport generating). This may cause Settings app crashing with ANR.
Bug: 287126040
Bug: 280015761
Test: atest EnableVerboseVendorLoggingPreferenceControllerTest
Test: Verbose Vendor Logging regression
Test: Stress test (heavily trigger on/off during BR generating)
Merged-In: I0b88ef089097930b62dcb1cb7d6fe9990356ab5d
Change-Id: I0b88ef089097930b62dcb1cb7d6fe9990356ab5d
(cherry picked from commit f7b8d687bf)
IDumpstateDevice HAL switched to AIDL service in P22 devices.
This change will firstly apply to AIDL service if available and
fall back to HIDL service if not, making the feature work for
both HIDL an AIDL based devices.
Bug: 242634531
Test: make && make RunSettingsRoboTests
Change-Id: I4a2ec44092804574a60113e5be3df19b586bfa64
Robotests cases in EnableVerboseVendorLoggingPreferenceControllerTest
show all pass but actually they are all bypassed due to the fact that
the test class can not grant sepolicy permission as what Settings
app does.
This version introduces mock DumpstateDevice HAL to really
perform the Robotests cases.
This CL also clear up code format issues.
Bug: 149886908
Test: make && make RunSettingsRoboTests
Change-Id: I64025ebea60e18d17338604519a6cae98ca7928b