public static IntentDataParameters parseData(Context context, Uri data) { IntentDataParameters parameters = new IntentDataParameters(); // transaction type String transactionTypeName = data.getQueryParameter(PARAM_TRANSACTION_TYPE); TransactionTypes type = TransactionTypes.valueOf(transactionTypeName); if (type != null) parameters.transactionType = type; // account String accountName = data.getQueryParameter(PARAM_ACCOUNT); if (accountName != null) { AccountRepository account = new AccountRepository(context); int accountId = account.loadIdByName(accountName); parameters.accountId = accountId; } parameters.payeeName = data.getQueryParameter(PARAM_PAYEE); if (parameters.payeeName != null) { PayeeService payee = new PayeeService(context); int payeeId = payee.loadIdByName(parameters.payeeName); parameters.payeeId = payeeId; } String amount = data.getQueryParameter(PARAM_AMOUNT); parameters.amount = MoneyFactory.fromString(amount); parameters.categoryName = data.getQueryParameter(PARAM_CATEGORY); if (parameters.categoryName != null) { CategoryService category = new CategoryService(context); int categoryId = category.loadIdByName(parameters.categoryName); parameters.categoryId = categoryId; } return parameters; }