|
Packit Service |
fa4841 |
/*
|
|
Packit Service |
fa4841 |
Android Bookmark Database
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
bb5c11 |
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
Packit Service |
bb5c11 |
If a copy of the MPL was not distributed with this file, You can obtain one at 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.content.Context;
|
|
Packit Service |
fa4841 |
import android.database.Cursor;
|
|
Packit Service |
fa4841 |
import android.database.sqlite.SQLiteDatabase;
|
|
Packit Service |
fa4841 |
import android.database.sqlite.SQLiteOpenHelper;
|
|
Packit Service |
fa4841 |
import android.provider.BaseColumns;
|
|
Packit Service |
fa4841 |
import android.util.Log;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
import java.util.ArrayList;
|
|
Packit Service |
fa4841 |
import java.util.Arrays;
|
|
Packit Service |
fa4841 |
import java.util.List;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
bb5c11 |
public class BookmarkDB extends SQLiteOpenHelper {
|
|
Packit Service |
bb5c11 |
public static final String ID = BaseColumns._ID;
|
|
Packit Service |
bb5c11 |
private static final int DB_VERSION = 9;
|
|
Packit Service |
bb5c11 |
private static final String DB_BACKUP_PREFIX = "temp_";
|
|
Packit Service |
bb5c11 |
private static final String DB_NAME = "bookmarks.db";
|
|
Packit Service |
bb5c11 |
static final String DB_TABLE_BOOKMARK = "tbl_manual_bookmarks";
|
|
Packit Service |
bb5c11 |
static final String DB_TABLE_SCREEN = "tbl_screen_settings";
|
|
Packit Service |
bb5c11 |
static final String DB_TABLE_PERFORMANCE = "tbl_performance_flags";
|
|
Packit Service |
bb5c11 |
private static final String[] DB_TABLES = {
|
|
Packit Service |
bb5c11 |
DB_TABLE_BOOKMARK,
|
|
Packit Service |
bb5c11 |
DB_TABLE_SCREEN,
|
|
Packit Service |
bb5c11 |
DB_TABLE_PERFORMANCE
|
|
Packit Service |
bb5c11 |
};
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_SCREEN_COLORS = "colors";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_SCREEN_RESOLUTION = "resolution";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_SCREEN_WIDTH = "width";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_SCREEN_HEIGHT = "height";
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_SCREEN_SETTINGS = "screen_settings";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_SCREEN_SETTINGS_3G = "screen_3g";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_PERFORMANCE_FLAGS = "performance_flags";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_PERFORMANCE_FLAGS_3G = "performance_3g";
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_PERFORMANCE_RFX = "perf_remotefx";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_PERFORMANCE_GFX = "perf_gfx";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_PERFORMANCE_H264 = "perf_gfx_h264";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_PERFORMANCE_WALLPAPER = "perf_wallpaper";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_PERFORMANCE_THEME = "perf_theming";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_PERFORMANCE_DRAG = "perf_full_window_drag";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_PERFORMANCE_MENU_ANIMATIONS = "perf_menu_animations";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_PERFORMANCE_FONTS = "perf_font_smoothing";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_PERFORMANCE_COMPOSITION = "perf_desktop_composition";
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_LABEL = "label";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_HOSTNAME = "hostname";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_USERNAME = "username";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_PASSWORD = "password";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_DOMAIN = "domain";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_PORT = "port";
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_REDIRECT_SDCARD = "redirect_sdcard";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_REDIRECT_SOUND = "redirect_sound";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_REDIRECT_MICROPHONE = "redirect_microphone";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_SECURITY = "security";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_REMOTE_PROGRAM = "remote_program";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_WORK_DIR = "work_dir";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_ASYNC_CHANNEL = "async_channel";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_ASYNC_INPUT = "async_input";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_ASYNC_UPDATE = "async_update";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_CONSOLE_MODE = "console_mode";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_DEBUG_LEVEL = "debug_level";
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_GW_ENABLE = "enable_gateway_settings";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_GW_HOSTNAME = "gateway_hostname";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_GW_PORT = "gateway_port";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_GW_USERNAME = "gateway_username";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_GW_PASSWORD = "gateway_password";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_GW_DOMAIN = "gateway_domain";
|
|
Packit Service |
bb5c11 |
static final String DB_KEY_BOOKMARK_3G_ENABLE = "enable_3g_settings";
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
public BookmarkDB(Context context) {
|
|
Packit Service |
bb5c11 |
super(context, DB_NAME, null, DB_VERSION);
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
private static List<String> GetColumns(SQLiteDatabase db, String tableName) {
|
|
Packit Service |
bb5c11 |
List<String> ar = null;
|
|
Packit Service |
bb5c11 |
Cursor c = null;
|
|
Packit Service |
bb5c11 |
try {
|
|
Packit Service |
bb5c11 |
c = db.rawQuery("SELECT * FROM " + tableName + " LIMIT 1", null);
|
|
Packit Service |
bb5c11 |
if (c != null) {
|
|
Packit Service |
bb5c11 |
ar = new ArrayList<>(Arrays.asList(c.getColumnNames()));
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
} catch (Exception e) {
|
|
Packit Service |
bb5c11 |
Log.v(tableName, e.getMessage(), e);
|
|
Packit Service |
bb5c11 |
e.printStackTrace();
|
|
Packit Service |
bb5c11 |
} finally {
|
|
Packit Service |
bb5c11 |
if (c != null)
|
|
Packit Service |
bb5c11 |
c.close();
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
return ar;
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
private static String joinStrings(List<String> list, String delim) {
|
|
Packit Service |
bb5c11 |
StringBuilder buf = new StringBuilder();
|
|
Packit Service |
bb5c11 |
int num = list.size();
|
|
Packit Service |
bb5c11 |
for (int i = 0; i < num; i++) {
|
|
Packit Service |
bb5c11 |
if (i != 0)
|
|
Packit Service |
bb5c11 |
buf.append(delim);
|
|
Packit Service |
bb5c11 |
buf.append((String) list.get(i));
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
return buf.toString();
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
private void backupTables(SQLiteDatabase db) {
|
|
Packit Service |
bb5c11 |
for (String table : DB_TABLES) {
|
|
Packit Service |
bb5c11 |
final String tmpTable = DB_BACKUP_PREFIX + table;
|
|
Packit Service |
bb5c11 |
final String query = "ALTER TABLE '" + table + "' RENAME TO '" + tmpTable + "'";
|
|
Packit Service |
bb5c11 |
try {
|
|
Packit Service |
bb5c11 |
db.execSQL(query);
|
|
Packit Service |
bb5c11 |
} catch (Exception e) {
|
|
Packit Service |
bb5c11 |
/* Ignore errors if table does not exist. */
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
private void dropOldTables(SQLiteDatabase db) {
|
|
Packit Service |
bb5c11 |
for (String table : DB_TABLES) {
|
|
Packit Service |
bb5c11 |
final String tmpTable = DB_BACKUP_PREFIX + table;
|
|
Packit Service |
bb5c11 |
final String query = "DROP TABLE IF EXISTS '" + tmpTable + "'";
|
|
Packit Service |
bb5c11 |
db.execSQL(query);
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
private void createDB(SQLiteDatabase db) {
|
|
Packit Service |
bb5c11 |
final String sqlScreenSettings =
|
|
Packit Service |
bb5c11 |
"CREATE TABLE IF NOT EXISTS " + DB_TABLE_SCREEN + " ("
|
|
Packit Service |
bb5c11 |
+ ID + " INTEGER PRIMARY KEY, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_SCREEN_COLORS + " INTEGER DEFAULT 16, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_SCREEN_RESOLUTION + " INTEGER DEFAULT 0, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_SCREEN_WIDTH + ", "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_SCREEN_HEIGHT + ");";
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
db.execSQL(sqlScreenSettings);
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
final String sqlPerformanceFlags =
|
|
Packit Service |
bb5c11 |
"CREATE TABLE IF NOT EXISTS " + DB_TABLE_PERFORMANCE + " ("
|
|
Packit Service |
bb5c11 |
+ ID + " INTEGER PRIMARY KEY, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_PERFORMANCE_RFX + " INTEGER, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_PERFORMANCE_GFX + " INTEGER, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_PERFORMANCE_H264 + " INTEGER, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_PERFORMANCE_WALLPAPER + " INTEGER, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_PERFORMANCE_THEME + " INTEGER, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_PERFORMANCE_DRAG + " INTEGER, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_PERFORMANCE_MENU_ANIMATIONS + " INTEGER, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_PERFORMANCE_FONTS + " INTEGER, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_PERFORMANCE_COMPOSITION + " INTEGER);";
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
db.execSQL(sqlPerformanceFlags);
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
final String sqlManualBookmarks = getManualBookmarksCreationString();
|
|
Packit Service |
bb5c11 |
db.execSQL(sqlManualBookmarks);
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
private void upgradeTables(SQLiteDatabase db) {
|
|
Packit Service |
bb5c11 |
for (String table : DB_TABLES) {
|
|
Packit Service |
bb5c11 |
final String tmpTable = DB_BACKUP_PREFIX + table;
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
final List<String> newColumns = GetColumns(db, table);
|
|
Packit Service |
bb5c11 |
List<String> columns = GetColumns(db, tmpTable);
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
if (columns != null) {
|
|
Packit Service |
bb5c11 |
columns.retainAll(newColumns);
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
// restore data
|
|
Packit Service |
bb5c11 |
final String cols = joinStrings(columns, ",");
|
|
Packit Service |
bb5c11 |
final String query = String.format("INSERT INTO %s (%s) SELECT %s from '%s'", table, cols, cols, tmpTable);
|
|
Packit Service |
bb5c11 |
db.execSQL(query);
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
private void downgradeTables(SQLiteDatabase db) {
|
|
Packit Service |
bb5c11 |
for (String table : DB_TABLES) {
|
|
Packit Service |
bb5c11 |
final String tmpTable = DB_BACKUP_PREFIX + table;
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
List<String> oldColumns = GetColumns(db, table);
|
|
Packit Service |
bb5c11 |
final List<String> columns = GetColumns(db, tmpTable);
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
if (oldColumns != null) {
|
|
Packit Service |
bb5c11 |
oldColumns.retainAll(columns);
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
// restore data
|
|
Packit Service |
bb5c11 |
final String cols = joinStrings(oldColumns, ",");
|
|
Packit Service |
bb5c11 |
final String query = String.format("INSERT INTO %s (%s) SELECT %s from '%s'", table, cols, cols, tmpTable);
|
|
Packit Service |
bb5c11 |
db.execSQL(query);
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
private List<String> getTableNames(SQLiteDatabase db) {
|
|
Packit Service |
bb5c11 |
final String query = "SELECT name FROM sqlite_master WHERE type='table'";
|
|
Packit Service |
bb5c11 |
Cursor cursor = db.rawQuery(query, null);
|
|
Packit Service |
bb5c11 |
List<String> list = new ArrayList<>();
|
|
Packit Service |
bb5c11 |
try {
|
|
Packit Service |
bb5c11 |
if (cursor.moveToFirst() && (cursor.getCount() > 0)) {
|
|
Packit Service |
bb5c11 |
while (!cursor.isAfterLast()) {
|
|
Packit Service |
bb5c11 |
final String name = cursor.getString(cursor.getColumnIndex("name"));
|
|
Packit Service |
bb5c11 |
list.add(name);
|
|
Packit Service |
bb5c11 |
cursor.moveToNext();
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
} finally {
|
|
Packit Service |
bb5c11 |
cursor.close();
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
return list;
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
private void insertDefault(SQLiteDatabase db) {
|
|
Packit Service |
bb5c11 |
ContentValues screenValues = new ContentValues();
|
|
Packit Service |
bb5c11 |
screenValues.put(DB_KEY_SCREEN_COLORS, 32);
|
|
Packit Service |
bb5c11 |
screenValues.put(DB_KEY_SCREEN_RESOLUTION, 1);
|
|
Packit Service |
bb5c11 |
screenValues.put(DB_KEY_SCREEN_WIDTH, 1024);
|
|
Packit Service |
bb5c11 |
screenValues.put(DB_KEY_SCREEN_HEIGHT, 768);
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
final long idScreen = db.insert(DB_TABLE_SCREEN, null, screenValues);
|
|
Packit Service |
bb5c11 |
final long idScreen3g = db.insert(DB_TABLE_SCREEN, null, screenValues);
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
ContentValues performanceValues = new ContentValues();
|
|
Packit Service |
bb5c11 |
performanceValues.put(DB_KEY_PERFORMANCE_RFX, 1);
|
|
Packit Service |
bb5c11 |
performanceValues.put(DB_KEY_PERFORMANCE_GFX, 1);
|
|
Packit Service |
bb5c11 |
performanceValues.put(DB_KEY_PERFORMANCE_H264, 0);
|
|
Packit Service |
bb5c11 |
performanceValues.put(DB_KEY_PERFORMANCE_WALLPAPER, 0);
|
|
Packit Service |
bb5c11 |
performanceValues.put(DB_KEY_PERFORMANCE_THEME, 0);
|
|
Packit Service |
bb5c11 |
performanceValues.put(DB_KEY_PERFORMANCE_DRAG, 0);
|
|
Packit Service |
bb5c11 |
performanceValues.put(DB_KEY_PERFORMANCE_MENU_ANIMATIONS, 0);
|
|
Packit Service |
bb5c11 |
performanceValues.put(DB_KEY_PERFORMANCE_FONTS, 0);
|
|
Packit Service |
bb5c11 |
performanceValues.put(DB_KEY_PERFORMANCE_COMPOSITION, 0);
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
final long idPerformance = db.insert(DB_TABLE_PERFORMANCE, null, performanceValues);
|
|
Packit Service |
bb5c11 |
final long idPerformance3g = db.insert(DB_TABLE_PERFORMANCE, null, performanceValues);
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
ContentValues bookmarkValues = new ContentValues();
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_LABEL, "Test Server");
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_HOSTNAME, "testservice.afreerdp.com");
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_USERNAME, "");
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_PASSWORD, "");
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_DOMAIN, "");
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_PORT, "3389");
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_SCREEN_SETTINGS, idScreen);
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_SCREEN_SETTINGS_3G, idScreen3g);
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_PERFORMANCE_FLAGS, idPerformance);
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_PERFORMANCE_FLAGS_3G, idPerformance3g);
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_REDIRECT_SDCARD, 0);
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_REDIRECT_SOUND, 0);
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_REDIRECT_MICROPHONE, 0);
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_SECURITY, 0);
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_REMOTE_PROGRAM, "");
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_WORK_DIR, "");
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_ASYNC_CHANNEL, 1);
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_ASYNC_INPUT, 1);
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_ASYNC_UPDATE, 1);
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_CONSOLE_MODE, 0);
|
|
Packit Service |
bb5c11 |
bookmarkValues.put(DB_KEY_BOOKMARK_DEBUG_LEVEL, "INFO");
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
db.insert(DB_TABLE_BOOKMARK, null, bookmarkValues);
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
@Override
|
|
Packit Service |
bb5c11 |
public void onCreate(SQLiteDatabase db) {
|
|
Packit Service |
bb5c11 |
createDB(db);
|
|
Packit Service |
bb5c11 |
insertDefault(db);
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
private String getManualBookmarksCreationString() {
|
|
Packit Service |
bb5c11 |
return (
|
|
Packit Service |
bb5c11 |
"CREATE TABLE IF NOT EXISTS " + DB_TABLE_BOOKMARK + " ("
|
|
Packit Service |
bb5c11 |
+ ID + " INTEGER PRIMARY KEY, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_LABEL + " TEXT NOT NULL, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_HOSTNAME + " TEXT NOT NULL, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_USERNAME + " TEXT NOT NULL, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_PASSWORD + " TEXT, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_DOMAIN + " TEXT, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_PORT + " TEXT, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_SCREEN_SETTINGS + " INTEGER NOT NULL, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_PERFORMANCE_FLAGS + " INTEGER NOT NULL, "
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_GW_ENABLE + " INTEGER DEFAULT 0, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_GW_HOSTNAME + " TEXT, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_GW_PORT + " INTEGER DEFAULT 443, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_GW_USERNAME + " TEXT, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_GW_PASSWORD + " TEXT, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_GW_DOMAIN + " TEXT, "
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_3G_ENABLE + " INTEGER DEFAULT 0, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_SCREEN_SETTINGS_3G + " INTEGER NOT NULL, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_PERFORMANCE_FLAGS_3G + " INTEGER NOT NULL, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_REDIRECT_SDCARD + " INTEGER DEFAULT 0, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_REDIRECT_SOUND + " INTEGER DEFAULT 0, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_REDIRECT_MICROPHONE + " INTEGER DEFAULT 0, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_SECURITY + " INTEGER, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_REMOTE_PROGRAM + " TEXT, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_WORK_DIR + " TEXT, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_ASYNC_CHANNEL + " INTEGER DEFAULT 0, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_ASYNC_INPUT + " INTEGER DEFAULT 0, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_ASYNC_UPDATE + " INTEGER DEFAULT 0, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_CONSOLE_MODE + " INTEGER, "
|
|
Packit Service |
bb5c11 |
+ DB_KEY_BOOKMARK_DEBUG_LEVEL + " TEXT DEFAULT 'INFO', "
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
+ "FOREIGN KEY(" + DB_KEY_SCREEN_SETTINGS + ") REFERENCES " + DB_TABLE_SCREEN + "(" + ID + "), "
|
|
Packit Service |
bb5c11 |
+ "FOREIGN KEY(" + DB_KEY_PERFORMANCE_FLAGS + ") REFERENCES " + DB_TABLE_PERFORMANCE + "(" + ID + "), "
|
|
Packit Service |
bb5c11 |
+ "FOREIGN KEY(" + DB_KEY_SCREEN_SETTINGS_3G + ") REFERENCES " + DB_TABLE_SCREEN + "(" + ID + "), "
|
|
Packit Service |
bb5c11 |
+ "FOREIGN KEY(" + DB_KEY_PERFORMANCE_FLAGS_3G + ") REFERENCES " + DB_TABLE_PERFORMANCE + "(" + ID + ") "
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
+ ");");
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
private void recreateDB(SQLiteDatabase db) {
|
|
Packit Service |
bb5c11 |
for (String table : DB_TABLES) {
|
|
Packit Service |
bb5c11 |
final String query = "DROP TABLE IF EXISTS '" + table + "'";
|
|
Packit Service |
bb5c11 |
db.execSQL(query);
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
onCreate(db);
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
private void upgradeDB(SQLiteDatabase db) {
|
|
Packit Service |
bb5c11 |
db.beginTransaction();
|
|
Packit Service |
bb5c11 |
try {
|
|
Packit Service |
bb5c11 |
/* Back up old tables. */
|
|
Packit Service |
bb5c11 |
dropOldTables(db);
|
|
Packit Service |
bb5c11 |
backupTables(db);
|
|
Packit Service |
bb5c11 |
createDB(db);
|
|
Packit Service |
bb5c11 |
upgradeTables(db);
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
db.setTransactionSuccessful();
|
|
Packit Service |
bb5c11 |
} finally {
|
|
Packit Service |
bb5c11 |
db.endTransaction();
|
|
Packit Service |
bb5c11 |
dropOldTables(db);
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
private void downgradeDB(SQLiteDatabase db) {
|
|
Packit Service |
bb5c11 |
db.beginTransaction();
|
|
Packit Service |
bb5c11 |
try {
|
|
Packit Service |
bb5c11 |
/* Back up old tables. */
|
|
Packit Service |
bb5c11 |
dropOldTables(db);
|
|
Packit Service |
bb5c11 |
backupTables(db);
|
|
Packit Service |
bb5c11 |
createDB(db);
|
|
Packit Service |
bb5c11 |
downgradeTables(db);
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
db.setTransactionSuccessful();
|
|
Packit Service |
bb5c11 |
} finally {
|
|
Packit Service |
bb5c11 |
db.endTransaction();
|
|
Packit Service |
bb5c11 |
dropOldTables(db);
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
// from http://stackoverflow.com/questions/3424156/upgrade-sqlite-database-from-one-version-to-another
|
|
Packit Service |
bb5c11 |
@Override
|
|
Packit Service |
bb5c11 |
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
|
Packit Service |
bb5c11 |
switch (oldVersion) {
|
|
Packit Service |
bb5c11 |
case 0:
|
|
Packit Service |
bb5c11 |
case 1:
|
|
Packit Service |
bb5c11 |
case 2:
|
|
Packit Service |
bb5c11 |
case 3:
|
|
Packit Service |
bb5c11 |
case 4:
|
|
Packit Service |
bb5c11 |
case 5:
|
|
Packit Service |
bb5c11 |
case 6:
|
|
Packit Service |
bb5c11 |
case 7:
|
|
Packit Service |
bb5c11 |
case 8:
|
|
Packit Service |
bb5c11 |
case 9:
|
|
Packit Service |
bb5c11 |
upgradeDB(db);
|
|
Packit Service |
bb5c11 |
break;
|
|
Packit Service |
bb5c11 |
default:
|
|
Packit Service |
bb5c11 |
recreateDB(db);
|
|
Packit Service |
bb5c11 |
break;
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
bb5c11 |
@Override
|
|
Packit Service |
bb5c11 |
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
|
Packit Service |
bb5c11 |
downgradeDB(db);
|
|
Packit Service |
bb5c11 |
}
|
|
Packit Service |
bb5c11 |
|
|
Packit Service |
fa4841 |
}
|