@@ -41,8 +41,10 @@ public class Settings {
4141 private final Preferences preferences = Preferences .userNodeForPackage (iSongs .class );
4242 /** A list with the registered {@link DarkModeListener}s. */
4343 private final List <DarkModeListener > listeners = new ArrayList <>();
44+ /** A list with the registered {@link LanguageListener}s. */
4445 private final List <LanguageListener > languageListeners = new ArrayList <>();
4546
47+ /** The cached locale. */
4648 private Locale locale = null ;
4749
4850 /**
@@ -129,13 +131,24 @@ public String getSavePath() {
129131 return preferences .get (Key .PATH , "" );
130132 }
131133
134+ /**
135+ * Returns the lastly stored locale.
136+ *
137+ * @return the locale to be used
138+ */
132139 public Locale getLocale () {
133140 if (locale == null ) {
134141 locale = Locale .fromName (preferences .get (Key .LOCALE , "" ));
135142 }
136143 return locale ;
137144 }
138145
146+ /**
147+ * Sets the given locale as the new locale for the app.
148+ * Calls the registered language listeners with the given locale.
149+ *
150+ * @param locale the new locale to be used
151+ */
139152 public void setLocale (final Locale locale ) {
140153 preferences .put (Key .LOCALE , locale .getName ());
141154 if (this .locale != locale ) {
@@ -283,10 +296,20 @@ public void removeDarkModeListener(final DarkModeListener listener) {
283296 listeners .remove (listener );
284297 }
285298
299+ /**
300+ * Registers the given {@link LanguageListener}.
301+ *
302+ * @param listener the listener to be registered
303+ */
286304 public void addLanguageListener (final LanguageListener listener ) {
287305 languageListeners .add (listener );
288306 }
289307
308+ /**
309+ * Removes the given {@link LanguageListener}.
310+ *
311+ * @param listener the listener to be removed
312+ */
290313 public void removeLanguageListeners (final LanguageListener listener ) {
291314 languageListeners .remove (listener );
292315 }
@@ -331,6 +354,7 @@ public static abstract class Key {
331354 public static final String URL = BUNDLE_ID + ".url" ;
332355 /** The key for the path. */
333356 public static final String PATH = BUNDLE_ID + ".path" ;
357+ /** The key for the locale to be used. */
334358 public static final String LOCALE = BUNDLE_ID + ".locale" ;
335359 }
336360}
0 commit comments