Merge "Add ims registration status"

This commit is contained in:
Treehugger Robot
2017-09-11 19:44:31 +00:00
committed by Gerrit Code Review
3 changed files with 40 additions and 0 deletions

View File

@@ -8687,4 +8687,10 @@
<string name="notification_header_divider_symbol_with_spaces" translatable="false">" • "</string> <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> </resources>

View File

@@ -89,4 +89,10 @@
android:title="@string/status_wimax_mac_address" android:title="@string/status_wimax_mac_address"
android:summary="@string/device_info_not_available" android:summary="@string/device_info_not_available"
android:persistent="false" /> 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> </PreferenceScreen>

View File

@@ -28,11 +28,15 @@ import android.net.wifi.WifiManager;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
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.os.UserManager;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.PreferenceScreen;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils; import android.text.TextUtils;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; 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_WIMAX_MAC_ADDRESS = "wimax_mac_address";
private static final String KEY_SIM_STATUS = "sim_status"; private static final String KEY_SIM_STATUS = "sim_status";
private static final String KEY_IMEI_INFO = "imei_info"; 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. // Broadcasts to listen to for connectivity changes.
private static final String[] CONNECTIVITY_INTENTS = { private static final String[] CONNECTIVITY_INTENTS = {
@@ -85,6 +90,8 @@ public class Status extends SettingsPreferenceFragment {
private Preference mIpAddress; private Preference mIpAddress;
private Preference mWifiMacAddress; private Preference mWifiMacAddress;
private Preference mWimaxMacAddress; private Preference mWimaxMacAddress;
private Preference mImsStatus;
private Handler mHandler; private Handler mHandler;
private static class MyHandler extends Handler { private static class MyHandler extends Handler {
@@ -162,6 +169,7 @@ public class Status extends SettingsPreferenceFragment {
mWifiMacAddress = findPreference(KEY_WIFI_MAC_ADDRESS); mWifiMacAddress = findPreference(KEY_WIFI_MAC_ADDRESS);
mWimaxMacAddress = findPreference(KEY_WIMAX_MAC_ADDRESS); mWimaxMacAddress = findPreference(KEY_WIMAX_MAC_ADDRESS);
mIpAddress = findPreference(KEY_IP_ADDRESS); mIpAddress = findPreference(KEY_IP_ADDRESS);
mImsStatus = findPreference(KEY_IMS_REGISTRATION_STATE);
mRes = getResources(); mRes = getResources();
mUnavailable = mRes.getString(R.string.status_unavailable); 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() { void updateConnectivity() {
setWimaxStatus(); setWimaxStatus();
setWifiStatus(); setWifiStatus();
setBtStatus(); setBtStatus();
setIpAddressStatus(); setIpAddressStatus();
setImsRegistrationStatus();
} }
void updateTimes() { void updateTimes() {