public long getLastModificationDate() { long time = 0; String query = "SELECT max(" + CacheHelper.PAGE_MODIFIED + ") FROM " + CacheHelper.TABLE_PAGE + " WHERE " + CacheHelper.PAGE_LANGUAGE + "=" + String.valueOf(mLanguage.getId()) + " AND " + CacheHelper.PAGE_LOCATION + "=" + String.valueOf(mLocation.getId()) + " AND " + CacheHelper.PAGE_TYPE + "=" + Helper.quote(getType()); Cursor cursor = mCache.executeRawQuery(query, null); if (cursor != null) { try { if (cursor.moveToFirst()) { time = cursor.getLong(0); } } finally { cursor.close(); } } return time; }
private SQLiteQueryBuilder getCursorQueryBuilder(String tables) { SQLiteQueryBuilder builder = new SQLiteQueryBuilder(); builder.setTables(tables); builder.appendWhere(CacheHelper.PAGE_LANGUAGE + " = " + String.valueOf(mLanguage.getId())); builder.appendWhere( " AND " + CacheHelper.PAGE_LOCATION + " = " + String.valueOf(mLocation.getId())); builder.appendWhere( " AND " + CacheHelper.PAGE_STATUS + " != " + Helper.quote(PAGE_STATUS_TRASH)); builder.appendWhere(" AND " + CacheHelper.PAGE_TYPE + " = " + Helper.quote(getType())); return builder; }
@Override public void store(@NonNull SQLiteDatabase db, @NonNull List<? extends Page> mPages) { if (mPages.isEmpty()) { return; } ContentValues pageValues = new ContentValues(14); ContentValues authorValues = new ContentValues(3); for (Page mPage : mPages) { List<Page> pages = new ArrayList<>(); pages.add(mPage); pages.addAll(mPage.getSubPages()); for (Page page : pages) { pageValues.clear(); pageValues.put(CacheHelper.PAGE_ID, page.getId()); pageValues.put(CacheHelper.PAGE_TITLE, page.getTitle()); pageValues.put(CacheHelper.PAGE_TYPE, page.getType()); pageValues.put(CacheHelper.PAGE_STATUS, page.getStatus()); pageValues.put(CacheHelper.PAGE_MODIFIED, page.getModified()); pageValues.put(CacheHelper.PAGE_DESCRIPTION, page.getDescription()); pageValues.put(CacheHelper.PAGE_CONTENT, page.getContent()); pageValues.put(CacheHelper.PAGE_PARENT_ID, page.getParentId()); pageValues.put(CacheHelper.PAGE_ORDER, page.getOrder()); pageValues.put(CacheHelper.PAGE_THUMBNAIL, page.getThumbnail()); pageValues.put(CacheHelper.PAGE_LOCATION, mLocation.getId()); pageValues.put(CacheHelper.PAGE_LANGUAGE, mLanguage.getId()); pageValues.put(CacheHelper.PAGE_AUTHOR, page.getAuthor().getLogin()); pageValues.put(CacheHelper.PAGE_AUTO_TRANSLATED, page.isAutoTranslated() ? 1 : 0); db.replace(CacheHelper.TABLE_PAGE, null, pageValues); authorValues.clear(); authorValues.put(CacheHelper.AUTHOR_USERNAME, page.getAuthor().getLogin()); authorValues.put(CacheHelper.AUTHOR_FIRSTNAME, page.getAuthor().getFirstName()); authorValues.put(CacheHelper.AUTHOR_LASTNAME, page.getAuthor().getLastName()); db.replace(CacheHelper.TABLE_AUTHOR, null, authorValues); mAvailableLanguageResource.store(db, page); } } }
private String makeLocationKey(Location location) { return String.format("location_key(%d)", location.getId()); }
private String makePageDisclaimerKey(Language language, Location location) { return String.format("disclaimer_key(%d)(%d)", language.getId(), location.getId()); }
private String makePageKey(Language language, Location location) { return String.format("page_key(%d)(%d)", language.getId(), location.getId()); }
private static String makePushKey(Location location) { return "_push" + location.getId() + PROPERTY_REGISTERED_TS; }