From e9af00a827a76606af9a129886112710afdd9b93 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Mon, 15 Apr 2013 14:25:34 -0700 Subject: [PATCH] Hopefully fixed a few rare crashes --- .../com/timsu/astrid/GCMIntentService.java | 17 ++++++++++++----- .../todoroo/astrid/notes/EditNoteActivity.java | 2 +- .../todoroo/astrid/adapter/FilterAdapter.java | 3 ++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/astrid/plugin-src/com/timsu/astrid/GCMIntentService.java b/astrid/plugin-src/com/timsu/astrid/GCMIntentService.java index 169463397..f6abe0795 100644 --- a/astrid/plugin-src/com/timsu/astrid/GCMIntentService.java +++ b/astrid/plugin-src/com/timsu/astrid/GCMIntentService.java @@ -213,6 +213,9 @@ public class GCMIntentService extends GCMBaseIntentService { return; } + if (notifyIntent == null) + return; + notifyIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); notifyIntent.putExtra(TaskListActivity.TOKEN_SOURCE, Constants.SOURCE_C2DM); PendingIntent pendingIntent = PendingIntent.getActivity(context, @@ -340,12 +343,16 @@ public class GCMIntentService extends GCMBaseIntentService { userActivityDao.createNew(update); } - Intent launchIntent = new Intent(context, TaskListActivity.class); - launchIntent.putExtra(TaskListFragment.TOKEN_FILTER, filter); - filter.customExtras.putBoolean(TagViewFragment.TOKEN_START_ACTIVITY, shouldLaunchActivity(intent)); - launchIntent.putExtras(filter.customExtras); + if (filter != null) { + Intent launchIntent = new Intent(context, TaskListActivity.class); + launchIntent.putExtra(TaskListFragment.TOKEN_FILTER, filter); + filter.customExtras.putBoolean(TagViewFragment.TOKEN_START_ACTIVITY, shouldLaunchActivity(intent)); + launchIntent.putExtras(filter.customExtras); - return launchIntent; + return launchIntent; + } else { + return null; + } } finally { cursor.close(); } diff --git a/astrid/plugin-src/com/todoroo/astrid/notes/EditNoteActivity.java b/astrid/plugin-src/com/todoroo/astrid/notes/EditNoteActivity.java index 1d33d6f07..d7723a474 100644 --- a/astrid/plugin-src/com/todoroo/astrid/notes/EditNoteActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/notes/EditNoteActivity.java @@ -158,6 +158,7 @@ public class EditNoteActivity extends LinearLayout implements TimerActionListene public EditNoteActivity(Fragment fragment, View parent, long t) { super(fragment.getActivity()); + DependencyInjectionService.getInstance().inject(this); imageCache = AsyncImageView.getImageCache(); this.fragment = fragment; @@ -177,7 +178,6 @@ public class EditNoteActivity extends LinearLayout implements TimerActionListene cameraButton = getDefaultCameraButton(); - DependencyInjectionService.getInstance().inject(this); setOrientation(VERTICAL); commentsBar = parent.findViewById(R.id.updatesFooter); diff --git a/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java b/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java index 317787119..d70a38423 100644 --- a/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java +++ b/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java @@ -26,6 +26,7 @@ import android.content.res.Resources; import android.graphics.Color; import android.os.Bundle; import android.os.Parcelable; +import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Log; import android.view.LayoutInflater; @@ -511,7 +512,7 @@ public class FilterAdapter extends ArrayAdapter { // title / size int countInt = -1; - if(filterCounts.containsKey(filter) || filter.listingTitle.matches(".* \\(\\d+\\)$")) { //$NON-NLS-1$ + if(filterCounts.containsKey(filter) || (!TextUtils.isEmpty(filter.listingTitle) && filter.listingTitle.matches(".* \\(\\d+\\)$"))) { //$NON-NLS-1$ viewHolder.size.setVisibility(View.VISIBLE); String count; if (filterCounts.containsKey(filter)) {