LocaleManager { @NonNull public Locale getLocale() { if (getLocaleOverride() != null) { return getLocaleOverride(); } else { if (deviceLocale == null) { deviceLocale = ConfigurationCompat.getLocales(context.getResources().getConfiguration()).get(0); } return deviceLocale; } } @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)  LocaleManager(@NonNull Context context, @NonNull PreferenceDataStore preferenceDataStore); void addListener(@NonNull LocaleChangedListener listener); void removeListener(@NonNull LocaleChangedListener listener); void setLocaleOverride(@Nullable Locale locale); @NonNull Locale getLocale(); static final String LOCALE_OVERRIDE_LANGUAGE_KEY; static final String LOCALE_OVERRIDE_COUNTRY_KEY; static final String LOCALE_OVERRIDE_VARIANT_KEY; }
@Test public void testGetLocale() { Locale de = new Locale("de"); context.getResources().getConfiguration().setLocale(de); assertEquals(de, localeManager.getLocale()); }