All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.mle.android.util.BaseSettingsProvider.scala Maven / Gradle / Ivy

The newest version!
package com.mle.android.util

import android.content.SharedPreferences
import play.api.libs.json.{Reads, Writes}
import play.api.libs.json.Json._
import PreferenceImplicits._

/**
 *
 * @author mle
 */
trait BaseSettingsProvider {
  def prefs: SharedPreferences

  def loadStrings(key: String) = loadSeq[String](key)

  def save[T](key: String, values: Seq[T])(implicit tjs: Writes[T]): Unit =
    savePref(key, stringify(toJson(values)))

  def savePref(key: String, value: String): Unit =
    prefs.put(key, value)

  def loadSeqOrEmpty[T](key: String)(implicit tjs: Reads[T]) =
    loadSeq(key) getOrElse Seq.empty

  def loadSeq[T](key: String)(implicit tjs: Reads[T]): Option[Seq[T]] =
    loadString(key).map(str => parse(str).asOpt[Seq[T]].getOrElse(Seq.empty[T]))

  def loadString(key: String): Option[String] = Option(prefs.getString(key, null))
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy