Java tutorial
// Copyright 2015 The Vanadium Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package io.v.android; import android.content.SharedPreferences; import com.google.common.base.Strings; import io.v.v23.OptionDefs; import io.v.v23.Options; import java8.util.Optional; import lombok.experimental.UtilityClass; @UtilityClass public class VOptionPreferenceUtils { public static Optional<Integer> readVLevel(final SharedPreferences prefs) { final String raw = prefs.getString(OptionDefs.LOG_VLEVEL, ""); try { return Optional.of(Integer.parseInt(raw)); } catch (final NumberFormatException | NullPointerException e) { return Optional.empty(); } } public static Optional<String> readVModule(final SharedPreferences prefs) { final String raw = prefs.getString(OptionDefs.LOG_VMODULE, ""); if (Strings.isNullOrEmpty(raw)) { return Optional.empty(); } else { return Optional.of(raw); } } public static Options getOptionsFromPreferences(final SharedPreferences prefs) { final Options opts = new Options(); /* It would be nice to copy this map naively, but Vanadium options are type-specific and Android stores some numeric preferences as strings. */ readVLevel(prefs).ifPresent(v -> opts.set(OptionDefs.LOG_VLEVEL, v)); readVModule(prefs).ifPresent(v -> opts.set(OptionDefs.LOG_VMODULE, v)); return opts; } }