Rev 8 | Rev 12 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8 | Rev 11 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | package de.pointedears.converter.app; |
1 | package de.pointedears.converter.app; |
2 | 2 | ||
3 | import java.util.HashMap; |
3 | import java.util.HashMap; |
4 | 4 | ||
5 | import android.app.Activity; |
5 | import android.app.Activity; |
- | 6 | import android.database.Cursor; |
|
- | 7 | import android.database.sqlite.SQLiteDatabase; |
|
- | 8 | import android.database.sqlite.SQLiteException; |
|
6 | import android.os.Bundle; |
9 | import android.os.Bundle; |
7 | import android.text.Editable; |
10 | import android.text.Editable; |
8 | import android.view.KeyEvent; |
11 | import android.view.KeyEvent; |
9 | import android.view.Menu; |
12 | import android.view.Menu; |
10 | import android.view.MenuInflater; |
13 | import android.view.MenuInflater; |
Line 14... | Line 17... | ||
14 | import android.widget.AdapterView; |
17 | import android.widget.AdapterView; |
15 | import android.widget.AdapterView.OnItemSelectedListener; |
18 | import android.widget.AdapterView.OnItemSelectedListener; |
16 | import android.widget.EditText; |
19 | import android.widget.EditText; |
17 | import android.widget.Spinner; |
20 | import android.widget.Spinner; |
18 | import de.pointedears.converter.R; |
21 | import de.pointedears.converter.R; |
- | 22 | import de.pointedears.converter.db.CurrenciesDatabase; |
|
19 | 23 | ||
20 | /**
|
24 | /**
|
21 | * Activity that implements currency conversion
|
25 | * Activity that implements currency conversion
|
22 | *
|
26 | *
|
23 | * @author pelinux
|
27 | * @author pelinux
|
Line 29... | Line 33... | ||
29 | */
|
33 | */
|
30 | private static final String VALUE_CHF = "CHF"; //$NON-NLS-1$ |
34 | private static final String VALUE_CHF = "CHF"; //$NON-NLS-1$ |
31 | private static final String VALUE_EUR = "EUR"; //$NON-NLS-1$ |
35 | private static final String VALUE_EUR = "EUR"; //$NON-NLS-1$ |
32 | private static final String VALUE_USD = "USD"; //$NON-NLS-1$ |
36 | private static final String VALUE_USD = "USD"; //$NON-NLS-1$ |
33 | 37 | ||
34 | private static HashMap<String, HashMap<String, Double>> currencyConversions; |
38 | protected static HashMap<String, HashMap<String, Double>> currencyConversions; |
35 | 39 | ||
36 | /* Unit spinners (dropdowns) */
|
40 | /* Unit spinners (dropdowns) */
|
37 | private Spinner spinnerUnit1; |
41 | private Spinner spinnerUnit1; |
38 | private Spinner spinnerUnit2; |
42 | private Spinner spinnerUnit2; |
39 | 43 | ||
Line 43... | Line 47... | ||
43 | public void onCreate(Bundle savedInstanceState) |
47 | public void onCreate(Bundle savedInstanceState) |
44 | {
|
48 | {
|
45 | super.onCreate(savedInstanceState); |
49 | super.onCreate(savedInstanceState); |
46 | this.setContentView(R.layout.activity_currencies); |
50 | this.setContentView(R.layout.activity_currencies); |
47 | 51 | ||
48 | /* TODO: Set up currency database */
|
52 | /* Set up currency database */
|
49 | CurrenciesActivity.currencyConversions =
|
53 | CurrenciesActivity.currencyConversions =
|
50 | new HashMap<String, HashMap<String, Double>>(); |
54 | new HashMap<String, HashMap<String, Double>>(); |
51 | 55 | ||
52 | HashMap<String, Double> conversionFactors = new HashMap<String, Double>(); |
56 | HashMap<String, Double> conversionFactors = new HashMap<String, Double>(); |
53 | conversionFactors.put(CurrenciesActivity.VALUE_EUR, 0.767842293); |
57 | conversionFactors.put(CurrenciesActivity.VALUE_EUR, 0.767842293); |
Line 55... | Line 59... | ||
55 | CurrenciesActivity.currencyConversions.put(CurrenciesActivity.VALUE_CHF, |
59 | CurrenciesActivity.currencyConversions.put(CurrenciesActivity.VALUE_CHF, |
56 | conversionFactors); |
60 | conversionFactors); |
57 | 61 | ||
58 | conversionFactors = new HashMap<String, Double>(); |
62 | conversionFactors = new HashMap<String, Double>(); |
59 | conversionFactors.put(CurrenciesActivity.VALUE_CHF, 1.30235077); |
63 | conversionFactors.put(CurrenciesActivity.VALUE_CHF, 1.30235077); |
60 | conversionFactors.put(CurrenciesActivity.VALUE_CHF, 1.3468); |
64 | conversionFactors.put(CurrenciesActivity.VALUE_USD, 1.3468); |
61 | CurrenciesActivity.currencyConversions.put(CurrenciesActivity.VALUE_EUR, |
65 | CurrenciesActivity.currencyConversions.put(CurrenciesActivity.VALUE_EUR, |
62 | conversionFactors); |
66 | conversionFactors); |
63 | 67 | ||
64 | conversionFactors = new HashMap<String, Double>(); |
68 | conversionFactors = new HashMap<String, Double>(); |
65 | conversionFactors.put(CurrenciesActivity.VALUE_CHF, 0.966996412); |
69 | conversionFactors.put(CurrenciesActivity.VALUE_CHF, 0.966996412); |
66 | conversionFactors.put(CurrenciesActivity.VALUE_EUR, 0.742500743); |
70 | conversionFactors.put(CurrenciesActivity.VALUE_EUR, 0.742500743); |
67 | CurrenciesActivity.currencyConversions.put(CurrenciesActivity.VALUE_USD, |
71 | CurrenciesActivity.currencyConversions.put(CurrenciesActivity.VALUE_USD, |
68 | conversionFactors); |
72 | conversionFactors); |
69 | 73 | ||
- | 74 | /* Create database with values above if it does not exist */
|
|
- | 75 | CurrenciesDatabase db = new CurrenciesDatabase(this); |
|
- | 76 | try
|
|
- | 77 | {
|
|
- | 78 | SQLiteDatabase dbConn = db.getReadableDatabase(); |
|
- | 79 | ||
- | 80 | @SuppressWarnings("nls") |
|
- | 81 | Cursor myCursor = |
|
- | 82 | dbConn.query(true, CurrenciesDatabase.TABLE, null, null, null, null, |
|
- | 83 | null, CurrenciesDatabase.COLUMN_CURRENCY1 + "," |
|
- | 84 | + CurrenciesDatabase.COLUMN_CURRENCY2, null); |
|
- | 85 | ||
- | 86 | @SuppressWarnings({ "unused", "nls" }) |
|
- | 87 | String queryResult = ""; |
|
- | 88 | if (myCursor != null) |
|
- | 89 | {
|
|
- | 90 | try
|
|
- | 91 | {
|
|
- | 92 | int currency1Id =
|
|
- | 93 | myCursor |
|
- | 94 | .getColumnIndexOrThrow(CurrenciesDatabase.COLUMN_CURRENCY1); |
|
- | 95 | int currency2Id =
|
|
- | 96 | myCursor |
|
- | 97 | .getColumnIndexOrThrow(CurrenciesDatabase.COLUMN_CURRENCY2); |
|
- | 98 | int factorId =
|
|
- | 99 | myCursor.getColumnIndexOrThrow(CurrenciesDatabase.COLUMN_FACTOR); |
|
- | 100 | ||
- | 101 | if (myCursor.moveToFirst()) |
|
- | 102 | {
|
|
- | 103 | do
|
|
- | 104 | {
|
|
- | 105 | String currency1Str = myCursor.getString(currency1Id); |
|
- | 106 | String currency2Str = myCursor.getString(currency2Id); |
|
- | 107 | Double factor = myCursor.getDouble(factorId); |
|
- | 108 | ||
- | 109 | /* DEBUG */
|
|
- | 110 | queryResult += |
|
- | 111 | currency1Str + " --> " + currency2Str + ": " + factor + "\n"; |
|
- | 112 | }
|
|
- | 113 | while (myCursor.moveToNext()); |
|
- | 114 | }
|
|
- | 115 | }
|
|
- | 116 | catch (IllegalArgumentException e) |
|
- | 117 | {
|
|
- | 118 | /* Could not retrieve column index */
|
|
- | 119 | e.printStackTrace(); |
|
- | 120 | }
|
|
- | 121 | }
|
|
- | 122 | ||
- | 123 | /* TODO: Close only on exit */
|
|
- | 124 | dbConn.close(); |
|
- | 125 | }
|
|
- | 126 | catch (SQLiteException e1) |
|
- | 127 | {
|
|
- | 128 | /* Could not open database */
|
|
- | 129 | e1.printStackTrace(); |
|
- | 130 | }
|
|
- | 131 | ||
70 | final EditText editValue1 =
|
132 | final EditText editValue1 =
|
71 | (EditText) this.findViewById(R.id.currencies_edit_value1); |
133 | (EditText) this.findViewById(R.id.currencies_edit_value1); |
72 | final EditText editValue2 =
|
134 | final EditText editValue2 =
|
73 | (EditText) this.findViewById(R.id.currencies_edit_value2); |
135 | (EditText) this.findViewById(R.id.currencies_edit_value2); |
74 | 136 | ||
Line 227... | Line 289... | ||
227 | public boolean onOptionsItemSelected(MenuItem item) |
289 | public boolean onOptionsItemSelected(MenuItem item) |
228 | {
|
290 | {
|
229 | /* update here */
|
291 | /* update here */
|
230 | return super.onOptionsItemSelected(item); |
292 | return super.onOptionsItemSelected(item); |
231 | }
|
293 | }
|
- | 294 | ||
- | 295 | /**
|
|
- | 296 | * @return
|
|
- | 297 | */
|
|
- | 298 | public HashMap<String, HashMap<String, Double>> getCurrencyConversions() |
|
- | 299 | {
|
|
- | 300 | return CurrenciesActivity.currencyConversions; |
|
- | 301 | }
|
|
232 | }
|
302 | }
|