From 114e4c1edc24dbbb810a0eff86687c2f1d7a5846 Mon Sep 17 00:00:00 2001 From: Anushek Prasal Date: Sat, 11 Jul 2020 22:51:27 +0530 Subject: [PATCH] Settings: Fix NPE in SliceHalfCardRendererHelper msg: java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.drawable.Drawable androidx.core.graphics.drawable.IconCompat.loadDrawable(android.content.Context)' on a null object reference stacktrace: java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.drawable.Drawable androidx.core.graphics.drawable.IconCompat.loadDrawable(android.content.Context)' on a null object reference at com.android.settings.homepage.contextualcards.slices.SliceHalfCardRendererHelper.bindView(SliceHalfCardRendererHelper.java:60) at com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.lambda$bindView$0$SliceContextualCardRenderer(SliceContextualCardRenderer.java:140) at com.android.settings.homepage.contextualcards.slices.-$$Lambda$SliceContextualCardRenderer$Suc5qG_b2ywDyecCCfO1YnSa0M4.onChanged(Unknown Source:10) at androidx.lifecycle.LiveData.considerNotify(LiveData.java:131) at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:149) at androidx.lifecycle.LiveData.setValue(LiveData.java:307) at androidx.lifecycle.LiveData$1.run(LiveData.java:91) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:915) Signed-off-by: Anushek Prasal --- .../slices/SliceHalfCardRendererHelper.java | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/com/android/settings/homepage/contextualcards/slices/SliceHalfCardRendererHelper.java b/src/com/android/settings/homepage/contextualcards/slices/SliceHalfCardRendererHelper.java index f7745423fb4..6ecdb6a2a9a 100644 --- a/src/com/android/settings/homepage/contextualcards/slices/SliceHalfCardRendererHelper.java +++ b/src/com/android/settings/homepage/contextualcards/slices/SliceHalfCardRendererHelper.java @@ -57,23 +57,25 @@ void bindView(RecyclerView.ViewHolder holder, ContextualCard card, Slice slice) final HalfCardViewHolder view = (HalfCardViewHolder) holder; final SliceMetadata sliceMetadata = SliceMetadata.from(mContext, slice); final SliceAction primaryAction = sliceMetadata.getPrimaryAction(); - view.icon.setImageDrawable(primaryAction.getIcon().loadDrawable(mContext)); - view.title.setText(primaryAction.getTitle()); - view.content.setOnClickListener(v -> { - try { - primaryAction.getAction().send(); - } catch (PendingIntent.CanceledException e) { - Log.w(TAG, "Failed to start intent " + primaryAction.getTitle()); - } - final String log = ContextualCardLogUtils.buildCardClickLog(card, 0 /* row */, - EventInfo.ACTION_TYPE_CONTENT, view.getAdapterPosition()); + if (mContext != null) { + view.icon.setImageDrawable(primaryAction.getIcon().loadDrawable(mContext)); + view.title.setText(primaryAction.getTitle()); + view.content.setOnClickListener(v -> { + try { + primaryAction.getAction().send(); + } catch (PendingIntent.CanceledException e) { + Log.w(TAG, "Failed to start intent " + primaryAction.getTitle()); + } + final String log = ContextualCardLogUtils.buildCardClickLog(card, 0 /* row */, + EventInfo.ACTION_TYPE_CONTENT, view.getAdapterPosition()); - final MetricsFeatureProvider metricsFeatureProvider = - FeatureFactory.getFactory(mContext).getMetricsFeatureProvider(); + final MetricsFeatureProvider metricsFeatureProvider = + FeatureFactory.getFactory(mContext).getMetricsFeatureProvider(); - metricsFeatureProvider.action(mContext, - SettingsEnums.ACTION_CONTEXTUAL_CARD_CLICK, log); - }); + metricsFeatureProvider.action(mContext, + SettingsEnums.ACTION_CONTEXTUAL_CARD_CLICK, log); + }); + } } static class HalfCardViewHolder extends RecyclerView.ViewHolder {