From 61e6c46fa7d74955523dd867bff0a0c1e8e1ae42 Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Fri, 10 Feb 2023 12:52:23 +0000 Subject: [PATCH] [Settings] Avoid from user without sufficient permission to change WiFi calling Enhance security control through close UI when accessing by user with restriction. Bug: 262390632 Bug: 262243015 Test: manual test make RunSettingsRoboTests ROBOTEST_FILTER=WifiCallingSettingsTest Change-Id: I4fadaf2bdc55b97419f9e6abbd3cfa63af034f6a (cherry picked from commit a1d3fe061e08c58d1c07160086b775b6254d0584) Merged-In: I4fadaf2bdc55b97419f9e6abbd3cfa63af034f6a --- .../settings/wifi/calling/WifiCallingSettings.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettings.java b/src/com/android/settings/wifi/calling/WifiCallingSettings.java index b4951bf5c59..b15f33fdee8 100644 --- a/src/com/android/settings/wifi/calling/WifiCallingSettings.java +++ b/src/com/android/settings/wifi/calling/WifiCallingSettings.java @@ -20,13 +20,16 @@ import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.os.UserHandle; import android.provider.Settings; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; +import android.util.EventLog; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.view.ViewStub; import androidx.annotation.VisibleForTesting; import androidx.fragment.app.Fragment; @@ -39,6 +42,7 @@ import com.android.settings.SettingsPreferenceFragment; import com.android.settings.network.ActiveSubscriptionsListener; import com.android.settings.network.SubscriptionUtil; import com.android.settings.network.ims.WifiCallingQueryImsState; +import com.android.settings.network.telephony.MobileNetworkUtils; import com.android.settings.search.actionbar.SearchMenuController; import com.android.settings.support.actionbar.HelpResourceProvider; import com.android.settings.widget.RtlCompatibleViewPager; @@ -92,6 +96,9 @@ public class WifiCallingSettings extends SettingsPreferenceFragment @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + if (MobileNetworkUtils.isMobileNetworkUserRestricted(getActivity())) { + return new ViewStub(getActivity()); + } final View view = inflater.inflate(R.layout.wifi_calling_settings_tabs, container, false); mTabLayout = view.findViewById(R.id.sliding_tabs); @@ -138,6 +145,12 @@ public class WifiCallingSettings extends SettingsPreferenceFragment public void onCreate(Bundle icicle) { mConstructionSubId = getConstructionSubId(icicle); super.onCreate(icicle); + if (MobileNetworkUtils.isMobileNetworkUserRestricted(getActivity())) { + Log.e(TAG, "This setting isn't available due to user restriction."); + EventLog.writeEvent(0x534e4554, "262243015", UserHandle.myUserId(), "User restricted"); + finish(); + return; + } Log.d(TAG, "SubId=" + mConstructionSubId); if (mConstructionSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {