|
Packit Service |
fa4841 |
/*
|
|
Packit Service |
fa4841 |
Quick connect history gateway
|
|
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.database.Cursor;
|
|
Packit Service |
fa4841 |
import android.database.SQLException;
|
|
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.util.Log;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
import com.freerdp.freerdpcore.domain.BookmarkBase;
|
|
Packit Service |
fa4841 |
import com.freerdp.freerdpcore.domain.QuickConnectBookmark;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
import java.util.ArrayList;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
public class QuickConnectHistoryGateway
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
private final static String TAG = "QuickConnectHistoryGateway";
|
|
Packit Service |
fa4841 |
private SQLiteOpenHelper historyDB;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
public QuickConnectHistoryGateway(SQLiteOpenHelper historyDB)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
this.historyDB = historyDB;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
public ArrayList<BookmarkBase> findHistory(String filter)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
String[] column = { HistoryDB.QUICK_CONNECT_TABLE_COL_ITEM };
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
SQLiteDatabase db = getReadableDatabase();
|
|
Packit Service |
fa4841 |
String selection =
|
|
Packit Service |
fa4841 |
(filter.length() > 0)
|
|
Packit Service |
fa4841 |
? (HistoryDB.QUICK_CONNECT_TABLE_COL_ITEM + " LIKE '%" + filter + "%'")
|
|
Packit Service |
fa4841 |
: null;
|
|
Packit Service |
fa4841 |
Cursor cursor = db.query(HistoryDB.QUICK_CONNECT_TABLE_NAME, column, selection, null, null,
|
|
Packit Service |
fa4841 |
null, HistoryDB.QUICK_CONNECT_TABLE_COL_TIMESTAMP);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
ArrayList<BookmarkBase> result = new ArrayList<BookmarkBase>(cursor.getCount());
|
|
Packit Service |
fa4841 |
if (cursor.moveToFirst())
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
do
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
String hostname =
|
|
Packit Service |
fa4841 |
cursor.getString(cursor.getColumnIndex(HistoryDB.QUICK_CONNECT_TABLE_COL_ITEM));
|
|
Packit Service |
fa4841 |
QuickConnectBookmark bookmark = new QuickConnectBookmark();
|
|
Packit Service |
fa4841 |
bookmark.setLabel(hostname);
|
|
Packit Service |
fa4841 |
bookmark.setHostname(hostname);
|
|
Packit Service |
fa4841 |
result.add(bookmark);
|
|
Packit Service |
fa4841 |
} while (cursor.moveToNext());
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
cursor.close();
|
|
Packit Service |
fa4841 |
return result;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
public void addHistoryItem(String item)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
String insertHistoryItem = "INSERT OR REPLACE INTO " + HistoryDB.QUICK_CONNECT_TABLE_NAME +
|
|
Packit Service |
fa4841 |
" (" + HistoryDB.QUICK_CONNECT_TABLE_COL_ITEM + ", " +
|
|
Packit Service |
fa4841 |
HistoryDB.QUICK_CONNECT_TABLE_COL_TIMESTAMP + ") VALUES('" +
|
|
Packit Service |
fa4841 |
item + "', datetime('now'))";
|
|
Packit Service |
fa4841 |
SQLiteDatabase db = getWritableDatabase();
|
|
Packit Service |
fa4841 |
try
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
db.execSQL(insertHistoryItem);
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
catch (SQLException e)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
Log.v(TAG, e.toString());
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
public boolean historyItemExists(String item)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
String[] column = { HistoryDB.QUICK_CONNECT_TABLE_COL_ITEM };
|
|
Packit Service |
fa4841 |
SQLiteDatabase db = getReadableDatabase();
|
|
Packit Service |
fa4841 |
Cursor cursor = db.query(HistoryDB.QUICK_CONNECT_TABLE_NAME, column,
|
|
Packit Service |
fa4841 |
HistoryDB.QUICK_CONNECT_TABLE_COL_ITEM + " = '" + item + "'", null,
|
|
Packit Service |
fa4841 |
null, null, null);
|
|
Packit Service |
fa4841 |
boolean exists = (cursor.getCount() == 1);
|
|
Packit Service |
fa4841 |
cursor.close();
|
|
Packit Service |
fa4841 |
return exists;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
public void removeHistoryItem(String hostname)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
SQLiteDatabase db = getWritableDatabase();
|
|
Packit Service |
fa4841 |
db.delete(HistoryDB.QUICK_CONNECT_TABLE_NAME,
|
|
Packit Service |
fa4841 |
HistoryDB.QUICK_CONNECT_TABLE_COL_ITEM + " = '" + hostname + "'", null);
|
|
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 historyDB.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 = historyDB.getReadableDatabase();
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
catch (SQLiteException e)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
db = historyDB.getWritableDatabase();
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
return db;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
}
|