Merge "GnssLocationProvider: listening to conn lost event" into oc-dr1-dev
am: 9564b4d168
Change-Id: I02b2533b777d228d298283697aabaaf0602b567d
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user