Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ResultsDatabase extends SQLiteOpenHelper {
- private static final String DATABASE_NAME = "results.db";
- private static final int DATABASE_VERSION = 2;
- public static final String TABLE_NAME = "results";
- public static final String _ID = BaseColumns._ID;
- public static final String SAVED_NAME = "name";
- public static final String COLUMN_NAME_CREATE_DATE = "date";
- public static final String RIGHT_EAR = "right_ear";
- public static final String LEFT_EAR = "left_ear";
- public ResultsDatabase(Context context) {
- // calls the super constructor, requesting the default cursor factory.
- super(context, DATABASE_NAME, null, DATABASE_VERSION);
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- db.execSQL("CREATE TABLE " + TABLE_NAME + " ("
- + _ID + " INTEGER PRIMARY KEY,"
- + SAVED_NAME + " TEXT,"
- + COLUMN_NAME_CREATE_DATE + " INTEGER,"
- + RIGHT_EAR + " BLOB,"
- + LEFT_EAR + " BLOB"
- + ");");
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
- }
- public void storeResults(String name, List<EarSrt> leftAnswerList, List<EarSrt> rightAnswerList){
- SQLiteDatabase db = getWritableDatabase();
- ContentValues values = new ContentValues();
- values.put(SAVED_NAME, name);
- Long now = Long.valueOf(System.currentTimeMillis());
- values.put(COLUMN_NAME_CREATE_DATE, now);
- values.put(RIGHT_EAR, serializeObject(rightAnswerList ));
- values.put(LEFT_EAR, serializeObject(leftAnswerList ));
- db.insert(TABLE_NAME, null, values);
- }
- public static byte[] serializeObject(Object o) {
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- try {
- ObjectOutput out = new ObjectOutputStream(bos);
- out.writeObject(o);
- out.close();
- // Get the bytes of the serialized object
- byte[] buf = bos.toByteArray();
- return buf;
- } catch(IOException ioe) {
- Log.e("serializeObject", "error", ioe);
- return null;
- }
- }
- public static Object deserializeObject(byte[] b) {
- try {
- ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(b));
- Object object = in.readObject();
- in.close();
- return object;
- } catch(ClassNotFoundException cnfe) {
- Log.e("deserializeObject", "class not found error", cnfe);
- return null;
- } catch(IOException ioe) {
- Log.e("deserializeObject", "io error", ioe);
- return null;
- }
- }
- }
- public class TabbedResultsActivity extends SherlockFragmentActivity{
- TabHost mTabHost;
- TabManager mTabManager;
- public static final String IS_RIGHT_EAR = "is_right_ear";
- private ArrayList<EarSrt> leftAnswerList;
- private ArrayList<EarSrt> rightAnswerList;
- private final static String TAG = "HearingTest";
- private boolean isRightEarTab = true;
- private boolean bothEarsBad;
- private boolean leftEarBad;
- private boolean rightEarBad;
- @SuppressWarnings("unchecked")
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.tab_layout);
- ActionBar ab = this.getSupportActionBar();
- SherlockHelper.setupActionBar(ab, this);
- View infoButton = findViewById(R.id.info_button);
- infoButton.setVisibility(View.VISIBLE);
- Intent intent = getIntent();
- int rowId = intent.getIntExtra(ResultsDatabase._ID, -1);
- if ( rowId != -1 ) {
- ResultsDatabase db = new ResultsDatabase(this);
- String select = "(" + ResultsDatabase._ID + " == " + rowId + ")";
- Cursor c = db.getReadableDatabase().query(ResultsDatabase.TABLE_NAME, null, select, null, null, null,null);
- if ( c.moveToFirst() ) {
- int leftEarColumn = c.getColumnIndex(ResultsDatabase.LEFT_EAR);
- byte[] leftEarByteArray = c.getBlob(leftEarColumn);
- int rightEarColumn = c.getColumnIndex(ResultsDatabase.RIGHT_EAR);
- byte[] rightEarByteArray = c.getBlob(rightEarColumn);
- leftAnswerList = (ArrayList<EarSrt>) ResultsDatabase.deserializeObject(leftEarByteArray);
- rightAnswerList = (ArrayList<EarSrt>) ResultsDatabase.deserializeObject(rightEarByteArray);
- }
- } else {
- byte[] leftEarByteArray = getIntent().getByteArrayExtra(ResultsDatabase.LEFT_EAR);
- byte[] rightEarByteArray = getIntent().getByteArrayExtra(ResultsDatabase.RIGHT_EAR);
- leftAnswerList = (ArrayList<EarSrt>) ResultsDatabase.deserializeObject(leftEarByteArray);
- rightAnswerList = (ArrayList<EarSrt>) ResultsDatabase.deserializeObject(rightEarByteArray);
- }
- isRightEarTab = getIntent().getBooleanExtra(IS_RIGHT_EAR, true);
- GraphView graphView = new GraphView(this);
- graphView.setPoints(rightAnswerList);
- float leftAverage = calculateAverage(rightAnswerList);
- graphView.setAverage(leftAverage);
- graphView.setPoints(leftAnswerList);
- float rightAverage = calculateAverage(leftAnswerList);
- graphView.setAverage(rightAverage);
- setResults(leftAnswerList, rightAnswerList);
- String results = setResultCaption(bothEarsBad, leftEarBad, rightEarBad).toString();
- Log.d(TAG, "The results were " + results);
- Bundle leftbundle = new Bundle();
- leftbundle.putString("results", results);
- leftbundle.putParcelableArrayList("graph", leftAnswerList);
- leftbundle.putFloat("average", leftAverage);
- Bundle rightbundle = new Bundle();
- rightbundle.putString("results", results);
- rightbundle.putParcelableArrayList("graph", rightAnswerList);
- rightbundle.putFloat("average", rightAverage);
- mTabHost = (TabHost)findViewById(android.R.id.tabhost);
- mTabHost.setup();
- mTabManager = new TabManager(this, mTabHost, R.id.realtabcontent);
- mTabManager.addTab(mTabHost.newTabSpec(getString(R.string.Left_ear)).setIndicator(getString(R.string.Left_ear)),
- LeftEarResults.class, leftbundle);
- mTabManager.addTab(mTabHost.newTabSpec("contacts").setIndicator(getString(R.string.Right_ear)),
- RightEarResults.class, rightbundle);
- if (savedInstanceState != null) {
- mTabHost.setCurrentTabByTag(savedInstanceState.getString("tab"));
- }
- }
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putString("tab", mTabHost.getCurrentTabTag());
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- return MenuActivity.createMenu(this, menu);
- }
- private float calculateAverage(List<EarSrt> steps) {
- float srt = 0.0f;
- int length = steps.size();
- for (int i = (int)Math.ceil( (float)length/(float)2); i < length; i++) {
- EarSrt es = steps.get(i);
- srt += es.getSrt();
- }
- srt = srt / (length-(float)Math.ceil( (float)length/(float)2));
- return srt;
- }
- private void setResults(List<EarSrt> leftEar, List<EarSrt> rightEar) {
- float esLeft = calculateAverage(leftEar);
- float esRight = calculateAverage(rightEar);
- leftEarBad = (esLeft > 24.0);
- rightEarBad = (esRight > 24.0);
- bothEarsBad = (leftEarBad && rightEarBad);
- }
- private StringBuilder setResultCaption(boolean bothEarsBad, boolean leftEarBad, boolean rightEarBad) {
- String resultCaption;
- StringBuilder resultsText = new StringBuilder();
- if (bothEarsBad) {
- resultsText.append(getString(R.string.The_test_indicates_a_possible_hearing_loss));
- resultsText.append(getString(R.string.We_recommend_that_you_visit_a_Hearing_Care_Professional_for_a_comprehensive_hearing_check));
- }else{
- if (leftEarBad) {
- resultsText.append(getString(R.string.The_test_indicates_a_possible_hearing_loss_for_your_left_ear));
- resultsText.append(getString(R.string.We_recommend_that_you_visit_a_Hearing_Care_Professional_for_a_comprehensive_hearing_check));
- } else if (rightEarBad) {
- resultsText.append(getString(R.string.The_test_indicates_a_possible_hearing_loss_for_your_Right_ear));
- resultsText.append(getString(R.string.We_recommend_that_you_visit_a_Hearing_Care_Professional_for_a_comprehensive_hearing_check));
- }else {
- resultsText.append(getString(R.string.There_is_no_indication_of_hearing_loss));
- }
- }
- resultsText.append(getString(R.string.The_results_of_the_hearing_test_are_not_to_be_utilized_as_an_official_outcome_for_assessing_levels_of_hearing_loss_True_hearing_loss_assessments_can_only_be_determined_by_a_licensed_hearing_healthcare_provider));
- Log.d(TAG, "The results were " + resultsText);
- return resultsText;
- }
- public void infoView(View aView) {
- Intent intent = new Intent(this, InfoActivity.class);
- startActivity(intent);
- }
- }
- public void storeResults(String name, List<EarSrt> leftAnswerList, List<EarSrt> rightAnswerList){
- SQLiteDatabase db = getWritableDatabase(); // opens the database connection
- try {
- ContentValues values = new ContentValues();
- values.put(SAVED_NAME, name);
- Long now = Long.valueOf(System.currentTimeMillis());
- values.put(COLUMN_NAME_CREATE_DATE, now);
- values.put(RIGHT_EAR, serializeObject(rightAnswerList ));
- values.put(LEFT_EAR, serializeObject(leftAnswerList ));
- db.insert(TABLE_NAME, null, values);
- }
- catch(Exception e) {
- e.printStackTrace();
- // furher error handling
- }
- finally {
- db.close(); // closes the database every time after access
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement