Add ims registration status
Display "IMS registration state" in Status menu. Introduce carrier config to enable/disable the feature for customization. Since some carriers require, this feature is necessary. Test: manual Checked "IMS registration state" in Status menu Bug: 28806101 Change-Id: I6c452c512f03cf41704b91331e44141ed3050cf9
This commit is contained in:
committed by
Brad Ebinger
parent
81266c97ed
commit
b7a11feaa2
@@ -9066,4 +9066,11 @@
|
||||
|
||||
<!-- Note displayed when certain features are not available on low ram devices. [CHAR LIMIT=NONE] -->
|
||||
<string name="disabled_low_ram_device">This feature is not available on this device</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>
|
||||
|
@@ -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>
|
||||
|
@@ -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() {
|
||||
|
Reference in New Issue
Block a user