move phone state listener to service