[Settings] User with restriction should avoid from having entries

through Settings search

1. Avoid from generating search report when user been restricted.
2. Guest user should have this restriction but not available, add
   additional rule as a conpensation from UI's perspective.

Bug: 260860114
Test: local

Change-Id: I63ba7f3b10fc812dd1498f17826a15e822879613
This commit is contained in:
Bonian Chen
2023-02-09 11:31:30 +00:00
parent 6f76d5dc91
commit 5e1c4d15a9
2 changed files with 21 additions and 1 deletions

View File

@@ -46,6 +46,7 @@ import androidx.preference.SwitchPreference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.network.SubscriptionUtil; import com.android.settings.network.SubscriptionUtil;
import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.NetworkPolicyEditor; import com.android.settingslib.NetworkPolicyEditor;
import com.android.settingslib.net.DataUsageController; import com.android.settingslib.net.DataUsageController;
@@ -517,7 +518,8 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements
@Override @Override
protected boolean isPageSearchEnabled(Context context) { protected boolean isPageSearchEnabled(Context context) {
return SubscriptionUtil.isSimHardwareVisible(context) return (!MobileNetworkUtils.isMobileNetworkUserRestricted(context))
&& SubscriptionUtil.isSimHardwareVisible(context)
&& DataUsageUtils.hasMobileData(context); && DataUsageUtils.hasMobileData(context);
} }
}; };

View File

@@ -49,6 +49,7 @@ import android.os.Bundle;
import android.os.PersistableBundle; import android.os.PersistableBundle;
import android.os.SystemClock; import android.os.SystemClock;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.os.UserManager;
import android.provider.Settings; import android.provider.Settings;
import android.telecom.PhoneAccountHandle; import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager; import android.telecom.TelecomManager;
@@ -114,6 +115,23 @@ public class MobileNetworkUtils {
public static final int NO_CELL_DATA_TYPE_ICON = 0; public static final int NO_CELL_DATA_TYPE_ICON = 0;
public static final Drawable EMPTY_DRAWABLE = new ColorDrawable(Color.TRANSPARENT); public static final Drawable EMPTY_DRAWABLE = new ColorDrawable(Color.TRANSPARENT);
/**
* Return true if current user limited by UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS.
*
* Note: Guest user should have this restriction through
* GuestTelephonyPreferenceController.java.
* However, it's not help with those devices upgraded their software.
*/
public static boolean isMobileNetworkUserRestricted(Context context) {
UserManager um = context.getSystemService(UserManager.class);
boolean disallow = false;
if (um != null) {
disallow = um.isGuestUser() || um.hasUserRestriction(
UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
}
return disallow;
}
/** /**
* Returns if DPC APNs are enforced. * Returns if DPC APNs are enforced.
*/ */