It still needs some polishing and unit tests, which will be added later. Test: manual verification Bug: 63720392 Change-Id: I8da1094aaaf4ebbe5d388021e859265091fd429c