Subversion Repositories ES

Compare Revisions

Last modification

Ignore whitespace Rev 20 → Rev 18

/trunk/src/de/pointedears/converter/app/CurrenciesActivity.java
1,6 → 1,7
package de.pointedears.converter.app;
 
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map.Entry;
43,8 → 44,13
/**
* String to use to indicate that an exchange rate has never been updated
*/
private String TEXT_NEVER;
private static final String TEXT_NEVER = "never";
 
/**
* Serialization version id
*/
private static final long serialVersionUID = 1L;
 
/*
* Constants for mapping value strings
*
53,30 → 59,26
/**
* Database field/spinner value for Swiss Francs
*/
public static String VALUE_CHF;
public static final String VALUE_CHF = "CHF"; //$NON-NLS-1$
 
/**
* Database field/spinner value for Euros
*/
public static String VALUE_EUR;
 
public static final String VALUE_EUR = "EUR"; //$NON-NLS-1$
 
/**
* Database field/spinner value for US Dollars
*/
public static String VALUE_USD;
public static final String VALUE_USD = "USD"; //$NON-NLS-1$
 
/* Unit spinners (dropdowns) */
private Spinner spinnerUnit1;
private Spinner spinnerUnit2;
private static CurrenciesDatabase database;
private CurrenciesDatabase database;
 
private static HashMap<String, ConversionData> conversionRates;
private HashMap<String, ConversionData> conversionRates;
 
private static String EXCHANGE_RATES_UPDATED_TO;
 
private final static DateFormat dateFormatter = DateFormat
.getDateInstance(DateFormat.SHORT);
 
/**
* Receiver for intent broadcasts, registered in
* {@link CurrenciesActivity#onCreate(Bundle)}
86,6 → 88,8
/**
* Notification message template
*/
private static final String EXCHANGE_RATES_UPDATED_TO =
" exchange rates updated to ";
 
/*
* (non-Javadoc)
101,12 → 105,11
CurrenciesActivity.this.fillTableRates();
 
Bundle extras = intent.getExtras();
Notifier.sendMessage(
CurrenciesActivity.this,
DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); //$NON-NLS-1$
Notifier.sendMessage(CurrenciesActivity.this,
extras.get(UpdateService.EXTRA_NUM_RATES)
+ CurrenciesActivity.EXCHANGE_RATES_UPDATED_TO
+ CurrenciesActivity.dateFormatter.format(extras
.get(UpdateService.EXTRA_DATE)));
+ UpdateBroadcastReceiver.EXCHANGE_RATES_UPDATED_TO
+ df.format(extras.get(UpdateService.EXTRA_DATE)));
}
}
}
118,23 → 121,12
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_currencies);
 
this.TEXT_NEVER =
this.getString(R.string.currencies_never_updated);
 
CurrenciesActivity.VALUE_CHF = this.getString(R.string.currencies_CHF);
CurrenciesActivity.VALUE_EUR = this.getString(R.string.currencies_EUR);
CurrenciesActivity.VALUE_USD = this.getString(R.string.currencies_USD);
 
CurrenciesActivity.EXCHANGE_RATES_UPDATED_TO =
this.getString(R.string.currencies_notification);
 
UpdateBroadcastReceiver br = new UpdateBroadcastReceiver();
this.registerReceiver(br, new IntentFilter(UpdateService.ACTION_UPDATE));
 
/* Set up currency database, and retrieve conversion rates */
CurrenciesActivity.database = new CurrenciesDatabase(this);
this.setConversionRates(CurrenciesActivity.database
.getConversionRates());
this.database = new CurrenciesDatabase(this);
this.setConversionRates(this.getDatabase().getConversionRates());
this.fillTableRates();
 
final EditText editValue1 =
266,8 → 258,7
tableRates.removeViewAt(3);
}
 
for (Entry<String, ConversionData> factorEntry : CurrenciesActivity
.getConversionRates()
for (Entry<String, ConversionData> factorEntry : this.getConversionRates()
.entrySet())
{
TableRow row = new TableRow(this);
285,11 → 276,13
Date updated = conversionData.getUpdated();
if (updated.getTime() > 0)
{
columnUpdated.setText(CurrenciesActivity.dateFormatter.format(updated));
DateFormat df =
DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM);
columnUpdated.setText(df.format(updated));
}
else
{
columnUpdated.setText(this.TEXT_NEVER);
columnUpdated.setText(CurrenciesActivity.TEXT_NEVER);
}
 
row.addView(columnUpdated);
328,8 → 321,7
Double factorToEuro = 1.0;
if (selectedItemValue1 != null)
{
conversionData1 =
CurrenciesActivity.getConversionRates().get(selectedItemValue1);
conversionData1 = this.getConversionRates().get(selectedItemValue1);
if (conversionData1 != null)
{
factorToEuro = conversionData1.getRate();
340,8 → 332,7
Double factorFromEuro = 1.0;
if (selectedItemValue2 != null)
{
conversionData2 =
CurrenciesActivity.getConversionRates().get(selectedItemValue2);
conversionData2 = this.getConversionRates().get(selectedItemValue2);
if (conversionData2 != null)
{
factorFromEuro = conversionData2.getRate();
389,6 → 380,13
*/
Intent intent = new Intent(this, UpdateService.class);
intent.setAction(UpdateService.ACTION_UPDATE);
 
/*
* FIXME: Not thread-safe!
* Get the activity context from the intent directly instead
*/
UpdateService.setActivityContext(this);
 
this.startService(intent);
return true;
 
400,9 → 398,9
/**
* @return the conversionRates
*/
public static HashMap<String, ConversionData> getConversionRates()
public HashMap<String, ConversionData> getConversionRates()
{
return CurrenciesActivity.conversionRates;
return this.conversionRates;
}
 
/**
411,14 → 409,14
*/
public void setConversionRates(HashMap<String, ConversionData> conversionRates)
{
CurrenciesActivity.conversionRates = conversionRates;
this.conversionRates = conversionRates;
}
 
/**
* @return the database
*/
public static CurrenciesDatabase getDatabase()
public CurrenciesDatabase getDatabase()
{
return CurrenciesActivity.database;
return this.database;
}
}