Read CarrierConfig to get operator name

Config if operator name should be in status bar is now read
from carrier config. For dual sim devices we use data sim.

Bug: 116847905
Test: Add item for carrier in vendor.xml and swap sim cards
between ones that have the item enabled and disabled. We have
also tested to swap data sim cards on dual sim device.
Test: m RunSettingsRoboTests ROBOTEST_FILTER="ShowOperatorNamePreferenceControllerTest"

Change-Id: I03311b96ee660aed80ec867b05aa0a34cfc15f54
This commit is contained in:
Niklas Lindgren
2018-10-01 11:17:51 +02:00
committed by Evan Laird
parent 0312b67407
commit 8bc83ef615
2 changed files with 30 additions and 11 deletions

View File

@@ -14,12 +14,14 @@
package com.android.settings.display;
import android.content.Context;
import android.os.PersistableBundle;
import android.provider.Settings;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import androidx.preference.Preference;
import androidx.preference.SwitchPreference;
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -34,7 +36,15 @@ public class ShowOperatorNamePreferenceController extends AbstractPreferenceCont
@Override
public boolean isAvailable() {
return mContext.getResources().getBoolean(R.bool.config_showOperatorNameInStatusBar);
final CarrierConfigManager configMgr = mContext
.getSystemService(CarrierConfigManager.class);
if (configMgr == null) {
return false;
}
final PersistableBundle b = configMgr.getConfigForSubId(SubscriptionManager
.getDefaultDataSubscriptionId());
return b != null && b.getBoolean(CarrierConfigManager
.KEY_SHOW_OPERATOR_NAME_IN_STATUSBAR_BOOL, false);
}
@Override