Merge "Add ims registration status" into stage-aosp-master

am: af845720f6

Change-Id: I5daf6e9a55e10d20fc03be6a54801ad6d6533bf8
This commit is contained in:
Brad Ebinger
2017-09-11 19:54:02 +00:00
committed by android-build-merger
3 changed files with 41 additions and 0 deletions

View File

@@ -8981,4 +8981,11 @@
<!-- The divider symbol between different parts of the notification header including spaces. not translatable [CHAR LIMIT=3] -->
<string name="notification_header_divider_symbol_with_spaces" translatable="false">" • "</string>
<!--Label of IMS registration header -->
<string name="ims_reg_title">"IMS registration state"</string>
<!--Used when IMS registration state is registered -->
<string name="ims_reg_status_registered">"Registered"</string>
<!--Used when IMS registration state is not registered -->
<string name="ims_reg_status_not_registered">"Not registered"</string>
</resources>

View File

@@ -89,4 +89,10 @@
android:title="@string/status_wimax_mac_address"
android:summary="@string/device_info_not_available"
android:persistent="false" />
<Preference
android:key="ims_reg_state"
android:enabled="false"
android:shouldDisableView="false"
android:title="@string/ims_reg_title"
android:persistent="false" />
</PreferenceScreen>

View File

@@ -28,11 +28,15 @@ import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.PersistableBundle;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.UserManager;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -56,6 +60,7 @@ public class Status extends SettingsPreferenceFragment {
private static final String KEY_WIMAX_MAC_ADDRESS = "wimax_mac_address";
private static final String KEY_SIM_STATUS = "sim_status";
private static final String KEY_IMEI_INFO = "imei_info";
private static final String KEY_IMS_REGISTRATION_STATE = "ims_reg_state";
// Broadcasts to listen to for connectivity changes.
private static final String[] CONNECTIVITY_INTENTS = {
@@ -85,6 +90,8 @@ public class Status extends SettingsPreferenceFragment {
private Preference mIpAddress;
private Preference mWifiMacAddress;
private Preference mWimaxMacAddress;
private Preference mImsStatus;
private Handler mHandler;
private static class MyHandler extends Handler {
@@ -162,6 +169,7 @@ public class Status extends SettingsPreferenceFragment {
mWifiMacAddress = findPreference(KEY_WIFI_MAC_ADDRESS);
mWimaxMacAddress = findPreference(KEY_WIMAX_MAC_ADDRESS);
mIpAddress = findPreference(KEY_IP_ADDRESS);
mImsStatus = findPreference(KEY_IMS_REGISTRATION_STATE);
mRes = getResources();
mUnavailable = mRes.getString(R.string.status_unavailable);
@@ -269,11 +277,31 @@ public class Status extends SettingsPreferenceFragment {
}
}
private void setImsRegistrationStatus() {
CarrierConfigManager configManager = (CarrierConfigManager)
getSystemService(Context.CARRIER_CONFIG_SERVICE);
int subId = SubscriptionManager.getDefaultDataSubscriptionId();
PersistableBundle config = null;
if (configManager != null) {
config = configManager.getConfigForSubId(subId);
}
if (config != null && config.getBoolean(
CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)) {
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
mImsStatus.setSummary((tm != null && tm.isImsRegistered(subId)) ?
R.string.ims_reg_status_registered : R.string.ims_reg_status_not_registered);
} else {
removePreferenceFromScreen(KEY_IMS_REGISTRATION_STATE);
mImsStatus = null;
}
}
void updateConnectivity() {
setWimaxStatus();
setWifiStatus();
setBtStatus();
setIpAddressStatus();
setImsRegistrationStatus();
}
void updateTimes() {