Subversion Repositories ES

Rev

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
}