Merge "GnssLocationProvider: listening to conn lost event" into oc-dr1-dev

am: 9564b4d168

Change-Id: I02b2533b777d228d298283697aabaaf0602b567d
This commit is contained in:
Kevin Tang
2017-06-22 20:29:58 +00:00
committed by android-build-merger

View File

@@ -466,6 +466,11 @@ public class GnssLocationProvider implements LocationProviderInterface {
// Always on, notify HAL so it can get data it needs
sendMessage(UPDATE_NETWORK_STATE, 0 /*arg*/, network);
}
@Override
public void onLost(Network network) {
sendMessage(UPDATE_NETWORK_STATE, 0 /*arg*/, network);
}
};
/**
@@ -802,11 +807,21 @@ public class GnssLocationProvider implements LocationProviderInterface {
private void handleUpdateNetworkState(Network network) {
// retrieve NetworkInfo for this UID
NetworkInfo info = mConnMgr.getNetworkInfo(network);
if (info == null) {
return;
boolean networkAvailable = false;
boolean isConnected = false;
int type = ConnectivityManager.TYPE_NONE;
boolean isRoaming = false;
String apnName = null;
if (info != null) {
networkAvailable = info.isAvailable() && TelephonyManager.getDefault().getDataEnabled();
isConnected = info.isConnected();
type = info.getType();
isRoaming = info.isRoaming();
apnName = info.getExtraInfo();
}
boolean isConnected = info.isConnected();
if (DEBUG) {
String message = String.format(
"UpdateNetworkState, state=%s, connected=%s, info=%s, capabilities=%S",
@@ -818,8 +833,6 @@ public class GnssLocationProvider implements LocationProviderInterface {
}
if (native_is_agps_ril_supported()) {
boolean dataEnabled = TelephonyManager.getDefault().getDataEnabled();
boolean networkAvailable = info.isAvailable() && dataEnabled;
String defaultApn = getSelectedApn();
if (defaultApn == null) {
defaultApn = "dummy-apn";
@@ -827,10 +840,10 @@ public class GnssLocationProvider implements LocationProviderInterface {
native_update_network_state(
isConnected,
info.getType(),
info.isRoaming(),
type,
isRoaming,
networkAvailable,
info.getExtraInfo(),
apnName,
defaultApn);
} else if (DEBUG) {
Log.d(TAG, "Skipped network state update because GPS HAL AGPS-RIL is not supported");
@@ -838,7 +851,6 @@ public class GnssLocationProvider implements LocationProviderInterface {
if (mAGpsDataConnectionState == AGPS_DATA_CONNECTION_OPENING) {
if (isConnected) {
String apnName = info.getExtraInfo();
if (apnName == null) {
// assign a dummy value in the case of C2K as otherwise we will have a runtime
// exception in the following call to native_agps_data_conn_open