Preferences.java :  » UnTagged » oeffis » net » oeffis » Android Open Source

Android Open Source » UnTagged » oeffis 
oeffis » net » oeffis » Preferences.java
package net.oeffis;

import net.oeffis.data.DataClient;
import net.oeffis.data.qando.QandoClient;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.util.Log;

public class Preferences {

  private static final String TAG = Preferences.class.getCanonicalName();
  private static final String KEY_UPDATE_RATE = "updaterate";
  private static final String KEY_DATA_CLIENT = "dataclient";
  
  private Context context;
  private SharedPreferences sharedPrefs;
  
  public Preferences(Context context) {
    this.context = context;
    sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
  }
  
  public DataClient<?,?> getDataClient() {
    try {
      return getDataClientClass().getConstructor(Context.class).newInstance(context);
    } catch(Exception ex) {
      Log.e(TAG, "could not instantiate dataclient, using default", ex);
      return new QandoClient(context);
    }
  }
  
  @SuppressWarnings("unchecked")
  public Class<? extends DataClient<?,?>> getDataClientClass() {
    String className = sharedPrefs.getString(KEY_DATA_CLIENT, QandoClient.class.getName());
    try {
      return (Class<? extends DataClient<?,?>>) Class.forName(className);
    } catch(ClassNotFoundException ex) {
      Log.e(TAG, "could not find " + className + ", using default");
      return QandoClient.class;
    }
  }
  
  public int getUpdateRate() {
    try {
      return Integer.parseInt(sharedPrefs.getString(KEY_UPDATE_RATE, "23"));
    } catch(Exception ex) {
      Log.e(TAG, "failed to read updaterate setting, using failsafe");
      return 23;
    }
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.