package aws.apps.usbDeviceEnumerator.data; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.v4.content.ContextCompat; import android.util.Log; import java.io.File; import aws.apps.usbDeviceEnumerator.R; import aws.apps.usbDeviceEnumerator.util.NotifyUser; /*package*/ class StorageUtils { private static final String TAG = StorageUtils.class.getSimpleName(); public static File getExternalStorageLocation(final Context context) { final File[] dirs = ContextCompat.getExternalFilesDirs(context, null); final File dir; if (dirs == null || dirs.length == 0) { dir = null; } else { dir = dirs[0]; } return dir; } public static Cursor executeQuery(final Context context, final String dbPath, final String table, final String[] fields, final String selection, final String[] selectionArgs, final String order) { SQLiteDatabase db = null; try { db = SQLiteDatabase.openDatabase(dbPath, null, SQLiteDatabase.OPEN_READONLY); if (!db.isOpen()) { Log.e(TAG, "^ DB was not opened!"); NotifyUser.notify(context, R.string.error_could_not_open_db); return null; } return db.query(table, fields, selection, selectionArgs, null, null, order); } catch (Exception e) { Log.e(TAG, "^ executeQuery(): " + e.getMessage()); if (db != null && db.isOpen()) { db.close(); } } return null; } public static String getStringAndClose(final Cursor cursor, final String colName) { final String result; if (cursor != null) { if (cursor.getCount() > 0) { cursor.moveToFirst(); result = cursor.getString(cursor.getColumnIndex(colName)); cursor.close(); } else { result = null; } if (!cursor.isClosed()) { cursor.close(); } } else { result = null; } return result; } }