protected void saveAndWriteRecent() { // We need server address or SSH server to be filled out to save. Otherwise, // we keep adding empty connections. if (selected.getConnectionType() == Constants.CONN_TYPE_SSH && selected.getSshServer().equals("") || selected.getAddress().equals("")) return; SQLiteDatabase db = database.getWritableDatabase(); db.beginTransaction(); try { selected.save(db); MostRecentBean mostRecent = getMostRecent(db); if (mostRecent == null) { mostRecent = new MostRecentBean(); mostRecent.setConnectionId(selected.get_Id()); mostRecent.Gen_insert(db); } else { mostRecent.setConnectionId(selected.get_Id()); mostRecent.Gen_update(db); } db.setTransactionSuccessful(); } finally { db.endTransaction(); db.close(); } }
public void arriveOnPage() { ArrayList<ConnectionBean> connections = new ArrayList<ConnectionBean>(); ConnectionBean.getAll( database.getReadableDatabase(), ConnectionBean.GEN_TABLE_NAME, connections, ConnectionBean.newInstance); Collections.sort(connections); connections.add(0, new ConnectionBean(this)); int connectionIndex = 0; if (connections.size() > 1) { MostRecentBean mostRecent = getMostRecent(database.getReadableDatabase()); if (mostRecent != null) { for (int i = 1; i < connections.size(); ++i) { if (connections.get(i).get_Id() == mostRecent.getConnectionId()) { connectionIndex = i; break; } } } } spinnerConnection.setAdapter( new ArrayAdapter<ConnectionBean>( this, R.layout.connection_list_entry, connections.toArray(new ConnectionBean[connections.size()]))); spinnerConnection.setSelection(connectionIndex, false); selected = connections.get(connectionIndex); updateViewFromSelected(); IntroTextDialog.showIntroTextIfNecessary(this, database, isFree && startingOrHasPaused); startingOrHasPaused = false; }
public void saveAndWriteRecent(boolean saveEmpty) { Database database = new Database(c); // We need server address or SSH server to be filled out to save. Otherwise, // we keep adding empty connections. // However, if there is partial data from a URI, we can present the edit screen. // Alternately, perhaps we could process some extra data if ((getConnectionType() == Constants.CONN_TYPE_SSH && getSshServer().equals("") || getAddress().equals("")) && !saveEmpty) { return; } SQLiteDatabase db = database.getWritableDatabase(); db.beginTransaction(); try { save(db); MostRecentBean mostRecent = getMostRecent(db); if (mostRecent == null) { mostRecent = new MostRecentBean(); mostRecent.setConnectionId(get_Id()); mostRecent.Gen_insert(db); } else { mostRecent.setConnectionId(get_Id()); mostRecent.Gen_update(db); } db.setTransactionSuccessful(); } finally { db.endTransaction(); db.close(); } if (db.isOpen()) { db.close(); } }
/** * Return the object representing the app global state in the database, or null if the object * hasn't been set up yet * * @param db App's database -- only needs to be readable * @return Object representing the single persistent instance of MostRecentBean, which is the * app's global state */ public static MostRecentBean getMostRecent(SQLiteDatabase db) { ArrayList<MostRecentBean> recents = new ArrayList<MostRecentBean>(1); MostRecentBean.getAll(db, MostRecentBean.GEN_TABLE_NAME, recents, MostRecentBean.GEN_NEW); if (recents.size() == 0) return null; return recents.get(0); }
static ConnectionBean createLoadFromUri(Uri dataUri, Context ctx) { ConnectionBean connection = new ConnectionBean(ctx); if (dataUri == null) return connection; Database database = new Database(ctx); String host = dataUri.getHost(); // Intent generated by connection shortcut widget if (host != null && host.startsWith(Constants.CONNECTION)) { int port = 0; int idx = host.indexOf(':'); if (idx != -1) { try { port = Integer.parseInt(host.substring(idx + 1)); } catch (NumberFormatException nfe) { } host = host.substring(0, idx); } if (connection.Gen_read(database.getReadableDatabase(), port)) { MostRecentBean bean = getMostRecent(database.getReadableDatabase()); if (bean != null) { bean.setConnectionId(connection.get_Id()); bean.Gen_update(database.getWritableDatabase()); database.close(); } } return connection; } // search based on nickname SQLiteDatabase queryDb = database.getReadableDatabase(); String connectionName = dataUri.getQueryParameter(Constants.PARAM_CONN_NAME); Cursor nickCursor = null; if (connectionName != null) nickCursor = queryDb.query( GEN_TABLE_NAME, new String[] {GEN_FIELD__ID}, GEN_FIELD_NICKNAME + " = ?", new String[] {connectionName}, null, null, null); if (nickCursor != null && nickCursor.moveToFirst()) { // there could be many values, so we will just pick one Log.i( TAG, String.format(Locale.US, "Loding connection info from nickname: %s", connectionName)); connection.Gen_populate(nickCursor, connection.Gen_columnIndices(nickCursor)); nickCursor.close(); database.close(); return connection; } if (nickCursor != null) nickCursor.close(); // search based on hostname Cursor hostCursor = null; if (host != null) hostCursor = queryDb.query( GEN_TABLE_NAME, new String[] {GEN_FIELD__ID}, GEN_FIELD_ADDRESS + " = ?", new String[] {host}, null, null, null); if (hostCursor != null && hostCursor.moveToFirst()) { Log.i(TAG, String.format(Locale.US, "Loding connection info from hostname: %s", host)); connection.Gen_populate(hostCursor, connection.Gen_columnIndices(hostCursor)); hostCursor.close(); database.close(); return connection; } if (hostCursor != null) hostCursor.close(); database.close(); return connection; }