/* * Copyright (c) 2011 Denis Solonenko. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v2.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html */ package ru.orangesoftware.financisto2.activity; import android.content.Intent; import android.content.SharedPreferences; import android.database.Cursor; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.SimpleCursorAdapter; import android.widget.Spinner; import android.widget.Toast; import java.util.List; import ru.orangesoftware.financisto2.R; import ru.orangesoftware.financisto2.db.DatabaseAdapter; import ru.orangesoftware.financisto2.db.DatabaseAdapter_; import ru.orangesoftware.financisto2.model.MultiChoiceItem; public class QifImportActivity extends AbstractImportActivity implements ActivityLayoutListener { public static final String QIF_IMPORT_DATE_FORMAT = "QIF_IMPORT_DATE_FORMAT"; public static final String QIF_IMPORT_FILENAME = "QIF_IMPORT_FILENAME"; public static final String QIF_IMPORT_CURRENCY = "QIF_IMPORT_CURRENCY"; private DatabaseAdapter db; public QifImportActivity() { super(R.layout.qif_import); } @Override protected void internalOnCreate() { db = DatabaseAdapter_.getInstance_(this); Spinner currencySpinner = (Spinner)findViewById(R.id.spinnerCurrency); Cursor currencyCursor = db.getAllCurrencies("name"); startManagingCursor(currencyCursor); SimpleCursorAdapter currencyAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, currencyCursor, new String[]{"e_name"}, new int[]{android.R.id.text1}); currencyAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); currencySpinner.setAdapter(currencyAdapter); Button bOk = (Button) findViewById(R.id.bOK); bOk.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { if (edFilename.getText().toString().equals("")) { Toast.makeText(QifImportActivity.this, R.string.select_filename, Toast.LENGTH_SHORT).show(); return; } Intent data = new Intent(); updateResultIntentFromUi(data); setResult(RESULT_OK, data); finish(); } }); Button bCancel = (Button) findViewById(R.id.bCancel); bCancel.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { setResult(RESULT_CANCELED); finish(); } }); } @Override public void onSelected(int id, List<? extends MultiChoiceItem> items) { } @Override public void onSelectedPos(int id, int selectedPos) { } @Override public void onSelectedId(int id, long selectedId) { } @Override public void onClick(View view) { } @Override protected void updateResultIntentFromUi(Intent data) { Spinner currencySpinner = (Spinner)findViewById(R.id.spinnerCurrency); Spinner dateFormats = (Spinner)findViewById(R.id.spinnerDateFormats); data.putExtra(QIF_IMPORT_DATE_FORMAT, dateFormats.getSelectedItemPosition()); data.putExtra(QIF_IMPORT_FILENAME, edFilename.getText().toString()); data.putExtra(QIF_IMPORT_CURRENCY, currencySpinner.getSelectedItemId()); } @Override protected void savePreferences() { SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit(); Spinner dateFormats = (Spinner) findViewById(R.id.spinnerDateFormats); Spinner currencySpinner = (Spinner)findViewById(R.id.spinnerCurrency); editor.putInt(QIF_IMPORT_DATE_FORMAT, dateFormats.getSelectedItemPosition()); editor.putString(QIF_IMPORT_FILENAME, edFilename.getText().toString()); editor.putLong(QIF_IMPORT_CURRENCY, currencySpinner.getSelectedItemId()); editor.commit(); } @Override protected void restorePreferences() { SharedPreferences preferences = getPreferences(MODE_PRIVATE); Spinner dateFormats = (Spinner) findViewById(R.id.spinnerDateFormats); dateFormats.setSelection(preferences.getInt(QIF_IMPORT_DATE_FORMAT, 0)); edFilename = (EditText) findViewById(R.id.edFilename); edFilename.setText(preferences.getString(QIF_IMPORT_FILENAME, "")); long currencyId = preferences.getLong(QIF_IMPORT_CURRENCY, 0); Spinner currencySpinner = (Spinner)findViewById(R.id.spinnerCurrency); int count = currencySpinner.getCount(); for (int i=0; i<count; i++) { if (currencyId == currencySpinner.getItemIdAtPosition(i)) { currencySpinner.setSelection(i); break; } } } }