Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9b7479f8 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add ims registration status"

parents c2c0edff d6bddbc4
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -8687,4 +8687,10 @@
    <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>
+6 −0
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
@@ -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() {