fix onPreferenceChange double call