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

Commit 2e273b2f authored by Jack Yu's avatar Jack Yu
Browse files

Passing ServiceState as byte array into ServiceStateProvider

This allows the provider to reconstruct the service state
object correctly. Also we can get rid of all the 'set'
methods in ServiceState, which we'd like to remove in the future.

Test: Manual
Bug: 129768354
Change-Id: I835d30e544b3ed49d5d0b6b1ca981a81e3ee2039
parent 0ec1b0f9
Loading
Loading
Loading
Loading
+15 −22
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.database.Cursor;
import android.database.sqlite.SqliteWrapper;
import android.net.Uri;
import android.os.Build;
import android.os.Parcel;
import android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SmsMessage;
@@ -4130,31 +4131,23 @@ public final class Telephony {
         */
        public static ContentValues getContentValuesForServiceState(ServiceState state) {
            ContentValues values = new ContentValues();
            values.put(VOICE_REG_STATE, state.getVoiceRegState());
            values.put(DATA_REG_STATE, state.getDataRegState());
            values.put(VOICE_ROAMING_TYPE, state.getVoiceRoamingType());
            values.put(DATA_ROAMING_TYPE, state.getDataRoamingType());
            values.put(VOICE_OPERATOR_ALPHA_LONG, state.getVoiceOperatorAlphaLong());
            values.put(VOICE_OPERATOR_ALPHA_SHORT, state.getVoiceOperatorAlphaShort());
            values.put(VOICE_OPERATOR_NUMERIC, state.getVoiceOperatorNumeric());
            values.put(DATA_OPERATOR_ALPHA_LONG, state.getDataOperatorAlphaLong());
            values.put(DATA_OPERATOR_ALPHA_SHORT, state.getDataOperatorAlphaShort());
            values.put(DATA_OPERATOR_NUMERIC, state.getDataOperatorNumeric());
            values.put(IS_MANUAL_NETWORK_SELECTION, state.getIsManualSelection());
            values.put(RIL_VOICE_RADIO_TECHNOLOGY, state.getRilVoiceRadioTechnology());
            values.put(RIL_DATA_RADIO_TECHNOLOGY, state.getRilDataRadioTechnology());
            values.put(CSS_INDICATOR, state.getCssIndicator());
            values.put(NETWORK_ID, state.getCdmaNetworkId());
            values.put(SYSTEM_ID, state.getCdmaSystemId());
            values.put(CDMA_ROAMING_INDICATOR, state.getCdmaRoamingIndicator());
            values.put(CDMA_DEFAULT_ROAMING_INDICATOR, state.getCdmaDefaultRoamingIndicator());
            values.put(CDMA_ERI_ICON_INDEX, state.getCdmaEriIconIndex());
            values.put(CDMA_ERI_ICON_MODE, state.getCdmaEriIconMode());
            values.put(IS_EMERGENCY_ONLY, state.isEmergencyOnly());
            values.put(IS_USING_CARRIER_AGGREGATION, state.isUsingCarrierAggregation());
            final Parcel p = Parcel.obtain();
            state.writeToParcel(p, 0);
            // Turn the parcel to byte array. Safe to do this because the content values were never
            // written into a persistent storage. ServiceStateProvider keeps values in the memory.
            values.put(SERVICE_STATE, p.marshall());
            return values;
        }

        /**
         * The current service state.
         *
         * This is the entire {@link ServiceState} object in byte array.
         *
         * @hide
         */
        public static final String SERVICE_STATE = "service_state";

        /**
         * An integer value indicating the current voice service state.
         * <p>