Preference live update function