コード例 #1
0
ファイル: SubscriptionProvider.java プロジェクト: fkz/Podax
  @Override
  public Uri insert(Uri uri, ContentValues values) {
    if (values.size() == 0) return null;
    switch (_uriMatcher.match(uri)) {
      case SUBSCRIPTIONS:
        break;
      default:
        throw new IllegalArgumentException("Unknown URI");
    }

    if (Helper.isGPodderInstalled(getContext())) {
      ContentValues gpodderValues = new ContentValues();
      gpodderValues.put("url", values.getAsString(COLUMN_URL));
      getContext().getContentResolver().insert(Constants.GPODDER_URI, gpodderValues);
    }

    SQLiteDatabase db = _dbAdapter.getWritableDatabase();
    long id = db.insert("subscriptions", null, values);
    getContext().getContentResolver().notifyChange(URI, null);
    return ContentUris.withAppendedId(URI, id);
  }
コード例 #2
0
ファイル: SubscriptionProvider.java プロジェクト: fkz/Podax
  @Override
  public int delete(Uri uri, String where, String[] whereArgs) {
    switch (_uriMatcher.match(uri)) {
      case SUBSCRIPTIONS:
        break;
      case SUBSCRIPTION_ID:
        String extraWhere = COLUMN_ID + " = " + uri.getLastPathSegment();
        if (where != null) where = extraWhere + " AND " + where;
        else where = extraWhere;
        getContext()
            .getContentResolver()
            .delete(
                PodcastProvider.URI, "subscriptionId = ?", new String[] {uri.getLastPathSegment()});
        break;
      default:
        throw new IllegalArgumentException("Unknown URI");
    }

    SQLiteDatabase db = _dbAdapter.getWritableDatabase();

    if (Helper.isGPodderInstalled(getContext())) {
      // delete from gpodder
      Cursor c =
          db.query("subscriptions", new String[] {"url"}, where, whereArgs, null, null, null);
      while (c.moveToNext())
        getContext()
            .getContentResolver()
            .delete(Constants.GPODDER_URI, "url = ?", new String[] {c.getString(0)});
      c.close();
    }

    int count = db.delete("subscriptions", where, whereArgs);
    getContext().getContentResolver().notifyChange(URI, null);

    db.close();

    return count;
  }