Subversion Repositories ES

Compare Revisions

Last modification

Ignore whitespace Rev 18 → Rev 20

/trunk/src/de/pointedears/converter/app/CurrenciesActivity.java
1,7 → 1,6
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;
44,13 → 43,8
/**
* String to use to indicate that an exchange rate has never been updated
*/
private static final String TEXT_NEVER = "never";
private String TEXT_NEVER;
 
/**
* Serialization version id
*/
private static final long serialVersionUID = 1L;
 
/*
* Constants for mapping value strings
*
59,26 → 53,30
/**
* Database field/spinner value for Swiss Francs
*/
public static final String VALUE_CHF = "CHF"; //$NON-NLS-1$
public static String VALUE_CHF;
 
/**
* 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 final String VALUE_USD = "USD"; //$NON-NLS-1$
public static String VALUE_USD;
 
/* Unit spinners (dropdowns) */
private Spinner spinnerUnit1;
private Spinner spinnerUnit2;
private CurrenciesDatabase database;
private static CurrenciesDatabase database;
 
private HashMap<String, ConversionData> conversionRates;
private static 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)}
88,8 → 86,6
/**
* Notification message template
*/
private static final String EXCHANGE_RATES_UPDATED_TO =
" exchange rates updated to ";
 
/*
* (non-Javadoc)
105,11 → 101,12
CurrenciesActivity.this.fillTableRates();
 
Bundle extras = intent.getExtras();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); //$NON-NLS-1$
Notifier.sendMessage(CurrenciesActivity.this,
Notifier.sendMessage(
CurrenciesActivity.this,
extras.get(UpdateService.EXTRA_NUM_RATES)
+ UpdateBroadcastReceiver.EXCHANGE_RATES_UPDATED_TO
+ df.format(extras.get(UpdateService.EXTRA_DATE)));
+ CurrenciesActivity.EXCHANGE_RATES_UPDATED_TO
+ CurrenciesActivity.dateFormatter.format(extras
.get(UpdateService.EXTRA_DATE)));
}
}
}
121,12 → 118,23
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 */
this.database = new CurrenciesDatabase(this);
this.setConversionRates(this.getDatabase().getConversionRates());
CurrenciesActivity.database = new CurrenciesDatabase(this);
this.setConversionRates(CurrenciesActivity.database
.getConversionRates());
this.fillTableRates();
 
final EditText editValue1 =
258,7 → 266,8
tableRates.removeViewAt(3);
}
 
for (Entry<String, ConversionData> factorEntry : this.getConversionRates()
for (Entry<String, ConversionData> factorEntry : CurrenciesActivity
.getConversionRates()
.entrySet())
{
TableRow row = new TableRow(this);
276,13 → 285,11
Date updated = conversionData.getUpdated();
if (updated.getTime() > 0)
{
DateFormat df =
DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM);
columnUpdated.setText(df.format(updated));
columnUpdated.setText(CurrenciesActivity.dateFormatter.format(updated));
}
else
{
columnUpdated.setText(CurrenciesActivity.TEXT_NEVER);
columnUpdated.setText(this.TEXT_NEVER);
}
 
row.addView(columnUpdated);
321,7 → 328,8
Double factorToEuro = 1.0;
if (selectedItemValue1 != null)
{
conversionData1 = this.getConversionRates().get(selectedItemValue1);
conversionData1 =
CurrenciesActivity.getConversionRates().get(selectedItemValue1);
if (conversionData1 != null)
{
factorToEuro = conversionData1.getRate();
332,7 → 340,8
Double factorFromEuro = 1.0;
if (selectedItemValue2 != null)
{
conversionData2 = this.getConversionRates().get(selectedItemValue2);
conversionData2 =
CurrenciesActivity.getConversionRates().get(selectedItemValue2);
if (conversionData2 != null)
{
factorFromEuro = conversionData2.getRate();
380,13 → 389,6
*/
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;
 
398,9 → 400,9
/**
* @return the conversionRates
*/
public HashMap<String, ConversionData> getConversionRates()
public static HashMap<String, ConversionData> getConversionRates()
{
return this.conversionRates;
return CurrenciesActivity.conversionRates;
}
 
/**
409,14 → 411,14
*/
public void setConversionRates(HashMap<String, ConversionData> conversionRates)
{
this.conversionRates = conversionRates;
CurrenciesActivity.conversionRates = conversionRates;
}
 
/**
* @return the database
*/
public CurrenciesDatabase getDatabase()
public static CurrenciesDatabase getDatabase()
{
return this.database;
return CurrenciesActivity.database;
}
}