Android Open Source - SimpleReader R S S Feed Category Provider






From Project

Back to project page SimpleReader.

License

The source code is released under:

Apache License

If you think the Android project SimpleReader 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.dreamteam.app.db.provider;
//w ww .  j  a  v  a  2 s  .  co  m
import com.dreamteam.app.db.DbManager;

import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;
import android.text.TextUtils;

public class RSSFeedCategoryProvider extends ContentProvider {
  public static final Uri CONTENT_URI = Uri.parse(
      "content://com.dreateam.app.ui.provider.category/categories");
  
  public static final String KEY_ID = "id";
  public static final String KEY_TITLE = "title";
  public static final String KEY_TABLE = "tname";
  public static final String KEY_DESCRIPTION = "description";
  public static final String KEY_IMAGEURL = "imag_url";
  
  public static final int ALLROWS = 1;
  public static final int SINGLE_ROW = 2;
  private static final UriMatcher uriMatcher;
  
  private DbManager sqliteHelper;
  
  static {
    uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
    uriMatcher.addURI("com.dreateam.app.ui.provider.category", "categories", ALLROWS);
    uriMatcher.addURI("com.dreateam.app.ui.provider.category", "categories/#", SINGLE_ROW);
  }
  
  @Override
  public boolean onCreate() {
    sqliteHelper = new DbManager(getContext(), DbManager.DB_NAME, 
        null, DbManager.DB_VERSION);
    return true;
  }

  @Override
  public String getType(Uri uri) {
    switch (uriMatcher.match(uri)) {
    case ALLROWS:
      return "vnd.android.cursor.dir/categories";
    case SINGLE_ROW:
      return "vnd.android.cursor.item/categories";
    default:
      throw new IllegalArgumentException("unsupport privider url");
    }
  }

  @Override
  public Cursor query(Uri uri, String[] projection, String selection,
      String[] selectionArgs, String sortOrder) {
    
    SQLiteDatabase db = sqliteHelper.getReadableDatabase();
    
    String groupBy = null;
    String having = null;
    
    SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
    queryBuilder.setTables(DbManager.RSS_CATEGORY_TABLE_NAME);
    
    switch(uriMatcher.match(uri)) {
      case SINGLE_ROW :
        //String rowId = uri.getPathSegments().get(1);
        long rowId = ContentUris.parseId(uri);
        queryBuilder.appendWhere(KEY_ID + "=" + rowId);
        break;
      default :
        break;
    }
    
    Cursor cursor = queryBuilder.query(db, projection, selection, selectionArgs, groupBy, 
        having, sortOrder);
    
    return cursor;
  }
  
  @Override
  public Uri insert(Uri uri, ContentValues values) {
    SQLiteDatabase db = sqliteHelper.getWritableDatabase();
    
    String nullColumnHack = null;
    
    long id = db.insert(DbManager.RSS_CATEGORY_TABLE_NAME, nullColumnHack, values);
    
    if(id > -1) {
      Uri insertedUri = ContentUris.withAppendedId(CONTENT_URI, id);
      
      getContext().getContentResolver().notifyChange(insertedUri, null);
      
      return insertedUri;
    }
    
    return null;
  }

  @Override
  public int delete(Uri uri, String selection, String[] selectionArgs) {
    SQLiteDatabase db = sqliteHelper.getWritableDatabase();
    
    switch(uriMatcher.match(uri)) {
    case SINGLE_ROW :
      // String rowId = uri.getPathSegments().get(1);
      
      long rowId = ContentUris.parseId(uri);
      
      selection = KEY_ID + "=" + rowId + (TextUtils.isEmpty(selection) ? "" : " and (" + selection + ")");
    default :
      break;
    }
    
    if(selection == null) {
      selection = "1";
    }
    
    int deleteCount = db.delete(DbManager.RSS_CATEGORY_TABLE_NAME, selection, selectionArgs);
    
    getContext().getContentResolver().notifyChange(uri, null);
    
    return deleteCount;
  }

  @Override
  public int update(Uri uri, ContentValues values, String selection,
      String[] selectionArgs) {
    SQLiteDatabase db = sqliteHelper.getWritableDatabase();
    
    switch(uriMatcher.match(uri)) {
    case SINGLE_ROW :
      String rowId = uri.getPathSegments().get(1);
      selection = KEY_ID + "=" + rowId + (TextUtils.isEmpty(selection) ? "" : " and (" + selection + ")");
    default :
      break;
    }
    
    int updateCount = db.update(DbManager.RSS_CATEGORY_TABLE_NAME, values, selection, selectionArgs);
    
    getContext().getContentResolver().notifyChange(uri, null);
    
    return updateCount;
  }
}




Java Source Code List

com.dreamteam.app.adapter.CategoryDetailAdapter.java
com.dreamteam.app.adapter.FeedCategoryAdapter.java
com.dreamteam.app.adapter.GridAdapter.java
com.dreamteam.app.adapter.GuideViewPagerAdapter.java
com.dreamteam.app.adapter.ItemListAdapter.java
com.dreamteam.app.adapter.MPagerAdapter.java
com.dreamteam.app.commons.AppConfig.java
com.dreamteam.app.commons.AppContext.java
com.dreamteam.app.commons.HtmlFilter.java
com.dreamteam.app.commons.IFlyHelper.java
com.dreamteam.app.commons.ItemListEntityParser.java
com.dreamteam.app.commons.SectionHelper.java
com.dreamteam.app.commons.SeriaHelper.java
com.dreamteam.app.commons.SkinManager.java
com.dreamteam.app.commons.UIHelper.java
com.dreamteam.app.config.Contants.java
com.dreamteam.app.db.DbManager.java
com.dreamteam.app.db.FavoItemDbHelper.java
com.dreamteam.app.db.FeedDBManager.java
com.dreamteam.app.db.provider.RSSFeedCategoryProvider.java
com.dreamteam.app.entity.FeedItem.java
com.dreamteam.app.entity.Feed.java
com.dreamteam.app.entity.ItemListEntity.java
com.dreamteam.app.entity.RSSFeedCategroy.java
com.dreamteam.app.entity.Section.java
com.dreamteam.app.img.FileCacheManager.java
com.dreamteam.app.img.FileCache.java
com.dreamteam.app.img.ICache.java
com.dreamteam.app.img.ImageLoadTask.java
com.dreamteam.app.img.ImageLoad.java
com.dreamteam.app.img.ImageLoader.java
com.dreamteam.app.img.MemoryCache.java
com.dreamteam.app.rss.Dates.java
com.dreamteam.app.rss.Integers.java
com.dreamteam.app.rss.MediaAttributes.java
com.dreamteam.app.rss.MediaEnclosure.java
com.dreamteam.app.rss.MediaThumbnail.java
com.dreamteam.app.rss.RSSBase.java
com.dreamteam.app.rss.RSSConfig.java
com.dreamteam.app.rss.RSSException.java
com.dreamteam.app.rss.RSSFault.java
com.dreamteam.app.rss.RSSFeed.java
com.dreamteam.app.rss.RSSHandler.java
com.dreamteam.app.rss.RSSItem.java
com.dreamteam.app.rss.RSSLoader.java
com.dreamteam.app.rss.RSSParserSPI.java
com.dreamteam.app.rss.RSSParser.java
com.dreamteam.app.rss.RSSReaderException.java
com.dreamteam.app.rss.RSSReader.java
com.dreamteam.app.rss.Resources.java
com.dreamteam.app.ui.About.java
com.dreamteam.app.ui.BaseActivity.java
com.dreamteam.app.ui.BaseTitledActivity.java
com.dreamteam.app.ui.CategoryDetailActivity.java
com.dreamteam.app.ui.ColorListActivity.java
com.dreamteam.app.ui.FavoriteItemList.java
com.dreamteam.app.ui.FeedCategoryActivity.java
com.dreamteam.app.ui.FeedbackUI.java
com.dreamteam.app.ui.GuideActivity.java
com.dreamteam.app.ui.ImageDialog.java
com.dreamteam.app.ui.ImagesBrowseActivity.java
com.dreamteam.app.ui.ItemDetailActivity.java
com.dreamteam.app.ui.ItemListActivity.java
com.dreamteam.app.ui.LocalImageBrowseActivity.java
com.dreamteam.app.ui.LoginDialog.java
com.dreamteam.app.ui.MainActivity.java
com.dreamteam.app.ui.Setting.java
com.dreamteam.app.ui.SplashActivity.java
com.dreamteam.app.ui.SwitchBgActivity.java
com.dreamteam.app.ui.WidgetProvider.java
com.dreamteam.app.ui.adapter.ColorListAdapter.java
com.dreamteam.app.utils.CategoryNameExchange.java
com.dreamteam.app.utils.DateUtils.java
com.dreamteam.app.utils.FileUtils.java
com.dreamteam.app.utils.HttpUtils.java
com.dreamteam.app.utils.ImageLoader.java
com.dreamteam.app.utils.ImageUtils.java
com.dreamteam.app.utils.Logger.java
com.dreamteam.app.utils.MD5.java
com.dreamteam.app.utils.StringUtils.java
com.dreamteam.app.wallpaper.ChildAdapter.java
com.dreamteam.app.wallpaper.GroupGridAdapter.java
com.dreamteam.app.wallpaper.ImageBean.java
com.dreamteam.app.wallpaper.MyImageView.java
com.dreamteam.app.wallpaper.NativeImageLoader.java
com.dreamteam.app.wallpaper.WallPaperManager.java
com.dreamteam.custom.ui.PathAnimations.java
com.dreamteam.custom.ui.PullToRefreshListView.java