package com.letv.ads.db; import java.util.ArrayList; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import com.letv.adlib.model.ad.common.CommonAdItem; import com.letv.adlib.model.ad.converters.CommonAdDataConverter; import com.letv.ads.util.ClientInfoUtil; import com.letv.ads.util.LogInfo; public class AdsDBHandler { /** * 保存广告 * */ public static void saveAd(Context context, String ad, CommonAdItem adInfo) { if (has(context, ad)) { remove(context, ad); } if (adInfo != null) { ContentValues contentValues = new ContentValues(); contentValues.put(DBConstant.AD, ad); contentValues.put(DBConstant.CONTENT, adInfo.AdJSONStr); context.getContentResolver().insert(AdsContentProviderForWB.URI_ADS, contentValues); } } /** * 得到广告 * */ public static ArrayList<CommonAdItem> getAd(Context context, String ad) { Cursor cursor = null; ArrayList<CommonAdItem> adInfo = null; try { cursor = context.getContentResolver().query(AdsContentProviderForWB.URI_ADS, null, DBConstant.AD + "= ?", new String[] { ad }, null); LogInfo.log("ads" , AdsContentProviderForWB.URI_ADS + " " + DBConstant.AD + " " +ad + " " + context + " " + cursor); if (cursor != null && cursor.getCount() > 0) { cursor.moveToNext(); String string = cursor.getString(cursor.getColumnIndexOrThrow(DBConstant.CONTENT)); adInfo = CommonAdDataConverter.convertWithJSONStrAndClientInfo(string, ClientInfoUtil.getBeginInfo(context)); } } finally { if (cursor != null && !cursor.isClosed()) { cursor.close(); } } return adInfo; } public static void update(Context context, String ad, CommonAdItem adInfo) { ContentValues contentValues = new ContentValues(); contentValues.put(DBConstant.AD, ad); contentValues.put(DBConstant.CONTENT, adInfo.AdJSONStr); context.getContentResolver().update(AdsContentProviderForWB.URI_ADS, contentValues, DBConstant.AD + "=?", new String[] { ad }); } /** * 删除全部收藏记录 * */ public static void clearAll(Context context) { context.getContentResolver().delete(AdsContentProviderForWB.URI_ADS, null, null); } /** * 删除一条记录 * */ public static void remove(Context context, String ad) { context.getContentResolver().delete(AdsContentProviderForWB.URI_ADS, DBConstant.AD + "=?", new String[] { ad }); } /** * 判断是否记录已存在 * */ public static boolean has(Context context, String ad) { Cursor cursor = null; try { cursor = context.getContentResolver().query(AdsContentProviderForWB.URI_ADS, null, DBConstant.AD + "=?", new String[] { ad }, null); if (cursor != null && cursor.getCount() > 0) { return true; } else { return false; } } finally { if (cursor != null && !cursor.isClosed()) { cursor.close(); } } } }