Merge "Add ims registration status"
This commit is contained in:
@@ -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>
|
||||||
|
@@ -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>
|
||||||
|
@@ -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() {
|
||||||
|
Reference in New Issue
Block a user