Android Open Source - epgreader-android Database Handler






From Project

Back to project page epgreader-android.

License

The source code is released under:

Apache License

If you think the Android project epgreader-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.jeffpalm.android.util.urls;
/*  w ww. j  a va  2 s  .  c  o  m*/
import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.SystemClock;

final class DatabaseHandler {

  public interface CachedUrlResult {
    /**
     * @return the content of the url
     */
    String getBody();

    /**
     * @return the URL with prototcol and host
     */
    String getUrl();

    /**
     * @return the time in milliseconds when this entry watch cached or -1 if it was not cached. The
     *         time is determined by {@code DatabaseHandler#now()}.
     */
    long getTimeMillis();
  }

  private static final class UrlResultImpl implements CachedUrlResult {

    private final String url;
    private final String body;
    private final long timeMillis;

    public UrlResultImpl(String url, String body, long timeMillis) {
      this.url = url;
      this.body = body;
      this.timeMillis = timeMillis;
    }

    @Override
    public String getBody() {
      return body;
    }

    @Override
    public String getUrl() {
      return url;
    }

    @Override
    public long getTimeMillis() {
      return timeMillis;
    }

  }

  /**
   * Returns the formatted string for the result.
   * 
   * @param urlResult
   * @return the formatted string for the result
   */
  public static String toString(CachedUrlResult urlResult) {
    StringBuilder sb = new StringBuilder();
    sb.append("url=").append(urlResult.getUrl());
    sb.append(", timeMillis=").append(urlResult.getTimeMillis());
    return sb.toString();
  }

  private DatabaseHelper dbHelper;
  private SQLiteDatabase database;

  public DatabaseHandler(Context context) {
    dbHelper = new DatabaseHelper(context);

  }

  public void open() throws SQLException {
    database = dbHelper.getWritableDatabase();
  }

  public void close() {
    dbHelper.close();
  }

  public void clearTable(String tableName) {
    database.delete(tableName, null, null);
  }

  public void insertUrl(String url, String body) {
    ContentValues cv = new ContentValues();

    cv.put(DatabaseHelper.COLUMN_URL, url);
    cv.put(DatabaseHelper.COLUMN_BODY, body);
    cv.put(DatabaseHelper.COLUMN_DATETIME, now());

    database.insert(DatabaseHelper.TABLE_URLS, DatabaseHelper.COLUMN_URL, cv);
  }

  /** @return the time in millis used for timestamps. */
  public static long now() {
    return SystemClock.uptimeMillis();
  }

  public List<CachedUrlResult> getAll() {
    List<CachedUrlResult> urlResults = new ArrayList<CachedUrlResult>();
    Cursor cursor = database.rawQuery("select " + DatabaseHelper.COLUMN_URL + ", "
        + DatabaseHelper.COLUMN_BODY + ", " + DatabaseHelper.COLUMN_DATETIME + " FROM "
        + DatabaseHelper.TABLE_URLS + " where 1", new String[] {});

    cursor.moveToFirst();
    while (!cursor.isAfterLast()) {
      String body = cursor.getString(0);
      String url = cursor.getString(1);
      long dateTime = cursor.getInt(2);
      urlResults.add(new UrlResultImpl(url, body, dateTime));
    }
    cursor.close();
    return urlResults;
  }

  /**
   * @param url the cached URL
   * @return the cached result for the URL or null
   */
  public CachedUrlResult getUrlResult(String url) {
    Cursor cursor = database.rawQuery("select " + DatabaseHelper.COLUMN_BODY + ", "
        + DatabaseHelper.COLUMN_DATETIME + " FROM " + DatabaseHelper.TABLE_URLS + " where "
        + DatabaseHelper.COLUMN_URL + " = ?", new String[] { url });

    cursor.moveToFirst();
    while (!cursor.isAfterLast()) {
      String body = cursor.getString(0);
      long dateTime = cursor.getInt(1);
      return new UrlResultImpl(url, body, dateTime);
    }
    cursor.close();

    // Didn't find the url
    return null;
  }

  /**
   * @return the number of cached entries.
   */
  public int getNumEntries() {
    Cursor cursor = database.rawQuery("select count(*) where 1", new String[] {});
    cursor.moveToFirst();
    int numEntries = cursor.getInt(0);
    cursor.close();
    return numEntries;
  }

}




Java Source Code List

com.example.android.imagedownloader.ImageDownloader.java
com.jeffpalm.android.epg.AbstractEPGItem.java
com.jeffpalm.android.epg.AbstractEPGNode.java
com.jeffpalm.android.epg.EPGContentTest.java
com.jeffpalm.android.epg.EPGContent.java
com.jeffpalm.android.epg.EPGIndexTest.java
com.jeffpalm.android.epg.EPGIndex.java
com.jeffpalm.android.epg.EPGItemTestCase.java
com.jeffpalm.android.epg.EPGItem.java
com.jeffpalm.android.epg.EPGLinkItemTest.java
com.jeffpalm.android.epg.EPGLinkItem.java
com.jeffpalm.android.epg.EPGNode.java
com.jeffpalm.android.epg.EPGParserTest.java
com.jeffpalm.android.epg.EPGParser.java
com.jeffpalm.android.epg.EPGSectionTest.java
com.jeffpalm.android.epg.EPGSection.java
com.jeffpalm.android.epg.EPGTestUtil.java
com.jeffpalm.android.epg.EPG.java
com.jeffpalm.android.epg.app.DefaultOnActivityCreatedNotifier.java
com.jeffpalm.android.epg.app.EPGApplication.java
com.jeffpalm.android.epg.app.EPGReaderConstants.java
com.jeffpalm.android.epg.app.EPGReaderFragment.java
com.jeffpalm.android.epg.app.EPGReaderItemListFragment.java
com.jeffpalm.android.epg.app.EPGReaderPreferencesActivity.java
com.jeffpalm.android.epg.app.EPGReaderSharedPrefs.java
com.jeffpalm.android.epg.app.EPGReaderUrlFinder.java
com.jeffpalm.android.epg.app.EPGReaderUtil.java
com.jeffpalm.android.epg.app.Feature.java
com.jeffpalm.android.epg.app.FeedLoader.java
com.jeffpalm.android.epg.app.HeaderFragment.java
com.jeffpalm.android.epg.app.ItemListActivity.java
com.jeffpalm.android.epg.app.ItemListAdapter.java
com.jeffpalm.android.epg.app.ItemListFragment.java
com.jeffpalm.android.epg.app.NoContentFragment.java
com.jeffpalm.android.epg.app.OnActivityCreatedNotifier.java
com.jeffpalm.android.epg.app.PhotoGalleryAdapter.java
com.jeffpalm.android.epg.app.PhotoGalleryFragment.java
com.jeffpalm.android.epg.app.PhotoItemFragment.java
com.jeffpalm.android.epg.app.VideoItemFragment.java
com.jeffpalm.android.epg.app.WebItemFragment.java
com.jeffpalm.android.tmz.model.AbstractTMZItem.java
com.jeffpalm.android.tmz.model.AbstractTMZNode.java
com.jeffpalm.android.tmz.model.DefaultTMZAdapter.java
com.jeffpalm.android.tmz.model.TMZAdapter.java
com.jeffpalm.android.tmz.model.TMZContentCache.java
com.jeffpalm.android.tmz.model.TMZContentTest.java
com.jeffpalm.android.tmz.model.TMZContent.java
com.jeffpalm.android.tmz.model.TMZFactoryHelper.java
com.jeffpalm.android.tmz.model.TMZFactoryHolder.java
com.jeffpalm.android.tmz.model.TMZFactoryTest.java
com.jeffpalm.android.tmz.model.TMZFactory.java
com.jeffpalm.android.tmz.model.TMZIndexTest.java
com.jeffpalm.android.tmz.model.TMZIndexWrapperTest.java
com.jeffpalm.android.tmz.model.TMZIndexWrapper.java
com.jeffpalm.android.tmz.model.TMZIndex.java
com.jeffpalm.android.tmz.model.TMZItemTestCase.java
com.jeffpalm.android.tmz.model.TMZItem.java
com.jeffpalm.android.tmz.model.TMZLinkItemTest.java
com.jeffpalm.android.tmz.model.TMZLinkItem.java
com.jeffpalm.android.tmz.model.TMZNode.java
com.jeffpalm.android.tmz.model.TMZSectionTest.java
com.jeffpalm.android.tmz.model.TMZSection.java
com.jeffpalm.android.tmz.model.TMZTestCase.java
com.jeffpalm.android.tmz.model.TMZTestUtil.java
com.jeffpalm.android.tmz.model.TMZTest.java
com.jeffpalm.android.tmz.model.TMZWrapperTest.java
com.jeffpalm.android.tmz.model.TMZWrapper.java
com.jeffpalm.android.tmz.model.TMZ.java
com.jeffpalm.android.util.Asserts.java
com.jeffpalm.android.util.ExpandableValueTest.java
com.jeffpalm.android.util.ExpandableValue.java
com.jeffpalm.android.util.ShiftSetTest.java
com.jeffpalm.android.util.ShiftSet.java
com.jeffpalm.android.util.TMZUrlFinderTest.java
com.jeffpalm.android.util.UtilTest.java
com.jeffpalm.android.util.Util.java
com.jeffpalm.android.util.urls.DatabaseHandler.java
com.jeffpalm.android.util.urls.DatabaseHelper.java
com.jeffpalm.android.util.urls.StringInputStream.java
com.jeffpalm.android.util.urls.URLCache.java
com.jeffpalm.android.util.urls.WriteToDatabaseOnCloseInputStream.java