Added guard to logging in AsyncTask

An async task was trying to get the context
in an InstrumentedFragment. This could return
null if the context disappears before the new
thread gets to that line. Logging will now
be aborted if context is null to avoid this.

Test: Manual/Monkey Stability Test
Bug: 31058928
Change-Id: Iae97d389e58a76b0f213a2749415501894ebf649
(cherry picked from commit 566b66e27c69fbf48860f367781800442c5110e7)
(cherry picked from commit 030eeeee6d1c1cdba4a85557f78ab1ee6571901c)
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index 12f036a..e0f727f 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -236,17 +236,18 @@
 
         @Override
         protected List<Tile> doInBackground(Void... params) {
+            final Context context = getContext();
             List<Tile> suggestions = mSuggestionParser.getSuggestions();
             for (int i = 0; i < suggestions.size(); i++) {
                 Tile suggestion = suggestions.get(i);
                 if (mSuggestionsChecks.isSuggestionComplete(suggestion)) {
                     mAdapter.disableSuggestion(suggestion);
                     suggestions.remove(i--);
-                } else {
-                    String id = DashboardAdapter.getSuggestionIdentifier(getContext(), suggestion);
+                } else if (context != null) {
+                    String id = DashboardAdapter.getSuggestionIdentifier(context, suggestion);
                     if (!mSuggestionsShownLogged.contains(id)) {
                         mSuggestionsShownLogged.add(id);
-                        MetricsLogger.action(getContext(),
+                        MetricsLogger.action(context,
                                 MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION, id);
                     }
                 }