From bdfd24ed5a777b802ae8245142585a3ba040d669 Mon Sep 17 00:00:00 2001 From: Hakjun Choi Date: Mon, 17 Jun 2024 05:53:47 +0000 Subject: [PATCH] Add a condition for preventing NPE when accessing SatelliteManager There could be a case that FEATURE_TELEPHONY_SATELLITE is false but KEY_SATELLITE_ATTACH_SUPPORTED_BOOL it true Since SatelliteManager can be returned only when FEATURE_TELEPHONY_SATELLITE is enabled, added a condition checks whether SatelliteManager is null or not Bug: 347057183 Test: atest SatelliteManagerTest SatelliteManagerTestOnMockServiceTest manually e2e test with FEATURE_TELEPHONY_SATELLITE disabled Change-Id: I3f51e6805ccab3366d9d01be2e999818cd18354f --- .../settings/network/telephony/SatelliteSetting.java | 9 ++++++++- .../telephony/SatelliteSettingPreferenceController.java | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/network/telephony/SatelliteSetting.java b/src/com/android/settings/network/telephony/SatelliteSetting.java index 314fb3ac4c8..7e9e61d07ed 100644 --- a/src/com/android/settings/network/telephony/SatelliteSetting.java +++ b/src/com/android/settings/network/telephony/SatelliteSetting.java @@ -92,6 +92,14 @@ public class SatelliteSetting extends RestrictedDashboardFragment { } mActivity = getActivity(); + + mSatelliteManager = mActivity.getSystemService(SatelliteManager.class); + if (mSatelliteManager == null) { + Log.d(TAG, "SatelliteManager is null, do nothing."); + finish(); + return; + } + mSubId = mActivity.getIntent().getIntExtra(SUB_ID, SubscriptionManager.INVALID_SUBSCRIPTION_ID); @@ -104,7 +112,6 @@ public class SatelliteSetting extends RestrictedDashboardFragment { } mTelephonymanager = mActivity.getSystemService(TelephonyManager.class); - mSatelliteManager = mActivity.getSystemService(SatelliteManager.class); } @Override diff --git a/src/com/android/settings/network/telephony/SatelliteSettingPreferenceController.java b/src/com/android/settings/network/telephony/SatelliteSettingPreferenceController.java index 153698c381b..9ca0294ebe6 100644 --- a/src/com/android/settings/network/telephony/SatelliteSettingPreferenceController.java +++ b/src/com/android/settings/network/telephony/SatelliteSettingPreferenceController.java @@ -64,6 +64,10 @@ public class SatelliteSettingPreferenceController extends return UNSUPPORTED_ON_DEVICE; } + if (mSatelliteManager == null) { + return UNSUPPORTED_ON_DEVICE; + } + final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId); final boolean isSatelliteAttachSupported = carrierConfig.getBoolean( CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL);