FreeRDP
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Modules Pages
com.freerdp.freerdpcore.services.BookmarkBaseGateway Class Referenceabstract
Inheritance diagram for com.freerdp.freerdpcore.services.BookmarkBaseGateway:

Public Member Functions

 BookmarkBaseGateway (SQLiteOpenHelper bookmarkDB)
 
void insert (BookmarkBase bookmark)
 
boolean update (BookmarkBase bookmark)
 
void delete (long id)
 
BookmarkBase findById (long id)
 
BookmarkBase findByLabel (String label)
 
ArrayList< BookmarkBase > findByLabelLike (String pattern)
 
ArrayList< BookmarkBase > findAll ()
 

Protected Member Functions

abstract BookmarkBase createBookmark ()
 
abstract String getBookmarkTableName ()
 
abstract void addBookmarkSpecificColumns (ArrayList< String > columns)
 
abstract void addBookmarkSpecificColumns (BookmarkBase bookmark, ContentValues columns)
 
abstract void readBookmarkSpecificColumns (BookmarkBase bookmark, Cursor cursor)
 
Cursor queryBookmarks (String whereClause, String orderBy)
 
BookmarkBase getBookmarkFromCursor (Cursor cursor)
 

Detailed Description

Definition at line 25 of file BookmarkBaseGateway.java.

Constructor & Destructor Documentation

◆ BookmarkBaseGateway()

com.freerdp.freerdpcore.services.BookmarkBaseGateway.BookmarkBaseGateway ( SQLiteOpenHelper  bookmarkDB)
inline

Definition at line 61 of file BookmarkBaseGateway.java.

62 {
63 this.bookmarkDB = bookmarkDB;
64 }

Member Function Documentation

◆ delete()

void com.freerdp.freerdpcore.services.BookmarkBaseGateway.delete ( long  id)
inline

Definition at line 191 of file BookmarkBaseGateway.java.

192 {
193 SQLiteDatabase db = getWritableDatabase();
194 db.delete(getBookmarkTableName(), BookmarkDB.ID + " = " + id, null);
195 }

◆ findAll()

ArrayList< BookmarkBase > com.freerdp.freerdpcore.services.BookmarkBaseGateway.findAll ( )
inline

Definition at line 247 of file BookmarkBaseGateway.java.

248 {
249 Cursor cursor = queryBookmarks(null, BookmarkDB.DB_KEY_BOOKMARK_LABEL);
250 final int count = cursor.getCount();
251 ArrayList<BookmarkBase> bookmarks = new ArrayList<>(count);
252
253 if (cursor.moveToFirst() && (count > 0))
254 {
255 do
256 {
257 bookmarks.add(getBookmarkFromCursor(cursor));
258 } while (cursor.moveToNext());
259 }
260
261 cursor.close();
262 return bookmarks;
263 }

◆ findById()

BookmarkBase com.freerdp.freerdpcore.services.BookmarkBaseGateway.findById ( long  id)
inline

Definition at line 197 of file BookmarkBaseGateway.java.

198 {
199 Cursor cursor =
200 queryBookmarks(getBookmarkTableName() + "." + BookmarkDB.ID + " = " + id, null);
201 if (cursor.getCount() == 0)
202 {
203 cursor.close();
204 return null;
205 }
206
207 cursor.moveToFirst();
208 BookmarkBase bookmark = getBookmarkFromCursor(cursor);
209 cursor.close();
210 return bookmark;
211 }

◆ findByLabel()

BookmarkBase com.freerdp.freerdpcore.services.BookmarkBaseGateway.findByLabel ( String  label)
inline

Definition at line 213 of file BookmarkBaseGateway.java.

214 {
215 Cursor cursor = queryBookmarks(BookmarkDB.DB_KEY_BOOKMARK_LABEL + " = '" + label + "'",
216 BookmarkDB.DB_KEY_BOOKMARK_LABEL);
217 if (cursor.getCount() > 1)
218 Log.e(TAG, "More than one bookmark with the same label found!");
219
220 BookmarkBase bookmark = null;
221 if (cursor.moveToFirst() && (cursor.getCount() > 0))
222 bookmark = getBookmarkFromCursor(cursor);
223
224 cursor.close();
225 return bookmark;
226 }

◆ findByLabelLike()

ArrayList< BookmarkBase > com.freerdp.freerdpcore.services.BookmarkBaseGateway.findByLabelLike ( String  pattern)
inline

Definition at line 228 of file BookmarkBaseGateway.java.

229 {
230 Cursor cursor =
231 queryBookmarks(BookmarkDB.DB_KEY_BOOKMARK_LABEL + " LIKE '%" + pattern + "%'",
232 BookmarkDB.DB_KEY_BOOKMARK_LABEL);
233 ArrayList<BookmarkBase> bookmarks = new ArrayList<>(cursor.getCount());
234
235 if (cursor.moveToFirst() && (cursor.getCount() > 0))
236 {
237 do
238 {
239 bookmarks.add(getBookmarkFromCursor(cursor));
240 } while (cursor.moveToNext());
241 }
242
243 cursor.close();
244 return bookmarks;
245 }

◆ getBookmarkFromCursor()

BookmarkBase com.freerdp.freerdpcore.services.BookmarkBaseGateway.getBookmarkFromCursor ( Cursor  cursor)
inlineprotected

Definition at line 402 of file BookmarkBaseGateway.java.

403 {
404 BookmarkBase bookmark = createBookmark();
405 bookmark.setId(cursor.getLong(cursor.getColumnIndex(KEY_BOOKMARK_ID)));
406 bookmark.setLabel(
407 cursor.getString(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_LABEL)));
408 bookmark.setUsername(
409 cursor.getString(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_USERNAME)));
410 bookmark.setPassword(
411 cursor.getString(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_PASSWORD)));
412 bookmark.setDomain(
413 cursor.getString(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_DOMAIN)));
414 readScreenSettings(bookmark, cursor);
415 readPerformanceFlags(bookmark, cursor);
416
417 // advanced settings
418 bookmark.getAdvancedSettings().setEnable3GSettings(
419 cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_3G_ENABLE)) != 0);
420 readScreenSettings3G(bookmark, cursor);
421 readPerformanceFlags3G(bookmark, cursor);
422 bookmark.getAdvancedSettings().setRedirectSDCard(
423 cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_SDCARD)) != 0);
424 bookmark.getAdvancedSettings().setRedirectSound(
425 cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_SOUND)));
426 bookmark.getAdvancedSettings().setRedirectMicrophone(
427 cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_MICROPHONE)) !=
428 0);
429 bookmark.getAdvancedSettings().setSecurity(
430 cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_SECURITY)));
431 bookmark.getAdvancedSettings().setConsoleMode(
432 cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_CONSOLE_MODE)) != 0);
433 bookmark.getAdvancedSettings().setRemoteProgram(
434 cursor.getString(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_REMOTE_PROGRAM)));
435 bookmark.getAdvancedSettings().setWorkDir(
436 cursor.getString(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_WORK_DIR)));
437
438 bookmark.getDebugSettings().setAsyncChannel(
439 cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL)) == 1);
440 bookmark.getDebugSettings().setAsyncUpdate(
441 cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE)) == 1);
442 bookmark.getDebugSettings().setDebugLevel(
443 cursor.getString(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_DEBUG_LEVEL)));
444
445 readBookmarkSpecificColumns(bookmark, cursor);
446
447 return bookmark;
448 }

◆ insert()

void com.freerdp.freerdpcore.services.BookmarkBaseGateway.insert ( BookmarkBase  bookmark)
inline

Definition at line 77 of file BookmarkBaseGateway.java.

78 {
79 // begin transaction
80 SQLiteDatabase db = getWritableDatabase();
81 db.beginTransaction();
82
83 long rowid;
84 ContentValues values = new ContentValues();
85 values.put(BookmarkDB.DB_KEY_BOOKMARK_LABEL, bookmark.getLabel());
86 values.put(BookmarkDB.DB_KEY_BOOKMARK_USERNAME, bookmark.getUsername());
87 values.put(BookmarkDB.DB_KEY_BOOKMARK_PASSWORD, bookmark.getPassword());
88 values.put(BookmarkDB.DB_KEY_BOOKMARK_DOMAIN, bookmark.getDomain());
89 // insert screen and performance settings
90 rowid = insertScreenSettings(db, bookmark.getScreenSettings());
91 values.put(BookmarkDB.DB_KEY_SCREEN_SETTINGS, rowid);
92 rowid = insertPerformanceFlags(db, bookmark.getPerformanceFlags());
93 values.put(BookmarkDB.DB_KEY_PERFORMANCE_FLAGS, rowid);
94
95 // advanced settings
96 values.put(BookmarkDB.DB_KEY_BOOKMARK_3G_ENABLE,
97 bookmark.getAdvancedSettings().getEnable3GSettings());
98 // insert 3G screen and 3G performance settings
99 rowid = insertScreenSettings(db, bookmark.getAdvancedSettings().getScreen3G());
100 values.put(BookmarkDB.DB_KEY_SCREEN_SETTINGS_3G, rowid);
101 rowid = insertPerformanceFlags(db, bookmark.getAdvancedSettings().getPerformance3G());
102 values.put(BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G, rowid);
103 values.put(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_SDCARD,
104 bookmark.getAdvancedSettings().getRedirectSDCard());
105 values.put(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_SOUND,
106 bookmark.getAdvancedSettings().getRedirectSound());
107 values.put(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_MICROPHONE,
108 bookmark.getAdvancedSettings().getRedirectMicrophone());
109 values.put(BookmarkDB.DB_KEY_BOOKMARK_SECURITY,
110 bookmark.getAdvancedSettings().getSecurity());
111 values.put(BookmarkDB.DB_KEY_BOOKMARK_CONSOLE_MODE,
112 bookmark.getAdvancedSettings().getConsoleMode());
113 values.put(BookmarkDB.DB_KEY_BOOKMARK_REMOTE_PROGRAM,
114 bookmark.getAdvancedSettings().getRemoteProgram());
115 values.put(BookmarkDB.DB_KEY_BOOKMARK_WORK_DIR,
116 bookmark.getAdvancedSettings().getWorkDir());
117
118 values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL,
119 bookmark.getDebugSettings().getAsyncChannel());
120 values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE,
121 bookmark.getDebugSettings().getAsyncUpdate());
122 values.put(BookmarkDB.DB_KEY_BOOKMARK_DEBUG_LEVEL,
123 bookmark.getDebugSettings().getDebugLevel());
124
125 // add any special columns
126 addBookmarkSpecificColumns(bookmark, values);
127
128 // insert bookmark and end transaction
129 db.insertOrThrow(getBookmarkTableName(), null, values);
130 db.setTransactionSuccessful();
131 db.endTransaction();
132 }

◆ queryBookmarks()

Cursor com.freerdp.freerdpcore.services.BookmarkBaseGateway.queryBookmarks ( String  whereClause,
String  orderBy 
)
inlineprotected

Definition at line 265 of file BookmarkBaseGateway.java.

266 {
267 // create tables string
268 final String ID = BookmarkDB.ID;
269 final String tables =
270 BookmarkDB.DB_TABLE_BOOKMARK + " INNER JOIN " + BookmarkDB.DB_TABLE_SCREEN + " AS " +
271 JOIN_PREFIX + BookmarkDB.DB_KEY_SCREEN_SETTINGS + " ON " + JOIN_PREFIX +
272 BookmarkDB.DB_KEY_SCREEN_SETTINGS + "." + ID + " = " + BookmarkDB.DB_TABLE_BOOKMARK +
273 "." + BookmarkDB.DB_KEY_SCREEN_SETTINGS + " INNER JOIN " +
274 BookmarkDB.DB_TABLE_PERFORMANCE + " AS " + JOIN_PREFIX +
275 BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + " ON " + JOIN_PREFIX +
276 BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + "." + ID + " = " + BookmarkDB.DB_TABLE_BOOKMARK +
277 "." + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS + " INNER JOIN " +
278 BookmarkDB.DB_TABLE_SCREEN + " AS " + JOIN_PREFIX +
279 BookmarkDB.DB_KEY_SCREEN_SETTINGS_3G + " ON " + JOIN_PREFIX +
280 BookmarkDB.DB_KEY_SCREEN_SETTINGS_3G + "." + ID + " = " + BookmarkDB.DB_TABLE_BOOKMARK +
281 "." + BookmarkDB.DB_KEY_SCREEN_SETTINGS_3G + " INNER JOIN " +
282 BookmarkDB.DB_TABLE_PERFORMANCE + " AS " + JOIN_PREFIX +
283 BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G + " ON " + JOIN_PREFIX +
284 BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G + "." + ID + " = " +
285 BookmarkDB.DB_TABLE_BOOKMARK + "." + BookmarkDB.DB_KEY_PERFORMANCE_FLAGS_3G;
286
287 // create columns list
288 ArrayList<String> columns = new ArrayList<>();
289 addBookmarkColumns(columns);
290 addScreenSettingsColumns(columns);
291 addPerformanceFlagsColumns(columns);
292 addScreenSettings3GColumns(columns);
293 addPerformanceFlags3GColumns(columns);
294
295 String[] cols = new String[columns.size()];
296 columns.toArray(cols);
297
298 SQLiteDatabase db = getReadableDatabase();
299 final String query = SQLiteQueryBuilder.buildQueryString(false, tables, cols, whereClause,
300 null, null, orderBy, null);
301 return db.rawQuery(query, null);
302 }

◆ update()

boolean com.freerdp.freerdpcore.services.BookmarkBaseGateway.update ( BookmarkBase  bookmark)
inline

Definition at line 134 of file BookmarkBaseGateway.java.

135 {
136 // start a transaction
137 SQLiteDatabase db = getWritableDatabase();
138 db.beginTransaction();
139
140 // bookmark settings
141 ContentValues values = new ContentValues();
142 values.put(BookmarkDB.DB_KEY_BOOKMARK_LABEL, bookmark.getLabel());
143 values.put(BookmarkDB.DB_KEY_BOOKMARK_USERNAME, bookmark.getUsername());
144 values.put(BookmarkDB.DB_KEY_BOOKMARK_PASSWORD, bookmark.getPassword());
145 values.put(BookmarkDB.DB_KEY_BOOKMARK_DOMAIN, bookmark.getDomain());
146 // update screen and performance settings settings
147 updateScreenSettings(db, bookmark);
148 updatePerformanceFlags(db, bookmark);
149
150 // advanced settings
151 values.put(BookmarkDB.DB_KEY_BOOKMARK_3G_ENABLE,
152 bookmark.getAdvancedSettings().getEnable3GSettings());
153 // update 3G screen and 3G performance settings settings
154 updateScreenSettings3G(db, bookmark);
155 updatePerformanceFlags3G(db, bookmark);
156 values.put(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_SDCARD,
157 bookmark.getAdvancedSettings().getRedirectSDCard());
158 values.put(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_SOUND,
159 bookmark.getAdvancedSettings().getRedirectSound());
160 values.put(BookmarkDB.DB_KEY_BOOKMARK_REDIRECT_MICROPHONE,
161 bookmark.getAdvancedSettings().getRedirectMicrophone());
162 values.put(BookmarkDB.DB_KEY_BOOKMARK_SECURITY,
163 bookmark.getAdvancedSettings().getSecurity());
164 values.put(BookmarkDB.DB_KEY_BOOKMARK_CONSOLE_MODE,
165 bookmark.getAdvancedSettings().getConsoleMode());
166 values.put(BookmarkDB.DB_KEY_BOOKMARK_REMOTE_PROGRAM,
167 bookmark.getAdvancedSettings().getRemoteProgram());
168 values.put(BookmarkDB.DB_KEY_BOOKMARK_WORK_DIR,
169 bookmark.getAdvancedSettings().getWorkDir());
170
171 values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL,
172 bookmark.getDebugSettings().getAsyncChannel());
173 values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE,
174 bookmark.getDebugSettings().getAsyncUpdate());
175 values.put(BookmarkDB.DB_KEY_BOOKMARK_DEBUG_LEVEL,
176 bookmark.getDebugSettings().getDebugLevel());
177
178 addBookmarkSpecificColumns(bookmark, values);
179
180 // update bookmark
181 boolean res = (db.update(getBookmarkTableName(), values,
182 BookmarkDB.ID + " = " + bookmark.getId(), null) == 1);
183
184 // commit
185 db.setTransactionSuccessful();
186 db.endTransaction();
187
188 return res;
189 }

The documentation for this class was generated from the following file: