Fixed force close issues as reported from Android

pull/14/head
Tim Su 15 years ago
parent e4e73e9909
commit 543bebfc4a

@ -126,6 +126,8 @@ public class ProducteevFilterExposer extends BroadcastReceiver {
TreeSet<ProducteevUser> users = new TreeSet<ProducteevUser>(); TreeSet<ProducteevUser> users = new TreeSet<ProducteevUser>();
for(StoreObject dashboard : dashboards) { for(StoreObject dashboard : dashboards) {
ProducteevDashboard elDashboard = new ProducteevDashboard(dashboard); ProducteevDashboard elDashboard = new ProducteevDashboard(dashboard);
if(elDashboard == null)
continue;
users.addAll(elDashboard.getUsers()); users.addAll(elDashboard.getUsers());
} }

@ -1,7 +1,6 @@
package com.todoroo.astrid.repeats; package com.todoroo.astrid.repeats;
import java.text.DateFormatSymbols; import java.text.DateFormatSymbols;
import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
@ -13,15 +12,14 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams; import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Button; import android.widget.Button;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.CompoundButton; import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.Spinner; import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.CompoundButton.OnCheckedChangeListener;
import com.todoroo.astrid.service.StatisticsService;
import com.google.ical.values.Frequency; import com.google.ical.values.Frequency;
import com.google.ical.values.RRule; import com.google.ical.values.RRule;
import com.google.ical.values.Weekday; import com.google.ical.values.Weekday;
@ -32,6 +30,7 @@ import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.astrid.activity.TaskEditActivity.TaskEditControlSet; import com.todoroo.astrid.activity.TaskEditActivity.TaskEditControlSet;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.StatisticsService;
import com.todoroo.astrid.ui.NumberPicker; import com.todoroo.astrid.ui.NumberPicker;
import com.todoroo.astrid.ui.NumberPickerDialog; import com.todoroo.astrid.ui.NumberPickerDialog;
import com.todoroo.astrid.ui.NumberPickerDialog.OnNumberPickedListener; import com.todoroo.astrid.ui.NumberPickerDialog.OnNumberPickedListener;
@ -220,7 +219,8 @@ public class RepeatControlSet implements TaskEditControlSet {
// suppress first call to interval.onItemSelected // suppress first call to interval.onItemSelected
setInterval = true; setInterval = true;
} catch (ParseException e) { } catch (Exception e) {
// invalid RRULE
recurrence = ""; //$NON-NLS-1$ recurrence = ""; //$NON-NLS-1$
exceptionService.reportError("repeat-parse-exception", e); exceptionService.reportError("repeat-parse-exception", e);
} }

@ -21,6 +21,7 @@ package com.todoroo.astrid.activity;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@ -155,7 +156,8 @@ public final class TaskEditActivity extends TabActivity {
private EditText title; private EditText title;
private final ArrayList<TaskEditControlSet> controls = new ArrayList<TaskEditControlSet>(); private final List<TaskEditControlSet> controls =
Collections.synchronizedList(new ArrayList<TaskEditControlSet>());
// --- other instance variables // --- other instance variables
@ -1157,7 +1159,11 @@ public final class TaskEditActivity extends TabActivity {
@Override @Override
public String writeToModel(Task task) { public String writeToModel(Task task) {
if(adapter == null || spinner == null)
return null;
HideUntilValue item = adapter.getItem(spinner.getSelectedItemPosition()); HideUntilValue item = adapter.getItem(spinner.getSelectedItemPosition());
if(item == null)
return null;
long value = task.createHideUntil(item.setting, item.date); long value = task.createHideUntil(item.setting, item.date);
task.setValue(Task.HIDE_UNTIL, value); task.setValue(Task.HIDE_UNTIL, value);
return null; return null;
@ -1184,10 +1190,15 @@ public final class TaskEditActivity extends TabActivity {
getString(R.string.TEA_reminder_alarm_off), getString(R.string.TEA_reminder_alarm_off),
getString(R.string.TEA_reminder_alarm_on), getString(R.string.TEA_reminder_alarm_on),
}; };
ArrayAdapter<String> adapter = new ArrayAdapter<String>( final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
TaskEditActivity.this, android.R.layout.simple_spinner_item, list); TaskEditActivity.this, android.R.layout.simple_spinner_item, list);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mode.setAdapter(adapter); runOnUiThread(new Runnable() {
@Override
public void run() {
mode.setAdapter(adapter);
}
});
} }
public void setValue(int flags) { public void setValue(int flags) {

@ -66,8 +66,7 @@ public final class UpgradeService {
if(context instanceof Activity) { if(context instanceof Activity) {
((Activity)context).runOnUiThread(new Runnable() { ((Activity)context).runOnUiThread(new Runnable() {
public void run() { public void run() {
if(dialog != null) DialogUtilities.dismissDialog((Activity)context, dialog);
dialog.dismiss();
// display changelog // display changelog
showChangeLog(context, from); showChangeLog(context, from);

Loading…
Cancel
Save