Fix crash when support item is clicked.
Check for existing activity to handle the support item intent before adding it to support tile or trying to launch the activity. Change-Id: I42a733c2d862b303773aeee1ba3b21b718e59066 Fixes: 29118295
This commit is contained in:
@@ -23,6 +23,7 @@ import android.app.Activity;
|
|||||||
import android.app.DialogFragment;
|
import android.app.DialogFragment;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
@@ -136,7 +137,8 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
|
|||||||
public void onItemClicked(int position) {
|
public void onItemClicked(int position) {
|
||||||
if (position >= 0 && position < mSupportData.size()) {
|
if (position >= 0 && position < mSupportData.size()) {
|
||||||
final SupportData data = mSupportData.get(position);
|
final SupportData data = mSupportData.get(position);
|
||||||
if (data.intent != null) {
|
if (data.intent != null &&
|
||||||
|
mActivity.getPackageManager().resolveActivity(data.intent, 0) != null) {
|
||||||
if (data.metricsEvent >= 0) {
|
if (data.metricsEvent >= 0) {
|
||||||
MetricsLogger.action(mActivity, data.metricsEvent);
|
MetricsLogger.action(mActivity, data.metricsEvent);
|
||||||
}
|
}
|
||||||
@@ -283,19 +285,26 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
|
|||||||
|
|
||||||
private void addMoreHelpItems() {
|
private void addMoreHelpItems() {
|
||||||
mSupportData.add(new SupportData.Builder(mActivity, TYPE_SUPPORT_TILE_SPACER).build());
|
mSupportData.add(new SupportData.Builder(mActivity, TYPE_SUPPORT_TILE_SPACER).build());
|
||||||
|
PackageManager packageManager = mActivity.getPackageManager();
|
||||||
|
Intent intent = mSupportFeatureProvider.getHelpIntent(mActivity);
|
||||||
|
if (packageManager.resolveActivity(intent, 0) != null) {
|
||||||
mSupportData.add(new SupportData.Builder(mActivity, TYPE_SUPPORT_TILE)
|
mSupportData.add(new SupportData.Builder(mActivity, TYPE_SUPPORT_TILE)
|
||||||
.setIcon(R.drawable.ic_help_24dp)
|
.setIcon(R.drawable.ic_help_24dp)
|
||||||
.setTileTitle(R.string.support_help_feedback_title)
|
.setTileTitle(R.string.support_help_feedback_title)
|
||||||
.setIntent(mSupportFeatureProvider.getHelpIntent(mActivity))
|
.setIntent(intent)
|
||||||
.setMetricsEvent(MetricsProto.MetricsEvent.ACTION_SUPPORT_HELP_AND_FEEDBACK)
|
.setMetricsEvent(MetricsProto.MetricsEvent.ACTION_SUPPORT_HELP_AND_FEEDBACK)
|
||||||
.build());
|
.build());
|
||||||
|
}
|
||||||
|
intent = mSupportFeatureProvider.getTipsAndTricksIntent(mActivity);
|
||||||
|
if (packageManager.resolveActivity(intent, 0) != null) {
|
||||||
mSupportData.add(new SupportData.Builder(mActivity, TYPE_SUPPORT_TILE)
|
mSupportData.add(new SupportData.Builder(mActivity, TYPE_SUPPORT_TILE)
|
||||||
.setIcon(R.drawable.ic_lightbulb_outline_24)
|
.setIcon(R.drawable.ic_lightbulb_outline_24)
|
||||||
.setTileTitle(R.string.support_tips_and_tricks_title)
|
.setTileTitle(R.string.support_tips_and_tricks_title)
|
||||||
.setIntent(mSupportFeatureProvider.getTipsAndTricksIntent(mActivity))
|
.setIntent(intent)
|
||||||
.setMetricsEvent(MetricsProto.MetricsEvent.ACTION_SUPPORT_TIPS_AND_TRICKS)
|
.setMetricsEvent(MetricsProto.MetricsEvent.ACTION_SUPPORT_TIPS_AND_TRICKS)
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void bindEscalationOptions(ViewHolder holder, EscalationData data) {
|
private void bindEscalationOptions(ViewHolder holder, EscalationData data) {
|
||||||
holder.tileTitleView.setText(data.tileTitle);
|
holder.tileTitleView.setText(data.tileTitle);
|
||||||
|
Reference in New Issue
Block a user