[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 a1d3fe061e)
Merged-In: I4fadaf2bdc55b97419f9e6abbd3cfa63af034f6a
This commit is contained in:
Bonian Chen
2023-02-10 12:52:23 +00:00
committed by Weng Su
parent 0362083f3a
commit 61e6c46fa7

View File

@@ -20,13 +20,16 @@ import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.UserHandle;
import android.provider.Settings; import android.provider.Settings;
import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.util.EventLog;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.ViewStub;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment; 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.ActiveSubscriptionsListener;
import com.android.settings.network.SubscriptionUtil; import com.android.settings.network.SubscriptionUtil;
import com.android.settings.network.ims.WifiCallingQueryImsState; 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.search.actionbar.SearchMenuController;
import com.android.settings.support.actionbar.HelpResourceProvider; import com.android.settings.support.actionbar.HelpResourceProvider;
import com.android.settings.widget.RtlCompatibleViewPager; import com.android.settings.widget.RtlCompatibleViewPager;
@@ -92,6 +96,9 @@ public class WifiCallingSettings extends SettingsPreferenceFragment
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
if (MobileNetworkUtils.isMobileNetworkUserRestricted(getActivity())) {
return new ViewStub(getActivity());
}
final View view = inflater.inflate(R.layout.wifi_calling_settings_tabs, container, false); final View view = inflater.inflate(R.layout.wifi_calling_settings_tabs, container, false);
mTabLayout = view.findViewById(R.id.sliding_tabs); mTabLayout = view.findViewById(R.id.sliding_tabs);
@@ -138,6 +145,12 @@ public class WifiCallingSettings extends SettingsPreferenceFragment
public void onCreate(Bundle icicle) { public void onCreate(Bundle icicle) {
mConstructionSubId = getConstructionSubId(icicle); mConstructionSubId = getConstructionSubId(icicle);
super.onCreate(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); Log.d(TAG, "SubId=" + mConstructionSubId);
if (mConstructionSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { if (mConstructionSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {