Fix GNSS status delivery to the callbacks

Bug: 32357457
Change-Id: I8f2b8dae5472cb81313417e85c092dca0aae5bd9
This commit is contained in:
Lifu Tang
2016-10-24 13:33:47 -07:00
parent 9cac4568e5
commit 4e82fe5120

View File

@@ -1465,7 +1465,7 @@ public class LocationManager {
mGpsNmeaListener = null; mGpsNmeaListener = null;
mNmeaBuffer = null; mNmeaBuffer = null;
mOldGnssCallback = null; mOldGnssCallback = null;
mGnssCallback = new GnssStatus.Callback() { mGnssCallback = mGpsListener != null ? new GnssStatus.Callback() {
@Override @Override
public void onStarted() { public void onStarted() {
mGpsListener.onGpsStatusChanged(GpsStatus.GPS_EVENT_STARTED); mGpsListener.onGpsStatusChanged(GpsStatus.GPS_EVENT_STARTED);
@@ -1485,7 +1485,7 @@ public class LocationManager {
public void onSatelliteStatusChanged(GnssStatus status) { public void onSatelliteStatusChanged(GnssStatus status) {
mGpsListener.onGpsStatusChanged(GpsStatus.GPS_EVENT_SATELLITE_STATUS); mGpsListener.onGpsStatusChanged(GpsStatus.GPS_EVENT_SATELLITE_STATUS);
} }
}; } : null;
mOldGnssNmeaListener = null; mOldGnssNmeaListener = null;
mGnssNmeaListener = null; mGnssNmeaListener = null;
} }
@@ -1502,12 +1502,12 @@ public class LocationManager {
mOldGnssCallback = null; mOldGnssCallback = null;
mGnssCallback = null; mGnssCallback = null;
mOldGnssNmeaListener = null; mOldGnssNmeaListener = null;
mGnssNmeaListener = new OnNmeaMessageListener() { mGnssNmeaListener = mGpsNmeaListener != null ? new OnNmeaMessageListener() {
@Override @Override
public void onNmeaMessage(String nmea, long timestamp) { public void onNmeaMessage(String nmea, long timestamp) {
mGpsNmeaListener.onNmeaReceived(timestamp, nmea); mGpsNmeaListener.onNmeaReceived(timestamp, nmea);
} }
}; } : null;
} }
GnssStatusListenerTransport(GnssStatusCallback callback) { GnssStatusListenerTransport(GnssStatusCallback callback) {
@@ -1516,7 +1516,7 @@ public class LocationManager {
GnssStatusListenerTransport(GnssStatusCallback callback, Handler handler) { GnssStatusListenerTransport(GnssStatusCallback callback, Handler handler) {
mOldGnssCallback = callback; mOldGnssCallback = callback;
mGnssCallback = new GnssStatus.Callback() { mGnssCallback = mOldGnssCallback != null ? new GnssStatus.Callback() {
@Override @Override
public void onStarted() { public void onStarted() {
mOldGnssCallback.onStarted(); mOldGnssCallback.onStarted();
@@ -1536,7 +1536,7 @@ public class LocationManager {
public void onSatelliteStatusChanged(GnssStatus status) { public void onSatelliteStatusChanged(GnssStatus status) {
mOldGnssCallback.onSatelliteStatusChanged(status); mOldGnssCallback.onSatelliteStatusChanged(status);
} }
}; } : null;
mGnssHandler = new GnssHandler(handler); mGnssHandler = new GnssHandler(handler);
mOldGnssNmeaListener = null; mOldGnssNmeaListener = null;
mGnssNmeaListener = null; mGnssNmeaListener = null;
@@ -1569,12 +1569,12 @@ public class LocationManager {
mOldGnssCallback = null; mOldGnssCallback = null;
mGnssHandler = new GnssHandler(handler); mGnssHandler = new GnssHandler(handler);
mOldGnssNmeaListener = listener; mOldGnssNmeaListener = listener;
mGnssNmeaListener = new OnNmeaMessageListener() { mGnssNmeaListener = mOldGnssNmeaListener != null ? new OnNmeaMessageListener() {
@Override @Override
public void onNmeaMessage(String message, long timestamp) { public void onNmeaMessage(String message, long timestamp) {
mOldGnssNmeaListener.onNmeaReceived(timestamp, message); mOldGnssNmeaListener.onNmeaReceived(timestamp, message);
} }
}; } : null;
mGpsListener = null; mGpsListener = null;
mGpsNmeaListener = null; mGpsNmeaListener = null;
mNmeaBuffer = new ArrayList<Nmea>(); mNmeaBuffer = new ArrayList<Nmea>();
@@ -1597,7 +1597,7 @@ public class LocationManager {
@Override @Override
public void onGnssStarted() { public void onGnssStarted() {
if (mGpsListener != null) { if (mGnssCallback != null) {
Message msg = Message.obtain(); Message msg = Message.obtain();
msg.what = GpsStatus.GPS_EVENT_STARTED; msg.what = GpsStatus.GPS_EVENT_STARTED;
mGnssHandler.sendMessage(msg); mGnssHandler.sendMessage(msg);
@@ -1606,7 +1606,7 @@ public class LocationManager {
@Override @Override
public void onGnssStopped() { public void onGnssStopped() {
if (mGpsListener != null) { if (mGnssCallback != null) {
Message msg = Message.obtain(); Message msg = Message.obtain();
msg.what = GpsStatus.GPS_EVENT_STOPPED; msg.what = GpsStatus.GPS_EVENT_STOPPED;
mGnssHandler.sendMessage(msg); mGnssHandler.sendMessage(msg);
@@ -1615,7 +1615,7 @@ public class LocationManager {
@Override @Override
public void onFirstFix(int ttff) { public void onFirstFix(int ttff) {
if (mGpsListener != null) { if (mGnssCallback != null) {
mTimeToFirstFix = ttff; mTimeToFirstFix = ttff;
Message msg = Message.obtain(); Message msg = Message.obtain();
msg.what = GpsStatus.GPS_EVENT_FIRST_FIX; msg.what = GpsStatus.GPS_EVENT_FIRST_FIX;