[Settings] Hide some Preference entries when no mobile data support

Hide some Preference which requires mobile data on device didn't support
it.

Bug: 221999174
Test: local
Change-Id: I7dd6e13aea0ed4467c7c7edeada564e42ea78349
This commit is contained in:
Bonian Chen
2022-05-10 01:13:47 +08:00
parent 9fb3262a1a
commit 8b06c96fe9
4 changed files with 16 additions and 4 deletions

View File

@@ -33,6 +33,7 @@ import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.datausage.DataUsageUtils;
import com.android.settings.network.MobileDataContentObserver;
import com.android.settings.network.SubscriptionsChangeListener;
@@ -102,10 +103,16 @@ public class DataDuringCallsPreferenceController extends TelephonyTogglePreferen
return true;
}
@VisibleForTesting
protected boolean hasMobileData() {
return DataUsageUtils.hasMobileData(mContext);
}
@Override
public int getAvailabilityStatus(int subId) {
if (!SubscriptionManager.isValidSubscriptionId(subId)
|| SubscriptionManager.getDefaultDataSubscriptionId() == subId) {
|| SubscriptionManager.getDefaultDataSubscriptionId() == subId
|| (!hasMobileData())) {
return CONDITIONALLY_UNAVAILABLE;
}
return AVAILABLE;