From 09fa333f47d0cde47151f6695f4bd80402987429 Mon Sep 17 00:00:00 2001 From: Becca Hughes Date: Fri, 26 Jan 2024 17:51:55 +0000 Subject: [PATCH] Add try/catch to handle invalid settings activity Change-Id: I20d9480fd3bfe14fe4e85ed2937aaba3df09302d Test: make Bug: 322287971 --- .../CredentialManagerPreferenceController.java | 7 ++++++- .../credentials/DefaultCombinedPreferenceController.java | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java b/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java index 20232991475..2f04b62a821 100644 --- a/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java +++ b/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java @@ -20,6 +20,7 @@ import static androidx.lifecycle.Lifecycle.Event.ON_CREATE; import android.app.Activity; import android.app.Dialog; +import android.content.ActivityNotFoundException; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; @@ -656,7 +657,11 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl CombinedProviderInfo.createSettingsActivityIntent( mContext, packageName, settingsActivity, getUser()); if (settingsIntent != null) { - mContext.startActivity(settingsIntent); + try { + mContext.startActivity(settingsIntent); + } catch (ActivityNotFoundException e) { + Log.e(TAG, "Failed to open settings activity", e); + } } } }); diff --git a/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java b/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java index d2400bbbcbb..0fb1769063c 100644 --- a/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java +++ b/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java @@ -16,6 +16,7 @@ package com.android.settings.applications.credentials; +import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.credentials.CredentialManager; @@ -26,6 +27,7 @@ import android.provider.Settings; import android.service.autofill.AutofillService; import android.service.autofill.AutofillServiceInfo; import android.view.autofill.AutofillManager; +import android.util.Slog; import androidx.annotation.Nullable; import androidx.annotation.NonNull; @@ -132,7 +134,11 @@ public class DefaultCombinedPreferenceController extends DefaultAppPreferenceCon new PrimaryProviderPreference.Delegate() { public void onOpenButtonClicked() { if (settingsActivityIntent != null) { - startActivity(settingsActivityIntent); + try { + startActivity(settingsActivityIntent); + } catch (ActivityNotFoundException e) { + Slog.e(TAG, "Failed to open settings activity", e); + } } }