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

Commit 7273b329 authored by Pengquan Meng's avatar Pengquan Meng
Browse files

Fixed network mode loaded issue

SubscriptionInfoUpdater.java adds subId during device power-up and if the SIM card
is new to the slot it would set the network mode as Global. Before assigning network mode
as Global, first check if a network mode already available in DB for the current subId.
If network mode available, use the same as current preferred network mode.

Bug: 36850854
Test: manual
Change-Id: I93e9252a8d7f2f31ea212f04525a7a94b479d1fb
parent 6960b9a7
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import android.os.RemoteException;
import android.os.ServiceManager;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.provider.Settings.Global;
import android.service.euicc.EuiccProfileInfo;
import android.service.euicc.EuiccService;
import android.service.euicc.GetEuiccProfileInfoListResult;
@@ -442,13 +443,21 @@ public class SubscriptionInfoUpdater extends Handler {
                int storedSubId = sp.getInt(CURR_SUBID + slotId, -1);

                if (storedSubId != subId) {
                    int networkType = RILConstants.PREFERRED_NETWORK_MODE;
                    int networkType = Settings.Global.getInt(
                            mPhone[slotId].getContext().getContentResolver(),
                            Settings.Global.PREFERRED_NETWORK_MODE + subId,
                            -1 /* invalid network mode */);

                    if (networkType == -1) {
                        networkType = RILConstants.PREFERRED_NETWORK_MODE;
                        Settings.Global.putInt(
                                mPhone[slotId].getContext().getContentResolver(),
                                Global.PREFERRED_NETWORK_MODE + subId,
                                networkType);
                    }

                    // Set the modem network mode
                    mPhone[slotId].setPreferredNetworkType(networkType, null);
                    Settings.Global.putInt(mPhone[slotId].getContext().getContentResolver(),
                            Settings.Global.PREFERRED_NETWORK_MODE + subId,
                            networkType);

                    // Only support automatic selection mode on SIM change.
                    mPhone[slotId].getNetworkSelectionMode(