Subversion Repositories ES

Compare Revisions

Last modification

Ignore whitespace Rev 11 → Rev 12

/trunk/src/de/pointedears/converter/app/CurrenciesActivity.java
3,9 → 3,6
import java.util.HashMap;
 
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.text.Editable;
import android.view.KeyEvent;
30,17 → 27,32
{
/*
* Constants for mapping value strings
*
* @todo: Use resource IDs
*/
private static final String VALUE_CHF = "CHF"; //$NON-NLS-1$
private static final String VALUE_EUR = "EUR"; //$NON-NLS-1$
private static final String VALUE_USD = "USD"; //$NON-NLS-1$
/**
* Database field/spinner value for Swiss Francs
*/
public static final String VALUE_CHF = "CHF"; //$NON-NLS-1$
 
protected static HashMap<String, HashMap<String, Double>> currencyConversions;
/**
* Database field/spinner value for Euros
*/
 
public static final String VALUE_EUR = "EUR"; //$NON-NLS-1$
 
/**
* Database field/spinner value for US Dollars
*/
public static final String VALUE_USD = "USD"; //$NON-NLS-1$
 
/* Unit spinners (dropdowns) */
private Spinner spinnerUnit1;
private Spinner spinnerUnit2;
private CurrenciesDatabase db;
 
private HashMap<String, HashMap<String, Double>> conversionRates;
 
/** Called when the activity is first created. */
 
@Override
49,86 → 61,10
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_currencies);
 
/* Set up currency database */
CurrenciesActivity.currencyConversions =
new HashMap<String, HashMap<String, Double>>();
/* Set up currency database, and retrieve conversion rates */
this.db = new CurrenciesDatabase(this);
this.conversionRates = this.db.getConversionRates();
 
HashMap<String, Double> conversionFactors = new HashMap<String, Double>();
conversionFactors.put(CurrenciesActivity.VALUE_EUR, 0.767842293);
conversionFactors.put(CurrenciesActivity.VALUE_USD, 1.03413);
CurrenciesActivity.currencyConversions.put(CurrenciesActivity.VALUE_CHF,
conversionFactors);
 
conversionFactors = new HashMap<String, Double>();
conversionFactors.put(CurrenciesActivity.VALUE_CHF, 1.30235077);
conversionFactors.put(CurrenciesActivity.VALUE_USD, 1.3468);
CurrenciesActivity.currencyConversions.put(CurrenciesActivity.VALUE_EUR,
conversionFactors);
 
conversionFactors = new HashMap<String, Double>();
conversionFactors.put(CurrenciesActivity.VALUE_CHF, 0.966996412);
conversionFactors.put(CurrenciesActivity.VALUE_EUR, 0.742500743);
CurrenciesActivity.currencyConversions.put(CurrenciesActivity.VALUE_USD,
conversionFactors);
 
/* Create database with values above if it does not exist */
CurrenciesDatabase db = new CurrenciesDatabase(this);
try
{
SQLiteDatabase dbConn = db.getReadableDatabase();
 
@SuppressWarnings("nls")
Cursor myCursor =
dbConn.query(true, CurrenciesDatabase.TABLE, null, null, null, null,
null, CurrenciesDatabase.COLUMN_CURRENCY1 + ","
+ CurrenciesDatabase.COLUMN_CURRENCY2, null);
 
@SuppressWarnings({ "unused", "nls" })
String queryResult = "";
if (myCursor != null)
{
try
{
int currency1Id =
myCursor
.getColumnIndexOrThrow(CurrenciesDatabase.COLUMN_CURRENCY1);
int currency2Id =
myCursor
.getColumnIndexOrThrow(CurrenciesDatabase.COLUMN_CURRENCY2);
int factorId =
myCursor.getColumnIndexOrThrow(CurrenciesDatabase.COLUMN_FACTOR);
 
if (myCursor.moveToFirst())
{
do
{
String currency1Str = myCursor.getString(currency1Id);
String currency2Str = myCursor.getString(currency2Id);
Double factor = myCursor.getDouble(factorId);
 
/* DEBUG */
queryResult +=
currency1Str + " --> " + currency2Str + ": " + factor + "\n";
}
while (myCursor.moveToNext());
}
}
catch (IllegalArgumentException e)
{
/* Could not retrieve column index */
e.printStackTrace();
}
}
 
/* TODO: Close only on exit */
dbConn.close();
}
catch (SQLiteException e1)
{
/* Could not open database */
e1.printStackTrace();
}
 
final EditText editValue1 =
(EditText) this.findViewById(R.id.currencies_edit_value1);
final EditText editValue2 =
254,7 → 190,7
Double newValue = value;
 
HashMap<String, Double> mapForCurrency =
CurrenciesActivity.currencyConversions.get(selectedItemValue1);
this.conversionRates.get(selectedItemValue1);
if (mapForCurrency != null)
{
Double conversionFactor = mapForCurrency.get(selectedItemValue2);
272,6 → 208,11
*
* @see android.app.Activity#onCreateOptionsMenu(android.view.Menu)
*/
/*
* (non-Javadoc)
*
* @see android.app.Activity#onCreateOptionsMenu(android.view.Menu)
*/
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
285,6 → 226,11
*
* @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)
*/
/*
* (non-Javadoc)
*
* @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)
*/
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
291,12 → 237,4
/* update here */
return super.onOptionsItemSelected(item);
}
 
/**
* @return
*/
public HashMap<String, HashMap<String, Double>> getCurrencyConversions()
{
return CurrenciesActivity.currencyConversions;
}
}