android.database.sqlite.SQLiteQueryBuilder#setTables ( )源码实例Demo

下面列出了android.database.sqlite.SQLiteQueryBuilder#setTables ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: VyAPI   文件: ContactDBProvider.java
@Override
public Cursor query(Uri uri, String[] projection, String selection,
                    String[] selectionArgs, String sortOrder) {
    SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
    queryBuilder.setTables(contactDBHandler.CONTACTS_TABLE);

    int uriType = uriMatcher.match(uri);

    switch (uriType) {
        case SINGLE_CONTACT:
            queryBuilder.appendWhere(contactDBHandler.COLUMN_FNAME + "="
                    + uri.getLastPathSegment());
            break;
        case ALL_CONTACTS:
            break;
        default:
            throw new IllegalArgumentException("Unknown URI");
    }

    Cursor cursor = queryBuilder.query(contactDBHandler.getReadableDatabase(),
            projection, selection, selectionArgs, null, null,
            sortOrder);
    cursor.setNotificationUri(getContext().getContentResolver(),
            uri);
    return cursor;
}
 
/**
 * Return a Cursor that contains all FailedActionParameter records which matches the parameters.
 * 
 * @param failedActionID
 *          is id of failed action it belongs to, or null to fetch any
 * @param actionParameterName
 *          name of action parameter, or null to fetch any
 * @param failedActionParameterData
 *          is the data associated with this parameter, or null to fetch any
 * @return a Cursor that contains all FailedActionParameter records which matches the parameters.
 */
public Cursor fetchAll(Long failedActionID, String actionParameterName, 
    String failedActionParameterData) {

  SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
  qb.setTables(DATABASE_TABLE);
  qb.appendWhere("1=1");
  if (failedActionID != null) {
    qb.appendWhere(" AND " + KEY_FAILEDACTIONID + " = " + failedActionID);
  }
  if (actionParameterName != null) {
    qb.appendWhere(" AND " + KEY_ACTIONPARAMETERNAME + " = " + actionParameterName);
  }
  if (failedActionParameterData != null) {
    qb.appendWhere(" AND " + KEY_FAILEDACTIONPARAMETERDATA + " = ");
    qb.appendWhereEscapeString(failedActionParameterData);
  }
  // Not using additional selections, selectionArgs, groupBy, having, orderBy, set them to null.
  return qb.query(database, KEYS, null, null, null, null, null);
}
 
源代码3 项目: droitatedDB   文件: BaseContentProvider.java
@Override
public Cursor query(final Uri uri, final String[] projection, final String selection, final String[] selectionArgs, final String sortOrder) {
	SQLiteDatabase db = dbCreator.getDatabaseConnection();
	SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
	builder.setTables(getTableName());
	switch (uriMatcher.match(uri)) {
		case MATCH_DIR:
			return wrap(builder.query(db, projection, selection, selectionArgs, null, null, sortOrder), uri);
		case MATCH_ITEM:
			int id = Integer.parseInt(uri.getLastPathSegment());
			builder.appendWhere(getIdName() + " = " + id);
			return wrap(builder.query(db, projection, selection, selectionArgs, null, null, sortOrder), uri);
		default:
			throw new UnsupportedOperationException("Unsupported query Uri " + uri);
	}
}
 
源代码4 项目: app-indexing   文件: RecipeContentProvider.java
public Cursor getAllRecipes(String[] projection) {
    SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
    queryBuilder.setTables(RecipeTable.TABLE + ", " + RecipeNoteTable.TABLE);
    SQLiteDatabase db = database.getReadableDatabase();
    Cursor cursor = queryBuilder.query(db, projection, null, null, null, null, null);
    return cursor;
}
 
源代码5 项目: yiim_v2   文件: RosterGroupManager.java
public Cursor query(SQLiteDatabase db, int type, Uri uri,
		String[] projection, String selection, String[] selectionArgs,
		String sortOrder) {

	SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
	qb.setTables(TABLE_NAME);

	if (type == UriType.ROSTER_GROUP.getCode()) {
		qb.setProjectionMap(mProjectionMap);
	} else if (type == UriType.ROSTER_GROUP_ID.getCode()) {
		qb.setProjectionMap(mProjectionMap);
		qb.appendWhere(RosterGroupColumns._ID + "="
				+ uri.getPathSegments().get(1));
	} else if (type == UriType.LIVE_FOLDER_ROSTER_GROUP.getCode()) {
		qb.setProjectionMap(mLiveFolderProjectionMap);
	} else {
		throw new IllegalArgumentException("Unknown URI " + uri);
	}

	// If no sort order is specified use the default
	String orderBy;
	if (TextUtils.isEmpty(sortOrder)) {
		orderBy = RosterGroupColumns.DEFAULT_SORT_ORDER;
	} else {
		orderBy = sortOrder;
	}

	// Get the database and run the query
	Cursor c = qb.query(db, projection, selection, selectionArgs, null,
			null, orderBy);

	return c;
}
 
private SQLiteQueryBuilder builderItemToSkillTree() {
//		SELECT itst._id AS _id, itst.item_id, itst.skill_tree_id,
//		itst.point_value, i.name AS iname, s.name AS sname
//		FROM item_to_skill_tree AS itst
//		LEFT OUTER JOIN items AS i ON itst.item_id = i._id
//		LEFT OUTER JOIN skill_trees AS s ON itst.skill_tree_id = s._id;
//		LEFT OUTER JOIN armor AS a ON i._id = a._id 
//		LEFT OUTER JOIN decorations AS d ON i._id = d._id;

        String itst = "itst";
        String i = "i";
        String s = "s";

        HashMap<String, String> projectionMap = new HashMap<String, String>();

        projectionMap.put("_id", itst + "." + S.COLUMN_ITEM_TO_SKILL_TREE_ID + " AS " + "_id");
        projectionMap.put(S.COLUMN_ITEM_TO_SKILL_TREE_ITEM_ID, itst + "." + S.COLUMN_ITEM_TO_SKILL_TREE_ITEM_ID);
        projectionMap.put(S.COLUMN_ITEM_TO_SKILL_TREE_SKILL_TREE_ID, itst + "." + S.COLUMN_ITEM_TO_SKILL_TREE_SKILL_TREE_ID);
        projectionMap.put(S.COLUMN_ITEM_TO_SKILL_TREE_POINT_VALUE, itst + "." + S.COLUMN_ITEM_TO_SKILL_TREE_POINT_VALUE);

        projectionMap.put(i + S.COLUMN_ITEMS_NAME, i + "." + S.COLUMN_ITEMS_NAME + " AS " + i + S.COLUMN_ITEMS_NAME);
        projectionMap.put(S.COLUMN_ITEMS_ICON_NAME, i + "." + S.COLUMN_ITEMS_ICON_NAME);
        projectionMap.put(S.COLUMN_ITEMS_TYPE, i + "." + S.COLUMN_ITEMS_TYPE);
        projectionMap.put(S.COLUMN_ITEMS_SUB_TYPE, i + "." + S.COLUMN_ITEMS_SUB_TYPE);
        projectionMap.put(S.COLUMN_ITEMS_RARITY, i + "." + S.COLUMN_ITEMS_RARITY);
        projectionMap.put(s + S.COLUMN_SKILL_TREES_NAME, s + "." + S.COLUMN_SKILL_TREES_NAME + " AS " + s + S.COLUMN_SKILL_TREES_NAME);

        //Create new querybuilder
        SQLiteQueryBuilder QB = new SQLiteQueryBuilder();

        QB.setTables(S.TABLE_ITEM_TO_SKILL_TREE + " AS itst" + " LEFT OUTER JOIN " + S.TABLE_ITEMS + " AS i" + " ON " + "itst." +
                S.COLUMN_ITEM_TO_SKILL_TREE_ITEM_ID + " = " + "i." + S.COLUMN_ITEMS_ID + " LEFT OUTER JOIN " + S.TABLE_SKILL_TREES +
                " AS s " + " ON " + "itst." + S.COLUMN_ITEM_TO_SKILL_TREE_SKILL_TREE_ID + " = " + "s." + S.COLUMN_SKILL_TREES_ID +
                " LEFT OUTER JOIN " + S.TABLE_ARMOR + " AS a" + " ON " + "i." + S.COLUMN_ITEMS_ID + " = " + "a." + S.COLUMN_ARMOR_ID +
                " LEFT OUTER JOIN " + S.TABLE_DECORATIONS + " AS d" + " ON " + "i." + S.COLUMN_ITEMS_ID + " = " + "d." +
                S.COLUMN_DECORATIONS_ID);

        QB.setProjectionMap(projectionMap);
        return QB;
    }
 
源代码7 项目: io2015-codelabs   文件: RecipeContentProvider.java
public Cursor getIngredientsByRecipe(Uri uri) {
    SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
    queryBuilder.setTables(RecipeTable.TABLE + ", " + RecipeIngredientTable.TABLE);
    queryBuilder.appendWhere(RecipeTable.ID + "='" + uri.getLastPathSegment() + "' AND " + RecipeIngredientTable.RECIPE_ID + "=" + RecipeTable.ID + "");
    String[] projection = {RecipeIngredientTable.AMOUNT, RecipeIngredientTable.DESCRIPTION};
    SQLiteDatabase db = database.getReadableDatabase();
    Cursor cursor = queryBuilder.query(db, projection, null, null, null, null, null);
    cursor.setNotificationUri(getContext().getContentResolver(), uri);
    return cursor;
}
 
源代码8 项目: LibreTasks   文件: RuleActionDbAdapter.java
/**
 * Return a Cursor that contains all RuleAction records which matches the parameters.
 * 
 * @param ruleID
 *          is id of the rule it belongs to, or null to fetch any.
 * @param actionID
 *          is id of its action type, or null to fetch any.
 * @return a Cursor that contains all RuleAction records which matches the parameters.
 */
public Cursor fetchAll(Long ruleID, Long actionID) {
  SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
  qb.setTables(DATABASE_TABLE);
  qb.appendWhere("1=1");
  if (ruleID != null) {
    qb.appendWhere(" AND " + KEY_RULEID + " = " + ruleID);
  }
  if (actionID != null) {
    qb.appendWhere(" AND " + KEY_ACTIONID + " = " + actionID);
  }

  // Not using additional selections, selectionArgs, groupBy, having, orderBy, set them to null.
  return qb.query(database, KEYS, null, null, null, null, null);
}
 
源代码9 项目: io2015-codelabs   文件: RecipeContentProvider.java
public Cursor getRecipe(Uri uri) {
    SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
    queryBuilder.setTables(RecipeTable.TABLE);
    String[] projection = { RecipeTable.ID, RecipeTable.TITLE,
            RecipeTable.DESCRIPTION, RecipeTable.PHOTO,
            RecipeTable.PREP_TIME};
    SQLiteDatabase db = database.getReadableDatabase();
    queryBuilder.appendWhere(RecipeTable.ID + "='"
            + uri.getLastPathSegment() + "'");
    Cursor cursor = queryBuilder.query(db, projection, null,
            null, null, null, null);
    cursor.setNotificationUri(getContext().getContentResolver(), uri);

    return cursor;
}
 
源代码10 项目: WiFiAfterConnect   文件: WifiAuthDatabase.java
public Cursor getWifiTableCursor (final String[] projection, final String authHost) {
	SQLiteDatabase db = getDb();
	SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
	builder.setTables(WIFI_TABLE_NAME);
	Cursor c;
	if (authHost == null || authHost.isEmpty())
		c = builder.query(db, projection, null, null, null, null, null);
	else 
		c = builder.query(db, projection, COLUMN_HOSTNAME + " = ?", new String[] {authHost}, null, null, null); 

	// SQLite cursors are always not-null positioned before the first item 
	return c;	
}
 
源代码11 项目: Study_Android_Demo   文件: SettingsProvider.java
private void migrateLegacySettingsLocked(SettingsState settingsState,
        SQLiteDatabase database, String table) {
    SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
    queryBuilder.setTables(table);

    Cursor cursor = queryBuilder.query(database, ALL_COLUMNS,
            null, null, null, null, null);

    if (cursor == null) {
        return;
    }

    try {
        if (!cursor.moveToFirst()) {
            return;
        }

        final int nameColumnIdx = cursor.getColumnIndex(Settings.NameValueTable.NAME);
        final int valueColumnIdx = cursor.getColumnIndex(Settings.NameValueTable.VALUE);

        settingsState.setVersionLocked(database.getVersion());

        while (!cursor.isAfterLast()) {
            String name = cursor.getString(nameColumnIdx);
            String value = cursor.getString(valueColumnIdx);
            settingsState.insertSettingLocked(name, value, null, true,
                    SettingsState.SYSTEM_PACKAGE_NAME);
            cursor.moveToNext();
        }
    } finally {
        cursor.close();
    }
}
 
源代码12 项目: codeexamples-android   文件: LoaderThrottle.java
/**
 * Handle incoming queries.
 */
@Override
public Cursor query(Uri uri, String[] projection, String selection,
        String[] selectionArgs, String sortOrder) {

    // Constructs a new query builder and sets its table name
    SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
    qb.setTables(MainTable.TABLE_NAME);

    switch (mUriMatcher.match(uri)) {
        case MAIN:
            // If the incoming URI is for main table.
            qb.setProjectionMap(mNotesProjectionMap);
            break;

        case MAIN_ID:
            // The incoming URI is for a single row.
            qb.setProjectionMap(mNotesProjectionMap);
            qb.appendWhere(MainTable._ID + "=?");
            selectionArgs = DatabaseUtils.appendSelectionArgs(selectionArgs,
                    new String[] { uri.getLastPathSegment() });
            break;

        default:
            throw new IllegalArgumentException("Unknown URI " + uri);
    }


    if (TextUtils.isEmpty(sortOrder)) {
        sortOrder = MainTable.DEFAULT_SORT_ORDER;
    }

    SQLiteDatabase db = mOpenHelper.getReadableDatabase();

    Cursor c = qb.query(db, projection, selection, selectionArgs,
            null /* no group */, null /* no filter */, sortOrder);

    c.setNotificationUri(getContext().getContentResolver(), uri);
    return c;
}
 
源代码13 项目: earth   文件: EarthsProvider.java
private Cursor queryEarthLatest(SQLiteDatabase db, @NonNull Uri uri, String[] projection) {
    SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
    builder.setTables(EarthsContract.TABLE);

    Cursor cursor = builder.query(db, projection, null, null, null, null, EarthsContract.Columns.FETCHED_AT + " DESC", "1");

    //noinspection ConstantConditions
    cursor.setNotificationUri(getContext().getContentResolver(), uri);

    return cursor;
}
 
private SQLiteQueryBuilder builderArenaQuest() {
//		SELECT a._id AS _id, a.name AS aname, a.location_id, a.reward.,
//		a.num_participants, a.time_s, a.time_a, a.time_b,
//		l.name AS lname
//		FROM arena_quests AS a
//		LEFT OUTER JOIN locations AS l on a.location_id = l._id;

        String a = "a";
        String l = "l";

        HashMap<String, String> projectionMap = new HashMap<String, String>();

        projectionMap.put("_id", a + "." + S.COLUMN_ARENA_QUESTS_ID + " AS " + "_id");
        projectionMap.put(S.COLUMN_ARENA_QUESTS_NAME, a + "." + S.COLUMN_ARENA_QUESTS_NAME + " AS " + a + S.COLUMN_ARENA_QUESTS_NAME);
        projectionMap.put(S.COLUMN_ARENA_QUESTS_GOAL, a + "." + S.COLUMN_ARENA_QUESTS_GOAL);
        projectionMap.put(S.COLUMN_ARENA_QUESTS_LOCATION_ID, a + "." + S.COLUMN_ARENA_QUESTS_LOCATION_ID);
        projectionMap.put(S.COLUMN_ARENA_QUESTS_REWARD, a + "." + S.COLUMN_ARENA_QUESTS_REWARD);
        projectionMap.put(S.COLUMN_ARENA_QUESTS_NUM_PARTICIPANTS, a + "." + S.COLUMN_ARENA_QUESTS_NUM_PARTICIPANTS);
        projectionMap.put(S.COLUMN_ARENA_QUESTS_TIME_S, a + "." + S.COLUMN_ARENA_QUESTS_TIME_S);
        projectionMap.put(S.COLUMN_ARENA_QUESTS_TIME_A, a + "." + S.COLUMN_ARENA_QUESTS_TIME_A);
        projectionMap.put(S.COLUMN_ARENA_QUESTS_TIME_B, a + "." + S.COLUMN_ARENA_QUESTS_TIME_B);

        projectionMap.put(l + S.COLUMN_LOCATIONS_NAME, l + "." + S.COLUMN_LOCATIONS_NAME + " AS " + l + S.COLUMN_LOCATIONS_NAME);

        //Create new querybuilder
        SQLiteQueryBuilder QB = new SQLiteQueryBuilder();

        QB.setTables(S.TABLE_ARENA_QUESTS + " AS a" + " LEFT OUTER JOIN " + S.TABLE_LOCATIONS +
                " AS l " + " ON " + "a." + S.COLUMN_ARENA_QUESTS_LOCATION_ID + " = " + "l." + S.COLUMN_LOCATIONS_ID);

        QB.setProjectionMap(projectionMap);
        return QB;
    }
 
源代码15 项目: LaunchEnr   文件: LauncherProvider.java
@Override
public Cursor query(@NonNull Uri uri, String[] projection, String selection,
                    String[] selectionArgs, String sortOrder) {
    createDbIfNotExists();

    SqlArguments args = new SqlArguments(uri, selection, selectionArgs);
    SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
    qb.setTables(args.table);

    SQLiteDatabase db = mOpenHelper.getWritableDatabase();
    Cursor result = qb.query(db, projection, args.where, args.args, null, null, sortOrder);
    result.setNotificationUri(getContext().getContentResolver(), uri);

    return result;
}
 
源代码16 项目: an2linuxclient   文件: ServerDatabaseHandler.java
private List<WifiServer> getAllWifiServers(){
    List<WifiServer> allWifiServers = new ArrayList<>();
    SQLiteDatabase db = this.getReadableDatabase();

    SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

    qb.setTables(TABLE_SERVERS +
            " JOIN " + TABLE_WIFI_SERVERS +
            " USING(" + COLUMN_ID + ")");

    Cursor c = qb.query(db,
            new String[]{COLUMN_ID,
                    COLUMN_IS_ENABLED,
                    COLUMN_CERTIFICATE_ID,
                    COLUMN_IP_OR_HOSTNAME,
                    COLUMN_PORT_NUMBER,
                    COLUMN_SSID_WHITELIST},
            null, null, null, null, null);

    if (c.moveToFirst()){
        do {
            WifiServer wifiServer = new WifiServer();
            wifiServer.setId(c.getLong(0));
            wifiServer.setIsEnabled(intToBool(c.getInt(1)));
            wifiServer.setCertificateId(c.getLong(2));
            wifiServer.setIpOrHostname(c.getString(3));
            wifiServer.setPortNumber(c.getInt(4));
            wifiServer.setSsidWhitelist(c.getString(5));
            allWifiServers.add(wifiServer);
        } while (c.moveToNext());
    }

    c.close();
    db.close();

    return allWifiServers;
}
 
源代码17 项目: commcare-android   文件: FormsProvider.java
@Override
public Cursor query(@NonNull Uri uri, String[] projection, String selection, String[] selectionArgs,
                    String sortOrder) {
    init();
    SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
    qb.setTables(FORMS_TABLE_NAME);

    switch (sUriMatcher.match(uri)) {
        case FORMS:
            qb.setProjectionMap(sFormsProjectionMap);
            break;

        case FORM_ID:
            qb.setProjectionMap(sFormsProjectionMap);
            qb.appendWhere(FormsProviderAPI.FormsColumns._ID + "=" + uri.getPathSegments().get(1));
            break;

        default:
            throw new IllegalArgumentException("Unknown URI " + uri);
    }

    // Get the database and run the query
    SQLiteDatabase db = mDbHelper.getReadableDatabase();
    Cursor c = qb.query(db, projection, selection, selectionArgs, null, null, sortOrder);

    // Tell the cursor what uri to watch, so it knows when its source data changes
    c.setNotificationUri(getContext().getContentResolver(), uri);
    return c;
}
 
源代码18 项目: device-database   文件: DevicesProvider.java
@Override
public Cursor query(@NonNull Uri uri,
                    String[] projection,
                    String selection,
                    String[] selectionArgs,
                    String sortOrder) throws IllegalArgumentException {
    Cursor cursor;
    if (projection == null) {
        throw new IllegalArgumentException("Projection can't be null");
    }

    sortOrder = (sortOrder == null ? BaseColumns._ID : sortOrder);

    SQLiteDatabase database = helper.getReadableDatabase();

    final int code = URI_MATCHER.match(uri);
    switch (code) {
        case CODE_ALL_DEVICES:
        case CODE_ALL_MANUFACTURERS:
            cursor = database.query(URI_CODE_TABLE_MAP.get(code),
                    projection,
                    selection,
                    selectionArgs,
                    null,
                    null,
                    sortOrder);
            break;
        case CODE_DEVICE_ID:
        case CODE_MANUFACTURER_ID:
            if (selection == null) {
                selection = BaseColumns._ID
                        + " = "
                        + uri.getLastPathSegment();
            } else {
                throw new IllegalArgumentException("Selection must " +
                        "be null when specifying ID as part of uri.");
            }
            cursor = database.query(URI_CODE_TABLE_MAP.get(code),
                    projection,
                    selection,
                    selectionArgs,
                    null,
                    null,
                    sortOrder);
            break;
        case CODE_DEVICE_MANUFACTURER:
            SQLiteQueryBuilder builder = new SQLiteQueryBuilder();

            builder.setTables(String
                    .format("%s INNER JOIN %s ON (%s.%s=%s.%s)",
                    DevicesOpenHelper.Tables.DEVICE,
                    DevicesOpenHelper.Tables.MANUFACTURER,
                    DevicesOpenHelper.Tables.DEVICE,
                    DevicesContract.Device.MANUFACTURER_ID,
                    DevicesOpenHelper.Tables.MANUFACTURER,
                    DevicesContract.Manufacturer._ID));

            final Map<String, String> projectionMap = new HashMap<>();
            projectionMap.put(DevicesContract.DeviceManufacturer.MODEL,
                    DevicesContract.DeviceManufacturer.MODEL);

            projectionMap
                    .put(DevicesContract.DeviceManufacturer.SHORT_NAME,
                    DevicesContract.DeviceManufacturer.SHORT_NAME);

            projectionMap
                    .put(DevicesContract.DeviceManufacturer.DEVICE_ID,
                    String.format("%s.%s AS %s",
                            DevicesOpenHelper.Tables.DEVICE,
                            DevicesContract.Device._ID,
                            DevicesContract.DeviceManufacturer.DEVICE_ID));

            projectionMap.put(DevicesContract
                    .DeviceManufacturer.MANUFACTURER_ID,
                    String.format("%s.%s AS %s",
                            DevicesOpenHelper.Tables.MANUFACTURER,
                            DevicesContract.Manufacturer._ID,
                            DevicesContract
                                    .DeviceManufacturer.MANUFACTURER_ID));

            builder.setProjectionMap(projectionMap);

            cursor = builder.query(database,
                    projection,
                    selection,
                    selectionArgs,
                    null,
                    null,
                    sortOrder);

            break;
        default:
            throw new IllegalArgumentException("Invalid Uri: " + uri);
    }

    cursor.setNotificationUri(getContext().getContentResolver(), uri);
    return cursor;
}
 
源代码19 项目: talkback   文件: LabelProvider.java
/**
 * Queries for a label or multiple labels in the labels database.
 *
 * @param uri The URI representing the type of query to perform: {@code LABELS_CONTENT_URI} for a
 *     subset of all labels, {@code LABELS_ID_CONTENT_URI} for a specific label, or {@code
 *     PACKAGE_SUMMARY} for a label count per package.
 * @param projection The columns to return.
 * @param selection The WHERE clause for the query.
 * @param selectionArgs The arguments for the WHERE clause of the query.
 * @param sortOrder the ORDER BY clause for the query.
 * @return A cursor representing the data resulting from the query, or] {@code null} if the query
 *     failed to execute.
 */
@Override
public Cursor query(
    Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
  if (uri == null) {
    LogUtils.w(TAG, NULL_URI_FORMAT_STRING);
    return null;
  }

  if (!UserManagerCompat.isUserUnlocked(getContext())) {
    return null;
  }

  final SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
  queryBuilder.setTables(LabelsTable.TABLE_NAME);

  String groupBy = null;

  switch (uriMatcher.match(uri)) {
    case LABELS:
      if (TextUtils.isEmpty(sortOrder)) {
        sortOrder = LabelsTable.KEY_ID;
      }
      break;
    case LABELS_ID:
      final String labelIdString = uri.getLastPathSegment();
      final int labelId;
      try {
        labelId = Integer.parseInt(labelIdString);
      } catch (NumberFormatException e) {
        LogUtils.w(TAG, UNKNOWN_URI_FORMAT_STRING, uri);
        return null;
      }

      final String where = String.format(Locale.ROOT, "%s = %d", LabelsTable.KEY_ID, labelId);
      queryBuilder.appendWhere(where);
      break;
    case PACKAGE_SUMMARY:
      projection = new String[] {LabelsTable.KEY_PACKAGE_NAME, "COUNT(*)"};
      groupBy = LabelsTable.KEY_PACKAGE_NAME;
      sortOrder = LabelsTable.KEY_PACKAGE_NAME;
      break;
    default:
      LogUtils.w(TAG, UNKNOWN_URI_FORMAT_STRING, uri);
      return null;
  }

  initializeDatabaseIfNull();

  return queryBuilder.query(
      database, projection, selection, selectionArgs, groupBy, null /* having */, sortOrder);
}
 
@Override
public Cursor query(Uri uri, String[] projection, String selection,
		String[] selectionArgs, String sortOrder) {
	
	SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

	qb.setTables(PlaceBadgesContract.BADGES_TABLE_NAME);

	Cursor c = qb.query(database, null, null, null, null, null, null);

	c.setNotificationUri(getContext().getContentResolver(), uri);

	return c;

}