Merge "Plumb PhysicalChannelConfig all the way up."
am: 44d13875ff
Change-Id: I37f039ea44114b48b44bce7174deb3d55b2667fc
This commit is contained in:
@@ -37,6 +37,7 @@ import android.telephony.CellLocation;
|
|||||||
import android.telephony.DisconnectCause;
|
import android.telephony.DisconnectCause;
|
||||||
import android.telephony.LocationAccessPolicy;
|
import android.telephony.LocationAccessPolicy;
|
||||||
import android.telephony.PhoneStateListener;
|
import android.telephony.PhoneStateListener;
|
||||||
|
import android.telephony.PhysicalChannelConfig;
|
||||||
import android.telephony.PreciseCallState;
|
import android.telephony.PreciseCallState;
|
||||||
import android.telephony.PreciseDataConnectionState;
|
import android.telephony.PreciseDataConnectionState;
|
||||||
import android.telephony.PreciseDisconnectCause;
|
import android.telephony.PreciseDisconnectCause;
|
||||||
@@ -179,6 +180,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
|||||||
|
|
||||||
private ArrayList<List<CellInfo>> mCellInfo = null;
|
private ArrayList<List<CellInfo>> mCellInfo = null;
|
||||||
|
|
||||||
|
private ArrayList<List<PhysicalChannelConfig>> mPhysicalChannelConfigs;
|
||||||
|
|
||||||
private VoLteServiceState mVoLteServiceState = new VoLteServiceState();
|
private VoLteServiceState mVoLteServiceState = new VoLteServiceState();
|
||||||
|
|
||||||
private int mDefaultSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
private int mDefaultSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||||
@@ -335,6 +338,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
|||||||
mDataConnectionLinkProperties = new LinkProperties[numPhones];
|
mDataConnectionLinkProperties = new LinkProperties[numPhones];
|
||||||
mDataConnectionNetworkCapabilities = new NetworkCapabilities[numPhones];
|
mDataConnectionNetworkCapabilities = new NetworkCapabilities[numPhones];
|
||||||
mCellInfo = new ArrayList<List<CellInfo>>();
|
mCellInfo = new ArrayList<List<CellInfo>>();
|
||||||
|
mPhysicalChannelConfigs = new ArrayList<List<PhysicalChannelConfig>>();
|
||||||
for (int i = 0; i < numPhones; i++) {
|
for (int i = 0; i < numPhones; i++) {
|
||||||
mCallState[i] = TelephonyManager.CALL_STATE_IDLE;
|
mCallState[i] = TelephonyManager.CALL_STATE_IDLE;
|
||||||
mDataActivity[i] = TelephonyManager.DATA_ACTIVITY_NONE;
|
mDataActivity[i] = TelephonyManager.DATA_ACTIVITY_NONE;
|
||||||
@@ -349,6 +353,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
|||||||
mCallForwarding[i] = false;
|
mCallForwarding[i] = false;
|
||||||
mCellLocation[i] = new Bundle();
|
mCellLocation[i] = new Bundle();
|
||||||
mCellInfo.add(i, null);
|
mCellInfo.add(i, null);
|
||||||
|
mPhysicalChannelConfigs.add(i, null);
|
||||||
mConnectedApns[i] = new ArrayList<String>();
|
mConnectedApns[i] = new ArrayList<String>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -659,6 +664,14 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
|||||||
remove(r.binder);
|
remove(r.binder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ((events & PhoneStateListener.LISTEN_PHYSICAL_CHANNEL_CONFIGURATION) != 0) {
|
||||||
|
try {
|
||||||
|
r.callback.onPhysicalChannelConfigurationChanged(
|
||||||
|
mPhysicalChannelConfigs.get(phoneId));
|
||||||
|
} catch (RemoteException ex) {
|
||||||
|
remove(r.binder);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -1020,6 +1033,45 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void notifyPhysicalChannelConfiguration(List<PhysicalChannelConfig> configs) {
|
||||||
|
notifyPhysicalChannelConfigurationForSubscriber(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
|
||||||
|
configs);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void notifyPhysicalChannelConfigurationForSubscriber(int subId,
|
||||||
|
List<PhysicalChannelConfig> configs) {
|
||||||
|
if (!checkNotifyPermission("notifyPhysicalChannelConfiguration()")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (VDBG) {
|
||||||
|
log("notifyPhysicalChannelConfiguration: subId=" + subId + " configs=" + configs);
|
||||||
|
}
|
||||||
|
|
||||||
|
synchronized (mRecords) {
|
||||||
|
int phoneId = SubscriptionManager.getPhoneId(subId);
|
||||||
|
if (validatePhoneId(phoneId)) {
|
||||||
|
mPhysicalChannelConfigs.set(phoneId, configs);
|
||||||
|
for (Record r : mRecords) {
|
||||||
|
if (r.matchPhoneStateListenerEvent(
|
||||||
|
PhoneStateListener.LISTEN_PHYSICAL_CHANNEL_CONFIGURATION)
|
||||||
|
&& idMatch(r.subId, subId, phoneId)) {
|
||||||
|
try {
|
||||||
|
if (DBG_LOC) {
|
||||||
|
log("notifyPhysicalChannelConfiguration: mPhysicalChannelConfigs="
|
||||||
|
+ configs + " r=" + r);
|
||||||
|
}
|
||||||
|
r.callback.onPhysicalChannelConfigurationChanged(configs);
|
||||||
|
} catch (RemoteException ex) {
|
||||||
|
mRemoveList.add(r.binder);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
handleRemoveListLocked();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notifyMessageWaitingChangedForPhoneId(int phoneId, int subId, boolean mwi) {
|
public void notifyMessageWaitingChangedForPhoneId(int phoneId, int subId, boolean mwi) {
|
||||||
if (!checkNotifyPermission("notifyMessageWaitingChanged()")) {
|
if (!checkNotifyPermission("notifyMessageWaitingChanged()")) {
|
||||||
|
|||||||
@@ -700,6 +700,10 @@ public class PhoneStateListener {
|
|||||||
public void onCarrierNetworkChange(boolean active) {
|
public void onCarrierNetworkChange(boolean active) {
|
||||||
send(LISTEN_CARRIER_NETWORK_CHANGE, 0, 0, active);
|
send(LISTEN_CARRIER_NETWORK_CHANGE, 0, 0, active);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onPhysicalChannelConfigurationChanged(List<PhysicalChannelConfig> configs) {
|
||||||
|
send(LISTEN_PHYSICAL_CHANNEL_CONFIGURATION, 0, 0, configs);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IPhoneStateListener callback = new IPhoneStateListenerStub(this);
|
IPhoneStateListener callback = new IPhoneStateListenerStub(this);
|
||||||
|
|||||||
@@ -27,8 +27,9 @@ import java.lang.annotation.RetentionPolicy;
|
|||||||
*/
|
*/
|
||||||
public final class PhysicalChannelConfig implements Parcelable {
|
public final class PhysicalChannelConfig implements Parcelable {
|
||||||
|
|
||||||
|
// TODO(b/72993578) consolidate these enums in a central location.
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
@IntDef({CONNECTION_PRIMARY_SERVING, CONNECTION_SECONDARY_SERVING})
|
@IntDef({CONNECTION_PRIMARY_SERVING, CONNECTION_SECONDARY_SERVING, CONNECTION_UNKNOWN})
|
||||||
public @interface ConnectionStatus {}
|
public @interface ConnectionStatus {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,6 +42,9 @@ public final class PhysicalChannelConfig implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
public static final int CONNECTION_SECONDARY_SERVING = 2;
|
public static final int CONNECTION_SECONDARY_SERVING = 2;
|
||||||
|
|
||||||
|
/** Connection status is unknown. */
|
||||||
|
public static final int CONNECTION_UNKNOWN = Integer.MAX_VALUE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Connection status of the cell.
|
* Connection status of the cell.
|
||||||
*
|
*
|
||||||
@@ -86,6 +90,7 @@ public final class PhysicalChannelConfig implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @see #CONNECTION_PRIMARY_SERVING
|
* @see #CONNECTION_PRIMARY_SERVING
|
||||||
* @see #CONNECTION_SECONDARY_SERVING
|
* @see #CONNECTION_SECONDARY_SERVING
|
||||||
|
* @see #CONNECTION_UNKNOWN
|
||||||
*
|
*
|
||||||
* @return Connection status of the cell
|
* @return Connection status of the cell
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import android.telephony.ServiceState;
|
|||||||
import android.telephony.SignalStrength;
|
import android.telephony.SignalStrength;
|
||||||
import android.telephony.CellInfo;
|
import android.telephony.CellInfo;
|
||||||
import android.telephony.DataConnectionRealTimeInfo;
|
import android.telephony.DataConnectionRealTimeInfo;
|
||||||
|
import android.telephony.PhysicalChannelConfig;
|
||||||
import android.telephony.PreciseCallState;
|
import android.telephony.PreciseCallState;
|
||||||
import android.telephony.PreciseDataConnectionState;
|
import android.telephony.PreciseDataConnectionState;
|
||||||
import android.telephony.VoLteServiceState;
|
import android.telephony.VoLteServiceState;
|
||||||
@@ -37,6 +38,7 @@ oneway interface IPhoneStateListener {
|
|||||||
void onDataConnectionStateChanged(int state, int networkType);
|
void onDataConnectionStateChanged(int state, int networkType);
|
||||||
void onDataActivity(int direction);
|
void onDataActivity(int direction);
|
||||||
void onSignalStrengthsChanged(in SignalStrength signalStrength);
|
void onSignalStrengthsChanged(in SignalStrength signalStrength);
|
||||||
|
void onPhysicalChannelConfigurationChanged(in List<PhysicalChannelConfig> configs);
|
||||||
void onOtaspChanged(in int otaspMode);
|
void onOtaspChanged(in int otaspMode);
|
||||||
void onCellInfoChanged(in List<CellInfo> cellInfo);
|
void onCellInfoChanged(in List<CellInfo> cellInfo);
|
||||||
void onPreciseCallStateChanged(in PreciseCallState callState);
|
void onPreciseCallStateChanged(in PreciseCallState callState);
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ import android.net.LinkProperties;
|
|||||||
import android.net.NetworkCapabilities;
|
import android.net.NetworkCapabilities;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.telephony.CellInfo;
|
import android.telephony.CellInfo;
|
||||||
|
import android.telephony.PhysicalChannelConfig;
|
||||||
import android.telephony.ServiceState;
|
import android.telephony.ServiceState;
|
||||||
import android.telephony.SignalStrength;
|
import android.telephony.SignalStrength;
|
||||||
import android.telephony.CellInfo;
|
|
||||||
import android.telephony.VoLteServiceState;
|
import android.telephony.VoLteServiceState;
|
||||||
import com.android.internal.telephony.IPhoneStateListener;
|
import com.android.internal.telephony.IPhoneStateListener;
|
||||||
import com.android.internal.telephony.IOnSubscriptionsChangedListener;
|
import com.android.internal.telephony.IOnSubscriptionsChangedListener;
|
||||||
@@ -58,6 +58,9 @@ interface ITelephonyRegistry {
|
|||||||
void notifyCellLocationForSubscriber(in int subId, in Bundle cellLocation);
|
void notifyCellLocationForSubscriber(in int subId, in Bundle cellLocation);
|
||||||
void notifyOtaspChanged(in int otaspMode);
|
void notifyOtaspChanged(in int otaspMode);
|
||||||
void notifyCellInfo(in List<CellInfo> cellInfo);
|
void notifyCellInfo(in List<CellInfo> cellInfo);
|
||||||
|
void notifyPhysicalChannelConfiguration(in List<PhysicalChannelConfig> configs);
|
||||||
|
void notifyPhysicalChannelConfigurationForSubscriber(in int subId,
|
||||||
|
in List<PhysicalChannelConfig> configs);
|
||||||
void notifyPreciseCallState(int ringingCallState, int foregroundCallState,
|
void notifyPreciseCallState(int ringingCallState, int foregroundCallState,
|
||||||
int backgroundCallState);
|
int backgroundCallState);
|
||||||
void notifyDisconnectCause(int disconnectCause, int preciseDisconnectCause);
|
void notifyDisconnectCause(int disconnectCause, int preciseDisconnectCause);
|
||||||
|
|||||||
Reference in New Issue
Block a user