Blame client/Android/Studio/freeRDPCore/src/main/java/com/freerdp/freerdpcore/services/BookmarkBaseGateway.java

Packit Service fa4841
/*
Packit Service fa4841
   Helper class to access bookmark database
Packit Service fa4841
Packit Service fa4841
   Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz
Packit Service fa4841
Packit Service fa4841
   This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
Packit Service fa4841
   If a copy of the MPL was not distributed with this file, You can obtain one at
Packit Service fa4841
   http://mozilla.org/MPL/2.0/.
Packit Service fa4841
*/
Packit Service fa4841
Packit Service fa4841
package com.freerdp.freerdpcore.services;
Packit Service fa4841
Packit Service fa4841
import android.content.ContentValues;
Packit Service fa4841
import android.database.Cursor;
Packit Service fa4841
import android.database.sqlite.SQLiteDatabase;
Packit Service fa4841
import android.database.sqlite.SQLiteException;
Packit Service fa4841
import android.database.sqlite.SQLiteOpenHelper;
Packit Service fa4841
import android.database.sqlite.SQLiteQueryBuilder;
Packit Service fa4841
import android.util.Log;
Packit Service fa4841
Packit Service fa4841
import com.freerdp.freerdpcore.domain.BookmarkBase;
Packit Service fa4841
Packit Service fa4841
import java.util.ArrayList;
Packit Service fa4841
Packit Service fa4841
public abstract class BookmarkBaseGateway
Packit Service fa4841
{
Packit Service fa4841
	private final static String TAG = "BookmarkBaseGateway";
Packit Service fa4841
	private SQLiteOpenHelper bookmarkDB;
Packit Service fa4841
Packit Service fa4841
	private static final String JOIN_PREFIX = "join_";
Packit Service fa4841
	private static final String KEY_BOOKMARK_ID = "bookmarkId";
Packit Service fa4841
	private static final String KEY_SCREEN_COLORS = "screenColors";
Packit Service fa4841
	private static final String KEY_SCREEN_COLORS_3G = "screenColors3G";
Packit Service fa4841
	private static final String KEY_SCREEN_RESOLUTION = "screenResolution";
Packit Service fa4841
	private static final String KEY_SCREEN_RESOLUTION_3G = "screenResolution3G";
Packit Service fa4841
	private static final String KEY_SCREEN_WIDTH = "screenWidth";
Packit Service fa4841
	private static final String KEY_SCREEN_WIDTH_3G = "screenWidth3G";
Packit Service fa4841
	private static final String KEY_SCREEN_HEIGHT = "screenHeight";
Packit Service fa4841
	private static final String KEY_SCREEN_HEIGHT_3G = "screenHeight3G";
Packit Service fa4841
Packit Service fa4841
	private static final String KEY_PERFORMANCE_RFX = "performanceRemoteFX";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_RFX_3G = "performanceRemoteFX3G";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_GFX = "performanceGfx";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_GFX_3G = "performanceGfx3G";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_H264 = "performanceGfxH264";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_H264_3G = "performanceGfxH2643G";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_WALLPAPER = "performanceWallpaper";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_WALLPAPER_3G = "performanceWallpaper3G";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_THEME = "performanceTheming";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_THEME_3G = "performanceTheming3G";
Packit Service fa4841
Packit Service fa4841
	private static final String KEY_PERFORMANCE_DRAG = "performanceFullWindowDrag";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_DRAG_3G = "performanceFullWindowDrag3G";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_MENU_ANIMATIONS = "performanceMenuAnimations";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_MENU_ANIMATIONS_3G = "performanceMenuAnimations3G";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_FONTS = "performanceFontSmoothing";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_FONTS_3G = "performanceFontSmoothing3G";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_COMPOSITION = "performanceDesktopComposition";
Packit Service fa4841
	private static final String KEY_PERFORMANCE_COMPOSITION_3G = "performanceDesktopComposition3G";
Packit Service fa4841
Packit Service fa4841
	public BookmarkBaseGateway(SQLiteOpenHelper bookmarkDB)
Packit Service fa4841
	{
Packit Service fa4841
		this.bookmarkDB = bookmarkDB;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	protected abstract BookmarkBase createBookmark();
Packit Service fa4841
Packit Service fa4841
	protected abstract String getBookmarkTableName();
Packit Service fa4841
Packit Service fa4841
	protected abstract void addBookmarkSpecificColumns(ArrayList<String> columns);
Packit Service fa4841
Packit Service fa4841
	protected abstract void addBookmarkSpecificColumns(BookmarkBase bookmark,
Packit Service fa4841
	                                                   ContentValues columns);
Packit Service fa4841
Packit Service fa4841
	protected abstract void readBookmarkSpecificColumns(BookmarkBase bookmark, Cursor cursor);
Packit Service fa4841
Packit Service fa4841
	public void insert(BookmarkBase bookmark)
Packit Service fa4841
	{
Packit Service fa4841
		// begin transaction
Packit Service fa4841
		SQLiteDatabase db = getWritableDatabase();
Packit Service fa4841
		db.beginTransaction();
Packit Service fa4841
Packit Service fa4841
		long rowid;
Packit Service fa4841
		ContentValues values = new ContentValues();
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_LABEL, bookmark.getLabel());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_USERNAME, bookmark.getUsername());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_PASSWORD, bookmark.getPassword());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_DOMAIN, bookmark.getDomain());
Packit Service fa4841
		// insert screen and performance settings
Packit Service fa4841
		rowid = insertScreenSettings(db, bookmark.getScreenSettings());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_SCREEN_SETTINGS, rowid);
Packit Service fa4841
		rowid = insertPerformanceFlags(db, bookmark.getPerformanceFlags());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_PERFORMANCE_FLAGS, rowid);
Packit Service fa4841
Packit Service fa4841
		// advanced settings
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_3G_ENABLE,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getEnable3GSettings());
Packit Service fa4841
		// insert 3G screen and 3G performance settings
Packit Service fa4841
		rowid = insertScreenSettings(db, bookmark.getAdvancedSettings().getScreen3G());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_SCREEN_SETTINGS_3G, rowid);
Packit Service fa4841
		rowid = insertPerformanceFlags(db, bookmark.getAdvancedSettings().getPerformance3G());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G, rowid);
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_SDCARD,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getRedirectSDCard());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_SOUND,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getRedirectSound());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_MICROPHONE,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getRedirectMicrophone());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_SECURITY,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getSecurity());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_CONSOLE_MODE,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getConsoleMode());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_REMOTE_PROGRAM,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getRemoteProgram());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_WORK_DIR,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getWorkDir());
Packit Service fa4841
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL,
Packit Service fa4841
		           bookmark.getDebugSettings().getAsyncChannel());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_INPUT,
Packit Service fa4841
		           bookmark.getDebugSettings().getAsyncInput());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE,
Packit Service fa4841
		           bookmark.getDebugSettings().getAsyncUpdate());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_DEBUG_LEVEL,
Packit Service fa4841
		           bookmark.getDebugSettings().getDebugLevel());
Packit Service fa4841
Packit Service fa4841
		// add any special columns
Packit Service fa4841
		addBookmarkSpecificColumns(bookmark, values);
Packit Service fa4841
Packit Service fa4841
		// insert bookmark and end transaction
Packit Service fa4841
		db.insertOrThrow(getBookmarkTableName(), null, values);
Packit Service fa4841
		db.setTransactionSuccessful();
Packit Service fa4841
		db.endTransaction();
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	public boolean update(BookmarkBase bookmark)
Packit Service fa4841
	{
Packit Service fa4841
		// start a transaction
Packit Service fa4841
		SQLiteDatabase db = getWritableDatabase();
Packit Service fa4841
		db.beginTransaction();
Packit Service fa4841
Packit Service fa4841
		// bookmark settings
Packit Service fa4841
		ContentValues values = new ContentValues();
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_LABEL, bookmark.getLabel());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_USERNAME, bookmark.getUsername());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_PASSWORD, bookmark.getPassword());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_DOMAIN, bookmark.getDomain());
Packit Service fa4841
		// update screen and performance settings settings
Packit Service fa4841
		updateScreenSettings(db, bookmark);
Packit Service fa4841
		updatePerformanceFlags(db, bookmark);
Packit Service fa4841
Packit Service fa4841
		// advanced settings
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_3G_ENABLE,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getEnable3GSettings());
Packit Service fa4841
		// update 3G screen and 3G performance settings settings
Packit Service fa4841
		updateScreenSettings3G(db, bookmark);
Packit Service fa4841
		updatePerformanceFlags3G(db, bookmark);
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_SDCARD,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getRedirectSDCard());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_SOUND,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getRedirectSound());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_MICROPHONE,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getRedirectMicrophone());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_SECURITY,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getSecurity());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_CONSOLE_MODE,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getConsoleMode());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_REMOTE_PROGRAM,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getRemoteProgram());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_WORK_DIR,
Packit Service fa4841
		           bookmark.getAdvancedSettings().getWorkDir());
Packit Service fa4841
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL,
Packit Service fa4841
		           bookmark.getDebugSettings().getAsyncChannel());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_INPUT,
Packit Service fa4841
		           bookmark.getDebugSettings().getAsyncInput());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE,
Packit Service fa4841
		           bookmark.getDebugSettings().getAsyncUpdate());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_BOOKMARK_DEBUG_LEVEL,
Packit Service fa4841
		           bookmark.getDebugSettings().getDebugLevel());
Packit Service fa4841
Packit Service fa4841
		addBookmarkSpecificColumns(bookmark, values);
Packit Service fa4841
Packit Service fa4841
		// update bookmark
Packit Service fa4841
		boolean res = (db.update(getBookmarkTableName(), values,
Packit Service fa4841
		                         BookmarkDB.ID + " = " + bookmark.getId(), null) == 1);
Packit Service fa4841
Packit Service fa4841
		// commit
Packit Service fa4841
		db.setTransactionSuccessful();
Packit Service fa4841
		db.endTransaction();
Packit Service fa4841
Packit Service fa4841
		return res;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	public void delete(long id)
Packit Service fa4841
	{
Packit Service fa4841
		SQLiteDatabase db = getWritableDatabase();
Packit Service fa4841
		db.delete(getBookmarkTableName(), BookmarkDB.ID + " = " + id, null);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	public BookmarkBase findById(long id)
Packit Service fa4841
	{
Packit Service fa4841
		Cursor cursor =
Packit Service fa4841
		    queryBookmarks(getBookmarkTableName() + "." + BookmarkDB.ID + " = " + id, null);
Packit Service fa4841
		if (cursor.getCount() == 0)
Packit Service fa4841
		{
Packit Service fa4841
			cursor.close();
Packit Service fa4841
			return null;
Packit Service fa4841
		}
Packit Service fa4841
Packit Service fa4841
		cursor.moveToFirst();
Packit Service fa4841
		BookmarkBase bookmark = getBookmarkFromCursor(cursor);
Packit Service fa4841
		cursor.close();
Packit Service fa4841
		return bookmark;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	public BookmarkBase findByLabel(String label)
Packit Service fa4841
	{
Packit Service fa4841
		Cursor cursor = queryBookmarks(BookmarkDB.DB_KEY_BOOKMARK_LABEL + " = '" + label + "'",
Packit Service fa4841
		                               BookmarkDB.DB_KEY_BOOKMARK_LABEL);
Packit Service fa4841
		if (cursor.getCount() > 1)
Packit Service fa4841
			Log.e(TAG, "More than one bookmark with the same label found!");
Packit Service fa4841
Packit Service fa4841
		BookmarkBase bookmark = null;
Packit Service fa4841
		if (cursor.moveToFirst() && (cursor.getCount() > 0))
Packit Service fa4841
			bookmark = getBookmarkFromCursor(cursor);
Packit Service fa4841
Packit Service fa4841
		cursor.close();
Packit Service fa4841
		return bookmark;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	public ArrayList<BookmarkBase> findByLabelLike(String pattern)
Packit Service fa4841
	{
Packit Service fa4841
		Cursor cursor =
Packit Service fa4841
		    queryBookmarks(BookmarkDB.DB_KEY_BOOKMARK_LABEL + " LIKE '%" + pattern + "%'",
Packit Service fa4841
		                   BookmarkDB.DB_KEY_BOOKMARK_LABEL);
Packit Service fa4841
		ArrayList<BookmarkBase> bookmarks = new ArrayList<BookmarkBase>(cursor.getCount());
Packit Service fa4841
Packit Service fa4841
		if (cursor.moveToFirst() && (cursor.getCount() > 0))
Packit Service fa4841
		{
Packit Service fa4841
			do
Packit Service fa4841
			{
Packit Service fa4841
				bookmarks.add(getBookmarkFromCursor(cursor));
Packit Service fa4841
			} while (cursor.moveToNext());
Packit Service fa4841
		}
Packit Service fa4841
Packit Service fa4841
		cursor.close();
Packit Service fa4841
		return bookmarks;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	public ArrayList<BookmarkBase> findAll()
Packit Service fa4841
	{
Packit Service fa4841
		Cursor cursor = queryBookmarks(null, BookmarkDB.DB_KEY_BOOKMARK_LABEL);
Packit Service fa4841
		final int count = cursor.getCount();
Packit Service fa4841
		ArrayList<BookmarkBase> bookmarks = new ArrayList<>(count);
Packit Service fa4841
Packit Service fa4841
		if (cursor.moveToFirst() && (count > 0))
Packit Service fa4841
		{
Packit Service fa4841
			do
Packit Service fa4841
			{
Packit Service fa4841
				bookmarks.add(getBookmarkFromCursor(cursor));
Packit Service fa4841
			} while (cursor.moveToNext());
Packit Service fa4841
		}
Packit Service fa4841
Packit Service fa4841
		cursor.close();
Packit Service fa4841
		return bookmarks;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	protected Cursor queryBookmarks(String whereClause, String orderBy)
Packit Service fa4841
	{
Packit Service fa4841
		// create tables string
Packit Service fa4841
		final String ID = BookmarkDB.ID;
Packit Service fa4841
		final String tables =
Packit Service fa4841
		    BookmarkDB.DB_TABLE_BOOKMARK + " INNER JOIN " + BookmarkDB.DB_TABLE_SCREEN + " AS " +
Packit Service fa4841
		    JOIN_PREFIX + BookmarkDB.DB_KEY_SCREEN_SETTINGS + " ON " + JOIN_PREFIX +
Packit Service fa4841
		    BookmarkDB.DB_KEY_SCREEN_SETTINGS + "." + ID + " = " + BookmarkDB.DB_TABLE_BOOKMARK +
Packit Service fa4841
		    "." + BookmarkDB.DB_KEY_SCREEN_SETTINGS + " INNER JOIN " +
Packit Service fa4841
		    BookmarkDB.DB_TABLE_PERFORMANCE + " AS " + JOIN_PREFIX +
Packit Service fa4841
		    BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + " ON " + JOIN_PREFIX +
Packit Service fa4841
		    BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + "." + ID + " = " + BookmarkDB.DB_TABLE_BOOKMARK +
Packit Service fa4841
		    "." + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + " INNER JOIN " +
Packit Service fa4841
		    BookmarkDB.DB_TABLE_SCREEN + " AS " + JOIN_PREFIX +
Packit Service fa4841
		    BookmarkDB.DB_KEY_SCREEN_SETTINGS_3G + " ON " + JOIN_PREFIX +
Packit Service fa4841
		    BookmarkDB.DB_KEY_SCREEN_SETTINGS_3G + "." + ID + " = " + BookmarkDB.DB_TABLE_BOOKMARK +
Packit Service fa4841
		    "." + BookmarkDB.DB_KEY_SCREEN_SETTINGS_3G + " INNER JOIN " +
Packit Service fa4841
		    BookmarkDB.DB_TABLE_PERFORMANCE + " AS " + JOIN_PREFIX +
Packit Service fa4841
		    BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G + " ON " + JOIN_PREFIX +
Packit Service fa4841
		    BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G + "." + ID + " = " +
Packit Service fa4841
		    BookmarkDB.DB_TABLE_BOOKMARK + "." + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G;
Packit Service fa4841
Packit Service fa4841
		// create columns list
Packit Service fa4841
		ArrayList<String> columns = new ArrayList<>();
Packit Service fa4841
		addBookmarkColumns(columns);
Packit Service fa4841
		addScreenSettingsColumns(columns);
Packit Service fa4841
		addPerformanceFlagsColumns(columns);
Packit Service fa4841
		addScreenSettings3GColumns(columns);
Packit Service fa4841
		addPerformanceFlags3GColumns(columns);
Packit Service fa4841
Packit Service fa4841
		String[] cols = new String[columns.size()];
Packit Service fa4841
		columns.toArray(cols);
Packit Service fa4841
Packit Service fa4841
		SQLiteDatabase db = getReadableDatabase();
Packit Service fa4841
		final String query = SQLiteQueryBuilder.buildQueryString(false, tables, cols, whereClause,
Packit Service fa4841
		                                                         null, null, orderBy, null);
Packit Service fa4841
		return db.rawQuery(query, null);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private void addBookmarkColumns(ArrayList<String> columns)
Packit Service fa4841
	{
Packit Service fa4841
		columns.add(getBookmarkTableName() + "." + BookmarkDB.ID + " " + KEY_BOOKMARK_ID);
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_LABEL);
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_USERNAME);
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_PASSWORD);
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_DOMAIN);
Packit Service fa4841
Packit Service fa4841
		// advanced settings
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_3G_ENABLE);
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_SDCARD);
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_SOUND);
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_MICROPHONE);
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_SECURITY);
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_CONSOLE_MODE);
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_REMOTE_PROGRAM);
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_WORK_DIR);
Packit Service fa4841
Packit Service fa4841
		// debug settings
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_DEBUG_LEVEL);
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL);
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE);
Packit Service fa4841
		columns.add(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_INPUT);
Packit Service fa4841
Packit Service fa4841
		addBookmarkSpecificColumns(columns);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private void addScreenSettingsColumns(ArrayList<String> columns)
Packit Service fa4841
	{
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_SCREEN_SETTINGS + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_SCREEN_COLORS + " as " + KEY_SCREEN_COLORS);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_SCREEN_SETTINGS + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_SCREEN_RESOLUTION + " as " + KEY_SCREEN_RESOLUTION);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_SCREEN_SETTINGS + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_SCREEN_WIDTH + " as " + KEY_SCREEN_WIDTH);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_SCREEN_SETTINGS + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_SCREEN_HEIGHT + " as " + KEY_SCREEN_HEIGHT);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private void addPerformanceFlagsColumns(ArrayList<String> columns)
Packit Service fa4841
	{
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_RFX + " as " + KEY_PERFORMANCE_RFX);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_GFX + " as " + KEY_PERFORMANCE_GFX);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_H264 + " as " + KEY_PERFORMANCE_H264);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_WALLPAPER + " as " + KEY_PERFORMANCE_WALLPAPER);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_THEME + " as " + KEY_PERFORMANCE_THEME);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_DRAG + " as " + KEY_PERFORMANCE_DRAG);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_MENU_ANIMATIONS + " as " +
Packit Service fa4841
		            KEY_PERFORMANCE_MENU_ANIMATIONS);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_FONTS + " as " + KEY_PERFORMANCE_FONTS);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_COMPOSITION + " " + KEY_PERFORMANCE_COMPOSITION);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private void addScreenSettings3GColumns(ArrayList<String> columns)
Packit Service fa4841
	{
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_SCREEN_SETTINGS_3G + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_SCREEN_COLORS + " as " + KEY_SCREEN_COLORS_3G);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_SCREEN_SETTINGS_3G + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_SCREEN_RESOLUTION + " as " + KEY_SCREEN_RESOLUTION_3G);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_SCREEN_SETTINGS_3G + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_SCREEN_WIDTH + " as " + KEY_SCREEN_WIDTH_3G);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_SCREEN_SETTINGS_3G + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_SCREEN_HEIGHT + " as " + KEY_SCREEN_HEIGHT_3G);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private void addPerformanceFlags3GColumns(ArrayList<String> columns)
Packit Service fa4841
	{
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_RFX + " as " + KEY_PERFORMANCE_RFX_3G);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_GFX + " as " + KEY_PERFORMANCE_GFX_3G);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_H264 + " as " + KEY_PERFORMANCE_H264_3G);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_WALLPAPER + " as " +
Packit Service fa4841
		            KEY_PERFORMANCE_WALLPAPER_3G);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_THEME + " as " + KEY_PERFORMANCE_THEME_3G);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_DRAG + " as " + KEY_PERFORMANCE_DRAG_3G);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_MENU_ANIMATIONS + " as " +
Packit Service fa4841
		            KEY_PERFORMANCE_MENU_ANIMATIONS_3G);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_FONTS + " as " + KEY_PERFORMANCE_FONTS_3G);
Packit Service fa4841
		columns.add(JOIN_PREFIX + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G + "." +
Packit Service fa4841
		            BookmarkDB.DB_KEY_PERFORMANCE_COMPOSITION + " " +
Packit Service fa4841
		            KEY_PERFORMANCE_COMPOSITION_3G);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	protected BookmarkBase getBookmarkFromCursor(Cursor cursor)
Packit Service fa4841
	{
Packit Service fa4841
		BookmarkBase bookmark = createBookmark();
Packit Service fa4841
		bookmark.setId(cursor.getLong(cursor.getColumnIndex(KEY_BOOKMARK_ID)));
Packit Service fa4841
		bookmark.setLabel(
Packit Service fa4841
		    cursor.getString(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_LABEL)));
Packit Service fa4841
		bookmark.setUsername(
Packit Service fa4841
		    cursor.getString(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_USERNAME)));
Packit Service fa4841
		bookmark.setPassword(
Packit Service fa4841
		    cursor.getString(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_PASSWORD)));
Packit Service fa4841
		bookmark.setDomain(
Packit Service fa4841
		    cursor.getString(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_DOMAIN)));
Packit Service fa4841
		readScreenSettings(bookmark, cursor);
Packit Service fa4841
		readPerformanceFlags(bookmark, cursor);
Packit Service fa4841
Packit Service fa4841
		// advanced settings
Packit Service fa4841
		bookmark.getAdvancedSettings().setEnable3GSettings(
Packit Service fa4841
		    cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_3G_ENABLE)) != 0);
Packit Service fa4841
		readScreenSettings3G(bookmark, cursor);
Packit Service fa4841
		readPerformanceFlags3G(bookmark, cursor);
Packit Service fa4841
		bookmark.getAdvancedSettings().setRedirectSDCard(
Packit Service fa4841
		    cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_SDCARD)) != 0);
Packit Service fa4841
		bookmark.getAdvancedSettings().setRedirectSound(
Packit Service fa4841
		    cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_SOUND)));
Packit Service fa4841
		bookmark.getAdvancedSettings().setRedirectMicrophone(
Packit Service fa4841
		    cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_MICROPHONE)) !=
Packit Service fa4841
		    0);
Packit Service fa4841
		bookmark.getAdvancedSettings().setSecurity(
Packit Service fa4841
		    cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_SECURITY)));
Packit Service fa4841
		bookmark.getAdvancedSettings().setConsoleMode(
Packit Service fa4841
		    cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_CONSOLE_MODE)) != 0);
Packit Service fa4841
		bookmark.getAdvancedSettings().setRemoteProgram(
Packit Service fa4841
		    cursor.getString(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_REMOTE_PROGRAM)));
Packit Service fa4841
		bookmark.getAdvancedSettings().setWorkDir(
Packit Service fa4841
		    cursor.getString(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_WORK_DIR)));
Packit Service fa4841
Packit Service fa4841
		bookmark.getDebugSettings().setAsyncChannel(
Packit Service fa4841
		    cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL)) == 1);
Packit Service fa4841
		bookmark.getDebugSettings().setAsyncInput(
Packit Service fa4841
		    cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_INPUT)) == 1);
Packit Service fa4841
		bookmark.getDebugSettings().setAsyncUpdate(
Packit Service fa4841
		    cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE)) == 1);
Packit Service fa4841
		bookmark.getDebugSettings().setDebugLevel(
Packit Service fa4841
		    cursor.getString(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_DEBUG_LEVEL)));
Packit Service fa4841
Packit Service fa4841
		readBookmarkSpecificColumns(bookmark, cursor);
Packit Service fa4841
Packit Service fa4841
		return bookmark;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private void readScreenSettings(BookmarkBase bookmark, Cursor cursor)
Packit Service fa4841
	{
Packit Service fa4841
		BookmarkBase.ScreenSettings screenSettings = bookmark.getScreenSettings();
Packit Service fa4841
		screenSettings.setColors(cursor.getInt(cursor.getColumnIndex(KEY_SCREEN_COLORS)));
Packit Service fa4841
		screenSettings.setResolution(cursor.getInt(cursor.getColumnIndex(KEY_SCREEN_RESOLUTION)));
Packit Service fa4841
		screenSettings.setWidth(cursor.getInt(cursor.getColumnIndex(KEY_SCREEN_WIDTH)));
Packit Service fa4841
		screenSettings.setHeight(cursor.getInt(cursor.getColumnIndex(KEY_SCREEN_HEIGHT)));
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private void readPerformanceFlags(BookmarkBase bookmark, Cursor cursor)
Packit Service fa4841
	{
Packit Service fa4841
		BookmarkBase.PerformanceFlags perfFlags = bookmark.getPerformanceFlags();
Packit Service fa4841
		perfFlags.setRemoteFX(cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_RFX)) != 0);
Packit Service fa4841
		perfFlags.setGfx(cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_GFX)) != 0);
Packit Service fa4841
		perfFlags.setH264(cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_H264)) != 0);
Packit Service fa4841
		perfFlags.setWallpaper(cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_WALLPAPER)) !=
Packit Service fa4841
		                       0);
Packit Service fa4841
		perfFlags.setTheming(cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_THEME)) != 0);
Packit Service fa4841
		perfFlags.setFullWindowDrag(cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_DRAG)) !=
Packit Service fa4841
		                            0);
Packit Service fa4841
		perfFlags.setMenuAnimations(
Packit Service fa4841
		    cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_MENU_ANIMATIONS)) != 0);
Packit Service fa4841
		perfFlags.setFontSmoothing(cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_FONTS)) !=
Packit Service fa4841
		                           0);
Packit Service fa4841
		perfFlags.setDesktopComposition(
Packit Service fa4841
		    cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_COMPOSITION)) != 0);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private void readScreenSettings3G(BookmarkBase bookmark, Cursor cursor)
Packit Service fa4841
	{
Packit Service fa4841
		BookmarkBase.ScreenSettings screenSettings = bookmark.getAdvancedSettings().getScreen3G();
Packit Service fa4841
		screenSettings.setColors(cursor.getInt(cursor.getColumnIndex(KEY_SCREEN_COLORS_3G)));
Packit Service fa4841
		screenSettings.setResolution(
Packit Service fa4841
		    cursor.getInt(cursor.getColumnIndex(KEY_SCREEN_RESOLUTION_3G)));
Packit Service fa4841
		screenSettings.setWidth(cursor.getInt(cursor.getColumnIndex(KEY_SCREEN_WIDTH_3G)));
Packit Service fa4841
		screenSettings.setHeight(cursor.getInt(cursor.getColumnIndex(KEY_SCREEN_HEIGHT_3G)));
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private void readPerformanceFlags3G(BookmarkBase bookmark, Cursor cursor)
Packit Service fa4841
	{
Packit Service fa4841
		BookmarkBase.PerformanceFlags perfFlags = bookmark.getAdvancedSettings().getPerformance3G();
Packit Service fa4841
		perfFlags.setRemoteFX(cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_RFX_3G)) != 0);
Packit Service fa4841
		perfFlags.setGfx(cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_GFX_3G)) != 0);
Packit Service fa4841
		perfFlags.setH264(cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_H264_3G)) != 0);
Packit Service fa4841
		perfFlags.setWallpaper(cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_WALLPAPER_3G)) !=
Packit Service fa4841
		                       0);
Packit Service fa4841
		perfFlags.setTheming(cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_THEME_3G)) != 0);
Packit Service fa4841
		perfFlags.setFullWindowDrag(cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_DRAG_3G)) !=
Packit Service fa4841
		                            0);
Packit Service fa4841
		perfFlags.setMenuAnimations(
Packit Service fa4841
		    cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_MENU_ANIMATIONS_3G)) != 0);
Packit Service fa4841
		perfFlags.setFontSmoothing(cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_FONTS_3G)) !=
Packit Service fa4841
		                           0);
Packit Service fa4841
		perfFlags.setDesktopComposition(
Packit Service fa4841
		    cursor.getInt(cursor.getColumnIndex(KEY_PERFORMANCE_COMPOSITION_3G)) != 0);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private void fillScreenSettingsContentValues(BookmarkBase.ScreenSettings settings,
Packit Service fa4841
	                                             ContentValues values)
Packit Service fa4841
	{
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_SCREEN_COLORS, settings.getColors());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_SCREEN_RESOLUTION, settings.getResolution());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_SCREEN_WIDTH, settings.getWidth());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_SCREEN_HEIGHT, settings.getHeight());
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private void fillPerformanceFlagsContentValues(BookmarkBase.PerformanceFlags perfFlags,
Packit Service fa4841
	                                               ContentValues values)
Packit Service fa4841
	{
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_PERFORMANCE_RFX, perfFlags.getRemoteFX());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_PERFORMANCE_GFX, perfFlags.getGfx());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_PERFORMANCE_H264, perfFlags.getH264());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_PERFORMANCE_WALLPAPER, perfFlags.getWallpaper());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_PERFORMANCE_THEME, perfFlags.getTheming());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_PERFORMANCE_DRAG, perfFlags.getFullWindowDrag());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_PERFORMANCE_MENU_ANIMATIONS, perfFlags.getMenuAnimations());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_PERFORMANCE_FONTS, perfFlags.getFontSmoothing());
Packit Service fa4841
		values.put(BookmarkDB.DB_KEY_PERFORMANCE_COMPOSITION, perfFlags.getDesktopComposition());
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private long insertScreenSettings(SQLiteDatabase db, BookmarkBase.ScreenSettings settings)
Packit Service fa4841
	{
Packit Service fa4841
		ContentValues values = new ContentValues();
Packit Service fa4841
		fillScreenSettingsContentValues(settings, values);
Packit Service fa4841
		return db.insertOrThrow(BookmarkDB.DB_TABLE_SCREEN, null, values);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private boolean updateScreenSettings(SQLiteDatabase db, BookmarkBase bookmark)
Packit Service fa4841
	{
Packit Service fa4841
		ContentValues values = new ContentValues();
Packit Service fa4841
		fillScreenSettingsContentValues(bookmark.getScreenSettings(), values);
Packit Service fa4841
		String whereClause = BookmarkDB.ID + " IN "
Packit Service fa4841
		                     + "(SELECT " + BookmarkDB.DB_KEY_SCREEN_SETTINGS + " FROM " +
Packit Service fa4841
		                     getBookmarkTableName() + " WHERE " + BookmarkDB.ID + " =  " +
Packit Service fa4841
		                     bookmark.getId() + ");";
Packit Service fa4841
		return (db.update(BookmarkDB.DB_TABLE_SCREEN, values, whereClause, null) == 1);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private boolean updateScreenSettings3G(SQLiteDatabase db, BookmarkBase bookmark)
Packit Service fa4841
	{
Packit Service fa4841
		ContentValues values = new ContentValues();
Packit Service fa4841
		fillScreenSettingsContentValues(bookmark.getAdvancedSettings().getScreen3G(), values);
Packit Service fa4841
		String whereClause = BookmarkDB.ID + " IN "
Packit Service fa4841
		                     + "(SELECT " + BookmarkDB.DB_KEY_SCREEN_SETTINGS_3G + " FROM " +
Packit Service fa4841
		                     getBookmarkTableName() + " WHERE " + BookmarkDB.ID + " =  " +
Packit Service fa4841
		                     bookmark.getId() + ");";
Packit Service fa4841
		return (db.update(BookmarkDB.DB_TABLE_SCREEN, values, whereClause, null) == 1);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private long insertPerformanceFlags(SQLiteDatabase db, BookmarkBase.PerformanceFlags perfFlags)
Packit Service fa4841
	{
Packit Service fa4841
		ContentValues values = new ContentValues();
Packit Service fa4841
		fillPerformanceFlagsContentValues(perfFlags, values);
Packit Service fa4841
		return db.insertOrThrow(BookmarkDB.DB_TABLE_PERFORMANCE, null, values);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private boolean updatePerformanceFlags(SQLiteDatabase db, BookmarkBase bookmark)
Packit Service fa4841
	{
Packit Service fa4841
		ContentValues values = new ContentValues();
Packit Service fa4841
		fillPerformanceFlagsContentValues(bookmark.getPerformanceFlags(), values);
Packit Service fa4841
		String whereClause = BookmarkDB.ID + " IN "
Packit Service fa4841
		                     + "(SELECT " + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + " FROM " +
Packit Service fa4841
		                     getBookmarkTableName() + " WHERE " + BookmarkDB.ID + " =  " +
Packit Service fa4841
		                     bookmark.getId() + ");";
Packit Service fa4841
		return (db.update(BookmarkDB.DB_TABLE_PERFORMANCE, values, whereClause, null) == 1);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private boolean updatePerformanceFlags3G(SQLiteDatabase db, BookmarkBase bookmark)
Packit Service fa4841
	{
Packit Service fa4841
		ContentValues values = new ContentValues();
Packit Service fa4841
		fillPerformanceFlagsContentValues(bookmark.getAdvancedSettings().getPerformance3G(),
Packit Service fa4841
		                                  values);
Packit Service fa4841
		String whereClause = BookmarkDB.ID + " IN "
Packit Service fa4841
		                     + "(SELECT " + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G + " FROM " +
Packit Service fa4841
		                     getBookmarkTableName() + " WHERE " + BookmarkDB.ID + " =  " +
Packit Service fa4841
		                     bookmark.getId() + ");";
Packit Service fa4841
		return (db.update(BookmarkDB.DB_TABLE_PERFORMANCE, values, whereClause, null) == 1);
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	// safety wrappers
Packit Service fa4841
	// in case of getReadableDatabase it could happen that upgradeDB gets called which is
Packit Service fa4841
	// a problem if the DB is only readable
Packit Service fa4841
	private SQLiteDatabase getWritableDatabase()
Packit Service fa4841
	{
Packit Service fa4841
		return bookmarkDB.getWritableDatabase();
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	private SQLiteDatabase getReadableDatabase()
Packit Service fa4841
	{
Packit Service fa4841
		SQLiteDatabase db;
Packit Service fa4841
		try
Packit Service fa4841
		{
Packit Service fa4841
			db = bookmarkDB.getReadableDatabase();
Packit Service fa4841
		}
Packit Service fa4841
		catch (SQLiteException e)
Packit Service fa4841
		{
Packit Service fa4841
			db = bookmarkDB.getWritableDatabase();
Packit Service fa4841
		}
Packit Service fa4841
		return db;
Packit Service fa4841
	}
Packit Service fa4841
}