Loading services/core/java/com/android/server/location/injector/SystemEmergencyHelper.java +20 −10 Original line number Diff line number Diff line Loading @@ -35,17 +35,17 @@ public class SystemEmergencyHelper extends EmergencyHelper { private final Context mContext; private TelephonyManager mTelephonyManager; TelephonyManager mTelephonyManager; private boolean mIsInEmergencyCall; private long mEmergencyCallEndRealtimeMs = Long.MIN_VALUE; boolean mIsInEmergencyCall; long mEmergencyCallEndRealtimeMs = Long.MIN_VALUE; public SystemEmergencyHelper(Context context) { mContext = context; } /** Called when system is ready. */ public void onSystemReady() { public synchronized void onSystemReady() { if (mTelephonyManager != null) { return; } Loading @@ -64,14 +64,20 @@ public class SystemEmergencyHelper extends EmergencyHelper { return; } synchronized (SystemEmergencyHelper.this) { mIsInEmergencyCall = mTelephonyManager.isEmergencyNumber( intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER)); } } }, new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL)); } @Override public boolean isInEmergency(long extensionTimeMs) { public synchronized boolean isInEmergency(long extensionTimeMs) { if (mTelephonyManager == null) { return false; } boolean isInExtensionTime = mEmergencyCallEndRealtimeMs != Long.MIN_VALUE && (SystemClock.elapsedRealtime() - mEmergencyCallEndRealtimeMs) < extensionTimeMs; Loading @@ -84,9 +90,12 @@ public class SystemEmergencyHelper extends EmergencyHelper { private class EmergencyCallTelephonyCallback extends TelephonyCallback implements TelephonyCallback.CallStateListener{ EmergencyCallTelephonyCallback() {} @Override public void onCallStateChanged(int state) { if (state == TelephonyManager.CALL_STATE_IDLE) { synchronized (SystemEmergencyHelper.this) { if (mIsInEmergencyCall) { mEmergencyCallEndRealtimeMs = SystemClock.elapsedRealtime(); mIsInEmergencyCall = false; Loading @@ -95,3 +104,4 @@ public class SystemEmergencyHelper extends EmergencyHelper { } } } } services/core/java/com/android/server/location/provider/LocationProviderManager.java +8 −8 Original line number Diff line number Diff line Loading @@ -1527,8 +1527,6 @@ public class LocationProviderManager extends throw new IllegalArgumentException(mName + " provider is not a test provider"); } final long identity = Binder.clearCallingIdentity(); try { String locationProvider = location.getProvider(); if (!TextUtils.isEmpty(locationProvider) && !mName.equals(locationProvider)) { // The location has an explicit provider that is different from the mock Loading @@ -1537,6 +1535,8 @@ public class LocationProviderManager extends mName + "!=" + locationProvider); } final long identity = Binder.clearCallingIdentity(); try { mProvider.setMockProviderLocation(location); } finally { Binder.restoreCallingIdentity(identity); Loading Loading
services/core/java/com/android/server/location/injector/SystemEmergencyHelper.java +20 −10 Original line number Diff line number Diff line Loading @@ -35,17 +35,17 @@ public class SystemEmergencyHelper extends EmergencyHelper { private final Context mContext; private TelephonyManager mTelephonyManager; TelephonyManager mTelephonyManager; private boolean mIsInEmergencyCall; private long mEmergencyCallEndRealtimeMs = Long.MIN_VALUE; boolean mIsInEmergencyCall; long mEmergencyCallEndRealtimeMs = Long.MIN_VALUE; public SystemEmergencyHelper(Context context) { mContext = context; } /** Called when system is ready. */ public void onSystemReady() { public synchronized void onSystemReady() { if (mTelephonyManager != null) { return; } Loading @@ -64,14 +64,20 @@ public class SystemEmergencyHelper extends EmergencyHelper { return; } synchronized (SystemEmergencyHelper.this) { mIsInEmergencyCall = mTelephonyManager.isEmergencyNumber( intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER)); } } }, new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL)); } @Override public boolean isInEmergency(long extensionTimeMs) { public synchronized boolean isInEmergency(long extensionTimeMs) { if (mTelephonyManager == null) { return false; } boolean isInExtensionTime = mEmergencyCallEndRealtimeMs != Long.MIN_VALUE && (SystemClock.elapsedRealtime() - mEmergencyCallEndRealtimeMs) < extensionTimeMs; Loading @@ -84,9 +90,12 @@ public class SystemEmergencyHelper extends EmergencyHelper { private class EmergencyCallTelephonyCallback extends TelephonyCallback implements TelephonyCallback.CallStateListener{ EmergencyCallTelephonyCallback() {} @Override public void onCallStateChanged(int state) { if (state == TelephonyManager.CALL_STATE_IDLE) { synchronized (SystemEmergencyHelper.this) { if (mIsInEmergencyCall) { mEmergencyCallEndRealtimeMs = SystemClock.elapsedRealtime(); mIsInEmergencyCall = false; Loading @@ -95,3 +104,4 @@ public class SystemEmergencyHelper extends EmergencyHelper { } } } }
services/core/java/com/android/server/location/provider/LocationProviderManager.java +8 −8 Original line number Diff line number Diff line Loading @@ -1527,8 +1527,6 @@ public class LocationProviderManager extends throw new IllegalArgumentException(mName + " provider is not a test provider"); } final long identity = Binder.clearCallingIdentity(); try { String locationProvider = location.getProvider(); if (!TextUtils.isEmpty(locationProvider) && !mName.equals(locationProvider)) { // The location has an explicit provider that is different from the mock Loading @@ -1537,6 +1535,8 @@ public class LocationProviderManager extends mName + "!=" + locationProvider); } final long identity = Binder.clearCallingIdentity(); try { mProvider.setMockProviderLocation(location); } finally { Binder.restoreCallingIdentity(identity); Loading