protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
      switch (requestCode) {
        case DAY_PICK:
          selectedDays = data.getIntegerArrayListExtra("selectedDays");
          dayStrings.clear();
          days[0] = days[1] = days[2] = days[3] = days[4] = 0;
          for (int n : selectedDays) {
            days[n] = 1;
            switch (n) {
              case Loc8Preference.MONDAY:
                dayStrings.add("Monday");
                break;
              case Loc8Preference.TUESDAY:
                dayStrings.add("Tuesday");
                break;
              case Loc8Preference.WEDNESDAY:
                dayStrings.add("Wednesday");
                break;
              case Loc8Preference.THURSDAY:
                dayStrings.add("Thursday");
                break;
              case Loc8Preference.FRIDAY:
                dayStrings.add("Friday");
                break;
              case Loc8Preference.SATURDAY:
                dayStrings.add("Saturday");
                break;
              case Loc8Preference.SUNDAY:
                dayStrings.add("Sunday");
                break;
            }
          }
          if (dayStrings.size() > 5) {
            tSelectDaysOfWeekHeader.setText(
                dayStrings.get(0).toString()
                    + ", "
                    + dayStrings.get(1).toString()
                    + ", "
                    + dayStrings.get(2).toString()
                    + " and "
                    + String.valueOf(dayStrings.size() - 3)
                    + " other(s)");
          } else if (dayStrings.size() == 0) {
            tSelectDaysOfWeekHeader.setText("");
            selectedDays = null;
          } else {
            tSelectDaysOfWeekHeader.setText(
                dayStrings.toString().replace("[", "").replace("]", ""));
          }
          break;

        case LOCATION_PICK:

          // clear arraylist to prevent previous selections to be added
          locs.clear();

          int count_l = 0;
          int loc;

          String found = "";

          ArrayList<Integer> selection = data.getIntegerArrayListExtra("selectedLoc");

          Cursor locsCursor = mDbHelper.getAllLocations("");

          ArrayList<String> locArrayList = new ArrayList<String>();

          for (locsCursor.moveToFirst(); !locsCursor.isAfterLast(); locsCursor.moveToNext()) {
            locArrayList.add(locsCursor.getString(1));
          }

          for (int n : selection) {
            for (locsCursor.moveToFirst(); !locsCursor.isAfterLast(); locsCursor.moveToNext()) {
              if (n == locsCursor.getInt(0)) {

                Log.d("locationSelect", "Found : " + selection);
                loc = n;
                AlertDialog.Builder alert = new AlertDialog.Builder(this);
                alert.setTitle("Set radius (meters) for ");
                alert.setMessage(
                    locsCursor.getString(locsCursor.getColumnIndex(mDbHelper.KEY_LOCATIONNAME)));

                final double tempLat =
                    locsCursor.getDouble(locsCursor.getColumnIndex(mDbHelper.KEY_LATITUDE));
                final double tempLon =
                    locsCursor.getDouble(locsCursor.getColumnIndex(mDbHelper.KEY_LONGITUDE));
                final String tempName =
                    locsCursor.getString(locsCursor.getColumnIndex(mDbHelper.KEY_LOCATIONNAME));

                // Set an EditText view to get user input
                final EditText input = new EditText(this);
                int maxLength = 6;
                InputFilter[] filter = new InputFilter[1];
                filter[0] = new InputFilter.LengthFilter(maxLength);
                input.setFilters(filter);
                alert.setView(input);

                alert.setPositiveButton(
                    "Set",
                    new DialogInterface.OnClickListener() {
                      public void onClick(DialogInterface dialog, int whichButton) {
                        String value = input.getText().toString();
                        float radius;
                        if ((value != null) && (value.trim().length() == 0)) {
                          radius = Loc8Task.RADIUS_DEFAULT;
                        } else {
                          radius = Float.parseFloat(value);
                        }

                        Loc8Location d =
                            new Loc8Location(
                                new GeoPoint(
                                    (int) ((tempLat) * 1000000), (int) ((tempLon) * 1000000)),
                                radius,
                                tempName);

                        locs.add(d);
                      }
                    });
                // if back button pressed then default radius is used
                alert.setOnCancelListener(
                    new OnCancelListener() {
                      @Override
                      public void onCancel(DialogInterface di) {
                        Loc8Location d =
                            new Loc8Location(
                                new GeoPoint(
                                    (int) ((tempLat) * 1000000), (int) ((tempLon) * 1000000)),
                                Loc8Task.RADIUS_DEFAULT,
                                tempName);
                        locs.add(d);
                      }
                    });
                alert.show();

                count_l++;
                found = locsCursor.getString(1);
              }
            }
          }

          if (count_l == 1) {
            tSelectLocationHeaderPref.setText(found);

          } else if (count_l > 1) {
            tSelectLocationHeaderPref.setText(count_l + " locations selected");
          } else {
            tSelectLocationHeaderPref.setText("");
            Log.d("locationSelectPreference", "Nothing found");
          }
          break;
        case PREF_PICK:
          // This thing is super hacky now that I've removed a bunch of stuff.
          //
          prefsArrayList = data.getIntegerArrayListExtra("prefs");
          ArrayList<String> blockNames = data.getStringArrayListExtra("blockNames");
          for (String n : blockNames) {
            /*if(n.equals("All callers")) {
            	blockList.add(Loc8ContactList.ALL);
            	break;
            }*/
            blockList.add(Loc8ContactList.getContactFromName(n));
          }
          prefs = prefsArrayList.toArray(new Integer[prefsArrayList.size()]);
          int prefsCount = 0;
          int prefIndex = -1;
          for (int i = 0; i < prefsArrayList.size(); i++) {
            if (prefsArrayList.get(i) == 1) {
              prefsCount++;
              prefIndex = i;
            }
          }
          if (prefsCount == 1) {
            switch (prefIndex) {
              case Loc8Preference.SILENT:
                tSetPreferencesHeader.setText("Set phone to silent");
                break;
              case Loc8Preference.ALARM:
                tSetPreferencesHeader.setText("Turn off alarms");
                break;
              case Loc8Preference.VIBRATE:
                tSetPreferencesHeader.setText("Set ringtone to vibrate");
                break;
              case Loc8Preference.NORMAL:
                tSetPreferencesHeader.setText("Normal ringtone");
                break;
            }
          } else if (prefsCount == 0) {
            prefsArrayList = null;
            tSetPreferencesHeader.setText("");
          } else {
            tSetPreferencesHeader.setText(String.valueOf(prefsCount) + " preferences selected");
          }
          break;
      }
    }
  }