///*
// * Copyright (C) 2011-2012 asksven
// *
// * Licensed under the Apache License, Version 2.0 (the "License");
// * you may not use this file except in compliance with the License.
// * You may obtain a copy of the License at
// *
// * http://www.apache.org/licenses/LICENSE-2.0
// *
// * Unless required by applicable law or agreed to in writing, software
// * distributed under the License is distributed on an "AS IS" BASIS,
// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// * See the License for the specific language governing permissions and
// * limitations under the License.
// */
//package com.asksven.betterbatterystats.data;
//
///**
// * @author sven
// *
// */
//
//import java.io.IOException;
//import java.io.InputStream;
//import java.io.InputStreamReader;
//import java.io.Reader;
//import java.text.SimpleDateFormat;
//import java.util.Calendar;
//import java.util.List;
//
//import org.apache.http.HttpEntity;
//import org.apache.http.HttpResponse;
//import org.apache.http.HttpStatus;
//import org.apache.http.client.methods.HttpGet;
//import org.apache.http.impl.client.DefaultHttpClient;
//
//import android.content.Context;
//import android.content.Intent;
//import android.content.SharedPreferences;
//import android.preference.PreferenceManager;
//import android.util.Log;
//
//import com.asksven.betterbatterystats.LogSettings;
//import com.asksven.betterbatterystats.StatsActivity;
//import com.asksven.betterbatterystats.services.KbReaderService;
//import com.asksven.betterbatterystats.services.WriteBootReferenceService;
//import com.google.gson.Gson;
//
//public class KbReader
//{
// private static final String URL = "http://asksven.github.com/BetterBatteryStats-Knowledge-Base/kb_v1.0.json";
//
// private static long MAX_CACHE_AGE_MILLIS = 1000 * 60 * 1440; // 24 hours
//
// private static final String TAG = "KbReader";
//
// private static KbReader m_singleton = null;
//
// private KbData m_cache = null;
//
// private KbReader()
// {
//
// }
//
// public static KbReader getInstance()
// {
// if (m_singleton == null)
// {
// m_singleton = new KbReader();
// }
//
// return m_singleton;
// }
//
// public KbData read(Context ctx)
// {
// if (LogSettings.DEBUG)
// {
// Log.i(TAG, "read called");
// }
// if (m_cache == null)
// {
// if (LogSettings.DEBUG)
// {
// Log.i(TAG, "Cache is empty");
// }
// SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
//
// // first check if cache is present and not outdated
// KbDbHelper myDB = KbDbHelper.getInstance(ctx);
//
// List<KbEntry> myEntries = myDB.fetchAllRows();
//
// // if cache exists and is not outdaten use it
// long cachedMillis = sharedPrefs.getLong("cache_updated", 0);
// long dateMillis = Calendar.getInstance().getTimeInMillis();
// boolean useCaching = sharedPrefs.getBoolean("cache_kb", true);
//
// // if cache is not empty, cache not older than 24 hours and caching is on
// if ((myEntries != null) && (myEntries.size() > 0) && (useCaching) && ((dateMillis - cachedMillis) < MAX_CACHE_AGE_MILLIS))
// {
// m_cache = new KbData();
// m_cache.setEntries(myEntries);
// }
// else
// {
// if (LogSettings.DEBUG)
// {
// Log.i(TAG, "Starting service to retrieve KB");
// }
// // start async service to retrieve KB if not already running
// if (!KbReaderService.isTransactional())
// {
// Intent serviceIntent = new Intent(ctx, KbReaderService.class);
// ctx.startService(serviceIntent);
// }
// }
// }
// else
// {
// if (LogSettings.DEBUG)
// {
// Log.i(TAG, "returning cached KB");
// }
// }
// return m_cache;
// }
//}