Fix race condition when accessing ClockChangeListener

Make sure clients register and unregister listeners on the main thread.

Only switch to background thread for `mutateSetting`, so mutate consecutively happened in order. The call site decides if they need a new job.

Bug: 274403822
Test: set clock options via WPP
Change-Id: I7c14ae912c551a78cee664793eef043e961e75a1
1 file changed