i think for consistency this has to be setLocalePreferenceAndDefaultLocale (it is the same as setLocalePreference())

can you mention that the point of this is to also change the default locale and set preferences that might not contain the previous default locale? and move this method right after setLocalePreference?