@@ -314,34 +314,7 @@ private void updateShops() {
314314 }
315315
316316 private void setupSdk (Config config , final SetupCompletionListener setupCompletionListener ) {
317- updateShops ();
318-
319- Map <String , String > urls = metadataDownloader .getUrls ();
320- if (urls == null || urls .get ("appdb" ) == null ) {
321- Logger .e ("Metadata does not contain url for product database updates. No product database updates possible" );
322- }
323-
324- JsonObject projectSettings = metadataDownloader .getProject ();
325-
326- currency = Currency .getInstance (JsonUtils .getStringOpt (projectSettings , "currency" , "EUR" ));
327-
328- String locale = JsonUtils .getStringOpt (projectSettings , "locale" , "de_DE" );
329-
330- try {
331- currencyLocale = LocaleUtils .toLocale (locale );
332- } catch (IllegalArgumentException e ){
333- currencyLocale = Locale .getDefault ();
334- }
335-
336- if (currencyLocale == null ){
337- currencyLocale = Locale .getDefault ();
338- }
339-
340- currencyFractionDigits = JsonUtils .getIntOpt (projectSettings , "decimalDigits" , 2 );
341-
342- weighPrefixes = JsonUtils .getStringArrayOpt (projectSettings , "weighPrefixes" , new String [0 ]);
343- pricePrefixes = JsonUtils .getStringArrayOpt (projectSettings , "pricePrefixes" , new String [0 ]);
344- unitPrefixes = JsonUtils .getStringArrayOpt (projectSettings , "unitPrefixes" , new String [0 ]);
317+ readMetadata ();
345318
346319 ProductDatabase .Config dbConfig = new ProductDatabase .Config ();
347320 dbConfig .bundledAssetPath = config .productDbBundledAssetPath ;
@@ -379,6 +352,37 @@ public void onError(ProductDatabase.Error error) {
379352 });
380353 }
381354
355+ private void readMetadata () {
356+ updateShops ();
357+
358+ Map <String , String > urls = metadataDownloader .getUrls ();
359+ if (urls == null || urls .get ("appdb" ) == null ) {
360+ Logger .e ("Metadata does not contain url for product database updates. No product database updates possible" );
361+ }
362+
363+ JsonObject projectSettings = metadataDownloader .getProject ();
364+
365+ currency = Currency .getInstance (JsonUtils .getStringOpt (projectSettings , "currency" , "EUR" ));
366+
367+ String locale = JsonUtils .getStringOpt (projectSettings , "locale" , "de_DE" );
368+
369+ try {
370+ currencyLocale = LocaleUtils .toLocale (locale );
371+ } catch (IllegalArgumentException e ){
372+ currencyLocale = Locale .getDefault ();
373+ }
374+
375+ if (currencyLocale == null ){
376+ currencyLocale = Locale .getDefault ();
377+ }
378+
379+ currencyFractionDigits = JsonUtils .getIntOpt (projectSettings , "decimalDigits" , 2 );
380+
381+ weighPrefixes = JsonUtils .getStringArrayOpt (projectSettings , "weighPrefixes" , new String [0 ]);
382+ pricePrefixes = JsonUtils .getStringArrayOpt (projectSettings , "pricePrefixes" , new String [0 ]);
383+ unitPrefixes = JsonUtils .getStringArrayOpt (projectSettings , "unitPrefixes" , new String [0 ]);
384+ }
385+
382386 private void setupOk (final SetupCompletionListener setupCompletionListener ) {
383387 if (setupCompletionListener != null ) {
384388 setupCompletionListener .onReady (SnabbleSdk .this );
@@ -611,6 +615,8 @@ private void updateMetadata() {
611615 @ Override
612616 protected void onDataLoaded (boolean wasStillValid ) {
613617 if (!wasStillValid ) {
618+ readMetadata ();
619+
614620 for (OnMetadataUpdateListener listener : onMetaDataUpdateListeners ) {
615621 listener .onMetaDataUpdated ();
616622 }
0 commit comments